From f28de8d1deda97f4fb044c63bf77a44a75f37bd8 Mon Sep 17 00:00:00 2001 From: wangjie52 Date: Sat, 2 Aug 2025 16:56:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BC=98=E5=8C=96=E6=B7=B7=E9=9F=B3?= =?UTF-8?q?=E6=AD=8C=E6=9B=B2=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8E=A5=E5=8F=A3=E8=B0=83=E7=94=A8=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E7=AE=80=E5=8C=96=E6=96=B0=E5=A2=9E=E5=92=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B7=B7=E9=9F=B3=E6=AD=8C=E6=9B=B2=E7=9A=84?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E5=AD=97=E6=AE=B5=EF=BC=8C=E5=A2=9E=E5=BC=BA?= =?UTF-8?q?=E9=9F=B3=E4=B9=90=E9=80=89=E6=8B=A9=E5=92=8C=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=94=B9=E5=96=84?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BD=93=E9=AA=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/api/playlist/remix.js | 66 +-- ruoyi-ui/src/api/playlist/scene.js | 4 +- ruoyi-ui/src/components/FileUpload/index.vue | 17 +- ruoyi-ui/src/components/ImageUpload/index.vue | 15 +- ruoyi-ui/src/views/activity/index.vue | 9 +- ruoyi-ui/src/views/playlist/normal/index.vue | 150 ++++--- ruoyi-ui/src/views/playlist/remix/index.vue | 381 +++++++++++++----- ruoyi-ui/src/views/playlist/scene/index.vue | 20 +- 8 files changed, 475 insertions(+), 187 deletions(-) diff --git a/ruoyi-ui/src/api/playlist/remix.js b/ruoyi-ui/src/api/playlist/remix.js index bf726e7..ea4bf97 100644 --- a/ruoyi-ui/src/api/playlist/remix.js +++ b/ruoyi-ui/src/api/playlist/remix.js @@ -12,56 +12,70 @@ export function listRemixSong(query) { // 查询混音歌曲详细 export function getRemixSong(id) { return request({ - url: '/back/remix/' + id, - method: 'get' + url: '/back/music/list', + method: 'get', + params: { + musicType: 'mixing', + musicId: id + } }) } // 获取音乐列表(用于选择场景音乐) -export function getMusicList() { +export function getMusicList(query) { return request({ url: '/back/music/list', - method: 'get' + method: 'get', + params: query }) } // 新增混音歌曲 export function addRemixSong(data) { - const formData = new FormData() - formData.append('remixName', data.remixName) - formData.append('permission', data.permission) - formData.append('categoryConfig', data.categoryConfig) - formData.append('category', data.category) - formData.append('tags', JSON.stringify(data.tags)) - formData.append('status', data.status) - formData.append('selectedSongs', JSON.stringify(data.selectedSongs)) return request({ url: '/back/music/add/mixMusic', method: 'post', - data: formData, + data: { + musicId: data.musicId, + sceneIds: data.sceneIds, + sceneJson: data.sceneJson, + // 添加其他表单字段 + name: data.name, + author: data.author, + vip: data.vip, + shelf: data.shelf, + imgAddr: data.imgAddr, + musicType: data.musicType, + label: data.label + }, headers: { - 'Content-Type': 'multipart/form-data' + 'Content-Type': 'application/json' } }) } // 修改混音歌曲 export function updateRemixSong(data) { - const formData = new FormData() - formData.append('id', data.id) - formData.append('remixName', data.remixName) - formData.append('permission', data.permission) - formData.append('categoryConfig', data.categoryConfig) - formData.append('category', data.category) - formData.append('tags', JSON.stringify(data.tags)) - formData.append('status', data.status) - formData.append('selectedSongs', JSON.stringify(data.selectedSongs)) return request({ - url: '/back/remix/update', + url: '/back/music/edit/mixMusic', method: 'post', - data: formData, + data: { + id: data.id, + musicId: data.musicId, + sourceMusicId: data.sourceMusicId, + sceneIds: data.sceneIds, + sceneJson: data.sceneJson, + // 添加其他表单字段 + name: data.name, + author: data.author, + vip: data.vip, + shelf: data.shelf, + imgAddr: data.imgAddr, + musicType: data.musicType, + label: data.label + }, headers: { - 'Content-Type': 'multipart/form-data' + 'Content-Type': 'application/json' } }) } diff --git a/ruoyi-ui/src/api/playlist/scene.js b/ruoyi-ui/src/api/playlist/scene.js index 8ac6fac..50f08d6 100644 --- a/ruoyi-ui/src/api/playlist/scene.js +++ b/ruoyi-ui/src/api/playlist/scene.js @@ -29,8 +29,8 @@ export function addScene(data) { // 修改场景音乐 export function updateScene(data) { return request({ - url: '/back/scene/update', - method: 'post', + url: '/back/scene', + method: 'put', data: data }) } diff --git a/ruoyi-ui/src/components/FileUpload/index.vue b/ruoyi-ui/src/components/FileUpload/index.vue index ca37c55..dd85b11 100644 --- a/ruoyi-ui/src/components/FileUpload/index.vue +++ b/ruoyi-ui/src/components/FileUpload/index.vue @@ -189,7 +189,13 @@ export default { // 上传成功回调 handleUploadSuccess(res, file) { if (res.code === 200) { - this.uploadList.push({ name: res.fileName, url: res.fileName }) + // 根据新的接口返回格式,data字段包含文件路径 + let filePath = res.data || res.fileName; + // 如果路径不是以http开头,则拼接域名前缀 + if (filePath && !filePath.startsWith('http://') && !filePath.startsWith('https://')) { + filePath = this.baseUrl + filePath; + } + this.uploadList.push({ name: filePath, url: filePath }) this.uploadedSuccessfully() } else { this.number-- @@ -228,7 +234,14 @@ export default { let strs = "" separator = separator || "," for (let i in list) { - strs += list[i].url + separator + if (list[i].url) { + // 移除baseUrl前缀,只返回相对路径 + let url = list[i].url; + if (url.startsWith(this.baseUrl)) { + url = url.substring(this.baseUrl.length); + } + strs += url + separator + } } return strs != '' ? strs.substr(0, strs.length - 1) : '' } diff --git a/ruoyi-ui/src/components/ImageUpload/index.vue b/ruoyi-ui/src/components/ImageUpload/index.vue index 6b24f6e..6ac79c3 100644 --- a/ruoyi-ui/src/components/ImageUpload/index.vue +++ b/ruoyi-ui/src/components/ImageUpload/index.vue @@ -196,7 +196,13 @@ export default { // 上传成功回调 handleUploadSuccess(res, file) { if (res.code === 200) { - this.uploadList.push({ name: res.fileName, url: res.fileName }) + // 根据新的接口返回格式,data字段包含图片路径 + let imagePath = res.data || res.fileName; + // 如果路径不是以http开头,则拼接域名前缀 + if (imagePath && !imagePath.startsWith('http://') && !imagePath.startsWith('https://')) { + imagePath = this.baseUrl + imagePath; + } + this.uploadList.push({ name: imagePath, url: imagePath }) this.uploadedSuccessfully() } else { this.number-- @@ -240,7 +246,12 @@ export default { separator = separator || "," for (let i in list) { if (list[i].url) { - strs += list[i].url.replace(this.baseUrl, "") + separator + // 移除baseUrl前缀,只返回相对路径 + let url = list[i].url; + if (url.startsWith(this.baseUrl)) { + url = url.substring(this.baseUrl.length); + } + strs += url + separator } } return strs != '' ? strs.substr(0, strs.length - 1) : '' diff --git a/ruoyi-ui/src/views/activity/index.vue b/ruoyi-ui/src/views/activity/index.vue index 3deee71..50e046d 100644 --- a/ruoyi-ui/src/views/activity/index.vue +++ b/ruoyi-ui/src/views/activity/index.vue @@ -31,8 +31,8 @@