diff --git a/frontend/src/pages/approval/list.tsx b/frontend/src/pages/approval/list.tsx index 3cf1c74..024188b 100644 --- a/frontend/src/pages/approval/list.tsx +++ b/frontend/src/pages/approval/list.tsx @@ -1,5 +1,5 @@ import { useState, useEffect, useRef } from 'react' -import { useNavigate } from 'react-router-dom' +import { useNavigate, useLocation } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { List, Card, Tag, Tabs, PullToRefresh, InfiniteScroll } from 'antd-mobile' import { @@ -45,8 +45,11 @@ const businessTypeConfig: Record = { export default function ApprovalList() { const { t } = useTranslation() const navigate = useNavigate() + const location = useLocation() - const [activeTab, setActiveTab] = useState<'my' | 'pending' | 'approved' | 'cc'>('my') + // 从 location.state 获取之前的 tab,默认为 'my' + const initialTab = ((location.state as any)?.fromTab as string) || 'my' + const [activeTab, setActiveTab] = useState<'my' | 'pending' | 'approved' | 'cc'>(initialTab) const [list, setList] = useState([]) const [loading, setLoading] = useState(false) const [hasMore, setHasMore] = useState(false) @@ -144,7 +147,7 @@ export default function ApprovalList() { // 查看详情 const handleViewDetail = (id: number) => { - navigate(`/approval/${id}`) + navigate(`/approval/${id}`, { state: { fromTab: activeTab } }) } // 格式化日期 diff --git a/frontend/src/pages/business-trip/list.tsx b/frontend/src/pages/business-trip/list.tsx index c3e4df6..b3a0483 100644 --- a/frontend/src/pages/business-trip/list.tsx +++ b/frontend/src/pages/business-trip/list.tsx @@ -1,5 +1,5 @@ import { useState, useEffect } from 'react' -import { useNavigate } from 'react-router-dom' +import { useNavigate, useLocation } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { List, Card, Tag, Button, Tabs, PullToRefresh, InfiniteScroll } from 'antd-mobile' import { AddOutline, ClockCircleOutline, CheckCircleOutline, CloseCircleOutline, ExclamationCircleOutline } from 'antd-mobile-icons' @@ -31,8 +31,11 @@ interface BusinessTripItem { export default function BusinessTripList() { const { t } = useTranslation() const navigate = useNavigate() + const location = useLocation() - const [activeTab, setActiveTab] = useState<'my' | 'pending' | 'approved'>('my') + // 从 location.state 获取之前的 tab,默认为 'my' + const initialTab = ((location.state as any)?.fromTab as string) || 'my' + const [activeTab, setActiveTab] = useState<'my' | 'pending' | 'approved'>(initialTab) const [list, setList] = useState([]) const [loading, setLoading] = useState(false) const [hasMore, setHasMore] = useState(true) @@ -97,7 +100,7 @@ export default function BusinessTripList() { // 查看详情 const handleViewDetail = (id: number) => { - navigate(`/business-trip/detail/${id}`) + navigate(`/business-trip/detail/${id}`, { state: { fromTab: activeTab } }) } // 新建申请