king
2022-07-14 49d0886f6855f1fb1c628b8205a8ae299aa3db09
src/tabviews/zshare/mutilform/index.jsx
@@ -26,6 +26,7 @@
const MKFileUpload = asyncComponent(() => import('../fileupload'))
const MKColor = asyncComponent(() => import('./mkColor'))
const MkFormula = asyncComponent(() => import('./mkFormula'))
const MkCascader = asyncComponent(() => import('./mkCascader'))
const MKEditor = asyncComponent(() => import('@/components/editor'))
class MainSearch extends Component {
@@ -99,7 +100,7 @@
        item.precision = 'second'
      }
      if (!item.field || !['text', 'number', 'switch', 'rate', 'select', 'link', 'linkMain', 'funcvar', 'date', 'datemonth', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color'].includes(item.type)) return false
      if (!item.field || !['text', 'number', 'switch', 'rate', 'select', 'link', 'cascader', 'linkMain', 'funcvar', 'date', 'datemonth', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color'].includes(item.type)) return false
      if (/^\s+$/.test(item.label)) {
        item.style = item.style || {}
@@ -124,7 +125,7 @@
        item.initval = item.initval || 0
      }
      if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type)) {
      if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect', 'cascader'].includes(item.type)) {
        item.options = item.options || []
        item.options = item.options.filter(cell => {
          cell.value = cell.Value
@@ -206,7 +207,7 @@
        item.initval = ''
      }
      if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type) && item.resourceType === '1') {
      if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect', 'cascader'].includes(item.type) && item.resourceType === '1') {
        deForms.push(item)
      } else if (item.type === 'rate') {
        item.rateCount = item.rateCount || 5
@@ -236,8 +237,13 @@
          pattern: /^[^']*$/ig,
          message: '不可使用英文状态的单引号!'
        }, {
          pattern: /^[^--]*$/ig,
          message: '不可使用 -- !'
          validator: (rule, value, callback) => {
            if (/--/ig.test(value)) {
              callback('不可使用 -- !')
            } else {
              callback()
            }
          }
        }, {
          required: item.required === 'true',
          message: item.label + '不可为空!'
@@ -308,8 +314,13 @@
            pattern: /^[^']*$/ig,
            message: '不可使用英文状态的单引号!'
          }, {
            pattern: /^[^--]*$/ig,
            message: '不可使用 -- !'
            validator: (rule, value, callback) => {
              if (/--/ig.test(value)) {
                callback('不可使用 -- !')
              } else {
                callback()
              }
            }
          })
        }
        item.rules = _rules
@@ -407,6 +418,9 @@
          item.options = fromJS(item.oriOptions).toJS()
        }
        item.linkSubField = null
      } else if (item.type === 'cascader' && item.fillField) {
        let n = fieldMap.get(item.fillField)
        item.fillFieldId = n ? n.uuid : ''
      }
      // if (item.type === 'link') {
@@ -422,7 +436,7 @@
        item.options = item.oriOptions.filter(option => option.ParentID === item.supInitVal || option.value === '')
      }
      if (['select', 'link', 'radio'].includes(item.type) && item.resourceType !== '1') { // 选中第一项
      if (['select', 'link', 'radio'].includes(item.type) && item.resourceType === '0') { // 选中第一项
        if (typeof(item.initval) === 'string' && item.initval.indexOf('$first') > -1) {
          item.initval = item.options[0] ? item.options[0].value : ''
        }
@@ -457,6 +471,23 @@
          item.subFields.forEach(n => {
            reFieldsVal[n.field] = option[n.field]
          })
        }
      } else if (item.fillField && item.initval && item.separator && item.options.length > 0) {
        let initvals = item.initval.split(item.separator)
        let label = []
        initvals.forEach(m => {
          // eslint-disable-next-line
          let option = item.options.filter(cell => m == cell.value)[0]
          if (option) {
            label.push(option.label)
          }
        })
        label = label.join(item.separator)
        if (label) {
          reFieldsVal = reFieldsVal || {}
          reFieldsVal[item.fillField] = label
        }
      }
      
@@ -660,7 +691,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) {
      if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect', 'cascader'].includes(item.type) && result[item.field] && result[item.field].length > 0) {
        let options = []
        result[item.field].forEach(cell => {
          let _cell = { key: Utils.getuuid() }
@@ -715,6 +746,23 @@
              reFieldsVal[n.field] = option[n.field]
            })
          }
        } else if (item.fillField && item.initval && item.separator && item.options.length > 0) {
          let initvals = item.initval.split(item.separator)
          let label = []
          initvals.forEach(m => {
            // eslint-disable-next-line
            let option = item.options.filter(cell => m == cell.value)[0]
            if (option) {
              label.push(option.label)
            }
          })
          label = label.join(item.separator)
          if (label) {
            reFieldsVal = reFieldsVal || {}
            reFieldsVal[item.fillField] = label
          }
        }
      }
      
@@ -749,9 +797,12 @@
        callback(item.label + '最小值为 ' + item.min)
      } else if (typeof(item.max) === 'number' && val > item.max) {
        callback(item.label + '最大值为 ' + item.max)
      }
    }
      } else {
    callback()
      }
    } else {
      callback()
    }
  }
  recordChange = (values, item) => {
@@ -840,6 +891,8 @@
          content = (<MKNumberInput config={item} onChange={(val, defer) => !defer && this.recordChange({[item.field]: val})} onSubmit={this.props.inputSubmit} />)
        } else if (item.type === 'select' || item.type === 'link' || item.type === 'multiselect') {
          content = (<MKSelect config={item} onChange={(val, other) => this.recordChange({[item.field]: val, ...other}, item)} onSubmit={this.props.inputSubmit} />)
        } else if (item.type === 'cascader') {
          content = (<MkCascader config={item} onChange={(val, other) => this.recordChange({[item.field]: val, ...other}, item)}/>)
        } else if (item.type === 'color') {
          content = (<MKColor config={item} onChange={(val) => this.recordChange({[item.field]: val})}/>)
        } else if (item.type === 'checkcard') {