diff --git a/src/pages/Permissions/components/PendingRequests.jsx b/src/pages/Permissions/components/PendingRequests.jsx
index ab16175..f5f0a08 100644
--- a/src/pages/Permissions/components/PendingRequests.jsx
+++ b/src/pages/Permissions/components/PendingRequests.jsx
@@ -1,20 +1,23 @@
import React, { useState, useEffect } from 'react';
import { useDispatch, useSelector } from 'react-redux';
+import { useLocation } from 'react-router-dom';
import { showNotification } from '../../../store/notification.slice';
import {
fetchPermissionsThunk,
approvePermissionThunk,
rejectPermissionThunk,
} from '../../../store/permissions/permissions.thunks';
-import { resetApproveRejectStatus } from '../../../store/permissions/permissions.slice';
+import { resetOperationStatus } from '../../../store/permissions/permissions.slice';
import './PendingRequests.css'; // 引入外部CSS文件
import SvgIcon from '../../../components/SvgIcon';
+import RequestDetailSlideOver from './RequestDetailSlideOver';
// 每页显示的申请数量
const PAGE_SIZE = 5;
export default function PendingRequests() {
const dispatch = useDispatch();
+ const location = useLocation();
const [responseMessage, setResponseMessage] = useState('');
const [showResponseInput, setShowResponseInput] = useState(false);
const [currentRequestId, setCurrentRequestId] = useState(null);
@@ -59,6 +62,17 @@ export default function PendingRequests() {
fetchData();
}, [dispatch]);
+ // 处理从通知中心跳转过来的请求
+ useEffect(() => {
+ if (location.state?.showRequestDetail) {
+ const { requestId, requestData } = location.state;
+ setSelectedRequest(requestData);
+ setShowSlideOver(true);
+ // 清除 location state
+ window.history.replaceState({}, document.title);
+ }
+ }, [location.state]);
+
// 监听批准/拒绝操作的状态变化
useEffect(() => {
if (approveRejectStatus === 'succeeded') {
@@ -87,7 +101,7 @@ export default function PendingRequests() {
}
// 重置状态
- dispatch(resetApproveRejectStatus());
+ dispatch(resetOperationStatus());
} else if (approveRejectStatus === 'failed') {
dispatch(
showNotification({
@@ -96,7 +110,7 @@ export default function PendingRequests() {
})
);
// 重置状态
- dispatch(resetApproveRejectStatus());
+ dispatch(resetOperationStatus());
}
}, [
approveRejectStatus,
@@ -286,7 +300,7 @@ export default function PendingRequests() {