src/pages/
├── platforms/
│ ├── deepseek/ # DeepSeek AI 平台
│ │ ├── questionAnswer/
│ │ ├── knowledgeLib/
│ │ ├── audit/
│ │ └── dataExport/
│ └── zhipu/ # 智谱AI 平台
│ ├── questionAnswer/
│ ├── knowledgeLib/
│ └── dataExport/
└── shared/ # 共享页面组件
// 新的路由结构
const platformRoutes = {
deepseek: {
path: '/deepseek',
children: [
{ path: 'questionAnswer', element: lazyLoad(() => import('@/pages/platforms/deepseek/questionAnswer')) },
{ path: 'knowledgeLib', element: lazyLoad(() => import('@/pages/platforms/deepseek/knowledgeLib')) },
{ path: 'audit', element: lazyLoad(() => import('@/pages/platforms/deepseek/audit')) },
{ path: 'dataExport', element: lazyLoad(() => import('@/pages/platforms/deepseek/dataExport')) },
]
},
zhipu: {
path: '/zhipu',
children: [
{ path: 'questionAnswer', element: lazyLoad(() => import('@/pages/platforms/zhipu/questionAnswer')) },
{ path: 'knowledgeLib', element: lazyLoad(() => import('@/pages/platforms/zhipu/knowledgeLib')) },
{ path: 'dataExport', element: lazyLoad(() => import('@/pages/platforms/zhipu/dataExport')) },
]
}
};
src/router.tsx 文件// src/apis/platforms/deepseek.ts
export const deepseekApis = {
questionAnswer: {
list: (params: any) => request.get('/deepseek/question-answer', { params }),
create: (data: any) => request.post('/deepseek/question-answer', data),
update: (id: string, data: any) => request.put(`/deepseek/question-answer/${id}`, data),
delete: (id: string) => request.delete(`/deepseek/question-answer/${id}`),
},
knowledgeLib: {
list: (params: any) => request.get('/deepseek/knowledge-lib', { params }),
detail: (id: string) => request.get(`/deepseek/knowledge-lib/${id}`),
create: (data: any) => request.post('/deepseek/knowledge-lib', data),
},
audit: {
list: (params: any) => request.get('/deepseek/audit', { params }),
},
dataExport: {
export: (params: any) => request.get('/deepseek/data-export', { params }),
},
};
// src/apis/platforms/zhipu.ts
export const zhipuApis = {
questionAnswer: {
list: (params: any) => request.get('/zhipu/question-answer', { params }),
create: (data: any) => request.post('/zhipu/question-answer', data),
update: (id: string, data: any) => request.put(`/zhipu/question-answer/${id}`, data),
delete: (id: string) => request.delete(`/zhipu/question-answer/${id}`),
},
knowledgeLib: {
list: (params: any) => request.get('/zhipu/knowledge-lib', { params }),
detail: (id: string) => request.get(`/zhipu/knowledge-lib/${id}`),
create: (data: any) => request.post('/zhipu/knowledge-lib', data),
},
dataExport: {
export: (params: any) => request.get('/zhipu/data-export', { params }),
},
};
// src/apis/platforms/index.ts
export interface PlatformApi {
questionAnswer: {
list: (params: any) => Promise<any>;
create: (data: any) => Promise<any>;
update: (id: string, data: any) => Promise<any>;
delete: (id: string) => Promise<any>;
};
knowledgeLib: {
list: (params: any) => Promise<any>;
detail: (id: string) => Promise<any>;
create: (data: any) => Promise<any>;
};
dataExport: {
export: (params: any) => Promise<any>;
};
}
export const platformApis: Record<string, PlatformApi> = {
deepseek: deepseekApis,
zhipu: zhipuApis,
};
// src/components/shared/QuestionAnswerList.tsx
interface QuestionAnswerListProps {
platform: 'deepseek' | 'zhipu';
data: any[];
loading: boolean;
onAction: (action: string, data: any) => void;
}
const QuestionAnswerList: React.FC<QuestionAnswerListProps> = ({
platform,
data,
loading,
onAction,
}) => {
// 通用的列表组件实现
};
// src/components/shared/KnowledgeLibList.tsx
interface KnowledgeLibListProps {
platform: 'deepseek' | 'zhipu';
data: any[];
loading: boolean;
onAction: (action: string, data: any) => void;
}
const KnowledgeLibList: React.FC<KnowledgeLibListProps> = ({
platform,
data,
loading,
onAction,
}) => {
// 通用的知识库列表组件实现
};
// src/pages/platforms/deepseek/questionAnswer/index.tsx
const DeepSeekQuestionAnswer: React.FC = () => {
const store = useDeepSeekStore();
return (
<QuestionAnswerList
platform="deepseek"
data={store.questionAnswerList}
loading={store.loading}
onAction={store.handleAction}
/>
);
};
// src/pages/platforms/zhipu/questionAnswer/index.tsx
const ZhipuQuestionAnswer: React.FC = () => {
const store = useZhipuStore();
return (
<QuestionAnswerList
platform="zhipu"
data={store.questionAnswerList}
loading={store.loading}
onAction={store.handleAction}
/>
);
};
// src/stores/platforms/deepseek.ts
class DeepSeekStore {
@observable questionAnswerList = [];
@observable knowledgeLibList = [];
@observable loading = false;
@action
async fetchQuestionAnswerList(params: any) {
this.loading = true;
try {
const response = await platformApis.deepseek.questionAnswer.list(params);
this.questionAnswerList = response.data;
} finally {
this.loading = false;
}
}
@action
async handleAction(action: string, data: any) {
// 平台特定的操作处理
}
}
// src/stores/platforms/zhipu.ts
class ZhipuStore {
@observable questionAnswerList = [];
@observable knowledgeLibList = [];
@observable loading = false;
@action
async fetchQuestionAnswerList(params: any) {
this.loading = true;
try {
const response = await platformApis.zhipu.questionAnswer.list(params);
this.questionAnswerList = response.data;
} finally {
this.loading = false;
}
}
@action
async handleAction(action: string, data: any) {
// 平台特定的操作处理
}
}
// src/stores/platforms/index.ts
export const createPlatformStore = (platform: 'deepseek' | 'zhipu') => {
switch (platform) {
case 'deepseek':
return new DeepSeekStore();
case 'zhipu':
return new ZhipuStore();
default:
throw new Error(`Unsupported platform: ${platform}`);
}
};
通过这次重构,项目将获得更清晰的结构、更好的可维护性和更强的扩展性。重构过程采用渐进式方法,确保现有功能的稳定性,同时为未来的发展奠定良好的基础。