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:
@@ -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' });
|
||||
|
||||
Reference in New Issue
Block a user