完成查询asin开发
This commit is contained in:
@@ -818,6 +818,11 @@ function rowKeyForMatch(row: { shopName?: string; shopId?: number | string | nul
|
||||
return `${(row.shopName || '').trim()}\u0001${row.shopId ?? ''}`
|
||||
}
|
||||
|
||||
function isRecordMissingError(error: unknown) {
|
||||
const message = error instanceof Error ? error.message : String(error || '')
|
||||
return /记录不存在|不存在|已删除|not\s*found|404/i.test(message)
|
||||
}
|
||||
|
||||
function buildSkipAsinDeletePolicy() {
|
||||
const enabled = statusModeEnabled.value && !asinModeEnabled.value
|
||||
return {
|
||||
@@ -843,6 +848,14 @@ function removeMatchedRowsLocally(rows: Array<{ shopName?: string; shopId?: numb
|
||||
saveMatchedItemsToStorage()
|
||||
}
|
||||
|
||||
function removeHistoryItemLocally(item: PriceTrackHistoryItem) {
|
||||
historyItems.value = historyItems.value.filter((row) => {
|
||||
if (item.resultId != null && row.resultId === item.resultId) return false
|
||||
if (item.taskId != null && row.taskId === item.taskId) return false
|
||||
return true
|
||||
})
|
||||
}
|
||||
|
||||
async function removeMatchedRow(row: PriceTrackShopQueueItem) {
|
||||
const backup = [...matchedItems.value]
|
||||
removeMatchedRowsLocally([row])
|
||||
@@ -860,6 +873,13 @@ async function removeMatchedRow(row: PriceTrackShopQueueItem) {
|
||||
}
|
||||
ElMessage.success('已从匹配结果中移除')
|
||||
} catch (e) {
|
||||
if (isRecordMissingError(e)) {
|
||||
await loadHistory()
|
||||
await loadDashboard()
|
||||
syncPollingIdsWithHistory()
|
||||
ElMessage.success('后端记录已不存在,已同步移除本地记录')
|
||||
return
|
||||
}
|
||||
matchedItems.value = backup
|
||||
saveMatchedItemsToStorage()
|
||||
ElMessage.error(e instanceof Error ? e.message : '同步后端失败')
|
||||
@@ -1587,6 +1607,15 @@ async function deleteTaskRecord(item: PriceTrackHistoryItem) {
|
||||
syncPollingIdsWithHistory()
|
||||
ElMessage.success('已删除')
|
||||
} catch (e) {
|
||||
if (isRecordMissingError(e)) {
|
||||
if (item.taskId != null) removePollingTask(item.taskId)
|
||||
removeMatchedRowsLocally([item])
|
||||
removeHistoryItemLocally(item)
|
||||
await loadDashboard()
|
||||
syncPollingIdsWithHistory()
|
||||
ElMessage.success('后端记录已不存在,已同步移除本地记录')
|
||||
return
|
||||
}
|
||||
ElMessage.error(e instanceof Error ? e.message : '删除失败')
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user