Browse Source

fix: request pipeline and React Query optimization (#11693)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: afc163 <afc163@gmail.com>
pull/11704/head
afc163 6 months ago
committed by GitHub
parent
commit
aff6cbd403
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      config/config.ts
  2. 6
      src/app.tsx
  3. 2
      src/pages/account/center/components/Projects/index.tsx
  4. 3
      src/pages/dashboard/workplace/index.tsx
  5. 3
      src/pages/list/search/projects/index.tsx
  6. 16
      src/requestErrorConfig.ts

2
config/config.ts

@ -109,7 +109,7 @@ export default defineConfig({
*/ */
moment2dayjs: { moment2dayjs: {
preset: 'antd', preset: 'antd',
plugins: ['duration'], plugins: ['duration', 'relativeTime'],
}, },
/** /**
* @name 国际化插件 * @name 国际化插件

6
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 { SettingDrawer } from '@ant-design/pro-components';
import type { RequestConfig, RunTimeLayoutConfig } from '@umijs/max'; import type { RequestConfig, RunTimeLayoutConfig } from '@umijs/max';
import { history, Link } from '@umijs/max'; import { history, Link } from '@umijs/max';
import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
import React from 'react'; import React from 'react';
// Initialize dayjs plugins globally
dayjs.extend(relativeTime);
import { import {
AvatarDropdown, AvatarDropdown,
AvatarName, AvatarName,

2
src/pages/account/center/components/Projects/index.tsx

@ -1,14 +1,12 @@
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import { Card, List } from 'antd'; import { Card, List } from 'antd';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
import React from 'react'; import React from 'react';
import { AvatarList } from '@/components'; import { AvatarList } from '@/components';
import type { ListItemDataType } from '../../data.d'; import type { ListItemDataType } from '../../data.d';
import { queryFakeList } from '../../service'; import { queryFakeList } from '../../service';
import useStyles from './index.style'; import useStyles from './index.style';
dayjs.extend(relativeTime);
const Projects: React.FC = () => { const Projects: React.FC = () => {
const { styles } = useStyles(); const { styles } = useStyles();
// 获取tab列表数据 // 获取tab列表数据

3
src/pages/dashboard/workplace/index.tsx

@ -4,15 +4,12 @@ import { useQuery } from '@tanstack/react-query';
import { Link } from '@umijs/max'; import { Link } from '@umijs/max';
import { Avatar, Card, Col, List, Row, Skeleton, Statistic } from 'antd'; import { Avatar, Card, Col, List, Row, Skeleton, Statistic } from 'antd';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
import type { FC } from 'react'; import type { FC } from 'react';
import EditableLinkGroup from './components/EditableLinkGroup'; import EditableLinkGroup from './components/EditableLinkGroup';
import type { ActivitiesType, CurrentUser } from './data.d'; import type { ActivitiesType, CurrentUser } from './data.d';
import { fakeChartData, queryActivities, queryProjectNotice } from './service'; import { fakeChartData, queryActivities, queryProjectNotice } from './service';
import useStyles from './style.style'; import useStyles from './style.style';
dayjs.extend(relativeTime);
const links = [ const links = [
{ {
title: '操作一', title: '操作一',

3
src/pages/list/search/projects/index.tsx

@ -1,7 +1,6 @@
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import { Card, Col, Form, List, Row, Select, Typography } from 'antd'; import { Card, Col, Form, List, Row, Select, Typography } from 'antd';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
import type { FC } from 'react'; import type { FC } from 'react';
import { useState } from 'react'; import { useState } from 'react';
import { AvatarList, StandardFormRow, TagSelect } from '@/components'; import { AvatarList, StandardFormRow, TagSelect } from '@/components';
@ -10,8 +9,6 @@ import type { ListItemDataType } from './data.d';
import { queryFakeList } from './service'; import { queryFakeList } from './service';
import useStyles from './style.style'; import useStyles from './style.style';
dayjs.extend(relativeTime);
const FormItem = Form.Item; const FormItem = Form.Item;
const { Paragraph } = Typography; const { Paragraph } = Typography;
const getKey = (id: string, index: number) => `${id}-${index}`; const getKey = (id: string, index: number) => `${id}-${index}`;

16
src/requestErrorConfig.ts

@ -13,7 +13,7 @@ enum ErrorShowType {
// 与后端约定的响应数据格式 // 与后端约定的响应数据格式
interface ResponseStructure { interface ResponseStructure {
success: boolean; success: boolean;
data: any; data: unknown;
errorCode?: number; errorCode?: number;
errorMessage?: string; errorMessage?: string;
showType?: ErrorShowType; showType?: ErrorShowType;
@ -63,7 +63,7 @@ export const errorConfig: RequestConfig = {
}); });
break; break;
case ErrorShowType.REDIRECT: case ErrorShowType.REDIRECT:
// TODO: redirect window.location.href = '/user/login';
break; break;
default: default:
message.error(errorMessage); message.error(errorMessage);
@ -95,15 +95,5 @@ export const errorConfig: RequestConfig = {
], ],
// 响应拦截器 // 响应拦截器
responseInterceptors: [ responseInterceptors: [],
(response) => {
// 拦截响应数据,进行个性化处理
const { data } = response as unknown as ResponseStructure;
if (data?.success === false) {
message.error('请求失败!');
}
return response;
},
],
}; };

Loading…
Cancel
Save