From 71e3da644eca32a5aa40503e903efb0640748093 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 21 七月 2023 17:00:59 +0800
Subject: [PATCH] 2023-07-21

---
 src/tabviews/basetable/index.jsx |   71 ++++++++++++++++++++---------------
 1 files changed, 40 insertions(+), 31 deletions(-)

diff --git a/src/tabviews/basetable/index.jsx b/src/tabviews/basetable/index.jsx
index e62eb9e..630f728 100644
--- a/src/tabviews/basetable/index.jsx
+++ b/src/tabviews/basetable/index.jsx
@@ -37,9 +37,7 @@
     viewlost: false,      // 椤甸潰涓㈠け锛�1銆佹湭鑾峰彇鍒伴厤缃�-椤甸潰涓㈠け锛�2銆侀〉闈㈡湭鍚敤
     lostmsg: '',          // 椤甸潰涓㈠け鏃剁殑鎻愮ず淇℃伅
     config: null,         // 椤甸潰閰嶇疆淇℃伅锛屽寘鎷粍浠剁瓑
-    mainSearch: null,     // 涓绘悳绱�
     userConfig: null,     // 鐢ㄦ埛鑷畾涔夎缃�
-    data: null,           // 鍒楄〃鏁版嵁闆�
     loading: false,       // 鍒楄〃鏁版嵁鍔犺浇涓�
     visible: false,       // 鏍囩椤垫帶鍒�
     shortcuts: null,      // 蹇嵎閿�
@@ -175,20 +173,30 @@
       }
       
       // 鑾峰彇涓绘悳绱㈡潯浠�
-      let mainSearch = []
       config.components.forEach(component => {
         if (component.type === 'tabs') return
 
-        component.search = component.search.map(item => {
-          item.oriInitval = item.initval
-          if (['text', 'select', 'link'].includes(item.type) && param.$searchkey === item.field) {
-            item.initval = param.$searchval
+        if (param.$searchkey) {
+          component.search = component.search.map(item => {
+            if (['text', 'select', 'link'].includes(item.type) && param.$searchkey === item.field) {
+              item.initval = param.$searchval
+            }
+  
+            return item
+          })
+
+          component.$searches = Utils.initMainSearch(component.search)
+        }
+
+        if (component.$searches.length) {
+          component.$main = true
+          
+          window.GLOB.SearchBox.set(MenuID, component.$searches)
+  
+          if (component.$s_req) {
+            window.GLOB.SearchBox.set(MenuID + 'required', true)
           }
-
-          return item
-        })
-
-        mainSearch = Utils.initMainSearch(component.search)
+        }
       })
 
       let BID = param.$BID || ''
@@ -199,8 +207,7 @@
         BID: BID,
         shortcuts: shortcuts.length > 0 ? shortcuts : null,
         config,
-        autoMatic,
-        mainSearch
+        autoMatic
       }, () => {
         setTimeout(() => { // 寤舵椂鍔犺浇鐘舵��
           this.setState({
@@ -268,6 +275,7 @@
   filterComponent = (components, roleId, permAction, skip, urlparam, pageId, MenuName) => {
     return components.filter(item => {
       item.$pageId = pageId
+      item.$searchId = pageId
 
       item.$menuname = (MenuName || '') + '-' + (item.name || '涓昏〃')
 
@@ -298,9 +306,9 @@
       }
 
       // 鎼滅储鏉′欢鍒濆鍖�
-      if (item.search && item.search.length > 0) {
-        item.search = Utils.initSearchVal(item.search)
-      }
+      Utils.initSearchVal(item)
+
+      item.$searches = Utils.initMainSearch(item.search)
 
       if (item.setting.supModule) {
         let pid = item.setting.supModule.pop()
@@ -512,6 +520,13 @@
       }
 
       component.setting.useMSearch = component.setting.useMSearch === 'true'
+      if (component.setting.useMSearch) {
+        if (!window.GLOB.SearchBox.has(component.$searchId)) {
+          component.setting.useMSearch = false
+        } else if (window.GLOB.SearchBox.has(component.$searchId + 'required')) {
+          component.$s_req = true
+        }
+      }
 
       if (component.setting.interType !== 'system') { // 涓嶄娇鐢ㄧ郴缁熷嚱鏁版椂
         component.setting.sync = 'false'
@@ -540,10 +555,8 @@
       }
   
       if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-        component.setting.dataresource = component.setting.dataresource.replace(/\$@/ig, '/*').replace(/@datam@/ig, '\'Y\'')
-        component.setting.dataresource = component.setting.dataresource.replace(/@\$/ig, '*/')
-        _customScript = _customScript.replace(/\$@/ig, '/*').replace(/@datam@/ig, '\'Y\'')
-        _customScript = _customScript.replace(/@\$/ig, '*/')
+        component.setting.dataresource = component.setting.dataresource.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
+        _customScript = _customScript.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
       } else {
         component.setting.dataresource = component.setting.dataresource.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
         _customScript = _customScript.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
@@ -624,6 +637,9 @@
       } else {
         window.GLOB.CacheData.delete(item.uuid)
       }
+      if (item.type !== 'tabs' && item.$main) {
+        window.GLOB.SearchBox.delete(item.$searchId)
+      }
     })
   }
 
@@ -640,20 +656,13 @@
       config: null,         // 椤甸潰閰嶇疆淇℃伅锛屽寘鎷粍浠剁瓑
       loading: false,       // 鍒楄〃鏁版嵁鍔犺浇涓�
       shortcuts: null,
-      data: ''
     }, () => {
       this.loadconfig()
     })
   }
 
-  resetSearch = (search) => {
-    this.setState({mainSearch: null}, () => {
-      this.setState({mainSearch: search})
-    })
-  }
-
   getComponents = () => {
-    const { config, data, mainSearch } = this.state
+    const { config } = this.state
 
     if (!config || !config.components) return
 
@@ -661,13 +670,13 @@
       if (item.type === 'tabs') {
         return (
           <Col span={item.width} key={item.uuid}>
-            <AntvTabs config={item} mainSearch={mainSearch} />
+            <AntvTabs config={item}/>
           </Col>
         )
       } else {
         return (
           <Col span={item.width} key={item.uuid}>
-            <MkBaseTable config={item} data={data}/>
+            <MkBaseTable config={item}/>
           </Col>
         )
       }

--
Gitblit v1.8.0