115 lines
2.6 KiB
TypeScript
115 lines
2.6 KiB
TypeScript
import request from "@/utils/request";
|
|
|
|
export interface ReviewFeedItem {
|
|
id: number;
|
|
sessionNum: string;
|
|
taskNum: string;
|
|
taskName: string;
|
|
sourceType: "REPORT" | "FRAGMENT";
|
|
content: string;
|
|
createdTime: string;
|
|
}
|
|
|
|
export interface ReviewTaskStats {
|
|
taskNum: string;
|
|
taskName: string;
|
|
reportCount: number;
|
|
fragmentCount: number;
|
|
effectiveTime: number;
|
|
sessionCount: number;
|
|
todayEffectiveTime: number;
|
|
weekEffectiveTime: number;
|
|
avgEffectiveTime: number;
|
|
avgEffectivenessRatio: number;
|
|
}
|
|
|
|
export interface ReviewApplication {
|
|
id: number;
|
|
taskNum: string;
|
|
title: string;
|
|
description?: string;
|
|
resourceUrl?: string;
|
|
status: "TODO" | "DOING" | "DONE";
|
|
createdTime?: string;
|
|
lastModifiedTime?: string;
|
|
}
|
|
|
|
export interface ReviewMindMap {
|
|
id: number;
|
|
taskNum: string;
|
|
title: string;
|
|
content: string;
|
|
contentFormat: "TEXT" | "MERMAID" | "JSON";
|
|
createdTime?: string;
|
|
lastModifiedTime?: string;
|
|
}
|
|
|
|
export const getReviewFeed = (limit: number = 30, mode: "recent" | "random" = "recent") => {
|
|
return request.get("/review/feed", { limit, mode });
|
|
};
|
|
|
|
export const getReviewTaskStats = () => {
|
|
return request.get("/review/tasks");
|
|
};
|
|
|
|
export const getReviewTaskStatsByTask = (taskNum: string) => {
|
|
return request.get(`/review/tasks/${taskNum}`);
|
|
};
|
|
|
|
export const getReportDetail = (id: number) => {
|
|
return request.get(`/review/report/${id}`);
|
|
};
|
|
|
|
export const getFragmentDetail = (id: number) => {
|
|
return request.get(`/review/fragment/${id}`);
|
|
};
|
|
|
|
export const getTaskReview = (taskNum: string) => {
|
|
return request.get(`/review/task/${taskNum}`);
|
|
};
|
|
|
|
export const getReviewApplications = (taskNum: string) => {
|
|
return request.get(`/review/applications/${taskNum}`);
|
|
};
|
|
|
|
export const createReviewApplication = (payload: {
|
|
taskNum: string;
|
|
title: string;
|
|
description?: string;
|
|
resourceUrl?: string;
|
|
status?: ReviewApplication["status"];
|
|
}) => {
|
|
return request.post("/review/applications", payload);
|
|
};
|
|
|
|
export const updateReviewApplication = (
|
|
id: number,
|
|
payload: {
|
|
title: string;
|
|
description?: string;
|
|
resourceUrl?: string;
|
|
status?: ReviewApplication["status"];
|
|
},
|
|
) => {
|
|
return request.put(`/review/applications/${id}`, payload);
|
|
};
|
|
|
|
export const deleteReviewApplication = (id: number) => {
|
|
return request.del(`/review/applications/${id}`);
|
|
};
|
|
|
|
export const getReviewMindMap = (taskNum: string) => {
|
|
return request.get(`/review/mind-map/${taskNum}`);
|
|
};
|
|
|
|
export const upsertReviewMindMap = (
|
|
taskNum: string,
|
|
payload: {
|
|
title: string;
|
|
content: string;
|
|
contentFormat?: ReviewMindMap["contentFormat"];
|
|
},
|
|
) => {
|
|
return request.put(`/review/mind-map/${taskNum}`, payload);
|
|
};
|