/** * 权限码单一事实源(细粒度 domain:action)。 * 控制器 @RequirePermissions 与 seed 资源树共用,避免漂移。 */ export const Permissions = { tenant: { list: 'tenant:list', create: 'tenant:create', update: 'tenant:update', delete: 'tenant:delete', }, user: { list: 'user:list', create: 'user:create', update: 'user:update', delete: 'user:delete', resetPwd: 'user:reset-pwd', assignRole: 'user:assign-role', kickSessions: 'user:kick-sessions', lock: 'user:lock', unlock: 'user:unlock', }, role: { list: 'role:list', create: 'role:create', update: 'role:update', delete: 'role:delete', assignResource: 'role:assign-resource', assignOrg: 'role:assign-org', }, resource: { list: 'resource:list', create: 'resource:create', update: 'resource:update', delete: 'resource:delete', }, org: { list: 'org:list', create: 'org:create', update: 'org:update', delete: 'org:delete', }, dict: { list: 'dict:list', create: 'dict:create', update: 'dict:update', delete: 'dict:delete', }, config: { list: 'config:list', create: 'config:create', update: 'config:update', delete: 'config:delete', }, session: { list: 'session:list', kick: 'session:kick' }, notice: { list: 'notice:list', create: 'notice:create', update: 'notice:update', delete: 'notice:delete', }, audit: { list: 'audit:list' }, loginLog: { list: 'login-log:list' }, // 服务机构端业务(C0 落地 agency/svcOrg/staff,其余为 C1–C4 预留) agency: { view: 'agency:view', update: 'agency:update' }, svcOrg: { list: 'svc-org:list', config: 'svc-org:config', newNational: 'svc-org:new-national' }, staff: { list: 'staff:list', create: 'staff:create', update: 'staff:update', delete: 'staff:delete', groupAssign: 'staff:group-assign' }, elder: { list: 'elder:list', detail: 'elder:detail', create: 'elder:create', update: 'elder:update', statusChange: 'elder:status-change', import: 'elder:import', svcSave: 'elder:svc-save' }, plan: { create: 'plan:create', change: 'plan:change', detail: 'plan:detail', confirm: 'plan:confirm' }, order: { generate: 'order:generate', assign: 'order:assign', reassign: 'order:reassign', cancel: 'order:cancel', detail: 'order:detail', today: 'order:today' }, record: { checkin: 'record:checkin', checkout: 'record:checkout', itemSave: 'record:item-save', photoUpload: 'record:photo-upload', detail: 'record:detail' }, abnormal: { report: 'abnormal:report', list: 'abnormal:list', handle: 'abnormal:handle' }, qc: { pendingList: 'qc:pending-list', detail: 'qc:detail', pass: 'qc:pass', return: 'qc:return', exceptionLink: 'qc:exception-link' }, export: { export: 'export:export' }, } as const; /** 全部权限码扁平列表(seed 授权与资源生成用)。 */ export const ALL_PERMISSIONS: string[] = Object.values(Permissions).flatMap((m) => Object.values(m), );