king
2023-03-24 deab3ddf1990cd25b4692d1358ac9d50856644f0
src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
@@ -37,7 +37,7 @@
        inputType: 'input',
        editable: true,
        unique: true,
        width: '17%'
        width: '16%'
      },
      {
        title: '名称',
@@ -45,7 +45,7 @@
        inputType: 'input',
        editable: true,
        unique: true,
        width: '17%'
        width: '16%'
      },
      {
        title: '列宽',
@@ -54,7 +54,7 @@
        min: 5,
        max: 200,
        editable: true,
        width: '12%',
        width: '10%',
        render: (text) => text || 20
      },
      {
@@ -63,7 +63,7 @@
        inputType: 'select',
        editable: true,
        required: false,
        width: '14%',
        width: '12%',
        render: (text) => {
          if (text === 'image') {
            return '图片'
@@ -85,7 +85,7 @@
        inputType: 'radio',
        editable: true,
        required: false,
        width: '14%',
        width: '12%',
        render: (text) => {
          if (text === 'true') {
            return '是'
@@ -114,7 +114,7 @@
        inputType: 'radio',
        editable: true,
        required: false,
        width: '14%',
        width: '12%',
        render: (text) => {
          if (text !== 'false') {
            return '是'
@@ -126,7 +126,19 @@
          {value: 'true', text: '是'},
          {value: 'false', text: '否'}
        ]
      }
      },
      {
        title: '红色标题',
        dataIndex: 'required',
        width: '10%',
        editable: true,
        inputType: 'radio',
        render: (text, record) => record.required === 'true' ? '是' : '否',
        options: [
          {value: 'true', text: '是'},
          {value: 'false', text: '否'}
        ]
      },
    ],
    scriptsColumns: [
      {
@@ -215,13 +227,21 @@
    if (card.intertype !== 'system') {
      _verify.enable = 'false'
    }
    if (_verify.columns[0] && (!_verify.columns[0].type || !_verify.columns[0].output)) {
      _verify.columns = _verify.columns.map(col => {
        col.type = col.type || 'text'
        col.output = col.output || 'true'
        return col
      })
    }
    _verify.columns = _verify.columns.map(col => {
      col.type = col.type || 'text'
      col.output = col.output || 'true'
      col.required = col.required || 'false'
      if (!['text', 'image', 'number'].includes(col.type)) {
        if (/^Decimal/ig.test(col.type)) {
          col.type = 'number'
        } else {
          col.type = 'text'
        }
      }
      return col
    })
    let defaultscript = ''
    if (!_verify.script && card.intertype === 'system') {
@@ -459,6 +479,7 @@
    values.uuid = Utils.getuuid()
    values.abs = 'false'
    values.output = 'true'
    values.required = 'false'
    verify.columns.push(values)
    this.setState({
@@ -670,6 +691,13 @@
            duration: 5
          })
          return
        } else if (/,,/ig.test(values.sql)) {
          notification.warning({
            top: 92,
            message: '自定义sql语句中,不可出现连续的英文逗号(,,)',
            duration: 5
          })
          return
        }
        let error = Utils.verifySql(values.sql, 'customscript')
@@ -751,6 +779,7 @@
        Width: 20,
        abs: 'false',
        output: 'true',
        required: 'false',
        type: 'text',
        uuid: Utils.getuuid()
      }
@@ -762,6 +791,31 @@
      columns.push(cell)
    })
    if (config.subtype === 'dualdatacard') {
      config.subColumns.forEach(item => {
        if (fields.includes(item.field) || !item.field) return
        fields.push(item.field)
        let cell = {
          Column: item.field,
          Text: item.label,
          Width: 20,
          abs: 'false',
          output: 'true',
          required: 'false',
          type: 'text',
          uuid: Utils.getuuid()
        }
        if (item.type === 'number') {
          cell.type = 'number'
          cell.decimal = item.decimal
        }
        columns.push(cell)
      })
    }
    this.setState({
      verify: {...verify, columns: columns}
@@ -789,21 +843,37 @@
  changeColumns = (columns) => {
    const { verify } = this.state
    if (columns[0] && !['image', 'text', 'number'].includes(columns[0].type)) {
      columns = columns.map(col => {
        let _cell = {
          uuid: Utils.getuuid(),
          Column: col.Column,
          Text: col.Text,
          Width: 20,
          abs: 'false',
          output: col.output || 'true',
          type: 'text',
        }
    columns = columns.map(col => {
      col.type = col.type || 'text'
      col.output = col.output || 'true'
      col.required = col.required || 'false'
        return _cell
      })
    }
      if (!['text', 'image', 'number'].includes(col.type)) {
        if (/^Decimal/ig.test(col.type)) {
          col.type = 'number'
        } else {
          col.type = 'text'
        }
      }
      return col
    })
    // if (columns[0] && !['image', 'text', 'number'].includes(columns[0].type)) {
    //   columns = columns.map(col => {
    //     let _cell = {
    //       uuid: Utils.getuuid(),
    //       Column: col.Column,
    //       Text: col.Text,
    //       Width: 20,
    //       abs: 'false',
    //       output: col.output || 'true',
    //       required: col.required || 'false',
    //       type: 'text',
    //     }
    //     return _cell
    //   })
    // }
    this.setState({verify: {...verify, columns}})
  }
@@ -868,10 +938,9 @@
      if (this.scriptsForm && this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))) {
        notification.warning({
          top: 92,
          message: '存在未保存脚本,请点击确定保存,或点击取消放弃修改!',
          message: '存在未保存脚本!',
          duration: 5
        })
        return
      }
      this.setState({loading: true})
@@ -996,7 +1065,7 @@
            <Button className="excel-col-add mk-red" title="清空Excel列" onClick={this.clearField}>
              清空Excel列
            </Button>
            <div style={{color: '#959595', fontSize: '13px', paddingLeft: '10px'}}>如需导出序号,请使用字段 $Index;数值类型导出时可进行数据处理(取绝对值、保留小数位)。</div>
            <div style={{color: '#959595', fontSize: '13px', paddingLeft: '10px'}}>如需导出序号,请使用字段 $Index;数值类型导出时可进行数据处理(取绝对值、保留小数位);红色标题导出时列头文字为红色。</div>
            <EditTable actions={['edit', 'move', 'copy', 'del']} type="excelcolumn" wrappedComponentRef={(inst) => this.columnRef = inst} data={verify.columns} columns={excelColumns} onChange={this.changeColumns}/>
          </TabPane>
          {card.intertype === 'system' ? <TabPane tab={