Version: 0.7.9.dev.260326
后端: 1.把最后一块拼图:schedule_refine也搬迁到了agent2,此时agent已经完全解耦。但是它没融入新架构,Codex只尝试把它调整了一部分,回退了一些错误的更改,保持着现在的可运行状态。下次继续改。 2.agent目录先保留,直到refine彻底融入新架构。 3.改善Codex主导的新史山结构:node文件夹里面大量文件,转而改成了module.go+module_tool.go的双文件格局,极大提升架构整洁度和代码可读性。 前端: 1.新开了日历界面,正在保持往前推进。做了很多更改,感觉越来越好了。
This commit is contained in:
132
frontend/src/api/scheduleCenter.ts
Normal file
132
frontend/src/api/scheduleCenter.ts
Normal file
@@ -0,0 +1,132 @@
|
||||
import http from '@/api/http'
|
||||
import type { ApiResponse, PlainResponse } from '@/types/api'
|
||||
import type {
|
||||
ApplyBatchIntoScheduleItem,
|
||||
ScheduleDeletePayloadItem,
|
||||
ScheduleWeekData,
|
||||
TaskClassCreatePayload,
|
||||
TaskClassDetail,
|
||||
TaskClassListItem,
|
||||
} from '@/types/schedule'
|
||||
import { extractErrorMessage } from '@/utils/http'
|
||||
import { createIdempotencyKey } from '@/utils/idempotency'
|
||||
|
||||
export async function getWeekSchedule(week?: number) {
|
||||
try {
|
||||
const response = await http.get<ApiResponse<ScheduleWeekData[]>>('/schedule/week', {
|
||||
params: typeof week === 'number' ? { week } : undefined,
|
||||
})
|
||||
return response.data.data ?? []
|
||||
} catch (error) {
|
||||
throw new Error(extractErrorMessage(error, '周日程加载失败,请稍后重试'))
|
||||
}
|
||||
}
|
||||
|
||||
export async function getTaskClassList() {
|
||||
try {
|
||||
const response = await http.get<ApiResponse<{ task_classes: TaskClassListItem[] }>>('/task-class/list')
|
||||
return response.data.data?.task_classes ?? []
|
||||
} catch (error) {
|
||||
throw new Error(extractErrorMessage(error, '任务类列表加载失败,请稍后重试'))
|
||||
}
|
||||
}
|
||||
|
||||
export async function getTaskClassDetail(taskClassId: number) {
|
||||
try {
|
||||
const response = await http.get<ApiResponse<TaskClassDetail>>('/task-class/get', {
|
||||
params: {
|
||||
task_class_id: taskClassId,
|
||||
},
|
||||
})
|
||||
return response.data.data
|
||||
} catch (error) {
|
||||
throw new Error(extractErrorMessage(error, '任务类详情加载失败,请稍后重试'))
|
||||
}
|
||||
}
|
||||
|
||||
export async function createTaskClass(payload: TaskClassCreatePayload, idempotencyKey = createIdempotencyKey('task-class-add')) {
|
||||
try {
|
||||
const response = await http.post<PlainResponse>('/task-class/add', payload, {
|
||||
headers: {
|
||||
'X-Idempotency-Key': idempotencyKey,
|
||||
},
|
||||
})
|
||||
return response.data
|
||||
} catch (error) {
|
||||
throw new Error(extractErrorMessage(error, '创建任务类失败,请稍后重试'))
|
||||
}
|
||||
}
|
||||
|
||||
export async function smartPlanning(taskClassId: number) {
|
||||
try {
|
||||
const response = await http.get<ApiResponse<ScheduleWeekData[]>>('/schedule/smart-planning', {
|
||||
params: {
|
||||
task_class_id: taskClassId,
|
||||
},
|
||||
})
|
||||
return response.data.data ?? []
|
||||
} catch (error) {
|
||||
throw new Error(extractErrorMessage(error, '智能粗排失败,请稍后重试'))
|
||||
}
|
||||
}
|
||||
|
||||
export async function smartPlanningMulti(taskClassIds: number[]) {
|
||||
try {
|
||||
const response = await http.post<ApiResponse<ScheduleWeekData[]>>('/schedule/smart-planning-multi', {
|
||||
task_class_ids: taskClassIds,
|
||||
})
|
||||
return response.data.data ?? []
|
||||
} catch (error) {
|
||||
throw new Error(extractErrorMessage(error, '批量智能粗排失败,请稍后重试'))
|
||||
}
|
||||
}
|
||||
|
||||
export async function applyBatchIntoSchedule(taskClassId: number, items: ApplyBatchIntoScheduleItem[], idempotencyKey = createIdempotencyKey('schedule-apply')) {
|
||||
try {
|
||||
const response = await http.put<PlainResponse>(
|
||||
'/task-class/apply-batch-into-schedule',
|
||||
{
|
||||
task_class_id: taskClassId,
|
||||
items,
|
||||
},
|
||||
{
|
||||
headers: {
|
||||
'X-Idempotency-Key': idempotencyKey,
|
||||
},
|
||||
},
|
||||
)
|
||||
return response.data
|
||||
} catch (error) {
|
||||
throw new Error(extractErrorMessage(error, '正式应用日程失败,请稍后重试'))
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteScheduleEntries(items: ScheduleDeletePayloadItem[], idempotencyKey = createIdempotencyKey('schedule-delete')) {
|
||||
try {
|
||||
const response = await http.delete<PlainResponse>('/schedule/delete', {
|
||||
data: items,
|
||||
headers: {
|
||||
'X-Idempotency-Key': idempotencyKey,
|
||||
},
|
||||
})
|
||||
return response.data
|
||||
} catch (error) {
|
||||
throw new Error(extractErrorMessage(error, '解除安排失败,请稍后重试'))
|
||||
}
|
||||
}
|
||||
|
||||
export async function deleteTaskClassItem(taskItemId: number, idempotencyKey = createIdempotencyKey('task-class-item-delete')) {
|
||||
try {
|
||||
const response = await http.delete<PlainResponse>('/task-class/delete-item', {
|
||||
params: {
|
||||
task_item_id: taskItemId,
|
||||
},
|
||||
headers: {
|
||||
'X-Idempotency-Key': idempotencyKey,
|
||||
},
|
||||
})
|
||||
return response.data
|
||||
} catch (error) {
|
||||
throw new Error(extractErrorMessage(error, '删除任务块失败,请稍后重试'))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user