import { BasicColumn, FormSchema, render } from '@jdlinker/ui';
import { Badge, Space } from 'ant-design-vue';

export const statusMap = {
  started: <Badge status='success' text='正常' />,
  disable: <Badge status='error' text='禁用' />
};

//列表数据
export const columns: BasicColumn[] = [
  {
    title: '告警名称',
    align: 'center',
    dataIndex: 'name'
  },
  {
    title: '触发方式',
    align: 'center',
    dataIndex: 'triggerType',
    customRender: ({ text }) => {
      return render.renderDict(text, 'trigger_type');
    }
  },
  {
    title: '状态',
    align: 'center',
    dataIndex: 'state',
    customRender: ({ record }) => {
      return <Space size={0}>{statusMap[record.state.value]}</Space>;
    }
  }
];
//查询数据
export const searchFormSchema: FormSchema[] = [
  {
    label: '告警名称',
    field: 'name',
    component: 'Input'
  },
  {
    label: '状态',
    field: 'state',
    component: 'Select',
    componentProps: {
      options: [
        {
          label: '已启动',
          value: 'started',
          key: 'started'
        },
        {
          label: '已禁用',
          value: 'disable',
          key: 'disable'
        }
      ]
    }
  },
  {
    label: '触发方式',
    field: 'triggerType',
    component: 'JDictSelectTag',
    componentProps: {
      dictCode: 'trigger_type'
    },
    colProps: { span: 6 }
  }
];
// //表单数据
// export const formSchema: FormSchema[] = [
//   {
//     label: '告警名称',
//     field: 'name',
//     component: 'Input',
//   },
//   {
//     label: '触发条件',
//     field: 'terms',
//     component: 'InputTextArea',
//   },
//   {
//     label: '触发器',
//     field: 'trigger',
//     component: 'InputTextArea',
//   },
//   {
//     label: '触发器类型',
//     field: 'triggerType',
//     component: 'JDictSelectTag',
//     componentProps: {
//       dictCode: 'trigger_type',
//     },
//   },
//   {
//     label: '是否并行执行动作',
//     field: 'parallel',
//     component: 'Input',
//   },
//   {
//     label: '执行动作',
//     field: 'actions',
//     component: 'InputTextArea',
//   },
//   {
//     label: '启动时间',
//     field: 'startTime',
//     component: 'Input',
//   },
//   {
//     label: '说明',
//     field: 'description',
//     component: 'Input',
//   },
//   // TODO 主键隐藏字段，目前写死为ID
//   {
//     label: '',
//     field: 'id',
//     component: 'Input',
//     show: false,
//   },
// ];
//
// export const TRIGGER_TYPE = ref([
//   { value: 'device', name: '设备触发', enName: '适用于设备数据或行为满足触发条件时，执行指定的动作' },
//   { value: 'manual', name: '手动触发', enName: '适用于第三方平台向物联网平台下发指令控制设备' },
//   { value: 'timer', name: '定时触发', enName: '适用于物联网平台定期执行固定任务' },
// ]);
//
// export const TriggerEnum = [
//   { label: '按周', value: 'week' },
//   { label: '按月', value: 'month' },
//   { label: 'cron表达式', value: 'cron' },
// ];
//
// export const TriggerWeek = [
//   { label: '周一', value: 1 },
//   { label: '周二', value: 2 },
//   { label: '周三', value: 3 },
//   { label: '周四', value: 4 },
//   { label: '周五', value: 5 },
//   { label: '周六', value: 6 },
//   { label: '周末', value: 7 },
// ];
//
// export const PeriodModEnum = [
//   { label: '周期执行', value: 'period' },
//   { label: '执行一次', value: 'once' },
// ];
//
// export const serialConditions = [
//   { label: '消息通知', value: 'notify' },
//   { label: '设备输出', value: 'device' },
//   { label: '延迟执行', value: 'delay' },
// ];
//
// export const parallelConditions = [
//   { label: '消息通知', value: 'notify' },
//   { label: '设备输出', value: 'device' },
// ];
//
// export const notifyTypeList = [
//   { name: '邮件', value: 'email' },
//   { name: '钉钉', value: 'dingTalk' },
//   { name: '网络组件', value: 'network' },
//   { name: '短信', value: 'sms' },
//   { name: '语音', value: 'voice' },
//   { name: '微信', value: 'weixin' },
// ];
//
// export const triggerSelectorEnum = [
//   { label: '全部设备', value: 'all' },
//   { label: '固定设备', value: 'fixed' },
//   { label: '按组织', value: 'org' },
// ];
//
// export const actionSelectorEnum = [
//   { label: '固定设备', value: 'fixed' },
//   { label: '按关系', value: 'relation' },
//   { label: '按标签', value: 'tag' },
// ];
//
// export const MessageTypeEnum = [
//   { label: '功能调用', value: 'INVOKE_FUNCTION' },
//   { label: '读取属性', value: 'READ_PROPERTY' },
//   { label: '设置属性', value: 'WRITE_PROPERTY' },
// ];
//
// // const metadataObj = JSON.parse(metadata || '{}');
// export const operatorType = [
//   { label: '设备上线', value: 'online' },
//   { label: '设备离线', value: 'offline' },
// ];
// // if (metadataObj.properties && metadataObj.properties.length) {
// export const newOperator = [
//   ...operatorType,
//   { label: '属性上报', value: 'reportProperty' },
//   { label: '属性读取', value: 'readProperty' },
//   { label: '修改属性', value: 'writeProperty' },
// ];
