import { useMessage } from '@/utils/element-ui'
import { deepClone } from '@/utils/index'

export const columns = (_this) => [
  {
    prop: 'formulaName',
    label: '公式名称'
  },
  {
    prop: 'formula',
    label: '公式'
  },
  {
    prop: 'VersionNumber',
    label: '版本号'
  },
  {
    button: true,
    label: '操作',

    group: [
      {
        name: '启用',
        type: 'text',
        round: false,
        plain: false,
        onClick: (row, index, scope) => {
          _this.enable(row)
        }
      }
    ]
  }
]

export const options = {
  stripe: true, // 斑马纹
  mutiSelect: false, // 多选框
  index: false, // 显示序号， 多选则 mutiSelect
  loading: false, // 表格动画
  initTable: true, // 是否一挂载就加载数据
  border: true,
  height: 'calc(100vh - 340px)'
}

export const addFormula = (item, _this) => {
  let n = deepClone(_this.activeRow.formulaUse)

  const syf = ['+', '-', '*', '/']
  if (item.dictLabel == '删除') {
    if (n.length == 0) {
      return
    } else {
      let c = n.slice(2, n.length - 2).split(' ')
      let j = c.slice(0, c.length - 1)
      if (j.length == 0) {
        _this.activeRow.formulaUse = ''
        return
      } else {
        const str = j.join(' ')
        _this.activeRow.formulaUse = `$$${str}$$`
        return
      }
    }
  }
  if (item.dictLabel == '清空') {
    _this.activeRow.formulaUse = ''
  } else {
    // 如果是空
    if (n.length == 0) {
      // 第一位不能输入 syf 里面的任意字符
      if (syf.find((i) => i == item.dictValue)) {
        /* eslint-disable */
        useMessage('error', `第一位不能输入 + -  * / `)
        return
      }
      _this.activeRow.formulaUse = `$$${item.dictValue}$$`
    } else {
      // 先拿到当前的字符 去除前后 $$ 符号 以空格分隔
      let c = n.slice(2, n.length - 2).split(' ')
      // 不能连续输入  syf 里面的任意字符
      if (syf.find((i) => i == c[c.length - 1]) && syf.find((i) => i == item.dictValue)) {
        /* eslint-disable */
        useMessage('error', `不能连续输入 + -  * / `)
        return
      }
      // 不能连续输入不能连续输入两个参数
      if (_this.btnList.find((i) => i.dictValue == c[c.length - 1]) && _this.btnList.find((i) => i.dictValue == item.dictValue)) {
        useMessage('error', `不能连续输入两个参数`)
        return
      }
      c.push(item.dictValue)
      const str = c.join(' ')
      _this.activeRow.formulaUse = `$$${str}$$`
    }
  }
}
