收口移动端入口与文案(05-30-mobile-confirmed-entry-copy-followups)

这个提交包含在:
2026-05-30 15:13:25 +08:00
父节点 1f25bb706d
当前提交 ba7391eec4
共修改 15 个文件,包含 266 行新增和 99 行删除
+19 -31
查看文件
@@ -182,6 +182,10 @@ export function MobilePortalPage() {
.slice(0, 3);
const financeSummary = portalHomeQuery.data?.financeSummary ?? null;
const paymentBatchEnabled = Boolean(financeSummary?.paymentBatchEnabled);
const financePendingCount = financeSummary?.pendingBatchCount ?? 0;
const financeExceptionCount = (financeSummary?.failedItemCount ?? 0) + (financeSummary?.riskCount ?? 0);
const shouldShowFinanceCard = canUseFinance && !portalHomeQuery.isLoading && !portalHomeQuery.isError && (financePendingCount > 0 || financeExceptionCount > 0);
const financeCardBadge = paymentBatchEnabled ? "复核与付款" : financePendingCount > 0 ? "待付款" : "异常与复核";
async function openHomeNotification(item: NotificationItem) {
const targetLink = resolveMobileNotificationTargetLink(item);
@@ -261,7 +265,7 @@ export function MobilePortalPage() {
<div className="mobile-section-header mobile-section-header--top">
<div className="min-w-0">
<div className="mobile-section-title">待处理</div>
<div className="mobile-list-card__subtitle mt-1">待我审批</div>
<div className="mobile-list-card__subtitle mt-1">待我处理</div>
</div>
<div className="text-right">
<div className="text-3xl font-semibold leading-none text-zinc-900" data-testid="mobile-pending-summary-count">
@@ -305,42 +309,26 @@ export function MobilePortalPage() {
</section>
) : null}
{canUseFinance ? (
{shouldShowFinanceCard ? (
<section id="finance" tabIndex={-1} className="mobile-card mobile-page-stack" data-testid="mobile-finance-summary">
<div className="mobile-section-header">
<div className="mobile-section-title">财务</div>
<span className="badge-neutral">{paymentBatchEnabled ? "复核与付款" : "审批与台账"}</span>
<span className="badge-neutral">{financeCardBadge}</span>
</div>
{portalHomeQuery.isLoading ? <p className="text-sm text-zinc-500">读取中...</p> : null}
{portalHomeQuery.isError ? (
<p className="rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-600">
{resolveErrorMessage(portalHomeQuery.error)}
</p>
) : null}
{!portalHomeQuery.isLoading && !portalHomeQuery.isError && paymentBatchEnabled ? (
<div className="mobile-metric-grid text-sm">
<div className="rounded-lg bg-zinc-50 px-3 py-2">
<div className="text-xs text-zinc-500">待付款</div>
<div className="mt-1 text-xl font-semibold text-zinc-900">{financeSummary?.pendingBatchCount ?? 0}</div>
</div>
<div className="rounded-lg bg-zinc-50 px-3 py-2">
<div className="text-xs text-zinc-500">异常</div>
<div className="mt-1 text-xl font-semibold text-zinc-900">
{(financeSummary?.failedItemCount ?? 0) + (financeSummary?.riskCount ?? 0)}
</div>
</div>
<div className="rounded-lg bg-zinc-50 px-3 py-2">
<div className="text-xs text-zinc-500">电脑端</div>
<div className="mt-1 text-xl font-semibold text-zinc-900">处理台账</div>
</div>
<div className="mobile-metric-grid text-sm">
<div className="rounded-lg bg-zinc-50 px-3 py-2">
<div className="text-xs text-zinc-500">待付款</div>
<div className="mt-1 text-xl font-semibold text-zinc-900">{financePendingCount}</div>
</div>
) : null}
{!portalHomeQuery.isLoading && !portalHomeQuery.isError && !paymentBatchEnabled ? (
<div className="mobile-subcard text-sm text-zinc-600" data-testid="mobile-finance-disabled-state">
<div className="font-medium text-zinc-900">付款批次未启用</div>
<div className="mt-1 leading-5">可查看已流转到财务审批的报销单,待付款和异常批次暂不展示。</div>
<div className="rounded-lg bg-zinc-50 px-3 py-2">
<div className="text-xs text-zinc-500">异常</div>
<div className="mt-1 text-xl font-semibold text-zinc-900">{financeExceptionCount}</div>
</div>
) : null}
<div className="rounded-lg bg-zinc-50 px-3 py-2">
<div className="text-xs text-zinc-500">处理</div>
<div className="mt-1 text-xl font-semibold text-zinc-900">电脑端</div>
</div>
</div>
</section>
) : null}