From ba9e189dd33c8d48f7f4ac36bcefeef9afb426f8 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 17 七月 2023 23:40:49 +0800
Subject: [PATCH] 2023-07-17

---
 src/tabviews/zshare/actionList/normalbutton/index.jsx |  160 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 124 insertions(+), 36 deletions(-)

diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx
index f49846b..9ac4aef 100644
--- a/src/tabviews/zshare/actionList/normalbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx
@@ -4,6 +4,7 @@
 import qs from 'qs'
 import { is, fromJS } from 'immutable'
 import { Button, Modal, notification, message, Drawer, Switch, Checkbox, Progress } from 'antd'
+import md5 from 'md5'
 
 import Api from '@/api'
 import Utils, { getSysDefaultSql } from '@/utils/utils.js'
@@ -1103,7 +1104,8 @@
             this.execError(res)
           }
           _resolve()
-        }, () => {
+        }, (error) => {
+          if (error && error.ErrCode === 'LoginError') return
           this.updateStatus()
           _resolve()
         })
@@ -1116,7 +1118,8 @@
                   this.triggerNote(res) // 娑堟伅
                 }
                 resolve(res)
-              }, () => {
+              }, (error) => {
+                if (error && error.ErrCode === 'LoginError') return
                 this.updateStatus()
                 _resolve()
               })
@@ -1143,7 +1146,7 @@
           _resolve()
         })
       } else { // 瓒呭嚭20涓姹傛椂寰幆鎵ц
-        if (btn.progress === 'progressbar' && btn.$toolbtn && params.length > 1) {
+        if (btn.progress === 'progressbar' && params.length > 1) {
           this.setState({
             loadingTotal: params.length
           })
@@ -1164,7 +1167,7 @@
         _params = this.getInnerParam(data, formdata, btn.callbackType === 'script')
       }
 
-      if (_params.length > 1 && btn.progress === 'progressbar' && btn.$toolbtn) {
+      if (_params.length > 1 && btn.progress === 'progressbar') {
         this.setState({
           loadingTotal: _params.length
         })
@@ -1185,7 +1188,7 @@
         params = this.getInnerParam(data, formdata, btn.callbackType === 'script')
       }
 
-      if (params.length > 1 && btn.progress === 'progressbar' && btn.$toolbtn) {
+      if (params.length > 1 && btn.progress === 'progressbar') {
         this.setState({
           loadingTotal: params.length
         })
@@ -1208,31 +1211,59 @@
     let record = {
       BID: param.BID || '',
       ID: param.ID || '',
-      callbacksql: param.$callbacksql || ''
+      callbacksql: param.$callbacksql || '',
+      mk_api_key: ''
     }
 
     delete param.$callbacksql
 
-    if (!param.func) {
+    if (param.$pice) {
+      record = param.$record
+
+      delete param.$record
+
+      this.customOuterRequest(params, param, record, _resolve)
+      return
+    } else if (!param.func) {
       this.customOuterRequest(params, param, record, _resolve)
       return
     }
 
     Api.genericInterface(param).then(res => {
+      record.mk_api_key = res.mk_api_key || ''
+
       if (res.status) {
-        if ((res.mk_ex_invoke === 'false' || res.mk_ex_invoke === false) && params.length === 0) {
+        if (res.mk_ex_invoke + '' === 'false' && params.length === 0) {
           this.execSuccess(res)
           _resolve()
-        } else if ((res.mk_ex_invoke === 'false' || res.mk_ex_invoke === false) && params.length > 0) {
+        } else if (res.mk_ex_invoke + '' === 'false' && params.length > 0) {
           this.customLoopRequest(params, _resolve)
         } else {
-          this.customOuterRequest(params, res, record, _resolve)
+          if (res.mk_ex_data) { // 鏁版嵁鍒嗘壒鎵ц
+            if (Array.isArray(res.mk_ex_data) && res.mk_ex_data.length > 0) {
+              let pices = res.mk_ex_data.map(item => {
+                item.$pice = true
+                item.$record = record
+                return item
+              })
+              params = [...pices, ...params]
+              this.customLoopRequest(params, _resolve)
+            } else if (params.length === 0) {
+              this.execSuccess(res)
+              _resolve()
+            } else {
+              this.customLoopRequest(params, _resolve)
+            }
+          } else {
+            this.customOuterRequest(params, res, record, _resolve)
+          }
         }
       } else {
         this.execError(res)
         _resolve()
       }
-    }, () => {
+    }, (error) => {
+      if (error && error.ErrCode === 'LoginError') return
       this.updateStatus()
       _resolve()
     })
@@ -1257,21 +1288,26 @@
       url = btn.interface
     }
 
-    let mkey = result.mk_api_key || ''
-
-    delete result.mk_ex_invoke
-    delete result.status
-    delete result.message
-    delete result.ErrCode
-    delete result.ErrMesg
-    delete result.mk_api_key
-
+    
     let param = {}
 
-    Object.keys(result).forEach(key => {
-      key = key.replace(/^mk_/ig, '')
-      param[key] = result[key]
-    })
+    if (result.$pice) {
+      delete result.$pice
+
+      param = {...result}
+    } else {
+      delete result.mk_ex_invoke
+      delete result.status
+      delete result.message
+      delete result.ErrCode
+      delete result.ErrMesg
+      delete result.mk_api_key
+
+      Object.keys(result).forEach(key => {
+        key = key.replace(/^mk_/ig, '')
+        param[key] = result[key]
+      })
+    }
 
     let _params = {
       url: url,
@@ -1312,6 +1348,12 @@
       _params.method = 'post'
     }
 
+    if (btn.ContentType) {
+      _params.headers = {
+        'Content-Type': btn.ContentType
+      }
+    }
+
     Api.directRequest(_params).then(res => {
       if (typeof(res) !== 'object') {
         let error = '鏈煡鐨勮繑鍥炵粨鏋滐紒'
@@ -1321,7 +1363,7 @@
         }
 
         let result = {
-          mk_api_key: mkey,
+          mk_api_key: record.mk_api_key,
           $ErrCode: 'E',
           $ErrMesg: error
         }
@@ -1331,12 +1373,22 @@
         if (Array.isArray(res)) {
           res = { data: res }
         }
-        res.mk_api_key = mkey
+
+        if (btn.outerBlacklist) {
+          let list = btn.outerBlacklist.split(',').map(m => m.toLowerCase())
+          Object.keys(res).forEach(key => {
+            if (list.includes(key.toLowerCase())) {
+             delete res[key]
+            }
+          })
+        }
+        
+        res.mk_api_key = record.mk_api_key
         this.customCallbackRequest(params, res, record, _resolve)
       }
     }, (e) => {
       let result = {
-        mk_api_key: mkey,
+        mk_api_key: record.mk_api_key,
         $ErrCode: 'E',
         $ErrMesg: e && e.statusText ? e.statusText : ''
       }
@@ -1424,7 +1476,8 @@
         this.execError(res)
         _resolve()
       }
-    }, () => {
+    }, (error) => {
+      if (error && error.ErrCode === 'LoginError') return
       this.updateStatus()
       _resolve()
     })
@@ -1473,14 +1526,14 @@
           if (typeof(val) === 'string') {
             val = val.replace(/'/ig, '"')
           }
-          keys.push(key)
+          keys.push('[' + key + ']')
           vals.push(`'${val}'`)
         }
       })
 
       lines.push({
         table: tb,
-        insert: `Insert into ${pre}${tb} (${keys.join(',')},mk_level,mk_id,mk_bid)`,
+        insert: `Insert into ${pre}${tb} (${keys.join(',')},[mk_level],[mk_id],[mk_bid])`,
         select: `Select ${vals.join(',')},'${level}','${id}','${bid}'`
       })
 
@@ -1639,7 +1692,8 @@
         this.execError(res)
         _resolve()
       }
-    }, () => {
+    }, (error) => {
+      if (error && error.ErrCode === 'LoginError') return
       this.updateStatus()
       _resolve()
     })
@@ -1702,7 +1756,8 @@
         this.execError(res)
         _resolve()
       }
-    }, () => {
+    }, (error) => {
+      if (error && error.ErrCode === 'LoginError') return
       this.updateStatus()
       _resolve()
     })
@@ -1764,7 +1819,8 @@
         this.execError(res)
         _resolve()
       }
-    }, () => {
+    }, (error) => {
+      if (error && error.ErrCode === 'LoginError') return
       this.updateStatus()
       _resolve()
     })
@@ -1834,7 +1890,8 @@
         return
       }
       this.outerCallbackRequest(params, res, record, outParam, _resolve)
-    }, () => {
+    }, (error) => {
+      if (error && error.ErrCode === 'LoginError') return
       this.outerCallbackRequest(params, {status: false, message: 500, ErrCode: 'E', ErrMesg: 500}, record, outParam, _resolve)
     })
   }
@@ -2139,6 +2196,10 @@
 
       MKEmitter.emit('modifyTabs', newtab, true)
     }
+
+    if (btn.execSuccess === 'popclose' && btn.$tabId) { // 鏍囩鍏抽棴鍒锋柊
+      MKEmitter.emit('refreshPopButton', btn.$tabId)
+    }
   }
 
   triggerNote = (res) => {
@@ -2426,6 +2487,29 @@
             duration: 5
           })
         }
+      }, (error) => {
+        if (error && error.ErrCode === 'LoginError') {
+          let param = {
+            func: 's_visitor_login',
+            timestamp: moment().format('YYYY-MM-DD HH:mm:ss'), 
+            SessionUid: 'bh0bapabtd45epsgra79segbch6c1ibk',
+            TypeCharOne: 'pc',
+            appkey: '202004041613277377A6A2456D34A4948AE84'
+          }
+
+          param.LText = md5(window.btoa('bh0bapabtd45epsgra79segbch6c1ibk' + param.timestamp))
+          param.secretkey = md5(param.LText + 'mingke' + param.timestamp)
+
+          let params = {
+            url: 'https://sso.mk9h.cn/webapi/dologon',
+            method: 'post',
+            data: JSON.stringify(param)
+          }
+
+          Api.directRequest(params)
+
+          return
+        }
       })
     })
   }
@@ -2533,6 +2617,10 @@
 
     if (window.GLOB.breakpoint) {
       MKEmitter.emit('refreshDebugTable')
+    }
+
+    if (btn.execError === 'popclose' && btn.$tabId) { // 鏍囩鍏抽棴鍒锋柊
+      MKEmitter.emit('refreshPopButton', btn.$tabId)
     }
   }
 
@@ -2996,8 +3084,8 @@
       className = 'mk-btn mk-' + (btn.class || 'unset')
     }
 
-    if (loadingNumber && !loadingTotal && btn.$toolbtn && (!btn.show || btn.show === 'button')) {
-      label = (loadingNumber && !loadingTotal ? `(${loadingNumber})` : '') + btn.label
+    if (loadingNumber && btn.progress !== 'progressbar' && btn.$toolbtn && (!btn.show || btn.show === 'button')) {
+      label = (loadingNumber ? `(${loadingNumber})` : '') + btn.label
     }
 
     return <>

--
Gitblit v1.8.0