MIF7T-1/MIF7T-7 收口真机反馈并统一移动体验

这个提交包含在:
2026-05-13 10:17:50 +08:00
父节点 44b5af4f1e
当前提交 cf2bba02d5
共修改 30 个文件,包含 793 行新增和 264 行删除
+29 -5
查看文件
@@ -940,6 +940,7 @@ export function MobileApprovalsPage() {
const listTitle = taskTab === "pending" ? "待我审批" : "已处理";
const allVisibleSelected =
filteredTaskCards.length > 0 && filteredTaskCards.every((task) => selectedBatchTaskIds.includes(task.id));
const shouldShowDraftQueue = !isOnline || currentQueueItems.length > 0;
return (
<PageScaffold className="space-y-4">
@@ -1271,10 +1272,33 @@ export function MobileApprovalsPage() {
</div>
<StatusBadge status={selectedTask.task.status} label={workflowStatusLabel(selectedTask.task.status)} />
</div>
<div className="mt-3 space-y-1 text-zinc-600">
<div>{joinBusinessMeta([`类型:${entityLabel(selectedTask.workflowInstance?.entityType)}`, `业务状态:${businessStatusLabel(selectedTaskCard?.businessStatus ?? selectedTask.workflowInstance?.currentStatus)}`])}</div>
<div>{joinBusinessMeta([selectedApplicantName ? `申请人:${selectedApplicantName}` : null, selectedMetric ? `金额/天数:${selectedMetric}` : null])}</div>
{selectedTask.task.completedAt ? <div>完成时间:{formatDateTime(selectedTask.task.completedAt)}</div> : null}
<div className="mobile-field-list mt-3">
<div className="mobile-field-row">
<div className="mobile-field-label">类型</div>
<div className="mobile-field-value">{entityLabel(selectedTask.workflowInstance?.entityType)}</div>
</div>
<div className="mobile-field-row">
<div className="mobile-field-label">业务状态</div>
<div className="mobile-field-value">{businessStatusLabel(selectedTaskCard?.businessStatus ?? selectedTask.workflowInstance?.currentStatus)}</div>
</div>
{selectedApplicantName ? (
<div className="mobile-field-row">
<div className="mobile-field-label">申请人</div>
<div className="mobile-field-value">{selectedApplicantName}</div>
</div>
) : null}
{selectedMetric ? (
<div className="mobile-field-row">
<div className="mobile-field-label">金额/天数</div>
<div className="mobile-field-value">{selectedMetric}</div>
</div>
) : null}
{selectedTask.task.completedAt ? (
<div className="mobile-field-row">
<div className="mobile-field-label">完成时间</div>
<div className="mobile-field-value">{formatDateTime(selectedTask.task.completedAt)}</div>
</div>
) : null}
</div>
{selectedTask.reimbursement ? (
<div className="mt-3 rounded-lg bg-zinc-50 px-3 py-2 text-xs text-zinc-600">
@@ -1404,7 +1428,7 @@ export function MobileApprovalsPage() {
</section>
) : null}
{!isPushDetail ? (
{!isPushDetail && shouldShowDraftQueue ? (
<section className="mobile-card space-y-3" data-testid="mobile-approvals-queue">
<div className="flex items-center justify-between gap-3">
<h3 className="text-base font-semibold text-zinc-900">离线草稿</h3>