king
2022-01-28 a8ed3be8ef5cee0d3b0486fb6412c2d352df4af0
2022-01-28
2个文件已修改
113 ■■■■ 已修改文件
src/tabviews/zshare/mutilform/index.jsx 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/option.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/mutilform/index.jsx
@@ -314,6 +314,8 @@
      fieldMap.set(key, supItem)
    })
    let reFieldsVal = null
    formlist = formlist.map(cell => {
      if (cell.labelwidth) {
        cell.labelCol = {style: {width: cell.labelwidth + '%'}}
@@ -321,6 +323,34 @@
      }
      if (!cell.field || !fieldMap.has(cell.field)) return cell
      let item = fieldMap.get(cell.field)
      // 下级表单控制-字段写入
      if ((['select', 'radio', 'link'].includes(item.type) || (item.type === 'checkcard' && item.multiple !== 'true')) && item.linkSubField) {
        item.subFields = []
        item.linkSubField.forEach(m => {
          let n = fieldMap.get(m)
          if (n && ['text', 'number', 'textarea'].includes(n.type)) {
            item.subFields.push({
              uuid: n.uuid,
              field: m
            })
          }
        })
        if (item.subFields.length === 0) {
          item.subFields = null
        } else if (item.oriOptions.length > 0) {
          item.oriOptions = item.oriOptions.map(cell => {
            item.subFields.forEach(m => {
              cell[m.field] = cell[m.field] === undefined ? '' : cell[m.field]
            })
            return cell
          })
          item.options = fromJS(item.oriOptions).toJS()
        }
        item.linkSubField = null
      }
      // if (item.type === 'link') {
      if (item.linkField) {
@@ -351,34 +381,6 @@
        item.linkFields = linkFields[item.field]
      }
      // 下级表单控制-字段写入
      if ((['select', 'radio', 'link'].includes(item.type) || (item.type === 'checkcard' && item.multiple !== 'true')) && item.linkSubField) {
        item.subFields = []
        item.linkSubField.forEach(m => {
          let n = fieldMap.get(m)
          if (n && ['text', 'number', 'textarea'].includes(n.type)) {
            item.subFields.push({
              uuid: n.uuid,
              field: m
            })
          }
        })
        if (item.subFields.length === 0) {
          item.subFields = null
        } else if (item.options.length > 0) {
          item.options = item.options.map(cell => {
            item.subFields.forEach(m => {
              cell[m.field] = cell[m.field] === undefined ? '' : cell[m.field]
            })
            return cell
          })
          item.oriOptions = fromJS(item.options).toJS()
        }
        item.linkSubField = null
      }
      if (item.enter === 'tab' || item.enter === 'sub') {
        if (fieldMap.has(item.tabField)) {
          item.tabUuid = fieldMap.get(item.tabField).uuid
@@ -389,8 +391,31 @@
        }
      }
      
      if (item.subFields && item.options.length > 0) {
        // eslint-disable-next-line
        let option = item.options.filter(cell => item.initval == cell.value)[0]
        if (option) {
          reFieldsVal = reFieldsVal || {}
          item.subFields.forEach(n => {
            reFieldsVal[n.field] = option[n.field]
          })
        }
      }
      return item
    })
    if (reFieldsVal) {
      formlist = formlist.map(cell => {
        if (reFieldsVal[cell.field] === undefined) return cell
        cell.initval = reFieldsVal[cell.field]
        record[cell.field] = reFieldsVal[cell.field]
        return cell
      })
    }
    this.record = record
@@ -576,6 +601,7 @@
  }
  resetFormList = (result) => {
    let reFieldsVal = null
    let _formlist = fromJS(this.state.formlist).toJS().map(item => {
      if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type) && result[item.field] && result[item.field].length > 0) {
        let options = []
@@ -616,16 +642,43 @@
        } else {
          item.options = item.oriOptions
        }
      }
      if (['select', 'link', 'radio'].includes(item.type) && typeof(item.initval) === 'string' && item.initval.indexOf('$first') > -1) { // 选中第一项
        item.initval = item.options[0] ? item.options[0].value : ''
        this.record[item.field] = item.initval
      }
      
        if (item.subFields && item.options.length > 0) {
          // eslint-disable-next-line
          let option = item.options.filter(cell => item.initval == cell.value)[0]
          if (option) {
            reFieldsVal = reFieldsVal || {}
            item.subFields.forEach(n => {
              reFieldsVal[n.field] = option[n.field]
            })
          }
        }
      }
      return item
    })
    if (reFieldsVal) {
      _formlist = _formlist.map((cell, i) => {
        if (reFieldsVal[cell.field] === undefined) return cell
        cell.initval = reFieldsVal[cell.field]
        this.record[cell.field] = reFieldsVal[cell.field]
        setTimeout(() => {
          MKEmitter.emit('mkFC', 'input', cell.uuid, reFieldsVal[cell.field])
        }, i * 5)
        return cell
      })
    }
    this.setState({
      formlist: _formlist
    })
src/utils/option.js
@@ -163,7 +163,7 @@
  ],
  datetime: [
    {value: '', text: _dict['model.empty']},
    {value: '0', text: '今天'},
    {value: '0', text: '当前'},
    {value: 1, text: '昨天'},
    {value: 3, text: '前三天'},
    {value: 7, text: '前七天'},