From c7aece35a62b6e91fd98a625bf0e53f64bfbd18d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 17 八月 2023 16:22:15 +0800
Subject: [PATCH] 2023-08-17

---
 src/tabviews/zshare/actionList/normalbutton/index.jsx |  367 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 229 insertions(+), 138 deletions(-)

diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx
index 48ae9df..f07a1dd 100644
--- a/src/tabviews/zshare/actionList/normalbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx
@@ -8,9 +8,6 @@
 
 import Api from '@/api'
 import Utils, { getSysDefaultSql } from '@/utils/utils.js'
-import options from '@/store/options.js'
-import zhCN from '@/locales/zh-CN/main.js'
-import enUS from '@/locales/en-US/main.js'
 import asyncSpinComponent from '@/utils/asyncSpinComponent'
 import { updateForm } from '@/utils/utils-update.js'
 import MKEmitter from '@/utils/events.js'
@@ -34,7 +31,6 @@
   }
 
   state = {
-    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     visible: false,
     formdata: null,
     selines: null,
@@ -260,7 +256,7 @@
       // 闇�瑕侀�夋嫨琛屾椂锛屾牎楠屾暟鎹�
       notification.warning({
         top: 92,
-        message: this.state.dict['main.action.confirm.selectline'],
+        message: '璇烽�夋嫨琛岋紒',
         duration: 5
       })
       return
@@ -268,15 +264,7 @@
       // 闇�瑕侀�夋嫨鍗曡鏃讹紝鏍¢獙鏁版嵁
       notification.warning({
         top: 92,
-        message: this.state.dict['main.action.confirm.selectSingleLine'],
-        duration: 5
-      })
-      return
-    } else if (!['requiredSgl', 'notRequired', 'requiredOnce', 'required'].includes(btn.Ot)) {
-      // 鏁版嵁閫夋嫨绫诲瀷鏍¢獙
-      notification.warning({
-        top: 92,
-        message: '鎸夐挳琛岃缃敊璇紒',
+        message: '璇烽�夋嫨鍗曡鏁版嵁锛�',
         duration: 5
       })
       return
@@ -355,7 +343,7 @@
     } else if (btn.OpenType === 'prompt') {
       this.setState({loading: true})
       confirm({
-        title: btn.tipTitle || this.state.dict['main.action.confirm.tip'],
+        title: btn.tipTitle || '纭畾瑕佹墽琛屽悧?',
         onOk() {
           return new Promise(resolve => {
             _this.execSubmit(data, resolve)
@@ -464,10 +452,9 @@
         }
 
         if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-          param.LText = param.LText.replace(/\$@/ig, '/*')
-          param.LText = param.LText.replace(/@\$/ig, '*/')
+          param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
         } else {
-          param.LText = param.LText.replace(/@\$|\$@/ig, '')
+          param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
         }
 
         param.exec_type = 'y' // 鍚庡彴瑙g爜
@@ -507,10 +494,9 @@
           }
           
           if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-            param.LText = param.LText.replace(/\$@/ig, '/*')
-            param.LText = param.LText.replace(/@\$/ig, '*/')
+            param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
           } else {
-            param.LText = param.LText.replace(/@\$|\$@/ig, '')
+            param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
           }
 
           param.exec_type = 'y' // 鍚庡彴瑙g爜
@@ -540,10 +526,9 @@
           }
           
           if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-            param.LText = param.LText.replace(/\$@/ig, '/*')
-            param.LText = param.LText.replace(/@\$/ig, '*/')
+            param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
           } else {
-            param.LText = param.LText.replace(/@\$|\$@/ig, '')
+            param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
           }
 
           param.exec_type = 'y' // 鍚庡彴瑙g爜
@@ -613,10 +598,9 @@
           }
           
           if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-            param.LText = param.LText.replace(/\$@/ig, '/*')
-            param.LText = param.LText.replace(/@\$/ig, '*/')
+            param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
           } else {
-            param.LText = param.LText.replace(/@\$|\$@/ig, '')
+            param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
           }
 
           param.exec_type = 'y' // 鍚庡彴瑙g爜
@@ -660,10 +644,9 @@
             }
             
             if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-              param.LText = param.LText.replace(/\$@/ig, '/*')
-              param.LText = param.LText.replace(/@\$/ig, '*/')
+              param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
             } else {
-              param.LText = param.LText.replace(/@\$|\$@/ig, '')
+              param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
             }
 
             param.exec_type = 'y' // 鍚庡彴瑙g爜
@@ -693,10 +676,9 @@
             }
             
             if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-              param.LText = param.LText.replace(/\$@/ig, '/*')
-              param.LText = param.LText.replace(/@\$/ig, '*/')
+              param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
             } else {
-              param.LText = param.LText.replace(/@\$|\$@/ig, '')
+              param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
             }
 
             param.exec_type = 'y' // 鍚庡彴瑙g爜
@@ -988,11 +970,6 @@
     let district = sessionStorage.getItem('district') || ''
     let address = sessionStorage.getItem('address') || ''
   
-    if (sessionStorage.getItem('isEditState') === 'true') {
-      userName = sessionStorage.getItem('CloudUserName') || ''
-      fullName = sessionStorage.getItem('CloudFullName') || ''
-    }
-  
     // 鍒濆鍖栧嚟璇佸強鐢ㄦ埛淇℃伅瀛楁
     _sql += `
         /* 鍑瘉鍙婄敤鎴蜂俊鎭垵濮嬪寲璧嬪�� */
@@ -1021,6 +998,12 @@
     _sql = _sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
     _sql = _sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
     _sql = _sql.replace(/@typename@/ig, `'admin'`)
+
+    if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
+      _sql = _sql.replace(/@datam@/ig, '\'Y\'')
+    } else {
+      _sql = _sql.replace(/@datam@/ig, '\'\'')
+    }
 
     return _sql
   }
@@ -1098,7 +1081,7 @@
               }, 600)
             }
 
-            this.triggerNote(res) // 娑堟伅
+            this.triggerNote(res, _param.ID) // 娑堟伅
             this.execSuccess(res)
           } else {
             this.execError(res)
@@ -1115,7 +1098,7 @@
             setTimeout(() => {
               Api.genericInterface(param).then(res => {
                 if (res.status) {
-                  this.triggerNote(res) // 娑堟伅
+                  this.triggerNote(res, param.ID) // 娑堟伅
                 }
                 resolve(res)
               }, (error) => {
@@ -1211,25 +1194,58 @@
     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}
+
+                if (item.hasOwnProperty('mk_api_key')) {
+                  item.$record.mk_api_key = item.mk_api_key || record.mk_api_key || ''
+
+                  delete item.mk_api_key
+                }
+                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)
@@ -1261,21 +1277,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,
@@ -1331,7 +1352,7 @@
         }
 
         let result = {
-          mk_api_key: mkey,
+          mk_api_key: record.mk_api_key,
           $ErrCode: 'E',
           $ErrMesg: error
         }
@@ -1351,12 +1372,12 @@
           })
         }
         
-        res.mk_api_key = mkey
+        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 : ''
       }
@@ -1434,6 +1455,8 @@
 
     Api.genericInterface(param).then(res => {
       if (res.status) {
+        this.triggerNote(res, param.ID) // 娑堟伅
+
         if (params.length === 0) {
           this.execSuccess(res)
           _resolve()
@@ -1494,14 +1517,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}'`
       })
 
@@ -1585,17 +1608,16 @@
       sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
       sql = sql.replace(/@typename@/ig, `'admin'`)
 
-      if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
+      if (window.GLOB.debugger === true) {
         console.info(sql.replace(/\n\s{8}/ig, '\n'))
       }
 
       param.LText = sql
       
       if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-        param.LText = param.LText.replace(/\$@/ig, '/*')
-        param.LText = param.LText.replace(/@\$/ig, '*/')
+        param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
       } else {
-        param.LText = param.LText.replace(/@\$|\$@/ig, '')
+        param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
       }
       param.LText = param.LText.replace(/\$check@|@check\$/ig, '')
 
@@ -1622,7 +1644,7 @@
         Sort: index + 1
       }))
 
-      if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
+      if (window.GLOB.debugger === true) {
         let sql = [...lineMap.values()].map(item => (`
           ${item.insert}
           ${item.selects.join(` union all
@@ -1648,7 +1670,7 @@
 
     Api.genericInterface(param).then(res => {
       if (res.status) {
-        this.triggerNote(res) // 娑堟伅
+        this.triggerNote(res, param.ID) // 娑堟伅
 
         if (params.length === 0) {
           this.execSuccess(res)
@@ -1682,7 +1704,7 @@
 
     Api.genericInterface(param).then(res => {
       if (res.status) {
-        this.triggerNote(res) // 娑堟伅
+        this.triggerNote(res, param.ID) // 娑堟伅
 
         if (params.length === 0) {
           this.execSuccess(res)
@@ -1691,15 +1713,20 @@
           this.checkLoopRequest(params, _resolve)
         }
       } else if (res.ErrCode === 'C') {
+        let msg = res.message || ''
+        if (/\n|\r/.test(msg)) {
+          msg = msg.replace(/\n|\r/ig, '<br/>')
+          msg = <span dangerouslySetInnerHTML={{__html: msg}}></span>
+        }
         const _this = this
         confirm({
-          title: '缁х画鎵ц锛�',
-          content: res.message,
+          title: '璇风‘璁�',
+          content: msg,
           onOk() {
             return new Promise(resolve => {
               Api.genericInterface(unCheckParam).then(result => {
                 if (result.status) {
-                  _this.triggerNote(result) // 娑堟伅
+                  _this.triggerNote(result, param.ID) // 娑堟伅
           
                   if (params.length === 0) {
                     _this.execSuccess(result)
@@ -1807,8 +1834,8 @@
         if (window.GLOB.mainSystemApi) {
           result.rduri = window.GLOB.mainSystemApi
         }
-      } else if (btn.sysInterface === 'true' && options.cloudServiceApi) {
-        result.rduri = options.cloudServiceApi
+      } else if (btn.sysInterface === 'true' && window.GLOB.cloudServiceApi) {
+        result.rduri = window.GLOB.cloudServiceApi
         result.userid = sessionStorage.getItem('CloudUserID') || ''
         result.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
       } else if (btn.sysInterface !== 'true') {
@@ -1941,6 +1968,8 @@
 
     Api.genericInterface(param).then(res => {
       if (res.status) {
+        this.triggerNote(res, param.ID) // 娑堟伅
+
         // 涓�娆¤姹傛垚鍔燂紝杩涜涓嬩竴椤硅姹�
         if (params.length === 0) {
           this.execSuccess(res)
@@ -2030,7 +2059,16 @@
    */
   execSuccess = (res = {}) => {
     const { btn } = this.props
-    const { btnconfig, autoMatic } = this.state
+    const { autoMatic } = this.state
+
+    if (autoMatic) {
+      this.setState({
+        loading: false,
+        visible: false
+      })
+      MKEmitter.emit('autoExecOver', btn.uuid, 'success')
+      return
+    }
 
     let sign = ''
     if (/^@speak@/i.test(res.message)) {
@@ -2048,44 +2086,9 @@
       if (!res.message) {
         res.ErrCode = '-1'
       }
-    } else if (/@close_tab@|@close_popup@|@goback@/i.test(res.message)) {
-      sign = res.message.match(/@close_tab@|@close_popup@|@goback@/i)[0].toLowerCase()
-      res.message = res.message.replace(/@close_tab@|@close_popup@|@goback@/i, '')
-    }
-
-    if ((res.ErrCode === 'S' || !res.ErrCode) || autoMatic) { // 鎵ц鎴愬姛
-      if (btn.formType !== 'counter' || res.message) {
-        notification.success({
-          top: 92,
-          message: res.message || '鎵ц鎴愬姛锛�',
-          duration: btn.verify && btn.verify.stime ? btn.verify.stime : 2
-        })
-      }
-    } else if (res.ErrCode === 'Y') { // 鎵ц鎴愬姛
-      Modal.success({
-        title: res.message || '鎵ц鎴愬姛锛�'
-      })
-    } else if (res.ErrCode === '-1') { // 瀹屾垚鍚庝笉鎻愮ず
-
-    }
-
-    this.setState({
-      loadingNumber: '',
-      loadingTotal: '',
-    })
-    
-    if (autoMatic) {
-      this.setState({
-        loading: false,
-        visible: false
-      })
-      MKEmitter.emit('autoExecOver', btn.uuid, 'success')
-      return
-    } else if (btn.OpenType !== 'pop' || !btnconfig || btnconfig.setting.finish !== 'unclose') {
-      this.setState({
-        loading: false,
-        visible: false
-      })
+    } else if (/@close_tab@|@close_popup@|@goback@|@no_target_menu@/i.test(res.message)) {
+      sign = res.message.match(/@close_tab@|@close_popup@|@goback@|@no_target_menu@/i)[0].toLowerCase()
+      res.message = res.message.replace(/@close_tab@|@close_popup@|@goback@|@no_target_menu@/i, '')
     }
 
     let id = ''
@@ -2096,6 +2099,53 @@
     if (res.mk_icon) {
       sessionStorage.setItem('avatar', res.mk_icon)
     }
+
+    res.ErrCode = res.ErrCode || 'S'
+
+    if (res.ErrCode === 'S') { // 鎵ц鎴愬姛
+      if (btn.formType !== 'counter' || res.message) {
+        notification.success({
+          top: 92,
+          message: res.message || '鎵ц鎴愬姛锛�',
+          duration: btn.verify && btn.verify.stime ? btn.verify.stime : 2
+        })
+      }
+    } else if (res.ErrCode === 'Y') { // 鎵ц鎴愬姛
+      let msg = res.message || '鎵ц鎴愬姛锛�'
+      if (/\n|\r/.test(msg)) {
+        msg = msg.replace(/\n|\r/ig, '<br/>')
+        msg = <span dangerouslySetInnerHTML={{__html: msg}}></span>
+      }
+      Modal.success({
+        title: msg,
+        onOk: () => {
+          this.successContinue(sign, id)
+        }
+      })
+      return
+    } else if (res.ErrCode === '-1') { // 瀹屾垚鍚庝笉鎻愮ず
+
+    }
+
+    this.successContinue(sign, id)
+  }
+
+  successContinue = (sign, id) => {
+    const { btn } = this.props
+    const { btnconfig } = this.state
+
+    this.setState({
+      loadingNumber: '',
+      loadingTotal: '',
+    })
+    
+    if (btn.OpenType !== 'pop' || !btnconfig || btnconfig.setting.finish !== 'unclose') {
+      this.setState({
+        loading: false,
+        visible: false
+      })
+    }
+
     let tabId = ''
     if (btn.refreshTab && btn.refreshTab.length > 0) {
       tabId = btn.refreshTab[btn.refreshTab.length - 1]
@@ -2145,7 +2195,7 @@
       node && node.scrollIntoView({behavior: 'smooth', block: 'center', inline: 'nearest'})
     }
 
-    if (btn.openmenu && Array.isArray(btn.openmenu) && btn.openmenu.length > 0) {
+    if (btn.openmenu && Array.isArray(btn.openmenu) && btn.openmenu.length > 0 && sign !== '@no_target_menu@') {
       let menuId = btn.openmenu.slice(-1)[0]
       let newtab = window.GLOB.mkThdMenus.filter(m => m.MenuID === menuId)[0]
 
@@ -2170,15 +2220,19 @@
     }
   }
 
-  triggerNote = (res) => {
+  triggerNote = (res, ID) => {
     const { btn } = this.props
 
     if (!btn.verify) return
-    if (btn.verify.noteEnable !== 'true' && btn.verify.wxNote !== 'true') return
+    if (btn.verify.noteEnable !== 'true' && btn.verify.wxNote !== 'true' && btn.verify.printEnable !== 'true') return
 
     let id = ''
     if (btn.output) {
       id = res.mk_b_id || res[btn.output] || ''
+    }
+
+    if (btn.verify.printEnable === 'true') {
+      this.billPrint(id || ID)
     }
 
     if (!id) return
@@ -2202,6 +2256,16 @@
     }
   }
 
+  billPrint = (id) => {
+    const { btn } = this.props
+
+    if (!id) return
+
+    setTimeout(() => {
+      window.open('#/billprint/' + window.btoa(window.encodeURIComponent(JSON.stringify({ id: id, tempId: btn.verify.printTempId, pageId: btn.$MenuID || '', dataM: sessionStorage.getItem('dataM') }))))
+    }, 500)
+  }
+
   sendWxMessage = (verify, id) => {
     if (!window.GLOB.nginx) {
       notification.warning({
@@ -2223,7 +2287,7 @@
 
     let domain1 = ''
     let domain2 = ''
-    if (['8IFltwzyKcu15iA8fqSyb6m-pMa88a3ZTu0No3vDHgo', 'LOB-bbt9jVncGh7IOAUdESh1Sgzcbt62UwOqSqcK9ok'].includes(verify.wxTemplateId) && options.sysType !== 'cloud') {
+    if (['8IFltwzyKcu15iA8fqSyb6m-pMa88a3ZTu0No3vDHgo', 'LOB-bbt9jVncGh7IOAUdESh1Sgzcbt62UwOqSqcK9ok'].includes(verify.wxTemplateId) && window.GLOB.sysType !== 'cloud') {
       domain1 = 'https://cloud.mk9h.cn/'
       domain2 = 'https://cloud.mk9h.cn:8443/'
     }
@@ -2490,8 +2554,29 @@
    */
   execError = (res = {}) => {
     const { btn } = this.props
-    const { btnconfig, autoMatic } = this.state
+    const { autoMatic } = this.state
 
+    if (autoMatic) {
+      notification.error({
+        top: 92,
+        message: res.message || '鎵ц澶辫触锛�',
+        duration: 10
+      })
+
+      this.setState({
+        loading: false,
+        loadingNumber: '',
+        loadingTotal: '',
+        visible: false
+      })
+      MKEmitter.emit('autoExecOver', btn.uuid, 'error')
+      return
+    }
+
+    if (!['LoginError', 'C', '-2', 'E', 'N', 'F', 'NM'].includes(res.ErrCode)) {
+      res.ErrCode = 'E'
+    }
+    
     let sign = ''
     if (/^@speak@/i.test(res.message)) {
       res.message = res.message.replace(/^@speak@/i, '')
@@ -2513,11 +2598,20 @@
       res.message = res.message.replace(/@close_tab@|@close_popup@|@goback@/i, '')
     }
 
-    if (res.ErrCode === 'E' && !autoMatic) {
+    if (res.ErrCode === 'E') {
+      let msg = res.message || '鎵ц澶辫触锛�'
+      if (/\n|\r/.test(msg)) {
+        msg = msg.replace(/\n|\r/ig, '<br/>')
+        msg = <span dangerouslySetInnerHTML={{__html: msg}}></span>
+      }
       Modal.error({
-        title: res.message || '鎵ц澶辫触锛�',
+        title: msg,
+        onOk: () => {
+          this.errorContinue(sign)
+        }
       })
-    } else if (res.ErrCode === 'N' || autoMatic) {
+      return
+    } else if (res.ErrCode === 'N') {
       notification.error({
         top: 92,
         message: res.message || '鎵ц澶辫触锛�',
@@ -2534,16 +2628,14 @@
       message.error(res.message || '鎵ц澶辫触锛�')
     }
 
-    if (autoMatic) {
-      this.setState({
-        loading: false,
-        loadingNumber: '',
-        loadingTotal: '',
-        visible: false
-      })
-      MKEmitter.emit('autoExecOver', btn.uuid, 'error')
-      return
-    } else if (btn.OpenType !== 'pop' || !btnconfig || btnconfig.setting.finish !== 'unclose') {
+    this.errorContinue(sign)
+  }
+
+  errorContinue = (sign) => {
+    const { btn } = this.props
+    const { btnconfig } = this.state
+
+    if (btn.OpenType !== 'pop' || !btnconfig || btnconfig.setting.finish !== 'unclose') {
       this.setState({
         loading: false
       })
@@ -2789,7 +2881,7 @@
         _item.fieldlen = item.decimal || 0
       } else if (['text', 'textarea', 'linkMain'].includes(_item.type)) {
         _item.value = _item.value + ''
-        _item.value = _item.value.replace(/\t*|\v*/g, '')       // 鍘婚櫎鍒惰〃绗�
+        _item.value = _item.value.replace(/\t+|\v+/g, '')       // 鍘婚櫎鍒惰〃绗�
 
         if (item.interception !== 'false') {                    // 鍘婚櫎棣栧熬绌烘牸
           _item.value = _item.value.replace(/(^\s*|\s*$)/g, '')
@@ -2836,7 +2928,7 @@
       this.execSubmit(selines, () => {}, result)
     } else {
       confirm({
-        title: btn.tipTitle || this.state.dict['main.action.confirm.tip'],
+        title: btn.tipTitle || '纭畾瑕佹墽琛屽悧?',
         onOk() {
           return new Promise(resolve => {
             _this.execSubmit(selines, resolve, result)
@@ -2882,7 +2974,6 @@
         >
           <MutilForm
             BID={BID}
-            dict={this.state.dict}
             action={btnconfig}
             inputSubmit={this.handleOk}
             data={this.state.selines[0]}
@@ -2923,7 +3014,6 @@
         >
           <MutilForm
             BID={BID}
-            dict={this.state.dict}
             action={btnconfig}
             inputSubmit={this.handleOk}
             data={this.state.selines[0]}
@@ -2990,7 +3080,7 @@
       // 闇�瑕侀�夋嫨琛屾椂锛屾牎楠屾暟鎹�
       notification.warning({
         top: 92,
-        message: this.state.dict['main.action.confirm.selectline'],
+        message: '璇烽�夋嫨琛岋紒',
         duration: 5
       })
       return
@@ -2998,7 +3088,7 @@
       // 闇�瑕侀�夋嫨鍗曡鏃讹紝鏍¢獙鏁版嵁
       notification.warning({
         top: 92,
-        message: this.state.dict['main.action.confirm.selectSingleLine'],
+        message: '璇烽�夋嫨鍗曡鏁版嵁锛�',
         duration: 5
       })
       return
@@ -3060,6 +3150,7 @@
       <Button
         type={type}
         icon={icon}
+        id={'button' + btn.uuid}
         title={disabled ? (btn.reason || '') : (btn.show === 'icon' ? btn.label : '')}
         loading={loading}
         disabled={disabled}

--
Gitblit v1.8.0