king
2023-06-12 07c005cf28acf74e3afde82122e4c53e1000d70c
src/menu/components/share/actioncomponent/index.jsx
@@ -60,7 +60,7 @@
  }
  componentDidMount () {
    MKEmitter.addListener('revert', this.revert)
    MKEmitter.addListener('revertBtn', this.revertBtn)
    MKEmitter.addListener('addButton', this.addButton)
    MKEmitter.addListener('submitModal', this.handleSave)
  }
@@ -76,12 +76,14 @@
    this.setState = () => {
      return
    }
    MKEmitter.removeListener('revert', this.revert)
    MKEmitter.removeListener('revertBtn', this.revertBtn)
    MKEmitter.removeListener('addButton', this.addButton)
    MKEmitter.removeListener('submitModal', this.handleSave)
  }
  revert = () => {
  revertBtn = (id) => {
    if (id && id !== this.props.config.uuid) return
    this.setState({
      actionlist: fromJS(this.props.config.action).toJS()
    })
@@ -255,11 +257,133 @@
   */
  handleSubmit = () => {
    const { config } = this.props
    let color = { primary: '#1890ff', yellow: '#c49f47', orange: 'orange', danger: '#ff4d4f', green: '#26C281', dgreen: '#32c5d2', purple: '#8E44AD', cyan: '#13c2c2', gray: '#666666', default: '#333333' }
    let color = { primary: '#1890ff', yellow: '#c49f47', orange: 'orange', danger: '#ff4d4f', green: '#26C281', dgreen: '#32c5d2', purple: '#8E44AD', cyan: '#13c2c2', gray: '#E7E7EF', default: 'rgba(0, 0, 0, 0.65)' }
    let _actionlist = fromJS(this.state.actionlist).toJS()
    
    this.actionFormRef.handleConfirm().then(btn => {
      _actionlist = _actionlist.filter(item => !item.origin || item.uuid === btn.uuid)
      if ((btn.OpenType === 'excelIn' || btn.OpenType === 'excelOut') && (!btn.verify || !btn.verify.columns) && (config.subtype === 'basetable' || config.subtype === 'normaltable')) {
        let columns = []
        let maps = []
        let labels = {}
        if (config.subtype === 'normaltable') {
          config.columns.forEach(col => {
            labels[col.field] = col.label
          })
        }
        if (btn.OpenType === 'excelOut') {
          let pushcol = (item) => {
            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)
          }
          config.cols.forEach(item => {
            if (item.Hide === 'true') return
            if (config.subtype === 'normaltable') {
              if (item.type === 'colspan') {
                item.subcols.forEach(cell => {
                  if (!cell.field || cell.Hide === 'true' || maps.includes(cell.field)) return
                  maps.push(cell.field)
                  pushcol(cell)
                })
              } else if (item.type === 'custom') {
                item.elements.forEach(cell => {
                  if (!cell.field || maps.includes(cell.field)) return
                  maps.push(cell.field)
                  pushcol({...cell, label: labels[cell.field]})
                })
              }
            }
            if (!item.field || maps.includes(item.field)) return
            maps.push(item.field)
            pushcol(item)
          })
          btn.verify = btn.verify || {enable: 'false', dataType: 'default', scripts: []}
          btn.verify.columns = columns
        } else {
          let pushcol = (item) => {
            let _type = 'Nvarchar(50)'
            let _limit = '50'
            if (item.type === 'number' && !item.decimal) {
              _type = 'Int'
              _limit = ''
            } else if (item.type === 'number') {
              _type = 'Decimal(18,' + item.decimal + ')'
              _limit = item.decimal
            }
            let _cell = {
              uuid: Utils.getuuid(),
              Column: item.field,
              Text: item.label,
              type: _type,
              limit: _limit,
              import: 'true',
              required: 'true'
            }
            if (_type !== 'Nvarchar(50)') {
              _cell.min = 0
              _cell.max = 999999
            }
            columns.push(_cell)
          }
          config.cols.forEach(item => {
            if (item.Hide === 'true') return
            if (config.subtype === 'normaltable') {
              if (item.type === 'colspan') {
                item.subcols.forEach(cell => {
                  if (!cell.field || cell.Hide === 'true' || maps.includes(cell.field)) return
                  maps.push(cell.field)
                  pushcol(cell)
                })
              } else if (item.type === 'custom') {
                item.elements.forEach(cell => {
                  if (!cell.field || maps.includes(cell.field)) return
                  maps.push(cell.field)
                  pushcol({...cell, label: labels[cell.field]})
                })
              }
            }
            if (!item.field || maps.includes(item.field)) return
            maps.push(item.field)
            pushcol(item)
          })
          btn.verify = btn.verify || {sheet: 'Sheet1', default: 'true', range: 1, scripts: [], uniques: []}
          btn.verify.columns = columns
        }
      }
      let labelrepet = false
      _actionlist = _actionlist.map(item => {
@@ -270,21 +394,43 @@
        if (item.uuid === btn.uuid) {
          if (config.subtype === 'basetable') {
            let _c = btn.class.replace('border-', '')
            if (btn.class.indexOf('border') > -1 || btn.class === 'default') {
            if (btn.class === 'default') {
              btn.style = {color: 'rgba(0, 0, 0, 0.65)', backgroundColor: '#fff', borderColor: '#d9d9d9', marginRight: '15px'}
            } else if (btn.class.indexOf('border') > -1) {
              btn.style = {color: color[_c], backgroundColor: '#fff', borderColor: color[_c], marginRight: '15px'}
            } else if (btn.class === 'gray') {
              btn.style = {color: 'rgba(0, 0, 0, 0.65)', backgroundColor: color[_c], borderColor: color[_c], marginRight: '15px'}
            } else {
              btn.style = {color: '#fff', backgroundColor: color[_c], borderColor: color[_c], marginRight: '15px'}
            }
          } else {
            btn.style = item.style || {}
            if (btn.class !== item.class || btn.show !== item.show || !btn.style.color || item.focus) {
              if (btn.show === 'icon') {
                btn.style.color = color[btn.class]
                btn.style.backgroundColor = 'transparent'
              } else {
                btn.style.color = '#ffffff'
                btn.style.backgroundColor = color[btn.class]
            if (btn.class) {
              if (btn.class !== item.class || btn.show !== item.show || !btn.style.color || (item.focus && !btn.style.color)) {
                if (btn.show === 'icon') {
                  btn.style.color = color[btn.class]
                  btn.style.backgroundColor = 'transparent'
                } else if (btn.class === 'default') {
                  btn.style.color = 'rgba(0, 0, 0, 0.65)'
                  btn.style.backgroundColor = '#fff'
                  btn.style.borderColor = '#d9d9d9'
                } else if (btn.class.indexOf('border') > -1) {
                  let _c = btn.class.replace('border-', '')
                  btn.style.color = color[_c]
                  btn.style.backgroundColor = '#fff'
                  btn.style.borderColor = color[_c]
                } else if (btn.class === 'gray') {
                  btn.style.color = 'rgba(0, 0, 0, 0.65)'
                  btn.style.backgroundColor = color[btn.class]
                  btn.style.borderColor = color[btn.class]
                } else {
                  btn.style.color = '#ffffff'
                  btn.style.backgroundColor = color[btn.class]
                  btn.style.borderColor = color[btn.class]
                }
              }
            } else if (btn.color) {
              btn.style = {}
            }
          }
          return btn
@@ -412,11 +558,7 @@
        newLText = Utils.formatOptions(FuncUtils.getexcelInfunc(_param, btn, menu))
        DelText = Utils.formatOptions(FuncUtils.dropfunc(btn.innerFunc))
      } else if (btn.OpenType === 'excelOut') {
        let _param = {
          innerFunc: btn.innerFunc
        }
        newLText = Utils.formatOptions(FuncUtils.getTableFunc(_param, menu, _config)) // 创建存储过程sql
        newLText = Utils.formatOptions(FuncUtils.getTableFunc(btn.innerFunc, menu, _config)) // 创建存储过程sql
        DelText = Utils.formatOptions(FuncUtils.dropfunc(btn.innerFunc))
      } else {
        let _param = {
@@ -457,7 +599,7 @@
    let _col = null
    if (config.type === 'table') {
      config.cols.forEach(col => {
        if (col.type !== 'action') return
        if (col.type !== 'custom') return
        col.elements = col.elements.filter(item => {
          if (item.uuid === id) {
@@ -467,6 +609,24 @@
          return item.uuid !== id
        })
      })
    } else if (config.type === 'card' && config.subcards) {
      config.subcards.forEach(scard => {
        scard.elements = scard.elements.filter(item => {
          if (item.uuid === id) {
            btn = item
            _col = scard
          }
          return item.uuid !== id
        })
        scard.backElements = scard.backElements.filter(item => {
          if (item.uuid === id) {
            btn = item
            _col = scard
          }
          return item.uuid !== id
        })
        return scard
      })
    }
    if (!btn) return