重构个人设置与管理边界(05-30-profile-settings-boundary)

这个提交包含在:
2026-05-30 11:01:44 +08:00
父节点 9557d1e789
当前提交 9203b79d78
共修改 9 个文件,包含 111 行新增和 52 行删除
+3 -24
查看文件
@@ -53,14 +53,6 @@ function MobileActionLink({
export function MobileMePage() {
const { me, permissions, refreshMe, logout } = useAuth();
const canAccessAdmin = hasAnyPermission(permissions, [
"*",
"system.settings",
"system.users",
"masterdata.manage",
"notification.channel.manage",
"integration.manage",
]);
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 canAccessPurchase = hasAnyPermission(permissions, [...MOBILE_PURCHASE_PERMISSIONS]);
@@ -115,17 +107,14 @@ export function MobileMePage() {
<SectionPanel title="账号与绑定">
<div className="grid gap-2">
<MobileActionLink to="/mobile/profile" label="个人设置" description="企业微信、账号与通知" icon="manage_accounts" />
{me?.id ? (
<MobileActionLink to="/mobile/profile" label="账号资料" description="员工号和联系方式" icon="badge" />
) : null}
<MobileActionLink to="/mobile/profile" label="个人设置" description="企业微信、账号安全与通知" icon="manage_accounts" />
</div>
</SectionPanel>
<SectionPanel title="更多入口" description="常用移动入口集中在这里。">
<SectionPanel title="移动入口" description="只保留手机上常用的个人办事入口。">
<div className="mobile-entry-grid mobile-me-entry-grid" data-testid="mobile-more-links">
<MobileActionLink to="/mobile/notifications" label="通知中心" icon="notifications" />
<MobileActionLink to="/mobile/leave" label="请假" icon="event_available" />
<MobileActionLink to="/mobile/leave" label="请假记录" icon="event_available" />
<MobileActionLink to="/mobile/reimbursements" label="报销" icon="request_quote" />
{canAccessPurchase ? <MobileActionLink to="/mobile/purchase-requests" label="采购" icon="shopping_cart" /> : null}
<MobileActionLink to="/mobile/approvals" label={canAccessApprovals ? "待办" : "进度"} icon="fact_check" />
@@ -135,16 +124,6 @@ export function MobileMePage() {
</div>
</SectionPanel>
{canAccessAdmin ? (
<SectionPanel title="管理入口">
<div className="mobile-entry-grid mobile-me-entry-grid">
<MobileActionLink to="/mobile/me" label="人员管理" icon="group" />
<MobileActionLink to="/mobile/me" label="组织架构" icon="account_tree" />
<MobileActionLink to="/mobile/me" label="系统设置" icon="settings" />
</div>
</SectionPanel>
) : null}
<SectionPanel title="企业微信消息提醒">
<label className="flex items-center gap-3 text-sm text-zinc-800">
<input