config.data.ts 5.39 KB
import { DescItem } from '/@/components/Description/index';
import { BasicColumn, FormSchema } from '/@/components/Table';
import moment from 'moment';
import { h } from 'vue';
import { Tag } from 'ant-design-vue';
import { useI18n } from '/@/hooks/web/useI18n';

///任务组名Enum
export enum EJobGroup {
  DEFAULT = 'DEFAULT',
  SYSTEM = 'SYSTEM',
  REPORT = 'REPORT',
  TASK_CENTER = 'TASK_CENTER',
}

export enum EJobGroupName {
  DEFAULT = '默认',
  SYSTEM = '系统',
  REPORT = '报表',
  TASK_CENTER = '任务中心',
}

const { t } = useI18n();
//任务详细配置
export const personSchema: DescItem[] = [
  {
    field: 'jobGroup',
    label: t('system.tasks.taskGroup'),
    render: (value: EJobGroup) => {
      return t(`system.tasks.EJobGroup.${value}`);
    },
  },
  {
    field: 'jobName',
    label: t('system.tasks.taskName'),
  },
  {
    field: 'createTime',
    label: t('common.createTimeText') + ':',
  },
  {
    field: 'cronExpression',
    label: t('system.tasks.cron') + ':',
  },
  {
    field: 'updateTime',
    label: t('system.tasks.logDetail.nextTime'),
  },
  {
    field: 'invokeTarget',
    label: t('system.tasks.logDetail.callTarget'),
  },
  {
    field: 'status',
    label: t('system.tasks.table.taskState') + ':',
    render: (_, data) => {
      return data.status == 1 ? t('common.enableText') : t('common.disableText');
    },
  },
  {
    field: 'concurrent',
    label: t('system.tasks.table.isConcurrent') + ':',
    render: (_, data) => {
      return data.concurrent == 0 ? t('system.tasks.table.allow') : t('system.tasks.table.disable');
    },
  },
  {
    field: 'misfirePolicy',
    label: t('system.tasks.table.strategy') + ':',
    render: (_, data) => {
      return data.misfirePolicy == 0
        ? t('system.tasks.table.immediate')
        : data.misfirePolicy == 1
        ? t('system.tasks.executeOnce')
        : t('system.tasks.table.execution');
    },
  },
];

// 调度日志表格配置
export const columnSchedue: BasicColumn[] = [
  {
    title: t('system.tasks.taskName'),
    dataIndex: 'jobName',
    width: 120,
  },
  {
    title: t('system.tasks.taskGroup'),
    dataIndex: 'jobGroup',
    width: 120,
    format: (text: string) => {
      return t(`system.tasks.EJobGroup.${text}`) || t(`system.tasks.EJobGroup.REPORT`);
    },
  },
  {
    title: t('system.tasks.table.callTarget'),
    dataIndex: 'invokeTarget',
    width: 120,
  },
  {
    title: t('system.tasks.logDetail.loginfo'),
    dataIndex: 'jobMessage',
    width: 160,
    format(text) {
      return t('system.tasks.logDetail.timeConsuming', { time: text });
    },
  },
  {
    title: t('system.tasks.logDetail.state'),
    dataIndex: 'status',
    width: 160,
    customRender: ({ record }) => {
      const status = record.status;
      const success = status === 1;
      const color = success ? 'green' : 'red';
      const successText = t('common.successText');
      const failedText = t('common.failText');
      const text = success ? successText : failedText;
      return h(Tag, { color: color }, () => text);
    },
  },
  {
    title: t('system.tasks.logDetail.time'),
    dataIndex: 'startTime',
    width: 180,
  },
];

// 调度日志表格查询配置
export const searchSchedueFormSchema: FormSchema[] = [
  {
    field: 'jobName',
    label: t('system.tasks.taskName'),
    component: 'Input',
    colProps: { span: 4 },
    componentProps: {
      maxLength: 36,
    },
  },
  {
    field: 'jobGroup',
    label: t('system.tasks.taskGroup'),
    component: 'Select',
    colProps: { span: 4 },
    componentProps: {
      options: [
        {
          label: t('system.tasks.table.deault'),
          value: EJobGroup.DEFAULT,
        },
        {
          label: t('system.tasks.table.system'),
          value: EJobGroup.SYSTEM,
        },
        {
          label: t('system.tasks.table.report'),
          value: EJobGroup.REPORT,
        },
      ],
    },
  },
  {
    field: 'status',
    label: t('system.tasks.logDetail.state'),
    component: 'Select',
    colProps: { span: 4 },
    componentProps: {
      options: [
        {
          label: t('common.successText'),
          value: 1,
        },
        {
          label: t('common.failText'),
          value: 0,
        },
      ],
    },
  },
  {
    field: 'sendTime',
    label: t('system.tasks.logDetail.time'),
    component: 'RangePicker',
    componentProps: {
      showTime: {
        defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')],
      },
    },
    colProps: { span: 4 },
  },
];
// 调度日志详情
export const scheduleLogDetailSchema: DescItem[] = [
  {
    field: 'jobName',
    label: t('system.tasks.taskName'),
  },
  {
    field: 'jobGroup',
    label: t('system.tasks.taskGroup') + ':',
    render: (_, data) => {
      return data.jobGroup == EJobGroup.DEFAULT
        ? t('system.tasks.table.default')
        : data.jobGroup == EJobGroup.SYSTEM
        ? t('system.tasks.table.system')
        : t('system.tasks.table.report');
    },
  },
  {
    field: 'invokeTarget',
    label: t('system.tasks.table.callTarget') + ':',
  },
  {
    field: 'jobMessage',
    label: t('system.tasks.logDetail.loginfo') + ':',
  },
  {
    field: 'status',
    label: t('system.tasks.logDetail.state') + ':',
    render: (_, data) => {
      return data.status == 1 ? t('common.successText') : t('common.failText');
    },
  },
  {
    field: 'startTime',
    label: t('system.tasks.logDetail.time') + ':',
  },
];