import { request } from "./request";
|
import type { PageResult, UserSimple } from "./purchase";
|
|
export interface CalTeam {
|
id?: number;
|
code?: string;
|
name?: string;
|
calendarType?: number;
|
remark?: string;
|
createTime?: string;
|
}
|
|
export interface CalTeamMember {
|
id?: number;
|
teamId?: number;
|
userId?: number;
|
nickname?: string;
|
telephone?: string;
|
remark?: string;
|
}
|
|
export interface CalPlan {
|
id?: number;
|
code?: string;
|
name?: string;
|
calendarType?: number;
|
startDate?: string;
|
endDate?: string;
|
shiftType?: number;
|
shiftMethod?: number;
|
shiftCount?: number;
|
status?: number;
|
remark?: string;
|
createTime?: string;
|
}
|
|
export interface CalPlanShift {
|
id?: number;
|
planId?: number;
|
sort?: number;
|
name?: string;
|
startTime?: string;
|
endTime?: string;
|
remark?: string;
|
}
|
|
export interface CalPlanTeam {
|
id?: number;
|
planId?: number;
|
teamId?: number;
|
teamCode?: string;
|
teamName?: string;
|
remark?: string;
|
}
|
|
export interface CalHoliday {
|
id?: number;
|
day?: string | number;
|
type?: number;
|
remark?: string;
|
createTime?: string;
|
}
|
|
export interface CalCalendarTeamShift {
|
teamId?: number;
|
teamName?: string;
|
shiftId?: number;
|
shiftName?: string;
|
sort?: number;
|
}
|
|
export interface CalCalendarDay {
|
day?: string;
|
shiftType?: number;
|
teamShifts?: CalCalendarTeamShift[];
|
}
|
|
const header = (accessToken: string) => ({ Authorization: `Bearer ${accessToken}` });
|
function query(params: Record<string, string | number | boolean | Array<string | number | boolean> | undefined>) {
|
const content = Object.entries(params)
|
.filter(([, value]) => value !== undefined && value !== "")
|
.flatMap(([key, value]) => Array.isArray(value)
|
? value.map(item => `${encodeURIComponent(key)}=${encodeURIComponent(String(item))}`)
|
: `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)
|
.join("&");
|
return content ? `?${content}` : "";
|
}
|
|
export function getTeamPage(accessToken: string, params: { pageNo: number; pageSize: number; code?: string; name?: string; calendarType?: number }) {
|
return request<PageResult<CalTeam>>(`/mes/cal/team/page${query(params)}`, { header: header(accessToken) });
|
}
|
export function getTeamList(accessToken: string) {
|
return request<CalTeam[]>("/mes/cal/team/list", { header: header(accessToken) });
|
}
|
export function getTeam(accessToken: string, id: number) {
|
return request<CalTeam>(`/mes/cal/team/get${query({ id })}`, { header: header(accessToken) });
|
}
|
export function createTeam(accessToken: string, data: CalTeam) {
|
return request<number>("/mes/cal/team/create", { method: "POST", data, header: header(accessToken) });
|
}
|
export function updateTeam(accessToken: string, data: CalTeam) {
|
return request<boolean>("/mes/cal/team/update", { method: "PUT", data, header: header(accessToken) });
|
}
|
export function deleteTeam(accessToken: string, id: number) {
|
return request<boolean>(`/mes/cal/team/delete${query({ id })}`, { method: "DELETE", header: header(accessToken) });
|
}
|
export function getTeamMemberListByTeam(accessToken: string, teamId: number) {
|
return request<CalTeamMember[]>(`/mes/cal/team-member/list-by-team${query({ teamId })}`, { header: header(accessToken) });
|
}
|
export function createTeamMember(accessToken: string, data: CalTeamMember) {
|
return request<number>("/mes/cal/team-member/create", { method: "POST", data, header: header(accessToken) });
|
}
|
export function deleteTeamMember(accessToken: string, id: number) {
|
return request<boolean>(`/mes/cal/team-member/delete${query({ id })}`, { method: "DELETE", header: header(accessToken) });
|
}
|
|
export function getPlanPage(accessToken: string, params: { pageNo: number; pageSize: number; code?: string; name?: string; shiftType?: number; status?: number }) {
|
return request<PageResult<CalPlan>>(`/mes/cal/plan/page${query(params)}`, { header: header(accessToken) });
|
}
|
export function getPlan(accessToken: string, id: number) {
|
return request<CalPlan>(`/mes/cal/plan/get${query({ id })}`, { header: header(accessToken) });
|
}
|
export function createPlan(accessToken: string, data: CalPlan) {
|
return request<number>("/mes/cal/plan/create", { method: "POST", data, header: header(accessToken) });
|
}
|
export function updatePlan(accessToken: string, data: CalPlan) {
|
return request<boolean>("/mes/cal/plan/update", { method: "PUT", data, header: header(accessToken) });
|
}
|
export function confirmPlan(accessToken: string, id: number) {
|
return request<boolean>(`/mes/cal/plan/confirm${query({ id })}`, { method: "PUT", header: header(accessToken) });
|
}
|
export function deletePlan(accessToken: string, id: number) {
|
return request<boolean>(`/mes/cal/plan/delete${query({ id })}`, { method: "DELETE", header: header(accessToken) });
|
}
|
export function getPlanShiftListByPlan(accessToken: string, planId: number) {
|
return request<CalPlanShift[]>(`/mes/cal/plan-shift/list-by-plan${query({ planId })}`, { header: header(accessToken) });
|
}
|
export function createPlanShift(accessToken: string, data: CalPlanShift) {
|
return request<number>("/mes/cal/plan-shift/create", { method: "POST", data, header: header(accessToken) });
|
}
|
export function updatePlanShift(accessToken: string, data: CalPlanShift) {
|
return request<boolean>("/mes/cal/plan-shift/update", { method: "PUT", data, header: header(accessToken) });
|
}
|
export function deletePlanShift(accessToken: string, id: number) {
|
return request<boolean>(`/mes/cal/plan-shift/delete${query({ id })}`, { method: "DELETE", header: header(accessToken) });
|
}
|
export function getPlanTeamListByPlan(accessToken: string, planId: number) {
|
return request<CalPlanTeam[]>(`/mes/cal/plan-team/list-by-plan${query({ planId })}`, { header: header(accessToken) });
|
}
|
export function createPlanTeam(accessToken: string, data: CalPlanTeam) {
|
return request<number>("/mes/cal/plan-team/create", { method: "POST", data, header: header(accessToken) });
|
}
|
export function deletePlanTeam(accessToken: string, id: number) {
|
return request<boolean>(`/mes/cal/plan-team/delete${query({ id })}`, { method: "DELETE", header: header(accessToken) });
|
}
|
|
export function getHolidayList(accessToken: string, params?: { startDay?: string; endDay?: string }) {
|
return request<CalHoliday[]>(`/mes/cal/holiday/list${query(params || {})}`, { header: header(accessToken) });
|
}
|
export function getHolidayByDay(accessToken: string, day: string) {
|
return request<CalHoliday>(`/mes/cal/holiday/get-by-day${query({ day })}`, { header: header(accessToken) });
|
}
|
export function saveHoliday(accessToken: string, data: CalHoliday) {
|
return request<boolean>("/mes/cal/holiday/save", { method: "POST", data, header: header(accessToken) });
|
}
|
export function getCalendarList(accessToken: string, params: { queryType: string; calendarType?: number; teamId?: number; userId?: number; startDay?: string; endDay?: string }) {
|
return request<CalCalendarDay[]>(`/mes/cal/calendar/list${query(params)}`, { header: header(accessToken) });
|
}
|
export function getUserSimpleList(accessToken: string) {
|
return request<UserSimple[]>("/system/user/simple-list", { header: header(accessToken) });
|
}
|