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

@@ -1,6 +1,7 @@
import { View, Text, Swiper, SwiperItem, Image } from '@tarojs/components';
import { useState } from 'react';
import Taro, { useDidShow, useDidHide } from '@tarojs/taro';
import { safeNavigateTo } from '@/utils/navigate';
import { useAuthStore } from '../../stores/auth';
import { useUIStore } from '../../stores/ui';
import { navigateToLogin } from '../../utils/navigate';
@@ -120,12 +121,12 @@ function GuestHome({ modeClass }: { modeClass: string }) {
{articles.map((article) => (
<ContentCard
key={article.id}
onPress={() => Taro.navigateTo({ url: `/pages/article/detail/index?id=${article.id}` })}
onPress={() => safeNavigateTo(`/pages/article/detail/index?id=${article.id}`)}
activeFeedback="opacity"
padding="none"
>
{article.cover_image && (
<Image className='guest-article-cover' src={article.cover_image} mode='aspectFill' />
<Image className='guest-article-cover' src={article.cover_image} mode='aspectFill' lazyLoad />
)}
<View className='guest-article-body'>
<Text className='guest-article-title'>{article.title}</Text>
@@ -229,7 +230,7 @@ function HomeDashboard({ modeClass }: { modeClass: string }) {
return (
<ContentCard
key={item.label}
onPress={() => Taro.navigateTo({ url: `/pages/pkg-health/trend/index?indicator=${item.indicator}` })}
onPress={() => safeNavigateTo(`/pages/pkg-health/trend/index?indicator=${item.indicator}`)}
activeFeedback="opacity"
>
<Text className='vital-label'>{item.label}</Text>
@@ -259,8 +260,8 @@ function HomeDashboard({ modeClass }: { modeClass: string }) {
key={r.id}
className={`reminder-item ${i > 0 ? 'reminder-item-border' : ''}`}
onClick={() => {
if (r.type === 'appointment') Taro.navigateTo({ url: '/pages/appointment/index' });
else if (r.type === 'followup') Taro.navigateTo({ url: `/pages/pkg-profile/followups/detail/index?id=${r.id}` });
if (r.type === 'appointment') safeNavigateTo('/pages/appointment/index');
else if (r.type === 'followup') safeNavigateTo(`/pages/pkg-profile/followups/detail/index?id=${r.id}`);
}}
>
<Text className='reminder-tag'>{r.tag}</Text>
@@ -275,7 +276,7 @@ function HomeDashboard({ modeClass }: { modeClass: string }) {
<View className='action-btn action-primary' onClick={() => Taro.switchTab({ url: '/pages/health/index' })}>
<Text className='action-btn-text'></Text>
</View>
<View className='action-btn action-outline' onClick={() => Taro.navigateTo({ url: '/pages/appointment/create/index' })}>
<View className='action-btn action-outline' onClick={() => safeNavigateTo('/pages/appointment/create/index')}>
<Text className='action-btn-text'></Text>
</View>
</View>