diff --git a/src/router/routes/index.ts b/src/router/routes/index.ts index a053c12f..95883fe0 100644 --- a/src/router/routes/index.ts +++ b/src/router/routes/index.ts @@ -92,7 +92,33 @@ export const CodegenRoute: AppRouteRecordRaw = { hidden: true, noTagsView: false, icon: 'ep:edit', - title: '修改生成配置' + title: '修改生成配置', + activeMenu: 'infra/codegen/index' + } + } + ] +} + +export const JobLogRoute: AppRouteRecordRaw = { + path: '/job', + component: LAYOUT, + name: 'JobL', + meta: { + title: '调度日志', + hidden: true + }, + children: [ + { + path: 'job-log', + component: () => import('@/views/infra/job/logger/index.vue'), + name: 'InfraJobLog', + meta: { + canTo: true, + hidden: true, + noTagsView: false, + icon: 'ep:edit', + title: '调度日志', + activeMenu: 'infra/job/index' } } ] @@ -100,4 +126,4 @@ export const CodegenRoute: AppRouteRecordRaw = { // Basic routing without permission // 未经许可的基本路由 -export const basicRoutes = [LoginRoute, RootRoute, ProfileRoute, CodegenRoute, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE] +export const basicRoutes = [LoginRoute, RootRoute, ProfileRoute, CodegenRoute, JobLogRoute, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE] diff --git a/src/views/infra/job/index.vue b/src/views/infra/job/index.vue index 7ffa2f77..96522300 100644 --- a/src/views/infra/job/index.vue +++ b/src/views/infra/job/index.vue @@ -39,6 +39,7 @@ diff --git a/src/views/infra/job/logger/jobLog.data.ts b/src/views/infra/job/logger/jobLog.data.ts new file mode 100644 index 00000000..3453f2a1 --- /dev/null +++ b/src/views/infra/job/logger/jobLog.data.ts @@ -0,0 +1,146 @@ +import { BasicColumn, FormSchema, useRender } from '@/components/Table' +import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' + +export const columns: BasicColumn[] = [ + { + title: '日志编号', + dataIndex: 'id', + width: 100 + }, + { + title: '任务编号', + dataIndex: 'jobId', + width: 180 + }, + { + title: '处理器的名字', + dataIndex: 'handlerName', + width: 180 + }, + { + title: '处理器的参数', + dataIndex: 'handlerParam', + width: 180 + }, + { + title: '第几次执行', + dataIndex: 'executeIndex', + width: 100 + }, + { + title: '执行时间', + dataIndex: 'beginTime', + width: 180, + customRender: ({ record }) => { + return useRender.renderDate(record.beginTime) + ' ~ ' + useRender.renderDate(record.endTime) + } + }, + { + title: '执行时长', + dataIndex: 'duration', + width: 180, + customRender: ({ text }) => { + return useRender.renderText(text, ' 毫秒') + } + }, + { + title: '任务状态', + dataIndex: 'status', + width: 180, + customRender: ({ record }) => { + return useRender.renderDict(record.beginTime, DICT_TYPE.INFRA_JOB_LOG_STATUS) + } + } +] + +export const searchFormSchema: FormSchema[] = [ + { + label: '处理器的名字', + field: 'handlerName', + component: 'Input', + colProps: { span: 8 } + }, + { + label: '开始执行时间', + field: 'beginTime', + component: 'DatePicker', + colProps: { span: 8 } + }, + { + label: '结束执行时间', + field: 'endTime', + component: 'DatePicker', + colProps: { span: 8 } + }, + { + label: '任务状态', + field: 'status', + component: 'Select', + componentProps: { + options: getIntDictOptions(DICT_TYPE.INFRA_JOB_STATUS) + }, + colProps: { span: 8 } + }, + { + label: '处理器的名字', + field: 'handlerName', + component: 'Input', + colProps: { span: 8 } + } +] + +export const formSchema: FormSchema[] = [ + { + label: '任务编号', + field: 'id', + show: false, + component: 'Input' + }, + { + label: '任务名称', + field: 'name', + required: true, + component: 'Input' + }, + { + label: '处理器的名字', + field: 'handlerName', + required: true, + dynamicDisabled: ({ values }) => !!values.id, + component: 'Input' + }, + { + label: '处理器的参数', + field: 'handlerParam', + component: 'Input' + }, + { + label: 'CRON 表达式', + field: 'cronExpression', + required: true, + component: 'Input' + }, + { + label: '重试次数', + field: 'retryCount', + required: true, + helpMessage: '设置为 0 时,不进行重试', + defaultValue: 0, + component: 'InputNumber' + }, + { + label: '重试间隔', + field: 'retryInterval', + required: true, + helpMessage: '单位:毫秒。设置为 0 时,无需间隔', + defaultValue: 0, + component: 'InputNumber', + suffix: '毫秒' + }, + { + label: '监控超时时间', + field: 'monitorTimeout', + component: 'Input', + suffix: '毫秒' + } +]