feat: 完成 R13/R14/R15/R16 小团队管理核心能力
这个提交包含在:
@@ -0,0 +1,68 @@
|
||||
import { apiRequestData } from "./http";
|
||||
|
||||
export type WeeklyReport = {
|
||||
id: string;
|
||||
employeeId: string;
|
||||
weekStart: string;
|
||||
status: "draft" | "submitted";
|
||||
highlightsText: string;
|
||||
blockersText: string;
|
||||
nextWeekText: string;
|
||||
needsHelp: boolean;
|
||||
submittedAt: string | null;
|
||||
createdAt: string | null;
|
||||
updatedAt: string | null;
|
||||
};
|
||||
|
||||
export type WeeklyReportTeamItem = {
|
||||
employee: {
|
||||
id: string;
|
||||
employeeNo: string;
|
||||
name: string;
|
||||
title: string;
|
||||
department: { id: string; name: string } | null;
|
||||
};
|
||||
report: WeeklyReport | null;
|
||||
};
|
||||
|
||||
export type WeeklyReportTeamSummary = {
|
||||
totalEmployees: number;
|
||||
submittedCount: number;
|
||||
draftCount: number;
|
||||
missingCount: number;
|
||||
needsHelpCount: number;
|
||||
};
|
||||
|
||||
export async function fetchMyWeeklyReport(weekStart?: string) {
|
||||
const suffix = weekStart ? `?weekStart=${encodeURIComponent(weekStart)}` : "";
|
||||
return apiRequestData<{ item: WeeklyReport }>(`/api/weekly-reports/me${suffix}`);
|
||||
}
|
||||
|
||||
export async function updateMyWeeklyReport(payload: {
|
||||
weekStart?: string;
|
||||
highlightsText?: string;
|
||||
blockersText?: string;
|
||||
nextWeekText?: string;
|
||||
needsHelp?: boolean;
|
||||
}) {
|
||||
return apiRequestData<{ item: WeeklyReport }>("/api/weekly-reports/me", {
|
||||
method: "PUT",
|
||||
body: JSON.stringify(payload),
|
||||
});
|
||||
}
|
||||
|
||||
export async function submitMyWeeklyReport(payload: { weekStart?: string } = {}) {
|
||||
return apiRequestData<{ item: WeeklyReport }>("/api/weekly-reports/me/submit", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(payload),
|
||||
});
|
||||
}
|
||||
|
||||
export async function fetchTeamWeeklyReports(weekStart?: string) {
|
||||
const suffix = weekStart ? `?weekStart=${encodeURIComponent(weekStart)}` : "";
|
||||
return apiRequestData<{
|
||||
weekStart: string;
|
||||
summary: WeeklyReportTeamSummary;
|
||||
items: WeeklyReportTeamItem[];
|
||||
}>(`/api/weekly-reports/team${suffix}`);
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户