fix: 避免文档收藏响应串写

This commit is contained in:
zxr
2026-07-22 04:19:54 +08:00
parent f5c7ebc59c
commit c2c5afa82d

View File

@@ -540,14 +540,25 @@ function confirmDelete() {
async function toggleFavorite() { async function toggleFavorite() {
if (!selected.value || favoriteLoading.value) return 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 favoriteLoading.value = true
try { 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 || '收藏操作失败') if (reply.code !== 0) throw new Error(reply.message || '收藏操作失败')
selected.value = { ...selected.value, is_favorited: !selected.value.is_favorited } if (!isCurrentContext() || !selected.value) return
Message.success(selected.value.is_favorited ? '已收藏' : '已取消收藏') selected.value = { ...selected.value, is_favorited: !wasFavorited }
Message.success(wasFavorited ? '已取消收藏' : '已收藏')
} catch (error) { } catch (error) {
showRequestError(error, '收藏操作失败') if (isCurrentContext()) showRequestError(error, '收藏操作失败')
} finally { } finally {
favoriteLoading.value = false favoriteLoading.value = false
} }