const validatePass = (rule, value, callback) => {
  const pattern = /^(?!0\d)(\d+|\d+\.\d{1,2})$/
  if (value === '') {
    callback(new Error('请输入因子'))
  } else if (!pattern.test(String(value))) {
    callback(new Error('请输入正整数或保留两位的小数!'))
  } else {
    callback()
  }
}
export const modalConfig = (_this) => ({
  formItems: [
    { key: 'env', type: 'input', label: '环境因子名称', colLayout: { span: 24 } },
    { key: 'factor', type: 'input', label: '环境因子值', colLayout: { span: 24 } },
    {
      key: 'envStatus',
      type: 'radio',
      label: '状态',
      colLayout: { span: 24 },
      valueOptions: [
        { label: '启用', value: '0' },
        { label: '禁用', value: '1' }
      ]
    },
    {
      key: 'remark',
      type: 'input',
      label: '描述',
      placeHolder: '请输入备注',
      colLayout: { span: 24 },
      inputOptions: {
        type: 'textarea',
        rows: '2',
        style: 'width: 100%'
      }
    }
  ],
  labelWidth: '100px',
  itemStyle: { padding: '10px' },
  width: '600px', // 弹框宽度
  rules: {
    factor: [{ validator: validatePass, trigger: 'blur' }]
  }
})

/**
 *
 * @param {*} _this 当前vue 的实例
 * @returns  返回一个表格配置数组
 */

export const columns = (_this) => [
  {
    prop: 'env',
    label: '环境因子名称'
  },
  {
    prop: 'factor',
    label: '环境因子值'
  },
  {
    prop: 'envStatus',
    label: '状态',
    render: (h, params) => {
      if (params.row.envStatus == 0) {
        return h('span', { style: 'color: #008000' }, '启用')
      } else {
        return h('span', { style: 'color: #ff0000' }, '禁用')
      }
    }
  },
  {
    prop: 'remark',
    label: '描述'
  },

  {
    button: true,
    label: '操作',
    width: '300px',
    group: [
      {
        name: '编辑',
        type: 'text',
        round: false,
        plain: false,
        onClick: (row, index, scope) => {
          _this.handUpdate(row)
        }
      },
      {
        name: '启用',
        type: 'text',
        statusKey: 'envStatus',
        unDisableKey: 1,
        round: false,
        plain: false,
        onClick: (row, index, scope) => {
          _this.operation(row, 0)
        }
      },
      {
        name: '禁用',
        type: 'text',
        statusKey: 'envStatus',
        unDisableKey: 0,
        round: false,
        plain: false,
        onClick: (row, index, scope) => {
          _this.operation(row, 1)
        }
      },
      {
        name: '删除',
        type: 'text',
        round: false,
        plain: false,
        onClick: (row, index, scope) => {
          _this.handleDelete([row])
        }
      },
      {
        name: '适用航材',
        type: 'text',
        round: false,
        plain: false,
        onClick: (row, index, scope) => {
          _this.handparts(row)
        }
      }
    ]
  }
]

// export const data = [
//   {
//     id: 1,
//     serviceEnvironment: '沿海',
//     factor: '1.2',
//     remark: '沿海有核辐射',
//     status: '0'
//   },
//   {
//     id: 2,
//     serviceEnvironment: '沙漠',
//     factor: '1.3',
//     remark: '沙哈拉沙漠',
//     status: '1'
//   },
//   {
//     id: 3,
//     serviceEnvironment: '山地',
//     factor: '1.4',
//     remark: '山地自行车',
//     status: '0'
//   },
//   {
//     id: 4,
//     serviceEnvironment: '平原',
//     factor: '1.5',
//     remark: '青青草原',
//     status: '1'
//   }
// ]
/**
 *
 * @returns 返回表格基础配置项
 */
export const options = {
  rowKey: 'envFactorId',
  stripe: true, // 斑马纹
  mutiSelect: true, // 多选框
  index: false, // 显示序号， 多选则 mutiSelect
  loading: false, // 表格动画
  initTable: true, // 是否一挂载就加载数据
  border: true,
  height: 'calc(100vh - 300px)'
}
