From c2c5afa82d2bee5c34e3453d706ac12489168ce4 Mon Sep 17 00:00:00 2001 From: zxr <271055687@qq.com> Date: Wed, 22 Jul 2026 04:19:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=81=BF=E5=85=8D=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=94=B6=E8=97=8F=E5=93=8D=E5=BA=94=E4=B8=B2=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ops/pages/kb/items/index.vue | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/views/ops/pages/kb/items/index.vue b/src/views/ops/pages/kb/items/index.vue index f282149..99346f4 100644 --- a/src/views/ops/pages/kb/items/index.vue +++ b/src/views/ops/pages/kb/items/index.vue @@ -540,14 +540,25 @@ function confirmDelete() { async function toggleFavorite() { if (!selected.value || favoriteLoading.value) return + const documentID = selected.value.id + const wasFavorited = selected.value.is_favorited + const listContext = listSequence + const readyListContext = readyListSequence + const detailContext = detailSequence + const isCurrentContext = () => + selected.value?.id === documentID && + listSequence === listContext && + readyListSequence === readyListContext && + detailSequence === detailContext favoriteLoading.value = true try { - const reply = selected.value.is_favorited ? await unfavoriteDocument(selected.value.id) : await favoriteDocument(selected.value.id) + const reply = wasFavorited ? await unfavoriteDocument(documentID) : await favoriteDocument(documentID) if (reply.code !== 0) throw new Error(reply.message || '收藏操作失败') - selected.value = { ...selected.value, is_favorited: !selected.value.is_favorited } - Message.success(selected.value.is_favorited ? '已收藏' : '已取消收藏') + if (!isCurrentContext() || !selected.value) return + selected.value = { ...selected.value, is_favorited: !wasFavorited } + Message.success(wasFavorited ? '已取消收藏' : '已收藏') } catch (error) { - showRequestError(error, '收藏操作失败') + if (isCurrentContext()) showRequestError(error, '收藏操作失败') } finally { favoriteLoading.value = false }