fix
Some checks failed
Docker Build & Deploy / Build Docker Image (push) Failing after 6s
Docker Build & Deploy / Deploy to Production (push) Has been skipped

This commit is contained in:
2026-01-01 11:58:21 +08:00
parent 0444218898
commit c1aa4df4f3
11 changed files with 442 additions and 165 deletions

View File

@@ -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>