fix
This commit is contained in:
@@ -301,6 +301,7 @@
|
||||
:show-delete="true"
|
||||
@load="loadCategoryBills"
|
||||
@click="viewBillDetail"
|
||||
@delete="handleCategoryBillsDelete"
|
||||
/>
|
||||
</PopupContainer>
|
||||
|
||||
@@ -315,6 +316,7 @@
|
||||
|
||||
<script setup>
|
||||
import { ref, computed, onMounted, onActivated, nextTick } from 'vue'
|
||||
import { onBeforeUnmount } from 'vue'
|
||||
import { showToast } from 'vant'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { getMonthlyStatistics, getCategoryStatistics, getTrendStatistics } from '@/api/statistics'
|
||||
@@ -715,6 +717,14 @@ const viewBillDetail = async (transaction) => {
|
||||
}
|
||||
}
|
||||
|
||||
const handleCategoryBillsDelete = (deletedId) => {
|
||||
categoryBills.value = categoryBills.value.filter(t => t.id !== deletedId)
|
||||
categoryBillsTotal.value--
|
||||
|
||||
// 被删除后刷新统计数据和账单列表
|
||||
fetchStatistics()
|
||||
}
|
||||
|
||||
// 账单保存后的回调
|
||||
const onBillSave = async () => {
|
||||
// 刷新统计数据
|
||||
@@ -746,6 +756,7 @@ const onSmartClassifySave = async () => {
|
||||
|
||||
// 刷新统计数据
|
||||
await fetchStatistics()
|
||||
try { window.dispatchEvent(new CustomEvent('transactions-changed', { detail: { reason: selectedClassify.value, type: selectedType.value } })) } catch(e) {}
|
||||
|
||||
showToast('智能分类已保存')
|
||||
}
|
||||
@@ -778,6 +789,28 @@ onMounted(() => {
|
||||
onActivated(() => {
|
||||
fetchStatistics()
|
||||
})
|
||||
|
||||
// 全局监听交易删除事件,确保统计数据一致
|
||||
const onGlobalTransactionDeleted = (e) => {
|
||||
// e.detail contains transaction id
|
||||
fetchStatistics()
|
||||
}
|
||||
|
||||
window.addEventListener && window.addEventListener('transaction-deleted', onGlobalTransactionDeleted)
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
window.removeEventListener && window.removeEventListener('transaction-deleted', onGlobalTransactionDeleted)
|
||||
})
|
||||
|
||||
const onGlobalTransactionsChanged = (e) => {
|
||||
fetchStatistics()
|
||||
}
|
||||
|
||||
window.addEventListener && window.addEventListener('transactions-changed', onGlobalTransactionsChanged)
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
window.removeEventListener && window.removeEventListener('transactions-changed', onGlobalTransactionsChanged)
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
Reference in New Issue
Block a user