king
2021-06-24 95afd40fc2741ac0ce59c2091f6cfce1f98877d4
src/tabviews/zshare/topSearch/index.jsx
@@ -7,6 +7,7 @@
import Api from '@/api'
import options from '@/store/options.js'
import DateGroup from '@/tabviews/zshare/dategroup'
import asyncComponent from '@/utils/asyncComponent'
import asyncSpinComponent from '@/utils/asyncSpinComponent'
import Utils from '@/utils/utils.js'
import zhCN from '@/locales/zh-CN/main.js'
@@ -16,6 +17,7 @@
const { MonthPicker, WeekPicker, RangePicker } = DatePicker
const MutilForm = asyncSpinComponent(() => import('./advanceform'))
const CheckCard = asyncComponent(() => import('@/tabviews/zshare/mutilform/checkCard'))
class MainSearch extends Component {
  static propTpyes = {
@@ -96,7 +98,7 @@
      item.required = item.required === 'true'
      if (['select', 'link', 'multiselect'].includes(item.type)) {
      if (['select', 'link', 'multiselect', 'checkcard'].includes(item.type)) {
        if (item.setAll === 'true' && item.type !== 'multiselect') {
          item.options.unshift({
            key: Utils.getuuid(),
@@ -382,41 +384,51 @@
      delete result.message
      delete result.status
      let _searchlist = this.state.searchlist.map(item => {
        if (['select', 'link', 'multiselect'].includes(item.type) && result[item.field] && result[item.field].length > 0) {
          let options = result[item.field].map(cell => {
            let _item = {
              key: Utils.getuuid(),
              Value: cell[item.valueField],
              Text: cell[item.valueText]
            }
      this.resetSearch(result)
    })
  }
            if (item.type === 'link') {
              _item.ParentID = cell[item.linkField]
            }
            return _item
          })
          item.oriOptions = [...item.oriOptions, ...options]
        }
        return item
      })
      this.setState({
        searchlist: _searchlist.map(item => {
          if (item.type === 'link') {
            if (item.supInitVal) {
              item.options = item.oriOptions.filter(option => option.ParentID === item.supInitVal || option.Value === '')
            } else {
              item.options = item.oriOptions
            }
          } else if (item.type === 'select' || item.type === 'multiselect') {
            item.options = item.oriOptions
  resetSearch = (result) => {
    let _searchlist = this.state.searchlist.map(item => {
      if (['select', 'link', 'multiselect', 'checkcard'].includes(item.type) && result[item.field] && result[item.field].length > 0) {
        let options = result[item.field].map(cell => {
          let _item = {
            key: Utils.getuuid()
          }
          return item
          if (item.type !== 'checkcard') {
            _item.Value = cell[item.valueField]
            _item.Text = cell[item.valueText]
          } else {
            _item.$value = cell[item.cardValField]
            _item = {..._item, ...cell}
          }
          if (item.type === 'link') {
            _item.ParentID = cell[item.linkField]
          }
          return _item
        })
        item.oriOptions = [...item.oriOptions, ...options]
      }
      return item
    })
    this.setState({
      searchlist: _searchlist.map(item => {
        if (item.type === 'link') {
          if (item.supInitVal) {
            item.options = item.oriOptions.filter(option => option.ParentID === item.supInitVal || option.Value === '')
          } else {
            item.options = item.oriOptions
          }
        } else if (item.type === 'select' || item.type === 'multiselect' || item.type === 'checkcard') {
          item.options = item.oriOptions
        }
        return item
      })
    })
  }
@@ -468,42 +480,7 @@
      delete result.message
      delete result.status
      let _searchlist = this.state.searchlist.map(item => {
        if (['select', 'link', 'multiselect'].includes(item.type) && result[item.field] && result[item.field].length > 0) {
          let options = result[item.field].map(cell => {
            let _item = {
              key: Utils.getuuid(),
              Value: cell[item.valueField],
              Text: cell[item.valueText]
            }
            if (item.type === 'link') {
              _item.ParentID = cell[item.linkField]
            }
            return _item
          })
          item.oriOptions = [...item.oriOptions, ...options]
        }
        return item
      })
      this.setState({
        searchlist: _searchlist.map(item => {
          if (item.type === 'link') {
            if (item.supInitVal) {
              item.options = item.oriOptions.filter(option => option.ParentID === item.supInitVal || option.Value === '')
            } else {
              item.options = item.oriOptions
            }
          } else if (item.type === 'select' || item.type === 'multiselect') {
            item.options = item.oriOptions
          }
          return item
        })
      })
      this.resetSearch(result)
    })
  }
@@ -748,6 +725,24 @@
            </Form.Item>
          </Col>
        )
      } else if (item.type === 'checkcard') { // 多选框
        fields.push(
          <Col span={item.ratio || 6} key={index}>
            <Form.Item label={item.labelShow !== 'false' ? item.label : ''}>
              {getFieldDecorator(item.field, {
                initialValue: item.initval,
                rules: [
                  {
                    required: item.required,
                    message: dict['form.required.select'] + item.label + '!'
                  }
                ]
              })(
                <CheckCard card={item} onChange={this.searchChange} />
              )}
            </Form.Item>
          </Col>
        )
      }
    })