king
2023-02-03 1ba430d58ea3fd662d09b99f6e22ed3b3564a356
src/tabviews/zshare/mutilform/mkCheckCard/index.jsx
@@ -23,8 +23,11 @@
    let config = fromJS(this.props.config).toJS()
    let selectKeys = config.initval
    let initlength = 0
    if (config.multiple === 'true') {
      selectKeys = config.initval ? config.initval.split(',') : []
      initlength = selectKeys.length
      selectKeys = this.filterVals(config.options, selectKeys)
    }
    if (!config.selectStyle && config.backgroundColor) {
@@ -44,6 +47,10 @@
      config: config,
      options: fromJS(config.options).toJS(),
      selectKeys: selectKeys
    }, () => {
      if (config.multiple === 'true' && selectKeys.length < initlength) {
        this.props.onChange(selectKeys.join(','))
      }
    })
  }
@@ -60,9 +67,20 @@
  }
  UNSAFE_componentWillReceiveProps (nextProps) {
    const { config } = this.state
    const { config, selectKeys } = this.state
    if (!is(fromJS(config.oriOptions), fromJS(nextProps.config.oriOptions))) {
      if (config.multiple === 'true') {
        let keys = this.filterVals(nextProps.config.options, fromJS(selectKeys).toJS())
        if (keys.length < selectKeys.length) {
          this.setState({
            selectKeys: keys
          }, () => {
            this.props.onChange(keys.join(','))
          })
        }
      }
      this.setState({
        config: {...config, oriOptions: nextProps.config.oriOptions},
        options: fromJS(nextProps.config.options).toJS()
@@ -77,6 +95,16 @@
    MKEmitter.removeListener('mkFP', this.mkFormHandle)
  }
  filterVals = (options, vals) => {
    if (options.length === 0 || vals.length === 0) return vals
    let ops = options.map(item => item.$value)
    vals = vals.filter(val => ops.includes(val))
    return vals
  }
  mkFormHandle = (uuid, parentId, level) => {
    if (uuid !== this.state.config.uuid) return