feat(adminfinance): 新增预计收入指标并优化明细查询性能

- 财务看板增加预计收入与待结算订单数统计
- 明细列表 COUNT 改为仅扫描 rental_orders 主表,避免 5-JOIN 子查询
- 统一前后端结算差异判定阈值为常量 5 分
- 修复日期选择器使用 UTC 日期导致东八区凌晨偏移前一天的问题
This commit is contained in:
yml2213
2026-07-02 17:33:05 +08:00
parent 1b818b8e4b
commit 512291f089
9 changed files with 147 additions and 45 deletions
@@ -2,11 +2,15 @@
import { Search } from '@element-plus/icons-vue'
import { onMounted, reactive, ref } from 'vue'
import { fetchFinanceDetails, type FinanceDetail } from '@/features/admin/api/adminFinance'
import {
fetchFinanceDetails,
SETTLEMENT_DIFF_THRESHOLD_CENT,
type FinanceDetail,
} from '@/features/admin/api/adminFinance'
import { adminPath } from '@/shared/utils/adminPath'
import { formatCentWithSymbol } from '@/shared/utils/money'
import { orderStatusLabel } from '@/shared/utils/statusLabels'
import { formatDateTime } from '@/shared/utils/time'
import { formatDateTime, formatInputDate } from '@/shared/utils/time'
import AdminTablePagination from '../components/AdminTablePagination.vue'
const loading = ref(false)
@@ -102,10 +106,6 @@ function defaultStartDate() {
function defaultEndDate() {
return formatInputDate(new Date())
}
function formatInputDate(date: Date) {
return date.toISOString().slice(0, 10)
}
</script>
<template>
@@ -236,7 +236,10 @@ function formatInputDate(date: Date) {
}}</span>
<span
class="amount-text amount-cell"
:class="{ 'amount-danger': Math.abs(row.settlement_diff_amount_cent) >= 5 }"
:class="{
'amount-danger':
Math.abs(row.settlement_diff_amount_cent) >= SETTLEMENT_DIFF_THRESHOLD_CENT,
}"
>
{{ moneyCent(row.settlement_diff_amount_cent) }}
</span>