From d441fa1e1cc80f4ea462a750a42a2b25c1f2b202 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 04 十二月 2020 15:17:51 +0800
Subject: [PATCH] 2020-12-04

---
 src/tabviews/custom/index.jsx |   91 ++++++++++++++++++++++-----------------------
 1 files changed, 45 insertions(+), 46 deletions(-)

diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx
index 54586f4..74a4302 100644
--- a/src/tabviews/custom/index.jsx
+++ b/src/tabviews/custom/index.jsx
@@ -48,6 +48,7 @@
     loading: false,       // 鍒楄〃鏁版嵁鍔犺浇涓�
     visible: false,       // 鏍囩椤垫帶鍒�
     treevisible: false,   // 鑿滃崟缁撴瀯鏍戝脊妗嗘樉绀洪殣钘忔帶鍒�
+    debug: sessionStorage.getItem('debug') === 'true'
   }
 
   /**
@@ -111,10 +112,11 @@
       }
 
       // 鏉冮檺杩囨护
+      let roleId = sessionStorage.getItem('role_id') || '' // 瑙掕壊ID
       if (this.props.menuType !== 'HS') {
-        config.components = this.filterComponent(config.components)
+        config.components = this.filterComponent(config.components, roleId)
       }
-
+      
       // 鑾峰彇涓绘悳绱㈡潯浠�
       let mainSearch = []
       config.components.forEach(component => {
@@ -130,16 +132,6 @@
             } else if (param.data && param.data[item.field]) {
               item.initval = param.data[item.field]
             }
-          }
-
-          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) {
-            item.Hide = 'true'
           }
 
           return item
@@ -189,19 +181,18 @@
     }
   }
 
-  filterComponent = (components) => {
+  filterComponent = (components, roleId) => {
     return components.filter(item => {
       if (item.type === 'tabs') {
-        if (item.setting.blacklist && item.setting.blacklist.length > 0) {
-          let _black = item.setting.blacklist.filter(v => {
-            return this.props.permRoles.indexOf(v) !== -1
-          })
-  
-          if (_black.length > 0) return false
+        if (
+          item.setting.blacklist && item.setting.blacklist.length > 0 &&
+          item.setting.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0
+        ) {
+          return false
         }
 
         item.subtabs = item.subtabs.map(tab => {
-          tab.components = this.filterComponent(tab.components)
+          tab.components = this.filterComponent(tab.components, roleId)
           return tab
         })
 
@@ -217,21 +208,31 @@
         })
         item.parentIds = supIds
       } else if (item.type === 'pie' || item.type === 'bar' || item.type === 'line') {
-        if (item.plot.blacklist && item.plot.blacklist.length > 0) {
-          let _black = item.plot.blacklist.filter(v => {
-            return this.props.permRoles.indexOf(v) !== -1
-          })
-  
-          if (_black.length > 0) return false
+        if (
+          item.plot.blacklist && item.plot.blacklist.length > 0 &&
+          item.plot.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0
+        ) {
+          return false
         }
       } else {
-        if (item.wrap.blacklist && item.wrap.blacklist.length > 0) {
-          let _black = item.wrap.blacklist.filter(v => {
-            return this.props.permRoles.indexOf(v) !== -1
-          })
-  
-          if (_black.length > 0) return false
+        if (
+          item.wrap.blacklist && item.wrap.blacklist.length > 0 &&
+          item.wrap.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0
+        ) {
+          return false
         }
+      }
+      if (item.search && item.search.length > 0) {
+        item.search = item.search.map(cell => {
+          cell.oriInitval = cell.initval
+
+          if (!cell.blacklist || cell.blacklist.length === 0) return cell
+          if (cell.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) {
+            cell.Hide = 'true'
+          }
+
+          return item
+        })
       }
       return true
     })
@@ -282,7 +283,7 @@
         component.setting.dataresource = '(' + component.setting.dataresource + ') tb'
       }
   
-      if (this.props.dataManager) { // 鏁版嵁鏉冮檺
+      if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
         component.setting.dataresource = component.setting.dataresource.replace(/\$@/ig, '/*')
         component.setting.dataresource = component.setting.dataresource.replace(/@\$/ig, '*/')
         _customScript = _customScript.replace(/\$@/ig, '/*')
@@ -528,7 +529,7 @@
   }
 
   getComponents = () => {
-    const { menuType, dataManager } = this.props
+    const { menuType } = this.props
     const { config, BID, data, mainSearch } = this.state
 
     if (!config || !config.components) return
@@ -537,19 +538,19 @@
       if (item.type === 'bar' || item.type === 'line') {
         return (
           <Col span={item.width} key={item.uuid}>
-            <AntvBarAndLine config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
+            <AntvBarAndLine config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} />
           </Col>
         )
       } else if (item.type === 'pie') {
         return (
           <Col span={item.width} key={item.uuid}>
-            <AntvPie config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
+            <AntvPie config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} />
           </Col>
         )
       } else if (item.type === 'search') {
         return (
           <Col span={item.width} key={item.uuid}>
-            <MainSearch config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} refreshdata={this.resetSearch} />
+            <MainSearch config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} refreshdata={this.resetSearch} />
           </Col>
         )
       } else if (item.type === 'tabs') {
@@ -561,25 +562,25 @@
       } else if (item.type === 'card' && item.subtype === 'datacard') {
         return (
           <Col span={item.width} key={item.uuid}>
-            <DataCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
+            <DataCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} />
           </Col>
         )
       } else if (item.type === 'card' && item.subtype === 'propcard') {
         return (
           <Col span={item.width} key={item.uuid}>
-            <PropCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
+            <PropCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} />
           </Col>
         )
       } else if (item.type === 'table' && item.subtype === 'tablecard') {
         return (
           <Col span={item.width} key={item.uuid}>
-            <TableCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
+            <TableCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} />
           </Col>
         )
       } else if (item.type === 'table' && item.subtype === 'normaltable') {
         return (
           <Col span={item.width} key={item.uuid}>
-            <NormalTable config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
+            <NormalTable config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} />
           </Col>
         )
       } else {
@@ -590,13 +591,13 @@
 
   render() {
     const { menuType, MenuNo } = this.props
-    const { loadingview, viewlost, config, loading } = this.state
+    const { debug, loadingview, viewlost, config, loading } = this.state
 
     return (
       <div className="custom-page-wrap" id={this.state.ContainerId} style={config ? config.style : null}>
         {(loadingview || loading) ? <Spin size="large" /> : null}
         <Row>{this.getComponents()}</Row>
-        {MenuNo && options.sysType !== 'cloud' && menuType !== 'HS' ? <Button
+        {debug && MenuNo && options.sysType !== 'cloud' && menuType !== 'HS' ? <Button
           icon="copy"
           shape="circle"
           className="common-table-copy"
@@ -612,9 +613,7 @@
   return {
     menuType: state.editLevel,
     refreshTab: state.refreshTab,
-    permAction: state.permAction,
-    permRoles: state.permRoles,
-    dataManager: state.dataManager
+    permAction: state.permAction
   }
 }
 

--
Gitblit v1.8.0