feat(miniprogram): 医护工作台角色定制 + 性能优化
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled

- auth store 新增 health_manager 角色,添加 isDoctor/isNurse/isHealthManager/hasRole 辅助方法
- 医生工作台按角色过滤功能卡片和快捷操作(doctor/nurse/health_manager/admin)
- 列表页面分页计算提取为 useMemo(patients/alerts/consultation)
This commit is contained in:
iven
2026-05-06 12:51:00 +08:00
parent 570377a31f
commit 80ef48a3a3
5 changed files with 94 additions and 31 deletions

View File

@@ -24,6 +24,10 @@ interface AuthState {
logout: () => void;
restore: () => void;
isMedicalStaff: () => boolean;
isDoctor: () => boolean;
isNurse: () => boolean;
isHealthManager: () => boolean;
hasRole: (code: string) => boolean;
hasPatientProfile: () => boolean;
}
@@ -36,7 +40,27 @@ export const useAuthStore = create<AuthState>((set, get) => ({
isMedicalStaff: () => {
const { roles } = get();
return roles.some((r) => r === 'doctor' || r === 'nurse' || r === 'admin');
return roles.some((r) => r === 'doctor' || r === 'nurse' || r === 'admin' || r === 'health_manager');
},
isDoctor: () => {
const { roles } = get();
return roles.some((r) => r === 'doctor' || r === 'admin');
},
isNurse: () => {
const { roles } = get();
return roles.some((r) => r === 'nurse' || r === 'admin');
},
isHealthManager: () => {
const { roles } = get();
return roles.some((r) => r === 'health_manager' || r === 'admin');
},
hasRole: (code: string) => {
const { roles } = get();
return roles.some((r) => r === code || r === 'admin');
},
hasPatientProfile: () => {