fix(miniprogram): 首页体征数据加载时序 + 并发控制 + 权限修复
- ConcurrencyLimiter 12→8 预留长轮询通道,避免超微信 10 并发限制 - usePageData 添加 AbortController,页面隐藏/卸载自动取消请求 - useHomeData 添加 useEffect 监听 currentPatient 变化自动触发数据加载 - 医护人员首页跳转前不渲染 HomeDashboard,避免触发无用 API 请求 - auth.ts getPatients 正确提取分页响应 .data 数组 - health.ts getTodaySummary 从 Storage 回退读取 patient_id - health store refreshToday 从 auth store 回退获取 currentPatient.id - auth store restore() 状态变化时清理请求缓存,避免返回过期数据
This commit is contained in:
@@ -314,14 +314,25 @@ export default function Index() {
|
||||
const modeClass = mode === 'elder' ? 'elder-mode' : '';
|
||||
|
||||
// 医护人员访问患者首页时,自动跳转到医生端
|
||||
// 不渲染 HomeDashboard,避免触发患者首页的 API 请求(并发叠加问题)
|
||||
const shouldRedirect = user && isMedicalStaff();
|
||||
|
||||
useDidShow(() => {
|
||||
if (user && isMedicalStaff()) {
|
||||
Taro.redirectTo({ url: '/pages/pkg-doctor-core/index' });
|
||||
if (shouldRedirect) {
|
||||
Taro.reLaunch({
|
||||
url: '/pages/pkg-doctor-core/index',
|
||||
fail: () => {
|
||||
console.warn('跳转医生端失败,停留患者首页');
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
if (!user) {
|
||||
return <GuestHome modeClass={modeClass} />;
|
||||
}
|
||||
if (shouldRedirect) {
|
||||
return <Loading />;
|
||||
}
|
||||
return <HomeDashboard modeClass={modeClass} />;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user