MIF7 移动信息架构整改收口
这个提交包含在:
@@ -1,5 +1,5 @@
|
||||
import { useMemo, useRef, useState } from "react";
|
||||
import { Link, useParams } from "react-router-dom";
|
||||
import { useParams } from "react-router-dom";
|
||||
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
||||
import { toast } from "sonner";
|
||||
import {
|
||||
@@ -17,6 +17,7 @@ import {
|
||||
import { useAuth } from "../auth/AuthContext";
|
||||
import { hasPermission } from "../auth/permissions";
|
||||
import { PageHeader } from "../components/common/PageHeader";
|
||||
import { MobileDetailHeader } from "../components/mobile/MobileDetailHeader";
|
||||
import { Button } from "../components/ui/button";
|
||||
import { Tabs, TabsList, TabsTrigger } from "../components/ui/tabs";
|
||||
import { PageScaffold } from "../components/patterns/PageScaffold";
|
||||
@@ -45,6 +46,13 @@ const STATUS_LABEL: Record<LeaveRequestStatus, string> = {
|
||||
cancelled: "已取消",
|
||||
};
|
||||
|
||||
function leaveProgressFallback(status: LeaveRequestStatus | undefined) {
|
||||
if (status === "draft") return "/mobile/approvals?progress=draft";
|
||||
if (status === "approved") return "/mobile/approvals?progress=approved";
|
||||
if (status === "rejected" || status === "cancelled") return "/mobile/approvals?progress=returned";
|
||||
return "/mobile/approvals?progress=reviewing";
|
||||
}
|
||||
|
||||
function todayDate() {
|
||||
return new Date().toISOString().slice(0, 10);
|
||||
}
|
||||
@@ -277,15 +285,16 @@ export function MobileLeavePage() {
|
||||
};
|
||||
|
||||
if (leaveRequestId) {
|
||||
const detail = detailQuery.data;
|
||||
|
||||
return (
|
||||
<PageScaffold className="space-y-3 pb-4">
|
||||
<PageHeader
|
||||
<MobileDetailHeader
|
||||
title="请假详情"
|
||||
actions={
|
||||
<Button asChild size="sm" type="button" variant="secondary">
|
||||
<Link to="/mobile/leave">返回</Link>
|
||||
</Button>
|
||||
}
|
||||
subtitle={detail?.leaveType?.name ?? "请假"}
|
||||
fallbackTo={leaveProgressFallback(detail?.status)}
|
||||
status={detail ? <span className="badge-neutral">{STATUS_LABEL[detail.status]}</span> : null}
|
||||
testId="mobile-leave-detail-header"
|
||||
/>
|
||||
|
||||
{detailQuery.isLoading ? <div className="mobile-card text-sm text-zinc-500">加载中...</div> : null}
|
||||
|
||||
在新工单中引用
屏蔽一个用户