DG7/MRF7 移动信息架构与展示去重治理

这个提交包含在:
2026-05-12 21:03:36 +08:00
父节点 b6b7b77c41
当前提交 9da0ca9632
共修改 26 个文件,包含 1556 行新增和 258 行删除
+54 -2
查看文件
@@ -36,6 +36,7 @@ import {
MobileNotificationsPage,
MobilePortalPage,
MobileProfilePage,
MobilePurchaseRequestDetailPage,
MobileReimbursementDetailPage,
MobileReimbursementsPage,
NotificationChannelsPage,
@@ -345,6 +346,26 @@ export function AppRouter() {
}
/>
<Route
path="mobile/leave/:leaveRequestId"
element={
<RequirePermission anyOf={["leave.view_own", "leave.view_all"]}>
{withRouteFallback(<MobileLeavePage />)}
</RequirePermission>
}
/>
<Route
path="mobile/purchase-requests/:purchaseRequestId"
element={
<RequirePermission
anyOf={["procurement.create", "procurement.view_own", "procurement.view_all", "procurement.manage"]}
>
{withRouteFallback(<MobilePurchaseRequestDetailPage />)}
</RequirePermission>
}
/>
<Route
path="mobile/assets/scan"
element={
@@ -359,9 +380,40 @@ export function AppRouter() {
<Route
path="mobile/approvals"
element={
<RequireBusinessApprover>
<RequirePermission
anyOf={[
"expense.view_own",
"leave.view_own",
"procurement.view_own",
"travel.view_own",
"expense.approve",
"leave.approve",
"procurement.approve",
"travel.approve",
]}
>
{withRouteFallback(<MobileApprovalsPage />)}
</RequireBusinessApprover>
</RequirePermission>
}
/>
<Route
path="mobile/approvals/:taskId"
element={
<RequirePermission
anyOf={[
"expense.view_own",
"leave.view_own",
"procurement.view_own",
"travel.view_own",
"expense.approve",
"leave.approve",
"procurement.approve",
"travel.approve",
]}
>
{withRouteFallback(<MobileApprovalsPage />)}
</RequirePermission>
}
/>
@@ -0,0 +1 @@
export { MobilePurchaseRequestDetailPage as default } from "../../pages/MobilePurchaseRequestDetailPage";
+1
查看文件
@@ -23,6 +23,7 @@ export const MobileMePage = lazy(() => import("./MobileMePage"));
export const MobileNotificationsPage = lazy(() => import("./MobileNotificationsPage"));
export const MobilePortalPage = lazy(() => import("./MobilePortalPage"));
export const MobileProfilePage = lazy(() => import("./MobileProfilePage"));
export const MobilePurchaseRequestDetailPage = lazy(() => import("./MobilePurchaseRequestDetailPage"));
export const MobileReimbursementDetailPage = lazy(() => import("./MobileReimbursementDetailPage"));
export const MobileReimbursementsPage = lazy(() => import("./MobileReimbursementsPage"));
export const NotificationChannelsPage = lazy(() => import("./NotificationChannelsPage"));