From f36141f3075edf9d41928d64f759ad6bd1b1ac60 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 14 七月 2020 17:43:34 +0800
Subject: [PATCH] 2020-07-14

---
 src/tabviews/commontable/index.jsx |  141 ++++++++---------------------------------------
 1 files changed, 24 insertions(+), 117 deletions(-)

diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx
index 7a1935c..eb32253 100644
--- a/src/tabviews/commontable/index.jsx
+++ b/src/tabviews/commontable/index.jsx
@@ -220,32 +220,41 @@
       let chartId = config.charts[0] ? config.charts[0].uuid : ''
 
       // 瀛楁鏉冮檺榛戝悕鍗�
-      config.search = config.search.filter(item => {
-        if (!item.blacklist || item.blacklist.length === 0) return true
+      config.search = config.search.map(item => {
+        item.oriInitval = item.initval
+        if (['text', 'select', 'link'].includes(item.type) && param) {
+          if (param.searchkey === item.field) {
+            item.initval = param.searchval
+          } else if (param.BID && item.field === 'BID') {
+            item.initval = param.BID
+          }
+        }
+
+        if (!item.blacklist || item.blacklist.length === 0) return item
 
         let _black = item.blacklist.filter(v => {
           return this.props.permRoles.indexOf(v) !== -1
         })
 
         if (_black.length > 0) {
-          return false
-        } else {
-          return true
+          item.Hide = 'true'
         }
+
+        return item
       })
 
-      config.columns = config.columns.filter(col => {
-        if (!col.field || !col.blacklist || col.blacklist.length === 0 || config.setting.primaryKey === col.field) return true
+      config.columns = config.columns.map(col => {
+        if (!col.field || !col.blacklist || col.blacklist.length === 0 || config.setting.primaryKey === col.field) return col
 
         let _black = col.blacklist.filter(v => {
           return this.props.permRoles.indexOf(v) !== -1
         })
 
         if (_black.length > 0) {
-          return false
-        } else {
-          return true
+          col.Hide = 'true'
         }
+
+        return col
       })
 
       // 鏍囪涓婚〉闈紝鐢ㄤ簬鎸夐挳鍥哄畾鍙婅〃鍗曟寕杞借缃�
@@ -334,7 +343,7 @@
         col.sort = index
 
         if (col.type === 'colspan' && col.sublist) {
-          let _col = JSON.parse(JSON.stringify(col))
+          let _col = fromJS(col).toJS()
           let subColumn = []
           _col.sublist.forEach(sub => {
             if (colMap.has(sub)) {
@@ -355,10 +364,7 @@
 
       let valid = true // 鎼滅储鏉′欢蹇呭~楠岃瘉, 鍒濆鎼滅储鏉′欢, 濡傞�氳繃涓婄骇閫忚锛屽啓鍏ユ悳绱㈡潯浠�
       let initSearch = config.search.map(item => {
-        let _item = JSON.parse(JSON.stringify(item))
-        if (_item.type === 'text' && param && param.searchkey === _item.field) {
-          _item.initval = param.searchval
-        }
+        let _item = fromJS(item).toJS()
 
         if (_item.required === 'true' && !_item.initval) {
           valid = false
@@ -396,7 +402,6 @@
         arr_field: _arrField.join(','),
         search: Utils.initMainSearch(initSearch) // 鎼滅储鏉′欢鍒濆鍖栵紙鍚湁鏃堕棿鏍煎紡锛岄渶瑕佽浆鍖栵級
       }, () => {
-        this.improveSearch()
         if (config.setting.onload !== 'false' && valid) { // 鍒濆鍖栧彲鍔犺浇
           this.loadmaindata()
         }
@@ -509,107 +514,6 @@
         })
       })
     }
-  }
-
-  /**
-   * @description 鎼滅储鏉′欢涓嬫媺閫夐」棰勫姞杞�
-   */
-  improveSearch = () => {
-    let searchlist = JSON.parse(JSON.stringify(this.state.searchlist))
-    let deffers = []
-    searchlist.forEach(item => {
-      if (item.type !== 'multiselect' && item.type !== 'select' && item.type !== 'link') return
-      if (item.setAll === 'true') {
-        item.options.unshift({
-          key: Utils.getuuid(),
-          Value: '',
-          Text: this.state.dict['main.all']
-        })
-      }
-
-      if (item.resourceType === '1' && item.dataSource) {
-        let _option = Utils.getSelectQueryOptions(item)
-        let _sql = Utils.formatOptions(_option.sql)
-        let isSSO = item.database === 'sso'
-
-        let param = {
-          func: 'sPC_Get_SelectedList',
-          LText: _sql,
-          obj_name: 'data',
-          arr_field: _option.field
-        }
-
-        if (this.state.BID) {
-          param.BID = this.state.BID
-        }
-
-        if (this.props.dataManager) { // 鏁版嵁鏉冮檺
-          param.LText = param.LText.replace(/\$@/ig, '/*')
-          param.LText = param.LText.replace(/@\$/ig, '*/')
-        } else {
-          param.LText = param.LText.replace(/@\$|\$@/ig, '')
-        }
-
-        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
-        param.secretkey = Utils.encrypt(param.LText, param.timestamp)
-
-        if (this.props.menuType === 'HS') { // 浜戠鏁版嵁楠岃瘉
-          param.open_key = Utils.encrypt(param.secretkey, param.timestamp, true)
-        }
-
-        let defer = new Promise(resolve => {
-          Api.getSystemCacheConfig(param, isSSO).then(res => {
-            res.search = item
-            resolve(res)
-          })
-        })
-        deffers.push(defer)
-      } else if (item.resourceType === '1' && !item.dataSource) {
-        notification.warning({
-          top: 92,
-          message: item.label + ': ' + this.state.dict['main.datasource.settingerror'],
-          duration: 5
-        })
-      }
-    })
-
-    if (deffers.length === 0) {
-      this.setState({searchlist: JSON.parse(JSON.stringify(searchlist))})
-      return
-    }
-
-    Promise.all(deffers).then(result => {
-      result.forEach(res => {
-        if (res.status) {
-          searchlist = searchlist.map(item => {
-            if (item.uuid === res.search.uuid) {
-              res.data.forEach(cell => {
-                let _item = {
-                  key: Utils.getuuid(),
-                  Value: cell[res.search.valueField],
-                  Text: cell[res.search.valueText]
-                }
-
-                if (res.search.type === 'link') {
-                  _item.parentId = cell[res.search.linkField]
-                }
-
-                item.options.push(_item)
-              })
-            }
-            return item
-          })
-        } else {
-          notification.warning({
-            top: 92,
-            message: res.search.label + ':' + res.message,
-            duration: 5
-          })
-        }
-      })
-
-      this.setState({searchlist})
-    })
   }
 
   /**
@@ -1133,8 +1037,11 @@
         {loadingview && <Spin size="large" />}
         {searchlist && searchlist.length > 0 ?
           <MainSearch
+            BID={BID}
             dict={this.state.dict}
             searchlist={searchlist}
+            menuType={this.props.menuType}
+            dataManager={this.props.dataManager}
             refreshdata={this.refreshbysearch}
           /> : null
         }

--
Gitblit v1.8.0