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

这个提交包含在:
2026-05-12 21:03:36 +08:00
父节点 b6b7b77c41
当前提交 9da0ca9632
共修改 26 个文件,包含 1556 行新增和 258 行删除
+8 -5
查看文件
@@ -52,7 +52,6 @@ function MobileActionLink({
export function MobileMePage() {
const { me, permissions, refreshMe, logout } = useAuth();
const canAccessApprovals = hasBusinessApproverRole(me?.roleCodes, permissions);
const canAccessAdmin = hasAnyPermission(permissions, [
"*",
"system.settings",
@@ -63,6 +62,7 @@ export function MobileMePage() {
]);
const canAccessAssets = hasAnyPermission(permissions, ["asset.view_own", "asset.view_all", "asset.manage", "asset.transfer", "asset.inventory"]);
const canAccessProjects = hasAnyPermission(permissions, ["project.view_own", "project.view_all", "project.manage"]);
const canAccessApprovals = hasBusinessApproverRole(me?.roleCodes, permissions);
const profileQuery = useQuery({
enabled: Boolean(me?.id),
@@ -74,7 +74,7 @@ export function MobileMePage() {
mutationFn: (notificationPushEnabled: boolean) => updateNotificationPreferences({ notificationPushEnabled }),
onSuccess: async () => {
await refreshMe();
toast.success("外部推送偏好已更新");
toast.success("企业微信消息提醒偏好已更新");
},
onError: (error) => {
toast.error(resolveErrorMessage(error));
@@ -124,7 +124,7 @@ export function MobileMePage() {
<MobileActionLink to="/mobile/notifications" label="通知中心" icon="notifications" />
<MobileActionLink to="/mobile/leave" label="请假" icon="event_available" />
<MobileActionLink to="/mobile/reimbursements" label="报销" icon="request_quote" />
{canAccessApprovals ? <MobileActionLink to="/mobile/approvals" label="审批" icon="fact_check" /> : null}
<MobileActionLink to="/mobile/approvals" label={canAccessApprovals ? "审批" : "审批进度"} icon="fact_check" />
{canAccessAssets ? <MobileActionLink to="/mobile/assets/scan" label="资产扫码" icon="inventory_2" /> : null}
{canAccessProjects ? <MobileActionLink to="/mobile" label="项目动态" icon="workspaces" /> : null}
</div>
@@ -140,7 +140,7 @@ export function MobileMePage() {
</SectionPanel>
) : null}
<SectionPanel title="外部通知推送">
<SectionPanel title="企业微信消息提醒">
<label className="flex items-center gap-3 text-sm text-zinc-800">
<input
type="checkbox"
@@ -149,8 +149,11 @@ export function MobileMePage() {
disabled={!me || notificationPreferenceMutation.isPending}
onChange={(event) => notificationPreferenceMutation.mutate(event.target.checked)}
/>
接收外部渠道推送
接收企业微信消息提醒
</label>
<p className="mt-2 text-xs leading-5 text-zinc-500">
关闭后仍保留 OA 站内通知,不影响企业微信登录、绑定和工作台入口。
</p>
</SectionPanel>
<Button type="button" variant="secondary" className="w-full border-red-200 text-red-600 hover:bg-red-50" onClick={() => void logout()}>