From 251d38fbae6c39af380cb5794424a5d24e3ba2e4 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 21 十二月 2020 09:47:53 +0800
Subject: [PATCH] 2020-12-21

---
 src/tabviews/subtable/index.jsx     |   35 ++++++++++++++---
 src/tabviews/subtabtable/index.jsx  |   25 +++++++++---
 src/templates/zshare/formconfig.jsx |    3 +
 src/tabviews/commontable/index.jsx  |   38 +++++++++++++++---
 4 files changed, 82 insertions(+), 19 deletions(-)

diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx
index afa3d1a..627c9dd 100644
--- a/src/tabviews/commontable/index.jsx
+++ b/src/tabviews/commontable/index.jsx
@@ -67,6 +67,7 @@
     chartId: '',          // 灞曞紑鍥捐〃ID
     statFields: [],       // 鍚堣瀛楁
     statFValue: [],       // 鍚堣鍊�
+    absFields: [],        // 缁濆鍊煎瓧娈�
     debug: sessionStorage.getItem('debug') === 'true'
   }
 
@@ -259,6 +260,7 @@
       let _hideCol = []      // 闅愯棌鍙婂悎骞跺垪涓瓧娈电殑uuid闆�
       let colMap = new Map() // 鐢ㄤ簬瀛楁杩囨护
       let statFields = []    // 鍚堣瀛楁淇℃伅
+      let absFields = []     // 缁濆鍊煎瓧娈�
 
       let _actions = []      // 宸ュ叿鏍忔寜閽�
       let _operations = []   // 鎿嶄綔鍒楁寜閽紙瀛樺湪鏃讹級
@@ -284,6 +286,9 @@
           col.nameField && _arrField.push(col.nameField) // 閾炬帴鍚嶅瓧娈�
           if (col.Hide !== 'true' && col.type === 'number' && col.sum === 'true') {
             statFields.push(col)
+          }
+          if (col.format === 'abs') {
+            absFields.push(col.field)
           }
         }
         if (col.type === 'colspan' && col.sublist) { // 绛涢�夐殣钘忓垪
@@ -355,18 +360,19 @@
       }
 
       this.setState({
-        BID: param && param.BID ? param.BID : '',
         loadingview: false,
-        chartId: chartId,
-        config: config,
-        statFields: statFields,
+        absFields,
+        chartId,
+        config,
+        statFields,
+        userConfig,
         tabActive: _tabActive,
-        userConfig: userConfig,
         setting: config.setting,
         searchlist: config.search,
         actions: _actions,
         columns: _columns,
         arr_field: _arrField.join(','),
+        BID: param && param.BID ? param.BID : '',
         search: Utils.initMainSearch(initSearch) // 鎼滅储鏉′欢鍒濆鍖栵紙鍚湁鏃堕棿鏍煎紡锛岄渶瑕佽浆鍖栵級
       }, () => {
         if (config.setting.onload !== 'false' && valid) { // 鍒濆鍖栧彲鍔犺浇
@@ -464,7 +470,7 @@
    * @description 涓昏〃鏁版嵁鍔犺浇
    */ 
   async loadmaindata () {
-    const { setting, arr_field, BIDs, search, orderBy, BID, pageIndex, pageSize } = this.state
+    const { setting, arr_field, BIDs, search, orderBy, BID, pageIndex, pageSize, absFields } = this.state
     let requireFields = search.filter(item => item.required && (!item.value || item.value.length === 0))
 
     this.setState({
@@ -503,6 +509,15 @@
     if (result.status) {
       this.setState({
         data: result.data.map((item, index) => {
+          if (absFields.length) {
+            absFields.forEach(field => {
+              if (!item[field]) return
+              if (isNaN(Math.abs(item[field]))) return
+
+              item[field] = Math.abs(item[field])
+            })
+          }
+
           item.key = index
           return item
         }),
@@ -526,7 +541,7 @@
    * @description 鑾峰彇鍗曡鏁版嵁
    */ 
   async loadmainLinedata (id) {
-    const { setting, arr_field, search, orderBy, BID, pageIndex, pageSize } = this.state
+    const { setting, arr_field, search, orderBy, BID, pageIndex, pageSize, absFields } = this.state
 
     this.setState({
       loading: true
@@ -545,6 +560,15 @@
       if (result.data && result.data[0]) {
         let _data = result.data[0]
 
+        if (absFields.length) {
+          absFields.forEach(field => {
+            if (!_data[field]) return
+            if (isNaN(Math.abs(_data[field]))) return
+            
+            _data[field] = Math.abs(_data[field])
+          })
+        }
+
         try {
           data = data.map(item => {
             if (item[setting.primaryKey] === _data[setting.primaryKey]) {
diff --git a/src/tabviews/subtable/index.jsx b/src/tabviews/subtable/index.jsx
index ee5be01..df9cbc2 100644
--- a/src/tabviews/subtable/index.jsx
+++ b/src/tabviews/subtable/index.jsx
@@ -60,7 +60,8 @@
     pickup: false,        // 瀛愯〃鏁版嵁闅愯棌鏄剧ず鍒囨崲
     chartId: '',          // 灞曞紑鍥捐〃ID
     statFields: [],       // 鍚堣瀛楁
-    statFValue: []        // 鍚堣鍊�
+    statFValue: [],       // 鍚堣鍊�
+    absFields: [],        // 缁濆鍊煎瓧娈�
   }
 
   /**
@@ -132,6 +133,7 @@
       let _hideCol = []      // 闅愯棌鍙婂悎骞跺垪涓瓧娈电殑uuid闆�
       let colMap = new Map()
       let statFields = []    // 鍚堣瀛楁淇℃伅
+      let absFields = []     // 缁濆鍊煎瓧娈�
 
       // 鐗堟湰鍏煎
       config = UtilsUpdate.updateSubTable(config)
@@ -208,6 +210,9 @@
           col.nameField && _arrField.push(col.nameField) // 閾炬帴鍚嶅瓧娈�
           if (col.Hide !== 'true' && col.type === 'number' && col.sum === 'true') {
             statFields.push(col)
+          }
+          if (col.format === 'abs') {
+            absFields.push(col.field)
           }
         }
         if (col.type === 'colspan' && col.sublist) { // 绛涢�夐殣钘忓垪
@@ -332,9 +337,10 @@
 
       this.setState({
         loadingview: false,
-        chartId: chartId,
-        config: config,
-        statFields: statFields,
+        chartId,
+        config,
+        absFields,
+        statFields,
         setting: config.setting,
         searchlist: config.search,
         actions: _actions,
@@ -367,7 +373,7 @@
    */
   async loadmaindata (bid, type) {
     const { mainSearch } = this.props
-    const { setting, arr_field, search, orderBy, pageIndex, pageSize } = this.state
+    const { setting, arr_field, search, orderBy, pageIndex, pageSize, absFields } = this.state
 
     let _BID = this.props.BID
     let searches = fromJS(search).toJS()
@@ -419,6 +425,14 @@
     if (result.status) {
       this.setState({
         data: result.data.map((item, index) => {
+          if (absFields.length) {
+            absFields.forEach(field => {
+              if (!item[field]) return
+              if (isNaN(Math.abs(item[field]))) return
+
+              item[field] = Math.abs(item[field])
+            })
+          }
           item.key = index
           return item
         }),
@@ -444,7 +458,7 @@
    */ 
   async loadmainLinedata (id) {
     const { mainSearch, BID } = this.props
-    const { setting, arr_field, search, orderBy, pageIndex, pageSize } = this.state
+    const { setting, arr_field, search, orderBy, pageIndex, pageSize, absFields } = this.state
 
     let searches = fromJS(search).toJS()
     if (mainSearch && mainSearch.length > 0) { // 涓昏〃鎼滅储鏉′欢
@@ -468,6 +482,15 @@
       if (result.data && result.data[0]) {
         let _data = result.data[0]
 
+        if (absFields.length) {
+          absFields.forEach(field => {
+            if (!_data[field]) return
+            if (isNaN(Math.abs(_data[field]))) return
+            
+            _data[field] = Math.abs(_data[field])
+          })
+        }
+
         try {
           data = data.map(item => {
             if (item[setting.primaryKey] === _data[setting.primaryKey]) {
diff --git a/src/tabviews/subtabtable/index.jsx b/src/tabviews/subtabtable/index.jsx
index aef5022..55d904d 100644
--- a/src/tabviews/subtabtable/index.jsx
+++ b/src/tabviews/subtabtable/index.jsx
@@ -58,7 +58,8 @@
     search: '',           // 鎼滅储鏉′欢鏁扮粍锛屼娇鐢ㄦ椂闇�鍒嗗満鏅鐞�
     chartId: '',          // 灞曞紑鍥捐〃ID
     statFields: [],       // 鍚堣瀛楁
-    statFValue: []        // 鍚堣鍊�
+    statFValue: [],       // 鍚堣鍊�
+    absFields: [],        // 缁濆鍊煎瓧娈�
   }
 
   /**
@@ -106,6 +107,7 @@
       let _hideCol = []      // 闅愯棌鍙婂悎骞跺垪涓瓧娈电殑uuid闆�
       let colMap = new Map()
       let statFields = []    // 鍚堣瀛楁淇℃伅
+      let absFields = []     // 缁濆鍊煎瓧娈�
 
       // 鐗堟湰鍏煎
       config = UtilsUpdate.updateSubTable(config)
@@ -138,7 +140,6 @@
           duration: 5
         })
       }
-      
 
       // 鏉冮檺杩囨护
       if (this.props.menuType !== 'HS') {
@@ -187,6 +188,9 @@
           col.nameField && _arrField.push(col.nameField) // 閾炬帴鍚嶅瓧娈�
           if (col.Hide !== 'true' && col.type === 'number' && col.sum === 'true') {
             statFields.push(col)
+          }
+          if (col.format === 'abs') {
+            absFields.push(col.field)
           }
         }
         if (col.type === 'colspan' && col.sublist) { // 绛涢�夐殣钘忓垪
@@ -288,9 +292,10 @@
 
       this.setState({
         loadingview: false,
-        chartId: chartId,
-        config: config,
-        statFields: statFields,
+        chartId,
+        config,
+        absFields,
+        statFields,
         setting: config.setting,
         searchlist: config.search,
         actions: _actions,
@@ -321,7 +326,7 @@
    */
   async loadmaindata () {
     const { mainSearch, BID } = this.props
-    const { setting, arr_field, search, orderBy, pageIndex, pageSize } = this.state
+    const { setting, arr_field, search, orderBy, pageIndex, pageSize, absFields } = this.state
 
     let searches = fromJS(search).toJS()
     if (mainSearch && mainSearch.length > 0) { // 涓昏〃鎼滅储鏉′欢
@@ -358,6 +363,14 @@
     if (result.status) {
       this.setState({
         data: result.data.map((item, index) => {
+          if (absFields.length) {
+            absFields.forEach(field => {
+              if (!item[field]) return
+              if (isNaN(Math.abs(item[field]))) return
+
+              item[field] = Math.abs(item[field])
+            })
+          }
           item.key = index
           return item
         }),
diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx
index cdeae62..32401b9 100644
--- a/src/templates/zshare/formconfig.jsx
+++ b/src/templates/zshare/formconfig.jsx
@@ -1256,6 +1256,9 @@
       }, {
         value: 'percent',
         text: '鐧惧垎姣�'
+      }, {
+        value: 'abs',
+        text: '缁濆鍊�'
       }],
       required: false
     },

--
Gitblit v1.8.0