blob: c550cf438efcc92525bf443caa9e474c54a21487 [file] [log] [blame]
86133ec55c542025-04-21 11:51:32 +08001import { request } from '@umijs/max';
2import type {
3 TrackerProject,
4 TrackerProjectUser,
5 TrackerTask,
6 TrackerTaskLog,
7} from '@/pages/Tracker/data';
8
9// ================================
10// 项目接口
11// ================================
12
13/** 查询项目分页列表 */
14export async function listTrackerProject(params?: TrackerProject) {
15 const queryString = params
16 ? `?${new URLSearchParams(params as Record<string, any>).toString()}`
17 : '';
18 return request(`/api/tracker/project/list${queryString}`, {
19 data: params,
20 method: 'get',
21 headers: {
22 'Content-Type': 'application/json;charset=UTF-8',
23 },
24 });
25}
26
27/** 获取单个项目详情 */
28export async function getTrackerProject(projectId: number) {
29 return request<TrackerProject>(`/api/tracker/project/${projectId}`, {
30 method: 'get',
31 });
32}
33
34/** 新增项目 */
35export async function addTrackerProject(data: TrackerProject) {
36 return request('/api/tracker/project', {
37 data,
38 method: 'post',
39 });
40}
41
42/** 更新项目 */
43export async function updateTrackerProject(data: TrackerProject) {
44 return request('/api/tracker/project', {
45 data,
46 method: 'put',
47 });
48}
49
50/** 删除项目(支持批量,传入 ID 数组) */
51export async function removeTrackerProject(projectIds: number[]) {
52 return request(`/api/tracker/project/${projectIds.join(',')}`, {
53 method: 'delete',
54 });
55}
56
57// ================================
58// 项目与用户关联接口
59// ================================
60
61/** 查询项目-用户关联分页列表 */
62export async function listTrackerProjectUser(params?: TrackerProjectUser) {
63 const queryString = params
64 ? `?${new URLSearchParams(params as Record<string, any>).toString()}`
65 : '';
66 return request(`/api/tracker/user/list${queryString}`, {
67 data: params,
68 method: 'get',
69 headers: {
70 'Content-Type': 'application/json;charset=UTF-8',
71 },
72 });
73}
74
75/** 获取单个项目-用户关联详情 */
76export async function getTrackerProjectUser(projectId: number) {
77 return request<TrackerProjectUser>(`/api/tracker/user/${projectId}`, {
78 method: 'get',
79 });
80}
81
82/** 新增项目-用户关联 */
83export async function addTrackerProjectUser(data: TrackerProjectUser) {
84 return request('/api/tracker/user', {
85 data,
86 method: 'post',
87 });
88}
89
90/** 更新项目-用户关联 */
91export async function updateTrackerProjectUser(data: TrackerProjectUser) {
92 return request('/api/tracker/user', {
93 data,
94 method: 'put',
95 });
96}
97
98/** 删除项目-用户关联(支持批量,传入项目 ID 数组) */
99export async function removeTrackerProjectUser(projectIds: number[]) {
100 return request(`/api/tracker/user/${projectIds.join(',')}`, {
101 method: 'delete',
102 });
103}
104
105// ================================
106// 任务接口
107// ================================
108
109/** 查询任务分页列表 */
110export async function listTrackerTask(params?: TrackerTask) {
111 const queryString = params
112 ? `?${new URLSearchParams(params as Record<string, any>).toString()}`
113 : '';
114 return request(`/api/tracker/task/list${queryString}`, {
115 data: params,
116 method: 'get',
117 headers: {
118 'Content-Type': 'application/json;charset=UTF-8',
119 },
120 });
121}
122
123/** 获取单个任务详情 */
124export async function getTrackerTask(taskId: number) {
125 return request<TrackerTask>(`/api/tracker/task/${taskId}`, {
126 method: 'get',
127 });
128}
129
130/** 新增任务 */
131export async function addTrackerTask(data: TrackerTask) {
132 return request('/api/tracker/task', {
133 data,
134 method: 'post',
135 });
136}
137
138/** 更新任务 */
139export async function updateTrackerTask(data: TrackerTask) {
140 return request('/api/tracker/task', {
141 data,
142 method: 'put',
143 });
144}
145
146/** 删除任务(支持批量,传入任务 ID 数组) */
147export async function removeTrackerTask(taskIds: number[]) {
148 return request(`/api/tracker/task/${taskIds.join(',')}`, {
149 method: 'delete',
150 });
151}
152
153// ================================
154// 任务日志接口
155// ================================
156
157/** 查询任务日志分页列表 */
158export async function listTrackerTaskLog(params?: TrackerTaskLog) {
159 const queryString = params
160 ? `?${new URLSearchParams(params as Record<string, any>).toString()}`
161 : '';
162 return request(`/api/tracker/log/list${queryString}`, {
163 data: params,
164 method: 'get',
165 headers: {
166 'Content-Type': 'application/json;charset=UTF-8',
167 },
168 });
169}
170
171/** 获取单个任务日志详情 */
172export async function getTrackerTaskLog(logId: number) {
173 return request<TrackerTaskLog>(`/api/tracker/log/${logId}`, {
174 method: 'get',
175 });
176}
177
178/** 新增任务日志 */
179export async function addTrackerTaskLog(data: TrackerTaskLog) {
180 return request('/api/tracker/log', {
181 data,
182 method: 'post',
183 });
184}
185
186/** 更新任务日志 */
187export async function updateTrackerTaskLog(data: TrackerTaskLog) {
188 return request('/api/tracker/log', {
189 data,
190 method: 'put',
191 });
192}
193
194/** 删除任务日志(支持批量,传入日志 ID 数组) */
195export async function removeTrackerTaskLog(logIds: number[]) {
196 return request(`/api/tracker/log/${logIds.join(',')}`, {
197 method: 'delete',
198 });
199}