Files
lpt-fe/src/api/review.ts
T

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);
};