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:
iven
2026-05-21 01:08:29 +08:00
parent ec7f76127d
commit 9033ec8ca2
8 changed files with 78 additions and 13 deletions

View File

@@ -1,6 +1,7 @@
import { create } from 'zustand';
import * as healthApi from '@/services/health';
import { getCachedPatientId } from '@/services/request';
import { useAuthStore } from './auth';
interface CachedTrend {
data: { date: string; value: number }[];
@@ -37,7 +38,9 @@ export const useHealthStore = create<HealthState>((set, get) => ({
}
set({ _refreshingToday: true, loading: true });
try {
const patientId = getCachedPatientId() || undefined;
const patientId = getCachedPatientId()
|| useAuthStore.getState().currentPatient?.id
|| undefined;
const data = await healthApi.getTodaySummary(patientId);
set({ todaySummary: data, todaySummaryFetchedAt: Date.now(), loading: false, _refreshingToday: false });
} catch {