From aff6cbd40310080dc84d583266391b97df789ada Mon Sep 17 00:00:00 2001 From: afc163 Date: Mon, 20 Apr 2026 16:06:07 +0800 Subject: [PATCH] fix: request pipeline and React Query optimization (#11693) Co-authored-by: Claude Opus 4.6 Co-authored-by: afc163 --- config/config.ts | 2 +- src/app.tsx | 6 ++++++ .../account/center/components/Projects/index.tsx | 2 -- src/pages/dashboard/workplace/index.tsx | 3 --- src/pages/list/search/projects/index.tsx | 3 --- src/requestErrorConfig.ts | 16 +++------------- 6 files changed, 10 insertions(+), 22 deletions(-) diff --git a/config/config.ts b/config/config.ts index a9a7ca57..40d383ad 100644 --- a/config/config.ts +++ b/config/config.ts @@ -109,7 +109,7 @@ export default defineConfig({ */ moment2dayjs: { preset: 'antd', - plugins: ['duration'], + plugins: ['duration', 'relativeTime'], }, /** * @name 国际化插件 diff --git a/src/app.tsx b/src/app.tsx index 08fe8599..72d5ce19 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -3,7 +3,13 @@ import type { Settings as LayoutSettings } from '@ant-design/pro-components'; import { SettingDrawer } from '@ant-design/pro-components'; import type { RequestConfig, RunTimeLayoutConfig } from '@umijs/max'; import { history, Link } from '@umijs/max'; +import dayjs from 'dayjs'; +import relativeTime from 'dayjs/plugin/relativeTime'; import React from 'react'; + +// Initialize dayjs plugins globally +dayjs.extend(relativeTime); + import { AvatarDropdown, AvatarName, diff --git a/src/pages/account/center/components/Projects/index.tsx b/src/pages/account/center/components/Projects/index.tsx index 99b4a2a1..00530efe 100644 --- a/src/pages/account/center/components/Projects/index.tsx +++ b/src/pages/account/center/components/Projects/index.tsx @@ -1,14 +1,12 @@ import { useQuery } from '@tanstack/react-query'; import { Card, List } from 'antd'; import dayjs from 'dayjs'; -import relativeTime from 'dayjs/plugin/relativeTime'; import React from 'react'; import { AvatarList } from '@/components'; import type { ListItemDataType } from '../../data.d'; import { queryFakeList } from '../../service'; import useStyles from './index.style'; -dayjs.extend(relativeTime); const Projects: React.FC = () => { const { styles } = useStyles(); // 获取tab列表数据 diff --git a/src/pages/dashboard/workplace/index.tsx b/src/pages/dashboard/workplace/index.tsx index 1dd7c1e9..748b3764 100644 --- a/src/pages/dashboard/workplace/index.tsx +++ b/src/pages/dashboard/workplace/index.tsx @@ -4,15 +4,12 @@ import { useQuery } from '@tanstack/react-query'; import { Link } from '@umijs/max'; import { Avatar, Card, Col, List, Row, Skeleton, Statistic } from 'antd'; import dayjs from 'dayjs'; -import relativeTime from 'dayjs/plugin/relativeTime'; import type { FC } from 'react'; import EditableLinkGroup from './components/EditableLinkGroup'; import type { ActivitiesType, CurrentUser } from './data.d'; import { fakeChartData, queryActivities, queryProjectNotice } from './service'; import useStyles from './style.style'; -dayjs.extend(relativeTime); - const links = [ { title: '操作一', diff --git a/src/pages/list/search/projects/index.tsx b/src/pages/list/search/projects/index.tsx index 81028088..066ce182 100644 --- a/src/pages/list/search/projects/index.tsx +++ b/src/pages/list/search/projects/index.tsx @@ -1,7 +1,6 @@ import { useQuery } from '@tanstack/react-query'; import { Card, Col, Form, List, Row, Select, Typography } from 'antd'; import dayjs from 'dayjs'; -import relativeTime from 'dayjs/plugin/relativeTime'; import type { FC } from 'react'; import { useState } from 'react'; import { AvatarList, StandardFormRow, TagSelect } from '@/components'; @@ -10,8 +9,6 @@ import type { ListItemDataType } from './data.d'; import { queryFakeList } from './service'; import useStyles from './style.style'; -dayjs.extend(relativeTime); - const FormItem = Form.Item; const { Paragraph } = Typography; const getKey = (id: string, index: number) => `${id}-${index}`; diff --git a/src/requestErrorConfig.ts b/src/requestErrorConfig.ts index ebf46476..56071223 100644 --- a/src/requestErrorConfig.ts +++ b/src/requestErrorConfig.ts @@ -13,7 +13,7 @@ enum ErrorShowType { // 与后端约定的响应数据格式 interface ResponseStructure { success: boolean; - data: any; + data: unknown; errorCode?: number; errorMessage?: string; showType?: ErrorShowType; @@ -63,7 +63,7 @@ export const errorConfig: RequestConfig = { }); break; case ErrorShowType.REDIRECT: - // TODO: redirect + window.location.href = '/user/login'; break; default: message.error(errorMessage); @@ -95,15 +95,5 @@ export const errorConfig: RequestConfig = { ], // 响应拦截器 - responseInterceptors: [ - (response) => { - // 拦截响应数据,进行个性化处理 - const { data } = response as unknown as ResponseStructure; - - if (data?.success === false) { - message.error('请求失败!'); - } - return response; - }, - ], + responseInterceptors: [], };