feat(ai): 添加 AI 绘图和思维导图功能

- 新增 AI 绘图管理页面,包括绘画列表、搜索筛选和操作功能
- 实现 AI 思维导图生成功能,支持流式生成和已有内容生成
- 添加 AI 音乐和写作相关的 API 接口
- 更新常量文件,增加 AI 平台、图像生成状态等枚举
- 优化 AI 绘图和思维导图的组件结构,提高可维护性
This commit is contained in:
gjd
2025-06-09 16:20:34 +08:00
parent 3ef362508a
commit 1b236e89bf
16 changed files with 1794 additions and 103 deletions

View File

@@ -0,0 +1,65 @@
import { fetchEventSource } from '@vben/request';
import { useAccessStore } from '@vben/stores';
import { requestClient } from '#/api/request';
const accessStore = useAccessStore();
export namespace AiMindmapApi {
// AI 思维导图 VO
export interface MindMapVO {
id: number; // 编号
userId: number; // 用户编号
prompt: string; // 生成内容提示
generatedContent: string; // 生成的思维导图内容
platform: string; // 平台
model: string; // 模型
errorMessage: string; // 错误信息
}
// AI 思维导图生成 VO
export interface AiMindMapGenerateReqVO {
prompt: string;
}
}
export function generateMindMap({
data,
onClose,
onMessage,
onError,
ctrl,
}: {
ctrl: AbortController;
data: AiMindmapApi.AiMindMapGenerateReqVO;
onClose?: (...args: any[]) => void;
onError?: (...args: any[]) => void;
onMessage?: (res: any) => void;
}) {
const token = accessStore.accessToken;
return fetchEventSource(
`${import.meta.env.VITE_BASE_URL}/ai/mind-map/generate-stream`,
{
method: 'post',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`,
},
openWhenHidden: true,
body: JSON.stringify(data),
onmessage: onMessage,
onerror: onError,
onclose: onClose,
signal: ctrl.signal,
},
);
}
// 查询思维导图分页
export function getMindMapPage(params: any) {
return requestClient.get(`/ai/mind-map/page`, { params });
}
// 删除思维导图
export function deleteMindMap(id: number) {
return requestClient.delete(`/ai/mind-map/delete?id=${id}`);
}