diff --git a/src/api/infra/job/index.ts b/src/api/infra/job/index.ts new file mode 100644 index 0000000..6010bed --- /dev/null +++ b/src/api/infra/job/index.ts @@ -0,0 +1,60 @@ +import type { PageParam, PageResult } from '@/http/types' +import { http } from '@/http/http' + +// TODO @AI:不用 baseUrl 方式 +const baseUrl = '/infra/job' + +/** 定时任务信息 */ +export interface Job { + id?: number + name: string + status: number + handlerName: string + handlerParam: string + cronExpression: string + retryCount: number + retryInterval: number + monitorTimeout: number + createTime?: Date + nextTimes?: Date[] +} + +/** 获取定时任务分页列表 */ +export function getJobPage(params: PageParam) { + return http.get>(`${baseUrl}/page`, params) +} + +/** 获取定时任务详情 */ +export function getJob(id: number) { + return http.get(`${baseUrl}/get?id=${id}`) +} + +/** 创建定时任务 */ +export function createJob(data: Job) { + return http.post(`${baseUrl}/create`, data) +} + +/** 更新定时任务 */ +export function updateJob(data: Job) { + return http.put(`${baseUrl}/update`, data) +} + +/** 删除定时任务 */ +export function deleteJob(id: number) { + return http.delete(`${baseUrl}/delete?id=${id}`) +} + +/** 更新定时任务状态 */ +export function updateJobStatus(id: number, status: number) { + return http.put(`${baseUrl}/update-status`, { id, status }) +} + +/** 立即执行一次定时任务 */ +export function runJob(id: number) { + return http.put(`${baseUrl}/trigger?id=${id}`) +} + +/** 获取定时任务的下 n 次执行时间 */ +export function getJobNextTimes(id: number) { + return http.get(`${baseUrl}/get_next_times?id=${id}`) +} diff --git a/src/api/infra/job/log/index.ts b/src/api/infra/job/log/index.ts new file mode 100644 index 0000000..01cba2b --- /dev/null +++ b/src/api/infra/job/log/index.ts @@ -0,0 +1,31 @@ +import type { PageParam, PageResult } from '@/http/types' +import { http } from '@/http/http' + +// TODO @AI:不用 baseUrl 方式 +const baseUrl = '/infra/job-log' + +/** 定时任务日志信息 */ +export interface JobLog { + id?: number + jobId: number + handlerName: string + handlerParam: string + cronExpression: string + executeIndex: string + beginTime: Date + endTime: Date + duration: string + status: number + createTime?: string + result: string +} + +/** 获取定时任务日志分页列表 */ +export function getJobLogPage(params: PageParam) { + return http.get>(`${baseUrl}/page`, params) +} + +/** 获取定时任务日志详情 */ +export function getJobLog(id: number) { + return http.get(`${baseUrl}/get?id=${id}`) +} diff --git a/src/pages-infra/job/components/job-list.vue b/src/pages-infra/job/components/job-list.vue new file mode 100644 index 0000000..4011471 --- /dev/null +++ b/src/pages-infra/job/components/job-list.vue @@ -0,0 +1,143 @@ + + + diff --git a/src/pages-infra/job/components/job-search-form.vue b/src/pages-infra/job/components/job-search-form.vue new file mode 100644 index 0000000..23e443d --- /dev/null +++ b/src/pages-infra/job/components/job-search-form.vue @@ -0,0 +1,110 @@ + + + diff --git a/src/pages-infra/job/components/log-list.vue b/src/pages-infra/job/components/log-list.vue new file mode 100644 index 0000000..a791d6c --- /dev/null +++ b/src/pages-infra/job/components/log-list.vue @@ -0,0 +1,125 @@ + + + diff --git a/src/pages-infra/job/components/log-search-form.vue b/src/pages-infra/job/components/log-search-form.vue new file mode 100644 index 0000000..f404e5b --- /dev/null +++ b/src/pages-infra/job/components/log-search-form.vue @@ -0,0 +1,169 @@ + + + diff --git a/src/pages-infra/job/index.vue b/src/pages-infra/job/index.vue new file mode 100644 index 0000000..998e804 --- /dev/null +++ b/src/pages-infra/job/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/pages-infra/job/job/detail/index.vue b/src/pages-infra/job/job/detail/index.vue new file mode 100644 index 0000000..c7bc26c --- /dev/null +++ b/src/pages-infra/job/job/detail/index.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/pages-infra/job/job/form/index.vue b/src/pages-infra/job/job/form/index.vue new file mode 100644 index 0000000..ea05a3c --- /dev/null +++ b/src/pages-infra/job/job/form/index.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/src/pages-infra/job/log/detail/index.vue b/src/pages-infra/job/log/detail/index.vue new file mode 100644 index 0000000..e041dda --- /dev/null +++ b/src/pages-infra/job/log/detail/index.vue @@ -0,0 +1,80 @@ + + + + +