From f18ba483ce824c4be8a5b404975125eca266a829 Mon Sep 17 00:00:00 2001 From: zhangyh Date: Mon, 17 Nov 2025 10:47:32 +0800 Subject: [PATCH] =?UTF-8?q?bugfix:=20like=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/tools/poseTransfer/index.vue | 52 ++++++++++++++----- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/src/component/home/tools/poseTransfer/index.vue b/src/component/home/tools/poseTransfer/index.vue index 3e088b02..5af73543 100644 --- a/src/component/home/tools/poseTransfer/index.vue +++ b/src/component/home/tools/poseTransfer/index.vue @@ -819,34 +819,62 @@ export default defineComponent({ .then(rv => { if (str == 'like') { item.newLike = true - let value = { + // 从 noLikeList 中查找索引并删除 + const noLikeIndex = store.state.HomeStoreModule.poseTransfer.list.findIndex( + (v: any) => v.id === item.id + ) + if (noLikeIndex !== -1) { + let deleteValue = { + list: [], + str: 'splice', + index: noLikeIndex + } + store.commit('setPoseTransfer', deleteValue) + } + // 添加到 likedList + let addValue = { likedList: [ { ...item, - sort: rv.sort, - parentId: rv.parentId + sort: rv?.sort ?? item.sort, + parentId: rv?.parentId ?? item.parentId } ], str: 'add', index: -1 } - store.commit('setPoseTransfer', value) - data.noLikeList.splice(index, 1) + store.commit('setPoseTransfer', addValue) } else { - let value = { - likedList: [ + item.newLike = false + // 从 likedList 中查找索引并删除 + const likedIndex = + store.state.HomeStoreModule.poseTransfer.likedList.findIndex( + (v: any) => v.id === item.id + ) + if (likedIndex !== -1) { + let deleteValue = { + likedList: [], + str: 'splice', + index: likedIndex + } + store.commit('setPoseTransfer', deleteValue) + } + // 添加到 noLikeList + let addValue = { + list: [ { ...item } ], - str: 'splice', - index: index + str: 'add', + index: -1 } - data.noLikeList.push(item) - store.commit('setPoseTransfer', value) + store.commit('setPoseTransfer', addValue) } }) - .catch(res => {}) + .catch(res => { + console.error('likeFile error:', res) + }) } const selectPose = (item: any) => { data.poseList.forEach((listItem: any) => (listItem.isChecked = false))