R97 B1-B5 精修高频页面操作密度

这个提交包含在:
2026-05-06 17:56:57 +08:00
父节点 4cfac0ddf8
当前提交 705cf1e361
共修改 7 个文件,包含 226 行新增和 151 行删除
+20 -11
查看文件
@@ -341,7 +341,7 @@ export function ReimbursementsPage() {
<ListWorkspace>
<PageHeader
title="我的报销"
subtitle="报销列表、详情与提交/撤回/支付动作入口。"
subtitle="草稿、审批、支付。"
actions={
<div className="flex flex-col gap-2 sm:flex-row sm:items-center">
{showProxyOwnerSelector ? (
@@ -491,10 +491,10 @@ export function ReimbursementsPage() {
) : null}
<section className="grid gap-4 md:grid-cols-2 xl:grid-cols-4">
<MetricCard title="当前列表" value={stats.currentPageCount} note={`共 ${listQuery.data?.total ?? 0} 条记录`} />
<MetricCard title="当前金额" value={formatCurrency(stats.currentPageAmount)} note="按当前页与筛选统计" />
<MetricCard title="审批中" value={stats.reviewing} note="待继续推进的报销单" tone={stats.reviewing > 0 ? "warning" : "neutral"} />
<MetricCard title="已支付" value={stats.paid} note={`当前范围:${scope === "all" ? "全范围" : "仅自己"}`} />
<MetricCard title="当前列表" value={stats.currentPageCount} note={`共 ${listQuery.data?.total ?? 0} 条`} />
<MetricCard title="当前金额" value={formatCurrency(stats.currentPageAmount)} note="当前页" />
<MetricCard title="审批中" value={stats.reviewing} note="待推进" tone={stats.reviewing > 0 ? "warning" : "neutral"} />
<MetricCard title="已支付" value={stats.paid} note={scope === "all" ? "全范围" : "仅自己"} />
</section>
<FilterBar className="space-y-4">
@@ -566,7 +566,7 @@ export function ReimbursementsPage() {
{batchMode ? (
<div className="rounded-2xl border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800">
当前只可勾选你本人可处理的 reviewing 报销待办。批量通过可不填意见,批量驳回必须填写统一理由。
仅勾选你可处理的审批中报销;驳回需填写理由。
</div>
) : null}
</FilterBar>
@@ -636,7 +636,7 @@ export function ReimbursementsPage() {
{item.pendingWorkflow?.task?.id ? (
<div className="rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-700">
当前待办:{item.pendingWorkflow.task.stepName}
待办:{item.pendingWorkflow.task.stepName}
</div>
) : null}
@@ -653,7 +653,12 @@ export function ReimbursementsPage() {
选择
</label>
) : null}
<Button asChild className="min-h-10 flex-1" size="sm" variant="secondary">
<Button
asChild
className="min-h-11 flex-1"
size="sm"
variant={["draft", "rejected"].includes(item.status) ? "default" : "secondary"}
>
<Link
to={`/reimbursements/${item.id}`}
data-testid="reimbursement-mobile-detail-link"
@@ -720,7 +725,7 @@ export function ReimbursementsPage() {
) : null}
{item.pendingWorkflow?.task?.id ? (
<div className="text-xs text-amber-700">
当前待办:{item.pendingWorkflow.task.stepName} · task {item.pendingWorkflow.task.id}
待办:{item.pendingWorkflow.task.stepName}
</div>
) : null}
</td>
@@ -744,8 +749,12 @@ export function ReimbursementsPage() {
</td>
<td className="table-td">{item.reimbursementDate ?? "-"}</td>
<td className="table-td">
<Link to={`/reimbursements/${item.id}`} className="btn-ghost" data-testid="reimbursement-detail-link">
<span className="material-symbols-outlined text-[18px]">more_horiz</span>
<Link
to={`/reimbursements/${item.id}`}
className={["draft", "rejected"].includes(item.status) ? "btn-primary" : "btn-secondary"}
data-testid="reimbursement-detail-link"
>
{["draft", "rejected"].includes(item.status) ? "编辑" : "详情"}
</Link>
</td>
</tr>