fix(对账): 修复删除已对账数据时索引变化导致的问题
Some checks failed
Lock Threads / action (push) Has been cancelled
Issue Close Require / close-issues (push) Has been cancelled
Close stale issues / stale (push) Has been cancelled

This commit is contained in:
2026-01-16 19:02:08 +08:00
parent b7eb73c401
commit d712f9a5bf

View File

@@ -173,7 +173,9 @@ function onCompleteCheck() {
}); });
// 删除当前已对账的数据 // 删除当前已对账的数据
const currentIndex = multipleCurrentIndex.value[0] || 0; const currentIndex = multipleCurrentIndex.value[0] || 0;
multipleCurrentIndex.value.forEach((index) => { // 先排序索引,从大到小删除,避免索引变化影响后续删除
const sortedIndices = multipleCurrentIndex.value.toSorted((a, b) => b - a);
sortedIndices.forEach((index) => {
pendingData.value.splice(index, 1); pendingData.value.splice(index, 1);
}); });
@@ -188,6 +190,7 @@ function onCompleteCheck() {
multipleCurrentData.value = []; multipleCurrentData.value = [];
// 如果当前索引超出了数据范围重置到第一条否则下一条删除已处理索引后currentIndex即是下一条 // 如果当前索引超出了数据范围重置到第一条否则下一条删除已处理索引后currentIndex即是下一条
multipleCurrentIndex.value[0] = Math.min(currentIndex, pendingData.value.length - 1); multipleCurrentIndex.value[0] = Math.min(currentIndex, pendingData.value.length - 1);
changePendingData(multipleCurrentIndex.value[0]);
} }
// 其他方式--确认对账 -------------- // 其他方式--确认对账 --------------
// 已选列表 // 已选列表
@@ -321,18 +324,15 @@ async function onCompleteCheckCreated() {
const paymentIds = multipleCurrentData.value.map((item) => item.id); const paymentIds = multipleCurrentData.value.map((item) => item.id);
// 调用接口 // 调用接口
const hideLoading = message.loading('处理中...', 0);
await (isBatchMode.value await (isBatchMode.value
? reconciliateBillsApi.manualCheckCreatedBatch({ ? reconciliateBillsApi.manualCheckCreatedBatch({
paymentIds: paymentIds.join(','), paymentIds: paymentIds.join(','),
orders: data, orders: data,
}) })
: reconciliateBillsApi.manualCheckCreated(data)); : reconciliateBillsApi.manualCheckCreated(data));
// 刷新数据
onCompleteCheck(); onCompleteCheck();
hideLoading();
// 清空已选列表
selectedData.value = [];
selectedRef.value?.clearData();
} }
</script> </script>