king
2021-10-21 1da6506bf58270bacc2a4345002c6b082835580e
src/tabviews/zshare/topSearch/index.jsx
@@ -1,7 +1,7 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { fromJS } from 'immutable'
import { Form, Row, Col, Input, Button, notification, Modal, Icon } from 'antd'
import { is, fromJS } from 'immutable'
import { Form, Row, Col, Button, notification, Modal, Icon } from 'antd'
import moment from 'moment'
import Api from '@/api'
@@ -11,9 +11,8 @@
import Utils from '@/utils/utils.js'
import zhCN from '@/locales/zh-CN/main.js'
import enUS from '@/locales/en-US/main.js'
import MKInput from './mkInput'
import './index.scss'
const { Search } = Input
const MutilForm = asyncSpinComponent(() => import('./advanceform'))
const MKCheckCard = asyncComponent(() => import('@/tabviews/zshare/mutilform/checkCard'))
@@ -78,6 +77,9 @@
    }
    if (searchlist) {
      if (setting && setting.show === 'false') {
        showButton = false
      }
      _searchlist = fromJS(searchlist).toJS()
    } else if (config) {
      _searchlist = fromJS(config.search).toJS()
@@ -203,6 +205,10 @@
    })
  }
  shouldComponentUpdate (nextProps, nextState) {
    return !is(fromJS(this.state), fromJS(nextState))
  }
  // 查询下拉菜单
  improveSearch = (mainItems, localItems) => {
    const { menuType, BID } = this.props
@@ -312,7 +318,7 @@
  improveSimpleSearch = (deForms) => {
    if (deForms.length === 0) return
    let deffers = deForms.map(item => {
    let deffers = deForms.map((item, index) => {
      let param = {
        func: 'sPC_Get_SelectedList',
        LText: item.data_sql,
@@ -329,16 +335,18 @@
      return (
        new Promise(resolve => {
          Api.getSystemCacheConfig(param).then(res => {
            if (!res.status) {
              notification.warning({
                top: 92,
                message: res.message,
                duration: 5
              })
            }
            resolve(res)
          })
          setTimeout(() => {
            Api.getSystemCacheConfig(param).then(res => {
              if (!res.status) {
                notification.warning({
                  top: 92,
                  message: res.message,
                  duration: 5
                })
              }
              resolve(res)
            })
          }, index * 30)
        })
      )
    })
@@ -360,7 +368,7 @@
  }
  resetSearch = (result) => {
    let _searchlist = this.state.searchlist.map(item => {
    let _searchlist = fromJS(this.state.searchlist).toJS().map(item => {
      if (['select', 'link', 'multiselect', 'checkcard'].includes(item.type) && result[item.field] && result[item.field].length > 0) {
        let options = []
        result[item.field].forEach(cell => {
@@ -388,23 +396,22 @@
        item.oriOptions = [...item.oriOptions, ...options]
      }
      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
    })
    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
      })
      searchlist: _searchlist
    })
  }
@@ -433,6 +440,7 @@
    const { getFieldDecorator } = this.props.form
    const { dict, showButton, showAdvanced, float, visible } = this.state
    const fields = []
    let lastRadio = 6
    this.state.searchlist.forEach((item, index) => {
      if (item.hidden || item.advanced) return
@@ -445,14 +453,12 @@
      ]
      let content = null
      let className = ''
      let field = item.field
      lastRadio = item.ratio || 6
      if (item.type === 'text') {
        if (item.inputType === 'search') {
          content = <Search allowClear placeholder={item.labelShow === 'false' ? item.label : ''} autoComplete="off" onSearch={this.handleSubmit} enterButton/>
        } else {
          content = <Input allowClear placeholder={item.labelShow === 'false' ? item.label : ''} autoComplete="off" onPressEnter={this.handleSubmit} />
        }
        content = (<MKInput config={item} onInputSubmit={this.handleSubmit} />)
      } else if (item.type === 'select' || item.type === 'link' || item.type === 'multiselect') {
        content = (<MKSelect config={item} onChange={(val, defer) => this.recordChange(val, defer, item)} />)
      } else if (item.type === 'date' || item.type === 'datemonth' || item.type === 'dateweek' || item.type === 'daterange') {
@@ -461,13 +467,14 @@
        field = item.datefield
        content = <DateGroup position={index} config={item} onChange={(val, type) => this.dateGroupChange(val, type, item)} />
      } else if (item.type === 'checkcard') {
        className = 'checkcard'
        content = <MKCheckCard card={item} onChange={this.handleSubmit} />
      }
      if (content) {
        fields.push(
          <Col span={item.ratio || 6} key={index}>
            <Form.Item label={item.labelShow !== 'false' ? item.label : ''}>
            <Form.Item className={className} label={item.labelShow !== 'false' ? item.label : ''}>
              {getFieldDecorator(field, {
                initialValue: item.initval,
                rules: _rules
@@ -480,7 +487,7 @@
    if (showButton) {
      let action = (
        <Col span={6} style={{ whiteSpace: 'nowrap' }} className="search-button" key="actions">
        <Col span={lastRadio < 6 ? 6 : lastRadio} style={{ whiteSpace: 'nowrap' }} className="search-button" key="actions">
          <Form.Item label={' '} colon={false} style={{ minHeight: '40px' }}>
            <Button type="primary" onClick={this.handleSubmit}>
              {dict['main.search']}