king
2024-05-08 d08fba77101b83f211738c722403506cc7dab50b
src/menu/components/table/edit-table/index.jsx
@@ -67,8 +67,19 @@
      this.updateComponent(_card)
    } else {
      let _card = fromJS(card).toJS()
      if (_card.mergeCol) {
        let col = _card.cols[_card.mergeCol[0]]
        _card.cols.splice(_card.mergeCol[0], 1, ...col.pops)
      }
      if (_card.wrap.commit === 'simple') {
        _card.wrap.commit = 'change'
      }
      this.setState({
        card: fromJS(card).toJS()
        card: _card
      })
    }
  }
@@ -133,13 +144,27 @@
      card: card
    })
    let _card = card.isNew ? fromJS(card).toJS() : card
    let _card = card
    if (_card.isNew) {
      _card = fromJS(card).toJS()
      _card.cols = _card.cols.filter(a => !a.origin)
      delete _card.isNew
      delete _card.mergeCol
    } else if (_card.mergeCol) {
      _card = fromJS(card).toJS()
      let col = {..._card.cols[_card.mergeCol[0]]}
      col.initval = ''
      col.pops = []
      _card.mergeCol.forEach(index => {
        col.pops.push(_card.cols[index])
      })
      _card.cols = _card.cols.filter((col, index) => !_card.mergeCol.includes(index))
      _card.cols.splice(_card.mergeCol[0], 0, col)
    }
    this.props.updateConfig(_card)
  }
@@ -270,19 +295,46 @@
  updatecolumn = (config) => {
    config.absFields = []
    config.cols.forEach(col => {
    config.mergeCol = false
    config.hasExtend = false
    config.parCtrl = false
    let mapCol = (cols) => {
      cols.forEach(col => {
        if (col.type === 'number') {
          if (col.format === 'abs') {
            config.absFields.push(col.field)
          }
        } else if (col.type === 'extend') {
          config.hasExtend = true
          if (col.supField) {
            config.parCtrl = true
          }
        } else if (col.type === 'colspan' && col.subcols) {
          mapCol(col.subcols)
        }
      })
    }
    config.cols.forEach((col, index) => {
      delete col.pops
      if (col.type === 'number') {
        if (col.format === 'abs') {
          config.absFields.push(col.field)
        }
      } else if (col.type === 'extend') {
        config.hasExtend = true
        if (col.supField) {
          config.parCtrl = true
        }
      } else if (col.type === 'colspan' && col.subcols) {
        col.subcols.forEach(scol => {
          if (scol.type === 'number') {
            if (scol.format === 'abs') {
              config.absFields.push(scol.field)
            }
          }
        })
        mapCol(col.subcols)
      } else if (col.type === 'text') {
        if (col.editable === 'true' && col.editType === 'popSelect' && /^tab:/.test(col.initval)) {
          config.mergeCol = config.mergeCol || []
          config.mergeCol.push(index)
        }
      }
    })
@@ -327,7 +379,7 @@
              <EditOutlined style={{color: '#1890ff'}} title="编辑"/>
            </NormalForm>
            <CopyComponent type="editable" card={card}/>
            <PasteComponent config={card} options={['action', 'search', 'form', 'cols']} updateConfig={this.updateComponent} />
            <PasteComponent config={card} options={['action', 'search', 'form', 'editcols']} updateConfig={this.updateComponent} />
            <FontColorsOutlined className="style" title="调整样式" onClick={this.changeStyle}/>
            <DeleteOutlined className="close" title="删除组件" onClick={() => this.props.deletecomponent(card.uuid)} />
            <SettingComponent config={card} updateConfig={this.updateComponent} />
@@ -337,7 +389,7 @@
        </Popover>
        <SearchComponent config={card} updatesearch={this.updateComponent}/>
        <ActionComponent config={card} setSubConfig={this.setSubConfig} updateaction={this.updateComponent}/>
        <ColumnComponent config={card} updatecolumn={this.updatecolumn}/>
        <ColumnComponent config={card} updatecolumn={this.updatecolumn} addColumns={this.addColumns}/>
        <div className="component-name">
          <div className="center">
            <div className="title" onDoubleClick={() => {