king
2021-11-30 81c3fd3ac5017591d987d9c9fe42042fae5c7d7d
src/tabviews/zshare/mutilform/mkSelect/index.jsx
@@ -3,7 +3,6 @@
import { Select } from 'antd'
import MKEmitter from '@/utils/events.js'
import './index.scss'
class MKSelect extends Component {
  constructor(props) {
@@ -17,6 +16,19 @@
        value = value.split(',')
      } else {
        value = []
      }
    } else if (value) {
      let option = null
      if (config.setAll === 'true') {
        option= config.oriOptions[1]
      } else {
        option= config.oriOptions[0]
      }
      if (typeof(value) === 'string' && option && typeof(option.value) === 'number') {
        value = +value
        if (isNaN(value)) {
          value = config.initval
        }
      }
    }
@@ -41,7 +53,7 @@
  }
  UNSAFE_componentWillReceiveProps (nextProps) {
    const { config } = this.state
    const { config, value } = this.state
    if (!is(fromJS(config.oriOptions), fromJS(nextProps.config.oriOptions))) {
      this.setState({
@@ -53,6 +65,21 @@
        this.setState({
          value: nextProps.config.initval,
        })
      } else {
        let option = null
        if (config.setAll === 'true') {
          option= nextProps.config.oriOptions[1]
        } else {
          option= nextProps.config.oriOptions[0]
        }
        if (option && typeof(option.value) === 'number') {
          let val = +value
          if (!isNaN(val)) {
            this.setState({
              value: val
            })
          }
        }
      }
    }
  }
@@ -79,14 +106,26 @@
    const { config } = this.state
    let options = config.oriOptions.filter(option => option.ParentID === parentId || option.value === '')
    let val = options[0] ? options[0].value : ''
    let _option = options[0] && !options[0].$disabled ? options[0] : null
    let val = _option ? _option.value : ''
    this.setState({
      options,
      value: val
    })
    this.props.onChange(val)
    let other = {}
    if (config.subFields && _option) {
      config.subFields.forEach((n, i) => {
        other[n.field] = _option[n.field]
        setTimeout(() => {
          MKEmitter.emit('mkFC', 'input', n.uuid, _option[n.field])
        }, i * 5)
      })
    }
    this.props.onChange(val, other)
    if (level < 7 && config.linkFields) {
      config.linkFields.forEach((m, i) => {
@@ -148,13 +187,14 @@
          allowClear
          id={config.uuid}
          value={value}
          dropdownMatchSelectWidth={config.dropdown !== 'false'}
          filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
          onSelect={this.selectChange}
          onChange={(val) => val === undefined && this.selectChange('')}
          disabled={config.readonly}
        >
          {options.map(option =>
            <Select.Option id={option.key} title={option.label} key={option.key} value={option.value}>{option.label}</Select.Option>
            <Select.Option id={option.key} title={option.label} disabled={option.$disabled} key={option.key} value={option.value}>{option.label}</Select.Option>
          )}
        </Select>
      )
@@ -169,7 +209,7 @@
        disabled={config.readonly}
      >
        {options.map(option =>
          <Select.Option id={option.key} title={option.label} key={option.key} value={option.value}>{option.label}</Select.Option>
          <Select.Option id={option.key} title={option.label} disabled={option.$disabled} key={option.key} value={option.value}>{option.label}</Select.Option>
        )}
      </Select>)
    }