>> =>{
+ return httpReq.get(process.env.NEXT_PUBLIC_SECURITY_REQUEST_URL + "/V2/wx/login/refreshToken")
}
\ No newline at end of file
diff --git a/src/ui/task/calendar/CalShow.tsx b/src/ui/task/calendar/CalShow.tsx
index 6aa9836..5b37978 100644
--- a/src/ui/task/calendar/CalShow.tsx
+++ b/src/ui/task/calendar/CalShow.tsx
@@ -200,7 +200,7 @@ const CalShow: React.FC = () => {
}
const reloadData = () => {
setOpen(false)
- handleNavigate(expectedStartTime ? expectedStartTime.toDate() : date)
+ handleNavigate(date)
}
const handleSelectSlot = useCallback(
({start, end}: SlotInfo) => {
@@ -341,30 +341,37 @@ const CalShow: React.FC = () => {
// view 为天的时候类型为数组,index:0为当天
if ((current ? current : view) === "day" && Array.isArray(rangeLet)) {
if (range.start.valueOf() > rangeLet[0].valueOf()) {
- setRange({...range, start: rangeLet[0]})
+ // setRange({...range, start: rangeLet[0]})
+ range.start=rangeLet[0];
} else if (range.end.valueOf() < rangeLet[0].valueOf()) {
- setRange({...range, end: rangeLet[0]})
+ // setRange({...range, end: rangeLet[0]})
+ range.end=rangeLet[0]
}
}
// 为周的时候类型为数组,周一到周日七天
if ((current ? current : view) === "week" && Array.isArray(rangeLet)) {
if (range.start.valueOf() > rangeLet[0].valueOf()) {
- setRange({...range, start: rangeLet[0]})
+ // setRange({...range, start: rangeLet[0]})
+ range.start=rangeLet[0];
}
if (range.end.valueOf() < rangeLet[6].valueOf()) {
- setRange({...range, end: rangeLet[6]})
+ // setRange({...range, end: rangeLet[6]})
+ range.end=rangeLet[6]
}
}
- // 为周的时候类型为对象
+ // 为月的时候类型为对象
if ((current ? current : view) === "month" && rangeLet && !Array.isArray(rangeLet)) {
if (range.start.valueOf() > rangeLet.start.valueOf()) {
- setRange({...range, start: rangeLet.start})
+ // setRange({...range, start: rangeLet.start})
+ range.start = rangeLet.start
}
if (range.end.valueOf() < rangeLet.end.valueOf()) {
- setRange({...range, end: rangeLet.end})
+ // setRange({...range, end: rangeLet.end})
+ range.end = rangeLet.end
+
}
}
-
+ setRange({...range})
}
return
{open && {
config.headers.Authorization = `Bearer ${token}`;
reduceToken(token)
}
- config.headers.set("source-client","web")
+ config.headers.set("source-client", "web")
return config;
},
(error) => {
console.info("interceptors错误提示.request" + error)
return Promise.reject(error);
})
-function reduceToken(token:string) {
-// 如果有效期还不到3小时,增更新token有效期到5小时
+
+function reduceToken(token: string) {
+ if (!token || token.split('.').length !== 3) {
+ console.error("Token 格式错误,应为 header.payload.signature");
+ return;
+ }
+
+ function decodeBase64(standardBase64: string) {
+ // 解码 Base64 并解析 JSON
+ return decodeURIComponent(
+ atob(standardBase64)
+ .split('')
+ .map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))
+ .join('')
+ );
+ }
+
+ try {
+ // 2. 提取 payload 部分
+ const payloadBase64 = token.split('.')[1];
+ const standardBase64 = payloadBase64
+ .replace(/-/g, '+')
+ .replace(/_/g, '/')
+ .padEnd(payloadBase64.length + (4 - payloadBase64.length % 4) % 4, '=');
+ const decodedStr = decodeBase64(standardBase64);
+ // 6. 解析 JSON
+ const decodedToken = JSON.parse(decodedStr);
+ console.log("updateToken:decodedToken:", decodedToken);
+ const endTime = decodedToken.exp;
+ console.log('距离过期' + (((endTime as number) - (Date.now() / 1000)) / 60 / 60 + '小时'))
+ if (((endTime as number) - (Date.now() / 1000)) / 60 / 60 / 24 < 3) {
+ // 小于3小时更新toke3小时或12小时不动过期、内不动
+ refreshTokenAPI().then(res=>{
+ if (res.data.status.success){
+ localStorage.setItem('platform-security', res.data.data)
+ }
+ })
+ }
+ } catch (error) {
+ console.error("解码 Token 失败:", error);
+ }
}
+
// 响应前处理
httpReq.interceptors.response.use(
(response) => {
@@ -43,7 +84,7 @@ httpReq.interceptors.response.use(
message.error('系统异常');
} else if (response.status >= 400 && response.status <= 500) {
message.warning('无权限');
- }else if(response.data.status.success == false){
+ } else if (response.data.status.success == false) {
message.error(response.data.status.message);
return Promise.reject(response.data.status.message);
}
@@ -59,7 +100,7 @@ httpReq.interceptors.response.use(
message.error('系统异常');
} else if (error.response.status >= 400 && error.response.status <= 500) {
message.warning('无权限');
- window.location.href = `/login?callBack=${encodeURIComponent(window.location.pathname+window.location.search)}`;
+ window.location.href = `/login?callBack=${encodeURIComponent(window.location.pathname + window.location.search)}`;
}
// switch (error.response.status) {
// case 401: