king
2020-12-08 655ac8aef54bc134c1420c19975023182a10cae4
src/templates/sharecomponent/fieldscomponent/index.jsx
@@ -67,6 +67,24 @@
          columns.set(item.field, {...item, selected: true, datatype: _datatype})
        }
      })
    } else if (type === 'form') {
      if (config.groups.length > 1) {
        config.groups.forEach(group => {
          group.sublist.forEach(item => {
            if (columns.has(item.field)) {
              let _datatype = columns.get(item.field).datatype
              columns.set(item.field, {...item, selected: true, datatype: _datatype})
            }
          })
        })
      } else {
        config.fields.forEach(item => {
          if (columns.has(item.field)) {
            let _datatype = columns.get(item.field).datatype
            columns.set(item.field, {...item, selected: true, datatype: _datatype})
          }
        })
      }
    }
    // 显示字段集弹窗
@@ -153,6 +171,7 @@
          items.push(newcard)
        }
      })
      config.search = items
    } else if (type === 'columns') {
      config.columns.forEach(item => {
        if (columnsMap.has(item.field)) {
@@ -191,6 +210,7 @@
          items.push(newcard)
        }
      })
      config.columns = items
    } else if (type === 'fields') {
      config.columns.forEach(item => {
        if (columnsMap.has(item.field)) {
@@ -219,24 +239,96 @@
          items.push(newcard)
        }
      })
    } else if (type === 'form') {
      if (config.groups.length > 1) {
        config.groups.forEach(group => {
          group.sublist.forEach(item => {
            if (columnsMap.has(item.field)) {
              let cell = columnsMap.get(item.field)
              if (cell.selected && cell.type === item.type) { // 数据选择状态及类型未修改时,直接添加
                items.push(item)
              } else if (cell.selected) {                     // 数据类型修改时,重置类型及初始值
                item.type = cell.type
                item.initval = ''
                items.push(item)
              }
              columnsMap.delete(item.field)
            } else if (!item.origin) {                        // 过滤示例项
              items.push(item)
            }
          })
          group.sublist = items
        })
        let _columns = [...columnsMap.values()]
        let _additems = _columns.map(item => { // 循环添加新增字段
          return {
            uuid: Utils.getuuid(),
            label: item.label,
            field: item.field,
            initval: '',
            type: item.type,
            resourceType: '0',
            setAll: 'false',
            options: [],
            dataSource: '',
            orderType: 'asc',
            decimal: item.decimal,
            readonly: 'false',
            required: 'true'
          }
        })
        config.groups[config.groups.length - 1].sublist = [...config.groups.slice(-1)[0].sublist, ..._additems]
      } else {
        config.fields.forEach(item => {
          if (columnsMap.has(item.field)) {
            let cell = columnsMap.get(item.field)
            if (cell.selected && cell.type === item.type) { // 数据选择状态及类型未修改时,直接添加
              items.push(item)
            } else if (cell.selected) {                     // 数据类型修改时,重置类型及初始值
              item.type = cell.type
              item.initval = ''
              items.push(item)
            }
            columnsMap.delete(item.field)
          } else if (!item.origin) {                        // 过滤示例项
            items.push(item)
          }
        })
        let _columns = [...columnsMap.values()]
        _columns.forEach(item => { // 循环添加新增字段
          if (item.selected) {
            let newcard = {
              uuid: Utils.getuuid(),
              label: item.label,
              field: item.field,
              initval: '',
              type: item.type,
              resourceType: '0',
              setAll: 'false',
              options: [],
              dataSource: '',
              decimal: item.decimal,
              orderType: 'asc',
              readonly: 'false',
              required: 'true'
            }
            items.push(newcard)
          }
        })
        config.fields = items
      }
    }
    let _config = null
    if (type === 'search') {
      _config = {...this.props.config, search: items}
      this.props.updatefield(_config)
      notification.success({
        top: 92,
        message: '操作成功',
        duration: 2
      })
    } else if (type === 'columns') {
      _config = {...this.props.config, columns: items}
      this.props.updatefield(_config)
    if (type === 'search' || type === 'columns' || type === 'form') {
      this.props.updatefield(config)
      notification.success({
        top: 92,