king
2020-07-14 f36141f3075edf9d41928d64f759ad6bd1b1ac60
src/templates/sharecomponent/searchcomponent/index.jsx
@@ -27,7 +27,7 @@
  }
  state = {
    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    searchlist: null,    // 搜索条件集
    sqlVerifing: false,  // sql验证中
    visible: false,      // 模态框控制
@@ -53,7 +53,7 @@
      this.setState({searchlist: [...searchlist, nextProps.pasteContent]})
      this.handleSearch(nextProps.pasteContent)
    } else if (!is(fromJS(nextProps.config.search), fromJS(this.props.config.search)) && !is(fromJS(nextProps.config.search), fromJS(searchlist))) {
      this.setState({searchlist: nextProps.config.search})
      this.setState({searchlist: fromJS(nextProps.config.search).toJS()})
    }
  }
@@ -67,8 +67,9 @@
      this.setState({searchlist: list})
      this.handleSearch(card)
    } else {
      this.setState({searchlist: list})
      this.props.updatesearch({...config, search: list})
      this.setState({searchlist: list}, ()=> {
        this.props.updatesearch({...config, search: list})
      })
    }
  }
@@ -76,10 +77,22 @@
   * @description 搜索条件编辑,获取搜索条件表单信息
   */
  handleSearch = (card) => {
    const { searchlist } = this.state
    let linkableFields = []
    searchlist.forEach(item => {
      if (item.uuid !== card.uuid && (item.type === 'select' || item.type === 'link')) {
        linkableFields.push({
          value: item.field,
          text: item.label
        })
      }
    })
    this.setState({
      visible: true,
      card: card,
      formlist: getSearchForm(card, this.props.sysRoles)
      formlist: getSearchForm(card, this.props.sysRoles, linkableFields)
    })
  }
@@ -195,6 +208,9 @@
          func: 's_debug_sql',
          LText: res.dataSource
        }
        param.LText = param.LText.replace(/@\$|\$@/ig, '')
        param.LText = Utils.formatOptions(param.LText)
        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
        param.secretkey = Utils.encrypt(param.LText, param.timestamp)
@@ -209,8 +225,9 @@
              sqlVerifing: false,
              searchlist: _searchlist,
              visible: false
            }, ()=> {
              this.props.updatesearch({...config, search: _searchlist}, optionLibs)
            })
            this.props.updatesearch({...config, search: _searchlist}, optionLibs)
          } else {
            this.setState({sqlVerifing: false})
            
@@ -223,8 +240,9 @@
        this.setState({
          searchlist: _searchlist,
          visible: false
        }, ()=> {
          this.props.updatesearch({...config, search: _searchlist}, optionLibs)
        })
        this.props.updatesearch({...config, search: _searchlist}, optionLibs)
      }
    })
  }
@@ -240,7 +258,7 @@
    confirm({
      content: dict['model.confirm'] + dict['model.delete'] + ` - ${card.label} ?`,
      okText: dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        let _searchlist = fromJS(_this.state.searchlist).toJS()
@@ -265,6 +283,10 @@
    }
  }
  shouldComponentUpdate (nextProps, nextState) {
    return !is(fromJS(this.state), fromJS(nextState))
  }
  render() {
    const { dict, searchlist, visible, sqlVerifing, card } = this.state