diff --git a/frontend/src/pages/approval/list.tsx b/frontend/src/pages/approval/list.tsx index 024188b..76d2445 100644 --- a/frontend/src/pages/approval/list.tsx +++ b/frontend/src/pages/approval/list.tsx @@ -47,8 +47,10 @@ export default function ApprovalList() { const navigate = useNavigate() const location = useLocation() - // 从 location.state 获取之前的 tab,默认为 'my' - const initialTab = ((location.state as any)?.fromTab as string) || 'my' + // 优先从 sessionStorage 恢复 tab,其次从 location.state,最后默认为 'my' + const savedTab = sessionStorage.getItem('approval-tab') as string + const stateTab = ((location.state as any)?.fromTab as string) || undefined + const initialTab = (savedTab && ['my', 'pending', 'approved', 'cc'].includes(savedTab)) ? savedTab : (stateTab || 'my') const [activeTab, setActiveTab] = useState<'my' | 'pending' | 'approved' | 'cc'>(initialTab) const [list, setList] = useState([]) const [loading, setLoading] = useState(false) @@ -117,7 +119,9 @@ export default function ApprovalList() { // 切换标签 const handleTabChange = (key: string) => { console.log('🔄 Tab changing from', activeTab, 'to', key) - setActiveTab(key as 'my' | 'pending' | 'approved') + setActiveTab(key as 'my' | 'pending' | 'approved' | 'cc') + // 保存 tab 到 sessionStorage + sessionStorage.setItem('approval-tab', key) setList([]) setHasMore(false) setPage(1) diff --git a/frontend/src/pages/business-trip/list.tsx b/frontend/src/pages/business-trip/list.tsx index b3a0483..492902f 100644 --- a/frontend/src/pages/business-trip/list.tsx +++ b/frontend/src/pages/business-trip/list.tsx @@ -33,8 +33,10 @@ export default function BusinessTripList() { const navigate = useNavigate() const location = useLocation() - // 从 location.state 获取之前的 tab,默认为 'my' - const initialTab = ((location.state as any)?.fromTab as string) || 'my' + // 优先从 sessionStorage 恢复 tab,其次从 location.state,最后默认为 'my' + const savedTab = sessionStorage.getItem('business-trip-tab') as string + const stateTab = ((location.state as any)?.fromTab as string) || undefined + const initialTab = (savedTab && ['my', 'pending', 'approved'].includes(savedTab)) ? savedTab : (stateTab || 'my') const [activeTab, setActiveTab] = useState<'my' | 'pending' | 'approved'>(initialTab) const [list, setList] = useState([]) const [loading, setLoading] = useState(false) @@ -77,6 +79,8 @@ export default function BusinessTripList() { // 切换标签 const handleTabChange = (key: string) => { setActiveTab(key as 'my' | 'pending' | 'approved') + // 保存 tab 到 sessionStorage + sessionStorage.setItem('business-trip-tab', key) setList([]) setHasMore(true) setPage(1)