fix(mp): P1+P2 稳定性加固 — 导航安全+生产日志+分包预加载+logout清理

P1:
- 全局 23 个页面 Taro.navigateTo → safeNavigateTo,防止页栈超10层
- 生产构建保留 console.warn/error,便于线上问题排查
- 添加 preloadRule 分包预加载(首页预加载健康/医生/文章分包)

P2:
- logout 时清理 ai_chat_history + BLE DataBuffer 缓存
- restore() 移除冗余的双重 Storage 读取(secureGet 已包含 getStorageSync)
- 首页文章图片添加 lazyLoad
This commit is contained in:
iven
2026-05-17 17:13:35 +08:00
parent 1576709342
commit 59dd5ef38e
26 changed files with 122 additions and 80 deletions

View File

@@ -81,12 +81,12 @@ export const useAuthStore = create<AuthState>((set, get) => ({
restore: () => {
// 利用内存缓存避免重复 Storage IPC + JSON.parse
try {
const userData = secureGet('user_data') || Taro.getStorageSync('user_data') || '';
const userData = secureGet('user_data');
if (userData !== cachedUserJson) {
cachedUserJson = userData;
cachedUserObj = userData ? JSON.parse(userData) : null;
}
const rolesData = secureGet('user_roles') || Taro.getStorageSync('user_roles') || '';
const rolesData = secureGet('user_roles');
if (rolesData !== cachedRolesJson) {
cachedRolesJson = rolesData;
cachedRolesObj = rolesData ? JSON.parse(rolesData) : [];
@@ -252,6 +252,14 @@ export const useAuthStore = create<AuthState>((set, get) => ({
Taro.removeStorageSync('current_patient_id');
Taro.removeStorageSync('analytics_queue');
Taro.removeStorageSync('edit_patient');
Taro.removeStorageSync('ai_chat_history');
// 清理 BLE DataBuffer 缓存key 格式ble_buffer_{patientId}_{bucket}
const storageInfo = Taro.getStorageInfoSync();
storageInfo.keys.forEach((key) => {
if (key.startsWith('ble_buffer_') || key.startsWith('last_ble_sync')) {
Taro.removeStorageSync(key);
}
});
resetAllStores();
set({ user: null, roles: [], currentPatient: null, patients: [] });
Taro.reLaunch({ url: '/pages/index/index' });