From 54d01e6ef9ac31f10de4a0e92824eba50b77eda6 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 27 九月 2021 18:40:51 +0800
Subject: [PATCH] 2021-09-27

---
 src/templates/sharecomponent/searchcomponent/index.jsx |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/src/templates/sharecomponent/searchcomponent/index.jsx b/src/templates/sharecomponent/searchcomponent/index.jsx
index 44d9716..dc0dd9e 100644
--- a/src/templates/sharecomponent/searchcomponent/index.jsx
+++ b/src/templates/sharecomponent/searchcomponent/index.jsx
@@ -10,6 +10,7 @@
 import enUS from '@/locales/en-US/model.js'
 import { getSearchForm } from '@/templates/zshare/formconfig'
 
+import MKEmitter from '@/utils/events.js'
 import SearchForm from './searchform'
 import DragElement from './dragsearch'
 import './index.scss'
@@ -53,6 +54,32 @@
         this.handleSearch(item)
       }
       this.setState({searchlist: fromJS(nextProps.config.search).toJS()})
+    }
+  }
+
+  componentDidMount () {
+    MKEmitter.addListener('plusSearch', this.plusSearch)
+  }
+
+  plusSearch = (MenuId, item, type) => {
+    const { config } = this.props
+    const { searchlist } = this.state
+
+    if (MenuId !== config.uuid) return
+
+    if (type === 'simple') {
+      this.setState({
+        searchlist: [...searchlist, item],
+      }, () => {
+        this.handleSearch(item)
+      })
+    } else if (type === 'multil') {
+      let list = [...searchlist, ...item]
+      this.setState({
+        searchlist: list
+      }, () => {
+        this.props.updatesearch({...config, search: list})
+      })
     }
   }
 
@@ -280,13 +307,15 @@
     this.setState = () => {
       return
     }
+    MKEmitter.removeListener('plusSearch', this.plusSearch)
   }
 
   shouldComponentUpdate (nextProps, nextState) {
-    return !is(fromJS(this.state), fromJS(nextState))
+    return !is(fromJS(this.state), fromJS(nextState)) || this.props.config.setting.show !== nextProps.config.setting.show
   }
 
   render() {
+    const { config } = this.props
     const { dict, searchlist, visible, sqlVerifing, card, showField } = this.state
 
     return (
@@ -297,6 +326,7 @@
         <Switch checkedChildren={dict['model.switch.open']} unCheckedChildren={dict['model.switch.close']} defaultChecked={showField} onChange={this.onFieldChange} />
         <DragElement
           list={searchlist}
+          show={config.setting.show}
           showField={showField}
           handleList={this.handleList}
           handleMenu={this.handleSearch}

--
Gitblit v1.8.0