| | |
| | | import { BasicColumn, FormSchema } from '/@/components/Table'; |
| | | import { optionsListApi } from '/@/api/tigerapi/tsk/tsk_job'; |
| | | import { h } from 'vue'; |
| | | import { h, unref } from 'vue'; |
| | | import { Tag, Tooltip } from 'ant-design-vue'; |
| | | import { useI18n } from '/@/hooks/web/useI18n'; |
| | | import { GetEnum } from '/@/api/tigerapi/system'; |
| | | import { useLocale } from '/@/locales/useLocale'; |
| | | |
| | | const { t } = useI18n(); |
| | | const { getLocale } = useLocale(); |
| | | |
| | | //界面列表显示 |
| | | export const columns: BasicColumn[] = [ |
| | | { |
| | |
| | | dataIndex: 'UPDATE_TIME', |
| | | width: 180, |
| | | }, |
| | | // { |
| | | // title: '工厂名称', |
| | | // dataIndex: 'FACTORY_NAME', |
| | | // width: 180, |
| | | // }, |
| | | { |
| | | title: '状态', |
| | | dataIndex: 'Status', |
| | | customRender: ({ record }) => { |
| | | return h(Tooltip, { title: record.Status.split(',')[1] }, () => record.Status.split(',')[0]); |
| | | const texts = record.Status.split(','); |
| | | let color = ''; |
| | | switch (texts[0]) { |
| | | case 'Running': |
| | | color = 'green'; |
| | | break; |
| | | case 'Ready': |
| | | color = '#bfbfbf'; |
| | | break; |
| | | case 'Stop': |
| | | color = 'red'; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | return h(Tooltip, { title: record.Status.split(',')[1] }, () => |
| | | h(Tag, { color: color }, () => texts[1]), |
| | | ); |
| | | }, |
| | | width: 180, |
| | | }, |
| | |
| | | }, |
| | | ]; |
| | | |
| | | /** |
| | | * description |
| | | */ |
| | | export const searchFormSchema: FormSchema[] = [ |
| | | { |
| | | field: 'JobName', |
| | |
| | | }, |
| | | ]; |
| | | |
| | | const isRunNow = (type: number) => type === 0; |
| | | const isRunAt = (type: number) => type === 1; |
| | | const isEvery = (type: number) => type === 2; |
| | | const isRunIn = (type: number) => type === 3; |
| | | let showHour = false; |
| | | let showMinute = false; |
| | | let showDay = false; |
| | | export const formSchema: FormSchema[] = [ |
| | | { |
| | | field: 'JobName', |
| | | label: '任务名称', |
| | | required: true, |
| | | component: 'Input', |
| | | ifShow: false, |
| | | }, |
| | | { |
| | | field: 'JobType', |
| | | label: '任务类名', |
| | | required: true, |
| | | component: 'Input', |
| | | colProps: { span: 24 }, |
| | | }, |
| | | { |
| | | field: 'AssemblyName', |
| | | label: '命名空间', |
| | | required: true, |
| | | component: 'Input', |
| | | colProps: { span: 24 }, |
| | | }, |
| | | { |
| | | field: 'Remark', |
| | | label: '描述', |
| | | required: true, |
| | | component: 'Input', |
| | | colProps: { span: 24 }, |
| | | }, |
| | | { |
| | | field: 'Period', |
| | | label: '间隔时间(m)', |
| | | field: 'NonReentrant', |
| | | label: '不重新进入', |
| | | component: 'RadioButtonGroup', |
| | | defaultValue: 'N', |
| | | colProps: { |
| | | span: 24, |
| | | }, |
| | | componentProps: { |
| | | options: [ |
| | | { label: '是', value: 'Y' }, |
| | | { label: '否', value: 'N' }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | field: 'runType', |
| | | label: '运行类型', |
| | | component: 'RadioButtonGroup', |
| | | defaultValue: 0, |
| | | componentProps: ({ schema, tableAction, formActionType, formModel }) => { |
| | | return { |
| | | options: [ |
| | | { label: '马上运行', value: 0 }, |
| | | { label: '在(T)运行一次', value: 1 }, |
| | | { label: '隔(T)运行', value: 2 }, |
| | | { label: '(T)后运行一次', value: 3 }, |
| | | ], |
| | | onChange: (e) => {}, |
| | | }; |
| | | }, |
| | | colProps: { lg: 24, md: 24 }, |
| | | }, |
| | | { |
| | | field: 'type', |
| | | label: '时间类型', |
| | | component: 'ApiSelect', |
| | | colProps: { span: 12 }, |
| | | defaultValue: 0, |
| | | componentProps: { |
| | | api: GetEnum, |
| | | params: { name: 'TrigArgs+EveryType' }, |
| | | resultField: 'Data', |
| | | labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', |
| | | valueField: 'Value', |
| | | onChange: (e, v) => { |
| | | console.log('ApiSelect====>:', e, v); |
| | | if (Number(e) < 3) { |
| | | showMinute = false; |
| | | showHour = false; |
| | | } |
| | | if (e == 3) { |
| | | showMinute = true; |
| | | showHour = false; |
| | | } |
| | | if (Number(e) > 3) { |
| | | showMinute = true; |
| | | showHour = true; |
| | | } |
| | | if (Number(e) == 7) { |
| | | showDay = true; |
| | | } else { |
| | | showDay = false; |
| | | } |
| | | }, |
| | | }, |
| | | }, |
| | | { |
| | | field: 'ToRunOnceAtDt', |
| | | label: '运行时间点', |
| | | required: true, |
| | | component: 'InputNumber', |
| | | component: 'TimePicker', |
| | | colProps: { span: 12 }, |
| | | componentProps: ({ formModel }) => { |
| | | return { |
| | | format: 'HH:mm', |
| | | }; |
| | | }, |
| | | ifShow: ({ values }) => isRunAt(values.runType), |
| | | }, |
| | | { |
| | | field: 'NowAddMinutes', |
| | | label: '增加分钟数', |
| | | defaultValue: '0', |
| | | component: 'Input', |
| | | colProps: { span: 12 }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | // @ts-ignore |
| | | validator: async (rule, value) => { |
| | | if (isNaN(Number(value))) { |
| | | return Promise.reject(t('不是数字')); |
| | | } |
| | | return Promise.resolve(); |
| | | }, |
| | | trigger: 'change', |
| | | }, |
| | | ], |
| | | ifShow: ({ values }) => isRunAt(values.runType), |
| | | }, |
| | | { |
| | | field: 'ToRunEvery', |
| | | label: '隔多少执行', |
| | | defaultValue: '0', |
| | | component: 'Input', |
| | | colProps: { span: 12 }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | // @ts-ignore |
| | | validator: async (rule, value) => { |
| | | if (isNaN(Number(value))) { |
| | | return Promise.reject(t('不是数字')); |
| | | } |
| | | return Promise.resolve(); |
| | | }, |
| | | trigger: 'change', |
| | | }, |
| | | ], |
| | | ifShow: ({ values }) => |
| | | isRunNow(values.runType) || isRunAt(values.runType) || isEvery(values.runType), |
| | | }, |
| | | { |
| | | field: 'ToRunOnceIn', |
| | | label: '多少后执行', |
| | | defaultValue: '0', |
| | | component: 'Input', |
| | | colProps: { span: 12 }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | // @ts-ignore |
| | | validator: async (rule, value) => { |
| | | if (isNaN(Number(value))) { |
| | | return Promise.reject(t('不是数字')); |
| | | } |
| | | return Promise.resolve(); |
| | | }, |
| | | trigger: 'change', |
| | | }, |
| | | ], |
| | | ifShow: ({ values }) => isRunIn(values.runType), |
| | | }, |
| | | { |
| | | field: 'Days', |
| | | label: '天数', |
| | | defaultValue: '0', |
| | | component: 'Input', |
| | | colProps: { span: 12 }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | // @ts-ignore |
| | | validator: async (rule, value) => { |
| | | if (isNaN(Number(value))) { |
| | | return Promise.reject(t('不是数字')); |
| | | } |
| | | return Promise.resolve(); |
| | | }, |
| | | trigger: 'change', |
| | | }, |
| | | ], |
| | | ifShow: () => showDay, |
| | | }, |
| | | { |
| | | field: 'Hours', |
| | | label: '小时数', |
| | | defaultValue: '0', |
| | | component: 'Input', |
| | | colProps: { span: 12 }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | // @ts-ignore |
| | | validator: async (rule, value) => { |
| | | if (isNaN(Number(value))) { |
| | | return Promise.reject(t('不是数字')); |
| | | } |
| | | return Promise.resolve(); |
| | | }, |
| | | trigger: 'change', |
| | | }, |
| | | ], |
| | | ifShow: () => showHour, |
| | | }, |
| | | { |
| | | field: 'Minutes', |
| | | label: '分钟数', |
| | | defaultValue: '0', |
| | | component: 'Input', |
| | | colProps: { span: 12 }, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | // @ts-ignore |
| | | validator: async (rule, value) => { |
| | | if (isNaN(Number(value))) { |
| | | return Promise.reject(t('不是数字')); |
| | | } |
| | | return Promise.resolve(); |
| | | }, |
| | | trigger: 'change', |
| | | }, |
| | | ], |
| | | ifShow: () => showMinute, |
| | | }, |
| | | { |
| | | field: 'ID', |