From 2404d8a1bed5509432652f11aba6a1efa04aa160 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 18 九月 2020 19:24:26 +0800
Subject: [PATCH] 2020-09-18

---
 src/tabviews/commontable/index.jsx |  116 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 87 insertions(+), 29 deletions(-)

diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx
index 4d7f825..d3c1c80 100644
--- a/src/tabviews/commontable/index.jsx
+++ b/src/tabviews/commontable/index.jsx
@@ -72,7 +72,9 @@
     refreshtabs: null,    // 闇�瑕佸埛鏂扮殑鏍囩闆�
     triggerBtn: null,     // 鐐瑰嚮琛ㄦ牸涓垨蹇嵎閿Е鍙戠殑鎸夐挳
     tabActive: null,      // 鏍囩椤靛睍寮�鎺у埗
-    chartId: ''           // 灞曞紑鍥捐〃ID
+    chartId: '',          // 灞曞紑鍥捐〃ID
+    statFields: [],       // 鍚堣瀛楁
+    statFValue: []        // 鍚堣鍊�
   }
 
   /**
@@ -223,34 +225,36 @@
       config.setting.execute = config.setting.default !== 'false'     // 榛樿sql鏄惁鎵ц锛岃浆涓篵oolean 缁熶竴鏍煎紡
       config.setting.customScript = ''                                // 鑷畾涔夎剼鏈�
 
-      if (config.setting.scripts && config.setting.scripts.length > 0) {
-        let _customScript = ''
-        config.setting.scripts.forEach(item => {
-          if (item.status === 'false') return
-          _customScript += `
-            ${item.sql}
-          `
-        })
-        config.setting.customScript = _customScript
-      }
-
-      if (!config.setting.execute) { // 榛樿sql 涓嶆墽琛屾椂 缃┖
-        config.setting.dataresource = ''
-      } else {
-        config.setting.dataresource = config.setting.dataresource || ''
-      }
-      if (/\s/.test(config.setting.dataresource)) {
-        config.setting.dataresource = '(' + config.setting.dataresource + ') tb'
-      }
-
-      if (this.props.dataManager) { // 鏁版嵁鏉冮檺
-        config.setting.dataresource = config.setting.dataresource.replace(/\$@/ig, '/*')
-        config.setting.dataresource = config.setting.dataresource.replace(/@\$/ig, '*/')
-        config.setting.customScript = config.setting.customScript.replace(/\$@/ig, '/*')
-        config.setting.customScript = config.setting.customScript.replace(/@\$/ig, '*/')
-      } else {
-        config.setting.dataresource = config.setting.dataresource.replace(/@\$|\$@/ig, '')
-        config.setting.customScript = config.setting.customScript.replace(/@\$|\$@/ig, '')
+      if (config.setting.interType === 'system') {
+        if (config.setting.scripts && config.setting.scripts.length > 0) {
+          let _customScript = ''
+          config.setting.scripts.forEach(item => {
+            if (item.status === 'false') return
+            _customScript += `
+              ${item.sql}
+            `
+          })
+          config.setting.customScript = _customScript
+        }
+  
+        if (!config.setting.execute) { // 榛樿sql 涓嶆墽琛屾椂 缃┖
+          config.setting.dataresource = ''
+        } else {
+          config.setting.dataresource = config.setting.dataresource || ''
+        }
+        if (/\s/.test(config.setting.dataresource)) {
+          config.setting.dataresource = '(' + config.setting.dataresource + ') tb'
+        }
+  
+        if (this.props.dataManager) { // 鏁版嵁鏉冮檺
+          config.setting.dataresource = config.setting.dataresource.replace(/\$@/ig, '/*')
+          config.setting.dataresource = config.setting.dataresource.replace(/@\$/ig, '*/')
+          config.setting.customScript = config.setting.customScript.replace(/\$@/ig, '/*')
+          config.setting.customScript = config.setting.customScript.replace(/@\$/ig, '*/')
+        } else {
+          config.setting.dataresource = config.setting.dataresource.replace(/@\$|\$@/ig, '')
+          config.setting.customScript = config.setting.customScript.replace(/@\$|\$@/ig, '')
+        }
       }
 
       if (_curUserConfig) {
@@ -293,6 +297,7 @@
       let _logcolumns = []   // 鏃ュ織鏄剧ず鍒�
       let _hideCol = []      // 闅愯棌鍙婂悎骞跺垪涓瓧娈电殑uuid闆�
       let colMap = new Map() // 鐢ㄤ簬瀛楁杩囨护
+      let statFields = []    // 鍚堣瀛楁淇℃伅
 
       let _actions = []      // 宸ュ叿鏍忔寜閽�
       let _operations = []   // 鎿嶄綔鍒楁寜閽紙瀛樺湪鏃讹級
@@ -316,6 +321,9 @@
           _logcolumns.push(col)
 
           col.nameField && _arrField.push(col.nameField) // 閾炬帴鍚嶅瓧娈�
+          if (col.Hide !== 'true' && col.type === 'number' && col.sum === 'true') {
+            statFields.push(col)
+          }
         }
         if (col.type === 'colspan' && col.sublist) { // 绛涢�夐殣钘忓垪
           _hideCol = _hideCol.concat(col.sublist)
@@ -385,6 +393,7 @@
         loadingview: false,
         chartId: chartId,
         config: config,
+        statFields: statFields,
         tabActive: _tabActive,
         userConfig: userConfig,
         setting: config.setting,
@@ -397,6 +406,7 @@
       }, () => {
         if (config.setting.onload !== 'false' && valid) { // 鍒濆鍖栧彲鍔犺浇
           this.loadmaindata()
+          this.getStatFieldsValue()
         }
         this.setShortcut()
       })
@@ -564,6 +574,50 @@
   }
 
   /**
+   * @description 鑾峰彇鍚堣瀛楁鍊�
+   */
+  getStatFieldsValue = () => {
+    const { setting, search, BID, orderBy, statFields } = this.state
+
+    if (statFields.length === 0 || setting.interType !== 'system' || !setting.dataresource) return
+
+    let requireFields = search.filter(item => item.required && (!item.value || item.value.length === 0))
+    if (requireFields.length > 0) {
+      return
+    }
+
+    let _orderBy = orderBy || setting.order
+    let param = UtilsDM.getStatQueryDataParams(setting, statFields, search, _orderBy, BID, this.props.menuType, this.props.dataManager)
+
+    Api.genericInterface(param).then(res => {
+      if (res.status) {
+        let _data = res.data[0]
+        let values = []
+
+        if (_data) {
+          statFields.forEach(item => {
+            if (_data[item.field] || _data[item.field] === 0) {
+              values.push({label: item.label, value: _data[item.field]})
+            }
+          })
+        }
+        this.setState({
+          statFValue: values
+        })
+      } else {
+        this.setState({
+          statFValue: []
+        })
+        notification.error({
+          top: 92,
+          message: res.message,
+          duration: 10
+        })
+      }
+    })
+  }
+
+  /**
    * @description 鎼滅储鏉′欢鏀瑰彉鏃讹紝閲嶇疆琛ㄦ牸鏁版嵁
    * 鍚湁鍒濆涓嶅姞杞界殑椤甸潰锛屼慨鏀硅缃�
    */
@@ -577,6 +631,7 @@
         setting: {...setting, onload: 'true'}
       }, () => {
         this.loadmaindata()
+        this.getStatFieldsValue()
       })
     } else {
       this.setState({
@@ -586,6 +641,7 @@
         search: searches
       }, () => {
         this.loadmaindata()
+        this.getStatFieldsValue()
       })
     }
   }
@@ -622,6 +678,7 @@
       pageIndex: 1
     }, () => {
       this.loadmaindata()
+      this.getStatFieldsValue()
     })
   }
 
@@ -918,6 +975,7 @@
                       total={this.state.total}
                       MenuID={this.props.MenuID}
                       loading={this.state.loading}
+                      statFValue={this.state.statFValue}
                       refreshdata={this.refreshbytable}
                       buttonTrigger={this.buttonTrigger}
                       handleTableId={this.handleTableId}

--
Gitblit v1.8.0