config.data.ts 3.06 KB
import { BasicColumn, FormSchema } from '/@/components/Table';
import { findDictItemByCode } from '/@/api/system/dict';
import { useComponentRegister } from '/@/components/Form';
import { OrgTreeSelect } from '../../common/OrgTreeSelect';
import { useI18n } from '/@/hooks/web/useI18n';
useComponentRegister('OrgTreeSelect', OrgTreeSelect);
const { t } = useI18n();
// 表格列数据
export const columns: BasicColumn[] = [
  {
    title: t('monitor.alarm.config.table.name'),
    dataIndex: 'name',
    width: 120,
  },
  {
    title: t('business.organizationText'),
    dataIndex: 'organizationName',
    width: 150,
  },
  {
    title: t('monitor.alarm.config.alarmContact'),
    dataIndex: 'alarmContactId',
    width: 155,
    slots: { customRender: 'alarmContact' },
  },
  {
    title: t('monitor.alarm.config.notification'),
    dataIndex: 'messageMode',
    width: 155,
    slots: { customRender: 'messageMode' },
  },
  {
    title: t('monitor.alarm.config.table.state'),
    dataIndex: 'status',
    width: 120,
    slots: { customRender: 'status' },
  },
  {
    title: t('monitor.alarm.config.remark'),
    dataIndex: 'remark',
    width: 120,
  },
  {
    title: t('monitor.alarm.config.table.createTime'),
    dataIndex: 'createTime',
    width: 180,
  },
  {
    title: t('monitor.alarm.config.table.updateTime'),
    dataIndex: 'updateTime',
    width: 180,
  },
];

// 查询字段
export const searchFormSchema: FormSchema[] = [
  {
    field: 'name',
    label: t('monitor.alarm.config.name'),
    component: 'Input',
    colProps: { span: 6 },
    componentProps: {
      maxLength: 36,
    },
  },
  {
    field: 'status',
    label: t('monitor.alarm.config.search.state'),
    component: 'Select',
    colProps: { span: 6 },
    componentProps: {
      options: [
        {
          label: t('monitor.alarm.config.search.enable'),
          value: 1,
        },
        {
          label: t('monitor.alarm.config.search.notEnable'),
          value: 0,
        },
      ],
    },
  },
];

// 弹框配置项
export const formSchema: FormSchema[] = [
  {
    field: 'name',
    label: t('monitor.alarm.config.name'),
    required: true,
    component: 'Input',
    componentProps: {
      maxLength: 30,
    },
  },
  {
    field: 'organizationId',
    label: t('business.organizationText'),
    component: 'OrgTreeSelect',
    required: true,
  },
  {
    field: 'alarmContactId',
    label: t('monitor.alarm.config.alarmContact'),
    component: 'Select',
    slot: 'alarmContactSlot',
    required: true,
  },
  {
    field: 'messageMode',
    label: t('monitor.alarm.config.alarm') + t('monitor.alarm.config.notification'),
    component: 'ApiSelect',
    helpMessage: [t('monitor.alarm.config.form.message')],
    required: true,
    componentProps: {
      mode: 'multiple',
      api: findDictItemByCode,
      params: {
        dictCode: 'message_type',
      },
      labelField: 'itemText',
      valueField: 'itemValue',
    },
  },
  {
    field: 'remark',
    label: t('monitor.alarm.config.remark'),
    component: 'InputTextArea',
    componentProps: {
      maxLength: 255,
    },
  },
];