From 7c94f6bc9a193875a12aa1681341852127283d05 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Wed, 20 Aug 2025 08:36:19 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/pages/manage.vue | 12 +++++------- .../js/pages/manage/components/ProjectList.vue | 11 +++++------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index e100190e1..283c4f7ca 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -785,7 +785,7 @@ export default { projectLists: { handler(val) { if (!this.projectDragging) { - this.projectDraggableList = val + this.projectDraggableList = $A.cloneJSON(val) } }, immediate: true @@ -1061,12 +1061,7 @@ export default { }, onProjectSortEnd() { - // 只对非置顶项进行排序更新 const nonPinnedItems = this.projectDraggableList.filter(item => !item.top_at) - nonPinnedItems.forEach((item, index) => { - this.$store.dispatch("saveProject", {id: item.id, sort: index}) - }) - // 提交服务端保存 this.$store.dispatch("call", { url: 'project/user/sort', data: { @@ -1075,8 +1070,12 @@ export default { method: 'post', spinner: 2000 }).then(({msg}) => { + nonPinnedItems.forEach((item, index) => { + this.$store.dispatch("saveProject", {id: item.id, sort: index}) + }) $A.messageSuccess(msg) }).catch(({msg}) => { + this.projectDraggableList = $A.cloneJSON(this.projectLists) $A.modalError(msg) }).finally(() => { this.projectDragging = false @@ -1247,7 +1246,6 @@ export default { }, }).then(({data}) => { this.$store.dispatch("saveProject", data); - this.projectDraggableList = this.projectLists this.$nextTick(() => { const active = this.$refs.menuProject.querySelector(".active") if (active) { diff --git a/resources/assets/js/pages/manage/components/ProjectList.vue b/resources/assets/js/pages/manage/components/ProjectList.vue index 19a7e391d..45237c743 100644 --- a/resources/assets/js/pages/manage/components/ProjectList.vue +++ b/resources/assets/js/pages/manage/components/ProjectList.vue @@ -151,7 +151,7 @@ export default { projectLists: { handler(val) { if (!this.projectDragging) { - this.projectDraggableList = val + this.projectDraggableList = $A.cloneJSON(val) } }, immediate: true @@ -184,12 +184,7 @@ export default { methods: { transformEmojiToHtml, onProjectSortEnd() { - // 只对非置顶项进行排序更新 const nonPinnedItems = this.projectDraggableList.filter(item => !item.top_at) - nonPinnedItems.forEach((item, index) => { - this.$store.dispatch("saveProject", {id: item.id, sort: index}) - }) - // 提交服务端保存 this.$store.dispatch("call", { url: 'project/user/sort', data: { @@ -198,8 +193,12 @@ export default { method: 'post', spinner: 2000 }).then(({msg}) => { + nonPinnedItems.forEach((item, index) => { + this.$store.dispatch("saveProject", {id: item.id, sort: index}) + }) $A.messageSuccess(msg) }).catch(({msg}) => { + this.projectDraggableList = $A.cloneJSON(this.projectLists) $A.modalError(msg) }).finally(() => { this.projectDragging = false