config.data.ts 3.28 KB
import { BasicColumn, FormSchema } from '/@/components/Table';
import { dingRule, emailRule, phoneRule } from '/@/utils/rules';
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.contacts.table.name'),
    dataIndex: 'username',
    width: 120,
  },
  {
    title: t('business.organizationText'),
    dataIndex: 'organizationDTO.name',
    width: 160,
  },
  {
    title: t('monitor.alarm.contacts.phone'),
    dataIndex: 'phone',
    width: 160,
  },
  {
    title: t('monitor.alarm.contacts.email'),
    dataIndex: 'email',
    width: 160,
  },
  {
    title: t('monitor.alarm.contacts.weChat'),
    dataIndex: 'wechat',
    width: 180,
  },
  {
    title: t('monitor.alarm.contacts.dingTalk'),
    dataIndex: 'dingtalk',
    width: 160,
  },
  {
    title: t('monitor.alarm.contacts.table.remark'),
    dataIndex: 'remark',
    width: 120,
  },

  {
    title: t('monitor.alarm.contacts.table.createTime'),
    dataIndex: 'createTime',
    width: 180,
  },
  {
    title: t('monitor.alarm.contacts.table.updateTime'),
    dataIndex: 'updateTime',
    width: 180,
  },
];

// 查询字段
export const searchFormSchema: FormSchema[] = [
  {
    field: 'username',
    label: t('monitor.alarm.contacts.contactName'),
    component: 'Input',
    colProps: { span: 8 },
    componentProps: {
      maxLength: 36,
    },
  },
];

// 弹框配置项
export const formSchema: FormSchema[] = [
  {
    field: 'username',
    label: t('monitor.alarm.contacts.contactName'),
    required: true,
    component: 'Input',
    componentProps: {
      maxLength: 30,
    },
  },
  {
    field: 'organizationId',
    label: t('business.organizationText'),
    required: true,
    component: 'OrgTreeSelect',
  },
  {
    field: 'phone',
    label: t('monitor.alarm.contacts.phoneNumber'),
    component: 'Input',
    componentProps: {
      maxLength: 11,
    },
    rules: phoneRule,
  },
  {
    field: 'email',
    label: t('monitor.alarm.contacts.email'),
    component: 'Input',
    rules: emailRule,
  },
  {
    field: 'wechat',
    label: t('monitor.alarm.contacts.weChat'),
    component: 'Input',
    helpMessage: t('monitor.alarm.contacts.weChatMessageNew'),
    componentProps: {
      placeholder: t('monitor.alarm.contacts.table.dingPlace'),
      maxLength: 255,
    },
  },
  // {
  //   field: 'wechatMessage',
  //   label: ' ',
  //   slot: 'wechatMessage',
  //   component: 'Input',
  //   ifShow: ({ model }) => model.wechat,
  // },
  {
    field: 'dingtalk',
    label: t('monitor.alarm.contacts.dingTalk'),
    component: 'Input',
    helpMessage: t('monitor.alarm.contacts.table.dingMessage'),
    rules: dingRule,
    componentProps: {
      placeholder: t('monitor.alarm.contacts.table.dingPlace'),
      maxLength: 11,
    },
  },
  {
    field: 'remark',
    label: t('monitor.alarm.contacts.table.remark'),
    component: 'InputTextArea',
    componentProps: {
      maxLength: 255,
    },
  },
  {
    field: 'id',
    label: '',
    component: 'Input',
    show: false,
    componentProps: {
      maxLength: 36,
      placeholder: 'id',
    },
  },
];