fix: v1.4 Bug 修复与体验优化

- 修复所有日期相关逻辑使用 UTC 导致时区偏移问题
- 首页今日数据改用 stats API 聚合查询,消除 100 条上限
- 账单分页加载添加请求序号,防止并发覆盖
- 统计页 maxSingle 改为按金额排序
- 统计页 tab 切换时刷新月对比数据
- 首页 onShow 跳过首次加载,避免双重请求
- 今日卡片同时展示支出/收入,骨架屏对齐
- 账单页统一左滑删除,去掉长按
- 后端 transaction 支持 sortBy 参数
- 后端 stats overview 支持 startDate/endDate 查询
This commit is contained in:
2026-05-29 17:33:24 +08:00
parent 418d5b24f9
commit 4737f160b7
7 changed files with 94 additions and 45 deletions

View File

@@ -26,7 +26,6 @@
:item="item"
:hideDate="true"
@tap="onEdit(item)"
@longpress="onDelete(item)"
@delete="onDelete(item)"
/>
</view>
@@ -85,6 +84,7 @@ const pageSize = 20
const txList = ref<any[]>([])
const total = ref(0)
const loadError = ref(false)
let loadSeq = 0 // 请求序号,防止并发覆盖
const noMore = computed(() => txList.value.length >= total.value && total.value > 0)
@@ -116,11 +116,14 @@ async function loadTx(reset = false) {
page.value = 1
txList.value = []
}
const seq = ++loadSeq
const params: any = { page: page.value, pageSize }
if (filterType.value !== 'all') params.type = filterType.value
try {
loadError.value = false
await txStore.fetchTransactions(params)
// 丢弃过期请求的结果
if (seq !== loadSeq) return
if (reset) {
txList.value = txStore.transactions
} else {
@@ -128,6 +131,7 @@ async function loadTx(reset = false) {
}
total.value = txStore.total
} catch (e) {
if (seq !== loadSeq) return
console.error('Load bills error:', e)
loadError.value = true
}