config.ts 6.56 KB
import { FormSchema } from '/@/components/Table';

/**
 * 所使用的枚举值
 */

export enum TriggerEnum {
  IS_DEVICE_ACT = 'DEVICE_ACT',
  IS_TIME_ACT = 'TIME_ACT',
  IS_SCENE_ACT = 'SCENE_ACT',
}

export const isShiDu = (type: string) => {
  return type === TriggerEnum.IS_DEVICE_ACT;
};
export const isWenDu = (type: string) => {
  return type === TriggerEnum.IS_TIME_ACT;
};

export const isTimeAll = (type: string) => {
  return type === TriggerEnum.IS_SCENE_ACT;
};

export const formSchema: FormSchema[] = [
  {
    field: 'detail',
    label: '报警日程表',
    colProps: { span: 24 },
    required: true,
    component: 'Select',
    componentProps: {
      placeholder: '请选择报警日程表',
      options: [
        { label: '始终启用', value: 'DEVICE_ACT' },
        { label: '定时启用', value: 'TIME_ACT' },
        { label: '自定义启用', value: 'SCENE_ACT' },
      ],
    },
  },
  {
    field: 'time',
    label: '时区',
    colProps: { span: 24 },
    required: true,
    component: 'Input',
    componentProps: {
      placeholder: 'Asia/Shanghai (UTC+08:00)',
    },
    ifShow: ({ values }) =>
      isWenDu(Reflect.get(values, 'detail')) || isTimeAll(Reflect.get(values, 'detail')),
  },

  {
    field: 'data1',
    component: 'Checkbox',
    label: '星期一',
    colProps: {
      span: 8,
    },
    renderComponentContent: '',
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },

  {
    field: 'data2',
    component: 'Checkbox',
    label: '星期二',
    colProps: {
      span: 8,
    },
    renderComponentContent: '',
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'data3',
    component: 'Checkbox',
    label: '星期三',
    colProps: {
      span: 8,
    },
    renderComponentContent: '',
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'data4',
    component: 'Checkbox',
    label: '星期四',
    colProps: {
      span: 8,
    },
    renderComponentContent: '',
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'data5',
    component: 'Checkbox',
    label: '星期五',
    colProps: {
      span: 8,
    },
    renderComponentContent: '',
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'data6',
    component: 'Checkbox',
    label: '星期六',
    colProps: {
      span: 8,
    },
    renderComponentContent: '',
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'data7',
    component: 'Checkbox',
    label: '星期七',
    colProps: {
      span: 8,
    },
    renderComponentContent: '',
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'detail')),
  },

  {
    field: 'weekday',
    component: 'CheckboxGroup',
    label: '天',
    colProps: {
      span: 24,
    },
    rules: [
      {
        message: '每周至少选择一天',
        trigger: 'blur',
      },
    ],
    componentProps: {
      options: [
        {
          label: '星期一',
          value: '1',
        },
        {
          label: '星期二',
          value: '2',
        },
        {
          label: '星期三',
          value: '3',
        },
        {
          label: '星期四',
          value: '4',
        },
        {
          label: '星期五',
          value: '5',
        },
        {
          label: '星期六',
          value: '6',
        },
        {
          label: '星期七',
          value: '7',
        },
      ],
    },
    ifShow: ({ values }) => isWenDu(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isWenDu(Reflect.get(values, 'detail')),
  },
  {
    field: 'time',
    component: 'TimePicker',
    label: '时间选择',
    colProps: {
      span: 8,
    },
    ifShow: ({ values }) => isWenDu(Reflect.get(values, 'detail')),
  },
];