73 lines
2.4 KiB
TypeScript
73 lines
2.4 KiB
TypeScript
import request from "@/utils/request";
|
|
import type { ApiResponse } from "@/utils/request";
|
|
|
|
// ============ 标准思维导图 ============
|
|
|
|
export interface StandardMindMap {
|
|
id: number;
|
|
taskNum: string;
|
|
title: string;
|
|
content: string;
|
|
outline: string;
|
|
summary: string;
|
|
generator: "BUILTIN" | "AI" | "USER" | "USER_MERGE";
|
|
generatorVersion?: string;
|
|
sourceReportCount: number;
|
|
generatedTime?: string;
|
|
createdTime?: string;
|
|
lastModifiedTime?: string;
|
|
}
|
|
|
|
export interface RecallRecord {
|
|
id: number;
|
|
taskNum: string;
|
|
standardMapId: number;
|
|
focusPath?: string;
|
|
recallContent: string;
|
|
compareResult: string;
|
|
recallRatio: number;
|
|
matchedCount: number;
|
|
missedCount: number;
|
|
extraCount: number;
|
|
createdTime: string;
|
|
}
|
|
|
|
// AI 聚合类接口耗时较长,统一放宽到 5 分钟(默认全局 30s)
|
|
const AI_TIMEOUT = { timeout: 300_000 };
|
|
|
|
/** 获取/自动生成标准思维导图(首次访问会触发 AI 生成) */
|
|
export const getStandardMindMap = (taskNum: string) => {
|
|
return request.get<StandardMindMap>(`/review/standard-mind-map/${taskNum}`, {}, AI_TIMEOUT);
|
|
};
|
|
|
|
/** 强制重新生成标准思维导图(全量或增量) */
|
|
export const regenerateStandardMindMap = (taskNum: string, mode: "full" | "incremental" = "full") => {
|
|
return request.post<StandardMindMap>(`/review/standard-mind-map/${taskNum}/regenerate?mode=${mode}`, null, AI_TIMEOUT);
|
|
};
|
|
|
|
/** 用户编辑标准思维导图(大纲文本) */
|
|
export const updateStandardMindMap = (taskNum: string, outline: string) => {
|
|
return request.put(`/review/standard-mind-map/${taskNum}`, { outline });
|
|
};
|
|
|
|
/** 用户提交回忆大纲,与标准导图对比(可选指定起始节点路径) */
|
|
export const recallCompare = (
|
|
taskNum: string,
|
|
recallOutline: string,
|
|
focusPath?: string,
|
|
): Promise<ApiResponse<StandardMindMap>> => {
|
|
const body: Record<string, any> = { recallOutline };
|
|
if (focusPath) body.focusPath = focusPath;
|
|
return request.post(`/review/standard-mind-map/${taskNum}/recall`, body, AI_TIMEOUT);
|
|
};
|
|
|
|
/** 在标准导图中查找与内容最匹配的节点 */
|
|
export const findNode = (taskNum: string, content: string) => {
|
|
return request.post<{ path: string }>(`/review/standard-mind-map/${taskNum}/find-node`, { content });
|
|
};
|
|
|
|
/** 获取该任务的所有回忆对比记录 */
|
|
export const listRecallRecords = (taskNum: string) => {
|
|
return request.get<RecallRecord[]>(`/review/standard-mind-map/${taskNum}/recall-records`);
|
|
};
|