You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

172 lines
3.4 KiB

import type { DescItem } from '@/components/Description'
import type { BasicColumn, FormSchema } from '@/components/Table'
import { useRender } from '@/components/Table'
import { DICT_TYPE, getDictOptions } from '@/utils/dict'
import { useComponentRegister } from '@/components/Form'
import { CronTab } from '@/components/CronTab'
useComponentRegister('CronTab', CronTab)
export const columns: BasicColumn[] = [
{
title: '任务编号',
dataIndex: 'id',
width: 100,
},
{
title: '任务名称',
dataIndex: 'name',
width: 180,
},
{
title: '处理器的名字',
dataIndex: 'handlerName',
width: 180,
},
{
title: '处理器的参数',
dataIndex: 'handlerParam',
width: 180,
},
{
title: 'CRON 表达式',
dataIndex: 'cronExpression',
width: 200,
},
{
title: '任务状态',
dataIndex: 'status',
width: 180,
customRender: ({ text }) => {
return useRender.renderDict(text, DICT_TYPE.INFRA_JOB_STATUS)
},
},
]
export const searchFormSchema: FormSchema[] = [
{
label: '任务名称',
field: 'name',
component: 'Input',
colProps: { span: 8 },
},
{
label: '任务状态',
field: 'status',
component: 'Select',
componentProps: {
options: getDictOptions(DICT_TYPE.INFRA_JOB_STATUS) as any,
},
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: 'CronTab',
},
{
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: '毫秒',
},
]
export const descSchema: DescItem[] = [
{
label: '任务编号',
field: 'id',
},
{
label: '任务名称',
field: 'name',
},
{
label: '任务状态',
field: 'status',
render: (curVal) => {
return useRender.renderDict(curVal, DICT_TYPE.INFRA_JOB_STATUS)
},
},
{
label: '处理器的名字',
field: 'handlerName',
},
{
label: '处理器的参数',
field: 'handlerParam',
},
{
label: 'Cron 表达式',
field: 'cronExpression',
},
{
label: '重试次数',
field: 'retryCount',
},
{
label: '重试间隔',
field: 'cronExpression',
render: (curVal) => {
return useRender.renderText(curVal, ' 毫秒')
},
},
{
label: '监控超时时间',
field: 'monitorTimeout',
render: (curVal) => {
return curVal > 0 ? `${curVal} 毫秒` : '未开启'
},
},
]