fix: 避免文档收藏响应串写
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user