feat(mp): U3-1 医生端导航状态保持

- 新增 useNavigationState hook (saveDoctorPage/getDoctorLastPage)
- 首页医生重定向使用 getDoctorLastPage 代替硬编码路径
- 医生端工作台入口自动保存最后访问路径
- 医生再次打开首页时自动回到上次使用的医生端页面
This commit is contained in:
iven
2026-05-22 08:48:04 +08:00
parent 148cd875dc
commit be8ae84d45
3 changed files with 48 additions and 1 deletions

View File

@@ -6,6 +6,7 @@ import { useAuthStore } from '../../stores/auth';
import { useUIStore } from '../../stores/ui';
import { navigateToLogin } from '../../utils/navigate';
import { usePageData } from '@/hooks/usePageData';
import { getDoctorLastPage } from '@/hooks/useNavigationState';
// useThrottledDidShow removed — unused import
import { api } from '@/services/request';
import type { Article } from '@/services/article';
@@ -352,8 +353,9 @@ export default function Index() {
useDidShow(() => {
if (shouldRedirect && !redirectingRef.current) {
redirectingRef.current = true;
const target = getDoctorLastPage();
Taro.reLaunch({
url: '/pages/pkg-doctor-core/index',
url: target,
fail: () => {
redirectingRef.current = false;
console.warn('跳转医生端失败,停留患者首页');

View File

@@ -4,6 +4,7 @@ import { safeNavigateTo } from '@/utils/navigate';
import { useAuthStore } from '@/stores/auth';
import { useDoctorClass } from '@/hooks/useDoctorClass';
import { usePageData } from '@/hooks/usePageData';
import { saveDoctorPage } from '@/hooks/useNavigationState';
import { getDashboard, type DoctorDashboard } from '@/services/doctor/dashboard';
import Loading from '@/components/Loading';
import ContentCard from '@/components/ui/ContentCard';
@@ -68,6 +69,7 @@ export default function DoctorHome() {
}, []);
usePageData(loadDashboard, { throttleMs: 10000 });
saveDoctorPage('/pages/pkg-doctor-core/index');
const getValue = (key: keyof DoctorDashboard): number | string => {
if (!dashboard) return '-';