feat(miniprogram): 医护工作台角色定制 + 性能优化
- auth store 新增 health_manager 角色,添加 isDoctor/isNurse/isHealthManager/hasRole 辅助方法 - 医生工作台按角色过滤功能卡片和快捷操作(doctor/nurse/health_manager/admin) - 列表页面分页计算提取为 useMemo(patients/alerts/consultation)
This commit is contained in:
@@ -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: () => {
|
||||
|
||||
Reference in New Issue
Block a user