MIF7F-1/MIF7F-2/MIF7F-3 修复移动返回标签并勘误

这个提交包含在:
2026-05-13 00:55:39 +08:00
父节点 c83dbb7376
当前提交 eed8e37033
共修改 8 个文件,包含 96 行新增和 30 行删除
+19 -3
查看文件
@@ -100,6 +100,10 @@ function resolveProgressTab(value: string | null | undefined): EmployeeProgressT
return "reviewing";
}
function resolveTaskTab(value: string | null | undefined): MobileTaskTab {
return value === "completed" ? "completed" : "pending";
}
function progressStatusQuery(tab: EmployeeProgressTab): EmployeeProgressQueryStatus {
return tab === "returned" ? "rejected" : tab;
}
@@ -349,7 +353,7 @@ export function MobileApprovalsPage() {
const isPushDetail = Boolean(deepLinkTaskId);
const [selectedTaskId, setSelectedTaskId] = useState(deepLinkTaskId);
const [taskTab, setTaskTab] = useState<MobileTaskTab>("pending");
const [taskTab, setTaskTab] = useState<MobileTaskTab>(() => resolveTaskTab(searchParams.get("taskTab")));
const [progressTab, setProgressTab] = useState<EmployeeProgressTab>(() =>
resolveProgressTab(searchParams.get("progress")),
);
@@ -401,6 +405,10 @@ export function MobileApprovalsPage() {
setProgressTab(resolveProgressTab(searchParams.get("progress")));
}, [searchParams]);
useEffect(() => {
setTaskTab(resolveTaskTab(searchParams.get("taskTab")));
}, [searchParams]);
useEffect(() => {
if (taskTab === "completed") {
setBatchMode(false);
@@ -421,6 +429,14 @@ export function MobileApprovalsPage() {
setSearchParams(nextParams, { replace: true });
}
function handleTaskTabChange(value: string) {
const nextTab = resolveTaskTab(value);
setTaskTab(nextTab);
const nextParams = new URLSearchParams(searchParams);
nextParams.set("taskTab", nextTab);
setSearchParams(nextParams, { replace: true });
}
async function invalidateWorkflowQueries(taskId: string | null = selectedTaskId) {
await Promise.all([
queryClient.invalidateQueries({ queryKey: ["mobile", "workflow", "tasks"] }),
@@ -936,7 +952,7 @@ export function MobileApprovalsPage() {
<StatusBadge status={selectedTask.task.status} label={workflowStatusLabel(selectedTask.task.status)} />
) : null
}
fallbackTo="/mobile/approvals"
fallbackTo={`/mobile/approvals?taskTab=${taskTab}`}
testId="mobile-approvals-detail-header"
/>
) : (
@@ -1022,7 +1038,7 @@ export function MobileApprovalsPage() {
<span className={`text-sm ${isOnline ? "text-emerald-600" : "text-orange-600"}`}>{isOnline ? "在线" : "离线"}</span>
</div>
<Tabs value={taskTab} onValueChange={(value) => setTaskTab(value as MobileTaskTab)}>
<Tabs value={taskTab} onValueChange={handleTaskTabChange}>
<TabsList className="flex w-full justify-start gap-1">
<TabsTrigger value="pending">待我审批</TabsTrigger>
<TabsTrigger value="completed" disabled={!canUseRemote}>已处理</TabsTrigger>