From e9974d4f5953c2d33bd86146c2d8a0248871a9ef Mon Sep 17 00:00:00 2001 From: shunli Date: Sun, 8 Feb 2026 23:30:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(client):=20=E6=8A=A5=E9=94=80=E9=A1=B5?= =?UTF-8?q?=E7=B2=BE=E4=BF=AE=E4=B8=8E=20testid=EF=BC=88E5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 报销列表使用 Tabs/Table 收敛展示 - 报销详情动作区(submit/withdraw/pay)统一组件与错误展示 - 支付凭证字段补齐 data-testid 供 E2E --- client/src/pages/ReimbursementDetailPage.tsx | 84 +++++----- client/src/pages/ReimbursementsPage.tsx | 154 ++++++++++-------- .../2026-02-08_21-50-09-p4-trialrun-ready.csv | 2 +- 3 files changed, 135 insertions(+), 105 deletions(-) diff --git a/client/src/pages/ReimbursementDetailPage.tsx b/client/src/pages/ReimbursementDetailPage.tsx index f8967f57..addae9de 100644 --- a/client/src/pages/ReimbursementDetailPage.tsx +++ b/client/src/pages/ReimbursementDetailPage.tsx @@ -12,6 +12,10 @@ import { import { useAuth } from "../auth/AuthContext"; import { hasPermission } from "../auth/permissions"; import { PageHeader } from "../components/common/PageHeader"; +import { Button } from "../components/ui/button"; +import { Card } from "../components/ui/card"; +import { Input } from "../components/ui/input"; +import { Textarea } from "../components/ui/textarea"; export function ReimbursementDetailPage() { const { reimbursementId = "" } = useParams(); @@ -78,17 +82,17 @@ export function ReimbursementDetailPage() { if (!reimbursementId) { return ( -
+

缺少 reimbursementId 参数。

-
+ ); } if (detailQuery.isLoading) { return ( -
+

加载报销详情中...

-
+ ); } @@ -102,12 +106,12 @@ export function ReimbursementDetailPage() { : "加载报销详情失败"; return ( -
+

{message}

- - 返回报销列表 - -
+ + ); } @@ -120,76 +124,81 @@ export function ReimbursementDetailPage() { title={`报销详情 ${detail.formNumber ?? detail.id}`} subtitle={`状态:${detail.status}`} actions={ - - 返回列表 - + } /> -
+
报销ID:{detail.id}
报销日期:{detail.reimbursementDate ?? "-"}
金额:{detail.totalAmount ?? "-"}
提交人:{detail.submitter?.name ?? "-"}
报销人:{detail.owner?.name ?? "-"}
说明:{detail.description || "-"}
-
+ -
+

可执行动作

{actionError ? ( -

+

{actionError}

) : null}
- +
-
+

撤回报销

-