From 3ca91a731665962918a026f521c556f4745ebf35 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 16 十一月 2020 19:20:19 +0800
Subject: [PATCH] 2020-11-16

---
 src/tabviews/custom/components/share/tabtransfer/index.jsx |   74 ++++++++++++++++++++++++------------
 1 files changed, 49 insertions(+), 25 deletions(-)

diff --git a/src/tabviews/custom/components/share/tabtransfer/index.jsx b/src/tabviews/custom/components/share/tabtransfer/index.jsx
index f2bb801..827ed94 100644
--- a/src/tabviews/custom/components/share/tabtransfer/index.jsx
+++ b/src/tabviews/custom/components/share/tabtransfer/index.jsx
@@ -4,6 +4,7 @@
 import { is, fromJS } from 'immutable'
 import { Row, Col, Empty, notification } from 'antd'
 import moment from 'moment'
+import md5 from 'md5'
 
 import Api from '@/api'
 import options from '@/store/options.js'
@@ -17,6 +18,7 @@
 const AntvPie = asyncComponent(() => import('@/tabviews/custom/components/chart/antv-pie'))
 const AntvTabs = asyncComponent(() => import('@/tabviews/custom/components/tabs/antv-tabs'))
 const DataCard = asyncComponent(() => import('@/tabviews/custom/components/card/data-card'))
+const TableCard = asyncComponent(() => import('@/tabviews/custom/components/card/table-card'))
 const PropCard = asyncComponent(() => import('@/tabviews/custom/components/card/prop-card'))
 
 class TabTransfer extends Component {
@@ -68,21 +70,25 @@
     }
 
     let params = []
-    config.components.forEach(component => {
-      if (component.type === 'tabs') return
+    config.components.forEach(item => {
+      if (item.type === 'tabs') return
 
-      if (!component.format || (component.subtype === 'propcard' && component.wrap.datatype === 'static')) return
+      if (!item.setting || item.setting.interType !== 'system') return
+      if (!item.format || (item.subtype === 'propcard' && item.wrap.datatype === 'static')) return
 
-      if (component.dataName && !component.pageable && component.setting.interType === 'system' && component.setting.onload === 'true' && component.setting.sync === 'true') {
-        let param = this.getDefaultParam(component, _mainSearch)
+      if (item.dataName && (!item.pageable || (item.pageable && !item.setting.laypage)) && item.setting.onload === 'true' && item.setting.sync === 'true') {
+        let param = this.getDefaultParam(item, _mainSearch)
         params.push(param)
       } else {
-        component.setting.sync = 'false'
+        item.setting.sync = 'false'
       }
     })
 
     this.setState({mainSearch: _mainSearch, self})
-    this.loadmaindata(params)
+
+    if (params.length > 0) {
+      this.loadmaindata(params)
+    }
   }
 
   UNSAFE_componentWillReceiveProps(nextProps) {
@@ -103,8 +109,14 @@
     if (search && search.length > 0) {
       searchlist = Utils.initMainSearch(search)
     }
+
     if (setting.useMSearch === 'true') {
-      searchlist = [...mainSearch, ...searchlist]
+      let keys = searchlist.map(item => item.key)
+      mainSearch.forEach(item => {
+        if (!keys.includes(item.key)) {
+          searchlist.push(item)
+        }
+      })
     }
 
     let arr_field = columns.map(col => col.field)
@@ -164,7 +176,7 @@
    * @description 涓昏〃鏁版嵁鍔犺浇
    */ 
   loadmaindata = (params) => {
-    if (!params || params.length === 0) return
+    const { config } = this.props
     let LText_field = []
     let LText = params.map((item, index) => {
       let _sql = item.sql
@@ -190,6 +202,16 @@
 
     param.LText = Utils.formatOptions(param.LText)
     param.LText_field = Utils.formatOptions(param.LText_field)
+
+    if (config.cacheUseful === 'true') {
+      param.time_type = config.timeUnit
+      param.time_limit = config.cacheTime
+      if (config.diffUser) {
+        param.userid = sessionStorage.getItem('UserID')
+      }
+      param.data_md5 = md5(JSON.stringify(param))
+    }
+
     param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
     param.secretkey = Utils.encrypt(param.LText, param.timestamp)
 
@@ -251,22 +273,24 @@
             <AntvTabs config={item} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
           </Col>
         )
-      } else if (item.type === 'card') {
-        if (item.subtype === 'datacard') {
-          return (
-            <Col span={item.width} key={item.uuid}>
-              <DataCard config={item} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
-            </Col>
-          )
-        } else if (item.subtype === 'propcard') {
-          return (
-            <Col span={item.width} key={item.uuid}>
-              <PropCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
-            </Col>
-          )
-        } else {
-          return null
-        }
+      } 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} />
+          </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} />
+          </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} />
+          </Col>
+        )
       } else {
         return null
       }

--
Gitblit v1.8.0