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

这个提交包含在:
2026-05-06 17:56:57 +08:00
父节点 4cfac0ddf8
当前提交 705cf1e361
共修改 7 个文件,包含 226 行新增和 151 行删除
@@ -34,9 +34,9 @@ export function InvoiceListCard({
signedUrlMutation,
}: InvoiceListCardProps) {
return (
<div className="card-std p-6 space-y-4">
<div className="card-std space-y-4 p-4 md:p-5">
<div className="flex flex-col gap-3 md:flex-row md:items-center md:justify-between">
<h3 className="card-title">筛选与列表</h3>
<h3 className="card-title">票据列表</h3>
<div className="flex flex-col gap-2 sm:flex-row sm:items-center">
<select
className="select-sm"
@@ -100,10 +100,10 @@ export function InvoiceListCard({
<div className="mt-3 rounded-lg bg-zinc-50 px-3 py-2 text-xs text-zinc-600">
{item.status === "pending_ocr"
? `OCR 识别中,重试 ${item.ocrAttempts} 次`
? `识别中,已尝试 ${item.ocrAttempts} 次`
: item.status === "ocr_failed"
? `OCR 失败:${formatInvoiceOcrErrorMessage(item.ocrLastError)}`
: "OCR 已完成或无需处理"}
? `识别失败:${formatInvoiceOcrErrorMessage(item.ocrLastError)}`
: "已识别"}
</div>
<div className="mt-3 grid grid-cols-2 gap-2">
@@ -113,7 +113,6 @@ export function InvoiceListCard({
onClick={() => setDetailInvoiceId(item.id)}
size="sm"
type="button"
variant="secondary"
>
查看详情
</Button>
@@ -145,7 +144,7 @@ export function InvoiceListCard({
<th className="table-th w-[280px]">票据流水号</th>
<th className="table-th w-[120px]">状态</th>
<th className="table-th w-[200px]">发票号码</th>
<th className="table-th">识别情况 (OCR)</th>
<th className="table-th">识别状态</th>
<th className="table-th w-[80px] text-right">操作</th>
</tr>
</thead>
@@ -172,7 +171,7 @@ export function InvoiceListCard({
识别失败 <span className="text-zinc-400 text-xs">({formatInvoiceOcrErrorMessage(item.ocrLastError)})</span>
</span>
) : (
<span className="text-zinc-400 text-xs">解析成功</span>
<span className="text-zinc-400 text-xs">已识别</span>
)}
</td>
<td className="table-td text-right">
@@ -185,7 +184,7 @@ export function InvoiceListCard({
查看详情
</DropdownMenuItem>
<DropdownMenuItem data-testid="invoice-preview-button" onSelect={() => signedUrlMutation.mutate(item.id)}>
下载 / 预览
预览
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>