1
0

refactor: 迁移 UI 组件库从 Ant Design 至 TDesign

- 替换 antd 为 tdesign-react 作为主要 UI 组件库
- 引入 Recharts 替代 @ant-design/charts 实现图表功能
- 移除主题系统相关代码(ThemeContext、themes 目录)
- 更新所有组件以适配 TDesign 组件 API
- 更新测试用例以匹配新的组件实现
- 新增 TDesign 和 Recharts 集成规范文档
This commit is contained in:
2026-04-17 18:22:13 +08:00
parent 6eeb38c15e
commit 2b1c5e96c3
55 changed files with 1622 additions and 2541 deletions

View File

@@ -1,5 +1,5 @@
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import { App } from 'antd';
import { MessagePlugin } from 'tdesign-react';
import type { CreateModelInput, UpdateModelInput } from '@/types';
import * as api from '@/api/models';
@@ -17,49 +17,46 @@ export function useModels(providerId?: string) {
export function useCreateModel() {
const queryClient = useQueryClient();
const { message } = App.useApp();
return useMutation({
mutationFn: (input: CreateModelInput) => api.createModel(input),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: modelKeys.all });
message.success('模型创建成功');
MessagePlugin.success('模型创建成功');
},
onError: (error: Error) => {
message.error(error.message);
MessagePlugin.error(error.message);
},
});
}
export function useUpdateModel() {
const queryClient = useQueryClient();
const { message } = App.useApp();
return useMutation({
mutationFn: ({ id, input }: { id: string; input: UpdateModelInput }) =>
api.updateModel(id, input),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: modelKeys.all });
message.success('模型更新成功');
MessagePlugin.success('模型更新成功');
},
onError: (error: Error) => {
message.error(error.message);
MessagePlugin.error(error.message);
},
});
}
export function useDeleteModel() {
const queryClient = useQueryClient();
const { message } = App.useApp();
return useMutation({
mutationFn: (id: string) => api.deleteModel(id),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: modelKeys.all });
message.success('模型删除成功');
MessagePlugin.success('模型删除成功');
},
onError: (error: Error) => {
message.error(error.message);
MessagePlugin.error(error.message);
},
});
}