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