From a9b02f6862522b54d0824152017bf2acfec2af7b Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 21 三月 2024 10:29:50 +0800
Subject: [PATCH] 2024-03-21

---
 src/tabviews/zshare/actionList/printbutton/index.jsx |  367 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 205 insertions(+), 162 deletions(-)

diff --git a/src/tabviews/zshare/actionList/printbutton/index.jsx b/src/tabviews/zshare/actionList/printbutton/index.jsx
index 2bbfe85..e16a32c 100644
--- a/src/tabviews/zshare/actionList/printbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/printbutton/index.jsx
@@ -6,9 +6,6 @@
 
 import Api from '@/api'
 import Utils 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'
@@ -32,7 +29,6 @@
   }
 
   state = {
-    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     visible: false,
     formdata: null,
     selines: null,
@@ -161,7 +157,7 @@
       // 闇�瑕侀�夋嫨琛屾椂锛屾牎楠屾暟鎹�
       notification.warning({
         top: 92,
-        message: this.state.dict['main.action.confirm.selectline'],
+        message: '璇烽�夋嫨琛岋紒',
         duration: 5
       })
       return
@@ -169,13 +165,9 @@
       // 闇�瑕侀�夋嫨鍗曡鏃讹紝鏍¢獙鏁版嵁
       notification.warning({
         top: 92,
-        message: this.state.dict['main.action.confirm.selectSingleLine'],
+        message: '璇烽�夋嫨鍗曡鏁版嵁锛�',
         duration: 5
       })
-      return
-    } else if (!['requiredSgl', 'notRequired', 'requiredOnce', 'required'].includes(btn.Ot)) {
-      // 鏁版嵁閫夋嫨绫诲瀷鏍¢獙
-      this.actionSettingError()
       return
     } else if (!btn.verify || !btn.verify.printMode) {
       notification.warning({
@@ -212,7 +204,7 @@
     } else if (btn.execMode === 'prompt') {
       this.setState({ loading: true })
       confirm({
-        title: this.state.dict['main.action.confirm.tip'],
+        title: '纭畾瑕佹墽琛屽悧?',
         onOk() {
           _this.triggerPrint(data)
         },
@@ -278,6 +270,9 @@
 
             Object.keys(cell).forEach(key => {
               let _key = key.toLowerCase()
+
+              if (/^\$/.test(_key)) return
+              
               _cell[_key] = cell[key]
             })
 
@@ -413,7 +408,6 @@
             errorMsg = {
               ErrCode: 'N',
               message: _temp.error,
-              ErrMesg: _temp.error,
               status: false
             }
           } else {
@@ -533,7 +527,7 @@
 
       return Api.getSystemCacheConfig(param)
     }).then(result => {
-      if (!result) {
+      if (!result || result.ErrCode === 'LoginError') {
         this.setState({ loading: false })
         return
       }
@@ -573,17 +567,28 @@
   execCustomPrint = (printlist, formdata) => {
     const { btn } = this.props
 
-    this.execSuccess({
-      ErrCode: '-1',
-      message: '',
-      ErrMesg: '',
-      status: true
-    })
+    let callback = null
+
+    if (/callback\(\)/.test(btn.verify.printFunc)) {
+      callback = () => {
+        this.execSuccess({
+          ErrCode: '-1',
+          message: '',
+          status: true
+        })
+      }
+    } else {
+      this.execSuccess({
+        ErrCode: '-1',
+        message: '',
+        status: true
+      })
+    }
 
     try {
       // eslint-disable-next-line
-      let func = new Function('data', 'form', 'printer', 'notification', 'Api', 'systemType', btn.verify.printFunc)
-      func(printlist, formdata, btn.verify, notification, Api, window.GLOB.systemType)
+      let func = new Function('data', 'form', 'printer', 'notification', 'Api', 'systemType', 'callback', btn.verify.printFunc)
+      func(printlist, formdata, btn.verify, notification, Api, window.GLOB.systemType, callback)
 
       // 鑷畾涔夋墦鍗扮ず渚�
       // let defaultPrinter = printer.defaultPrinter || 'lackprinter'
@@ -779,18 +784,11 @@
     } catch (e) {
       console.warn(e)
 
-      try {
-        // eslint-disable-next-line
-        let evalfunc = eval('(true && function (data, form, printer, notification, Api, systemType) {' + btn.verify.printFunc + '})')
-        evalfunc(printlist, formdata, btn.verify, notification, Api, window.GLOB.systemType)
-      } catch (error) {
-        console.warn(error)
-        notification.warning({
-          top: 92,
-          message: '鑷畾涔夊嚱鏁版墽琛岄敊璇紒',
-          duration: 5
-        })
-      }
+      notification.warning({
+        top: 92,
+        message: '鑷畾涔夊嚱鏁版墽琛岄敊璇紒',
+        duration: 5
+      })
     }
   }
 
@@ -912,6 +910,11 @@
         if (btn.intertype === 'inner') {
           params = params.map(_param => {
             _param.func = btn.innerFunc
+
+            if (btn.recordUser === 'true') {
+              _param.username = sessionStorage.getItem('User_Name') || ''
+              _param.fullname = sessionStorage.getItem('Full_Name') || ''
+            }
   
             return _param
           })
@@ -959,7 +962,7 @@
     let param = {
       func: 'sPC_Get_TableData',
       obj_name: 'data',
-      exec_type: 'y',
+      exec_type: window.GLOB.execType || 'y',
       arr_field: arrFields,
       default_sql: btn.verify.setting.defaultSql
     }
@@ -985,10 +988,15 @@
 
     let _dataresource = btn.verify.setting.dataresource
     let _customScript = ''
-
+    let _tailScript = ''
     btn.verify.scripts && btn.verify.scripts.forEach(script => {
-      if (script.status !== 'false') {
+      if (script.status === 'false') return
+      if (script.position !== 'back') {
         _customScript += `
+        ${script.sql}
+        `
+      } else {
+        _tailScript += `
         ${script.sql}
         `
       }
@@ -998,18 +1006,32 @@
       _dataresource = ''
     }
 
+    let isDataM = sessionStorage.getItem('dataM') === 'true'
+    let custompage = /@pageSize@|@orderBy@/i.test(_dataresource + _customScript + _tailScript)
+    let regoptions = [
+      { reg: /@orderBy@/ig, value: btn.verify.setting.order },
+      { reg: /@pageSize@/ig, value: '9999' },
+      { reg: /@pageIndex@/ig, value: '1'},
+      { reg: /@ID@/ig, value: `'${ID}'`},
+      { reg: /@BID@/ig, value: `'${BID || ''}'`},
+      { reg: /@LoginUID@/ig, value: `'${sessionStorage.getItem('LoginUID') || ''}'`},
+      { reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid') || ''}'`},
+      { reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID') || ''}'`},
+      { reg: /@Appkey@/ig, value: `'${window.GLOB.appkey || ''}'`},
+      { reg: /@typename@/ig, value: `'admin'`},
+      { reg: /\$@/ig, value: isDataM ? '/*' : ''},
+      { reg: /@\$/ig, value: isDataM ? '*/' : ''},
+      { reg: /@datam@/ig, value: isDataM ? `'Y'` : `''`},
+    ]
+
+    regoptions.forEach(item => {
+      _dataresource = _dataresource.replace(item.reg, item.value)
+      _customScript = _customScript.replace(item.reg, item.value)
+      _tailScript = _tailScript.replace(item.reg, item.value)
+    })
+
     if (/\s/.test(_dataresource)) {
       _dataresource = '(' + _dataresource + ') tb'
-    }
-
-    if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-      _dataresource = _dataresource.replace(/\$@/ig, '/*').replace(/@datam@/ig, '\'Y\'')
-      _dataresource = _dataresource.replace(/@\$/ig, '*/')
-      _customScript = _customScript.replace(/\$@/ig, '/*').replace(/@datam@/ig, '\'Y\'')
-      _customScript = _customScript.replace(/@\$/ig, '*/')
-    } else {
-      _dataresource = _dataresource.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
-      _customScript = _customScript.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
     }
 
     let initsql = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100)
@@ -1039,7 +1061,7 @@
         _initvars.push(`@${_key}='${form.value}'`)
       }
 
-      if (form.fieldlen && form.fieldlen > 2048) {
+      if (form.fieldlen && form.fieldlen > 4000) {
         form.fieldlen = 'max'
       }
 
@@ -1097,7 +1119,6 @@
         select ${_initvars.join(',')}
       `
     }
-
     
     if (_customScript) {
       _customScript = `${initsql}
@@ -1105,49 +1126,40 @@
       `
     }
 
-    _dataresource = _dataresource.replace(/@select\$|\$select@/ig, '')
-    _customScript = _customScript.replace(/@select\$|\$select@/ig, '')
-    _dataresource = _dataresource.replace(/\$sum@/ig, '/*')
-    _dataresource = _dataresource.replace(/@sum\$/ig, '*/')
-    _customScript = _customScript.replace(/\$sum@/ig, '/*')
-    _customScript = _customScript.replace(/@sum\$/ig, '*/')
-
-    _dataresource = _dataresource.replace(/@ID@/ig, `'${ID}'`)
-    _customScript = _customScript.replace(/@ID@/ig, `'${ID}'`)
-    _dataresource = _dataresource.replace(/@BID@/ig, `'${BID || ''}'`)
-    _customScript = _customScript.replace(/@BID@/ig, `'${BID || ''}'`)
-    _dataresource = _dataresource.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
-    _customScript = _customScript.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
-    _dataresource = _dataresource.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
-    _customScript = _customScript.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
-    _dataresource = _dataresource.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
-    _customScript = _customScript.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
-    _dataresource = _dataresource.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
-    _customScript = _customScript.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
-    _dataresource = _dataresource.replace(/@typename@/ig, `'admin'`)
-    _customScript = _customScript.replace(/@typename@/ig, `'admin'`)
-
-
     let LText = ''
 
     if (_dataresource) {
-      LText = `/*system_query*/select ${arrFields} from (select ${arrFields} ,ROW_NUMBER() over(order by ${btn.verify.setting.order}) as rows from ${_dataresource}) tmptable order by tmptable.rows `
+      if (custompage) {
+        LText = `/*system_query*/select ${arrFields} from ${_dataresource} `
+      } else {
+        LText = `/*system_query*/select ${arrFields} from (select ${arrFields} ,ROW_NUMBER() over(order by ${btn.verify.setting.order}) as rows from ${_dataresource}) tmptable order by tmptable.rows `
+      }
     }
 
     if (_customScript) {
       if (LText) {
         LText = `${LText}
+          ${_tailScript}
           aaa:
           if @ErrorCode!=''
-            insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,@UserID@ 
+            insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}' 
         `
       } else {
         _customScript = `${_customScript}
+          ${_tailScript}
           aaa:
           if @ErrorCode!=''
-            insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,@UserID@ 
+            insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}' 
         `
       }
+    } else if (_tailScript) {
+      LText = `${initsql}
+        ${LText}
+        ${_tailScript}
+        aaa:
+        if @ErrorCode!=''
+          insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}' 
+      `
     } else {
       LText = `${initsql}
         ${LText}
@@ -1155,7 +1167,7 @@
     }
 
     // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞
-    if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
+    if (window.GLOB.debugger === true) {
       _customScript && console.info(`${btn.logLabel ? `/*${btn.logLabel} 鑷畾涔夎剼鏈�*/\n` : ''}${LText ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`)
       LText && console.info(`${btn.logLabel ? `/*${btn.logLabel} 鏁版嵁婧�*/\n` : ''}` + LText.replace(/\n\s{8}/ig, '\n'))
     }
@@ -1164,11 +1176,14 @@
       param.menuname = btn.logLabel
     }
 
-    param.custom_script = Utils.formatOptions(_customScript)
-    param.LText = Utils.formatOptions(LText)
+    param.custom_script = Utils.formatOptions(_customScript, param.exec_type)
+    param.LText = Utils.formatOptions(LText, param.exec_type)
 
     param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
     param.secretkey = Utils.encrypt('', param.timestamp)
+
+    param.username = userName
+    param.fullname = fullName
 
     if (window.GLOB.probation) {
       param.s_debug_type = 'Y'
@@ -1218,41 +1233,27 @@
       // 澶栭儴璇锋眰
       _outParam = JSON.parse(JSON.stringify(res))
 
-      if (window.GLOB.mkHS) {
-        if (btn.sysInterface === 'true' && options.cloudServiceApi) {
-          res.rduri = options.cloudServiceApi
-          res.userid = sessionStorage.getItem('CloudUserID') || ''
-          res.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
-        } else if (btn.sysInterface !== 'true') {
-          if (window.GLOB.systemType === 'production' && btn.proInterface) {
-            res.rduri = btn.proInterface
-          } else {
-            res.rduri = btn.interface
-          }
+      if (btn.sysInterface === 'true') {
+        if (window.GLOB.mainSystemApi) {
+          res.rduri = window.GLOB.mainSystemApi
         }
-      } else {
-        if (btn.sysInterface === 'true') {
-          if (window.GLOB.mainSystemApi) {
-            res.rduri = window.GLOB.mainSystemApi
-          }
-        } else if (btn.sysInterface === 'external') {
-          if (window.GLOB.systemType === 'production') {
-            res.$token = btn.exProInterface || ''
-          } else {
-            res.$token = btn.exInterface || ''
-          }
-          ver_token = true
+      } else if (btn.sysInterface === 'external') {
+        if (window.GLOB.systemType === 'production') {
+          res.$token = btn.exProInterface || ''
         } else {
-          if (window.GLOB.systemType === 'production' && btn.proInterface) {
-            res.rduri = btn.proInterface
-          } else {
-            res.rduri = btn.interface
-          }
+          res.$token = btn.exInterface || ''
+        }
+        ver_token = true
+      } else {
+        if (window.GLOB.systemType === 'production' && btn.proInterface) {
+          res.rduri = btn.proInterface
+        } else {
+          res.rduri = btn.interface
+        }
 
-          let host = window.GLOB.baseurl.replace(/http(s):\/\//, '')
-          if (res.rduri.indexOf(host) === -1 && /\/dostars/.test(res.rduri)) {
-            res.$login = true
-          }
+        let host = window.GLOB.baseurl.replace(/http(s):\/\//, '')
+        if (res.rduri.indexOf(host) === -1 && /\/dostars/.test(res.rduri)) {
+          res.$login = true
         }
       }
 
@@ -1262,9 +1263,10 @@
 
       return Api.genericInterface(res)
     }).then(response => {
-      if (!response) return
+      if (!response || response.ErrCode === 'LoginError') return
 
-      if (ver_token && response.ErrMesg === 'token_error') {
+      if (ver_token && response.ErrCode === 'token_error') {
+        response.ErrCode = 'E'
         this.execError(response)
         _resolve({next: false, list: []})
       } else if (btn.callbackFunc) {
@@ -1291,7 +1293,7 @@
         _resolve({next: false, list: []})
       }
     }).then(response => {
-      if (!response) return
+      if (!response || response.ErrCode === 'LoginError') return
 
       if (response.status) {
         _list.push(response)
@@ -1616,7 +1618,7 @@
     Api.postekPrint(param).then(res => {
       if (res.retval === '0') {
         if (params.length === 0) {
-          this.execSuccess({ ErrCode: 'S', message: '', ErrMesg: '鎵撳嵃璇锋眰宸插彂鍑恒��', status: true })
+          this.execSuccess({ ErrCode: 'S', message: '鎵撳嵃璇锋眰宸插彂鍑恒��', status: true })
         } else {
           setTimeout(() => {
             this.loopRFIDPrint(params)
@@ -1735,14 +1737,12 @@
         this.execSuccess({
           ErrCode: '-1',
           message: '鏈幏鍙栧埌鎵撳嵃淇℃伅锛�',
-          ErrMesg: '',
           status: true
         })
       } else {
         this.execError({
           ErrCode: 'N',
           message: '鏈幏鍙栧埌鎵撳嵃淇℃伅锛�',
-          ErrMesg: '',
           status: false
         })
       }
@@ -1772,8 +1772,16 @@
       this.execError({
         ErrCode: 'N',
         message: msg.join(' ; ') + ' !',
-        ErrMesg: '',
         status: false
+      })
+      return
+    }
+
+    if (printerList.length === 0) {
+      this.execSuccess({
+        ErrCode: '-1',
+        message: '鏈幏鍙栧埌鎵撳嵃淇℃伅锛�',
+        status: true
       })
       return
     }
@@ -1781,25 +1789,23 @@
     if (!socket || socket.readyState !== 1 || socket.url !== 'ws://' + btn.verify.linkUrl) {
       socket = new WebSocket('ws://' + btn.verify.linkUrl)
     } else {
-      this.syncMessageSend(printerList)
-
-      this.execSuccess({
-        ErrCode: 'S',
-        message: '',
-        ErrMesg: '鎵撳嵃璇锋眰宸插彂鍑恒��',
-        status: true
+      this.syncMessageSend(printerList, () => {
+        this.execSuccess({
+          ErrCode: 'S',
+          message: '鎵撳嵃璇锋眰宸插彂鍑恒��',
+          status: true
+        })
       })
     }
 
     // 鎵撳紑Socket
     socket.onopen = () =>{
-      this.syncMessageSend(printerList)
-
-      this.execSuccess({
-        ErrCode: 'S',
-        message: '',
-        ErrMesg: '鎵撳嵃璇锋眰宸插彂鍑恒��',
-        status: true
+      this.syncMessageSend(printerList, () => {
+        this.execSuccess({
+          ErrCode: 'S',
+          message: '鎵撳嵃璇锋眰宸插彂鍑恒��',
+          status: true
+        })
       })
     }
     // 鐩戝惉娑堟伅
@@ -1813,7 +1819,6 @@
           this.execError({
             ErrCode: 'N',
             message: event.data,
-            ErrMesg: '',
             status: false
           })
 
@@ -1833,8 +1838,7 @@
 
       //   this.execSuccess({
       //     ErrCode: 'S',
-      //     message: '',
-      //     ErrMesg: '鎵撳嵃璇锋眰宸插彂鍑恒��',
+      //     message: '鎵撳嵃璇锋眰宸插彂鍑恒��',
       //     status: true
       //   })
       // } else if (data && data.message && !data.status) {
@@ -1842,7 +1846,6 @@
         this.execError({
           ErrCode: 'N',
           message: data.message,
-          ErrMesg: '',
           status: false
         })
       }
@@ -1852,23 +1855,31 @@
       this.execError({
         ErrCode: 'N',
         message: '鏃犳硶杩炴帴鍒�:' + btn.verify.linkUrl,
-        ErrMesg: '',
         status: false
       })
     }
   }
 
-  syncMessageSend = (list) => {
+  syncMessageSend = (list, callback) => {
     let param = list.shift()
 
-    if (socket && param) {
-      socket.send(JSON.stringify(param))
+    if (socket) {
+      try {
+        socket.send(JSON.stringify(param))
+      } catch(e) {
+        console.warn('鎵撳嵃璇锋眰鍙戦�佸け璐ワ紒')
+      }
     }
 
-    if (list && list.length > 0) {
-      setTimeout(() => {this.syncMessageSend(list)}, 3000)
+    if (list.length > 0) {
+      setTimeout(() => {
+        this.syncMessageSend(list, callback)
+      }, 3000)
+    } else {
+      callback()
     }
   }
+
   /**
    * @description 鎿嶄綔鎴愬姛鍚庡鐞�
    * 1銆乪xcel瀵煎嚭锛屾垚鍔熷悗鍙栨秷瀵煎嚭鎸夐挳鍔犺浇涓姸鎬�
@@ -1877,19 +1888,19 @@
    * 4銆佹ā鎬佹鎵ц鎴愬姛鍚庢槸鍚﹀叧闂�
    * 5銆侀�氱煡涓诲垪琛ㄥ埛鏂�
    */
-  execSuccess = (res) => {
+  execSuccess = (res = {}) => {
     const { btn } = this.props
     const { autoMatic, btnconfig } = this.state
 
     if ((res.ErrCode === 'S' || !res.ErrCode) || autoMatic) { // 鎵ц鎴愬姛
       notification.success({
         top: 92,
-        message: res.ErrMesg || this.state.dict['main.action.confirm.success'],
+        message: res.message || '鎵ц鎴愬姛锛�',
         duration: btn.verify && btn.verify.stime ? btn.verify.stime : 2
       })
     } else if (res.ErrCode === 'Y') { // 鎵ц鎴愬姛
       Modal.success({
-        title: res.ErrMesg || this.state.dict['main.action.confirm.success']
+        title: res.message || '鎵ц鎴愬姛锛�'
       })
     } else if (res.ErrCode === '-1') { // 瀹屾垚鍚庝笉鎻愮ず
 
@@ -1914,6 +1925,10 @@
     if (btn.execSuccess !== 'never') {
       MKEmitter.emit('refreshByButtonResult', btn.$menuId, btn.execSuccess, btn, '', this.state.selines)
     }
+
+    if (btn.execSuccess === 'popclose' && btn.$tabId) { // 鏍囩鍏抽棴鍒锋柊
+      MKEmitter.emit('refreshPopButton', btn.$tabId)
+    }
   }
 
   /**
@@ -1926,25 +1941,29 @@
     const { btn } = this.props
     const { btnconfig, autoMatic } = this.state
 
+    if (!['LoginError', 'C', '-2', 'E', 'N', 'F', 'NM'].includes(res.ErrCode)) {
+      res.ErrCode = 'E'
+    }
+
     if (res.ErrCode === 'E' && !autoMatic) {
       Modal.error({
-        title: res.message || res.ErrMesg,
+        title: res.message || '鎵ц澶辫触锛�',
       })
     } else if (res.ErrCode === 'N' || autoMatic) {
       notification.error({
         top: 92,
-        message: res.message || res.ErrMesg,
+        message: res.message || '鎵ц澶辫触锛�',
         duration: btn.verify && btn.verify.ntime ? btn.verify.ntime : 10
       })
     } else if (res.ErrCode === 'F') {
       notification.error({
         className: 'notification-custom-error',
         top: 92,
-        message: res.message || res.ErrMesg,
+        message: res.message || '鎵ц澶辫触锛�',
         duration: btn.verify && btn.verify.ftime ? btn.verify.ftime : 10
       })
     } else if (res.ErrCode === 'NM') {
-      message.error(res.message || res.ErrMesg)
+      message.error(res.message || '鎵ц澶辫触锛�')
     }
     
     this.setState({
@@ -1957,6 +1976,8 @@
       return
     }
 
+    if (res.ErrCode === '-2') return
+
     if (btnconfig && btnconfig.setting && btnconfig.setting.errFocus) {
       MKEmitter.emit('mkFC', 'focus', btnconfig.setting.errFocus)
     }
@@ -1964,17 +1985,6 @@
     if (btn.execError !== 'never') {
       MKEmitter.emit('refreshByButtonResult', btn.$menuId, btn.execError, btn, '', this.state.selines)
     }
-  }
-
-  /**
-   * @description 鎸夐挳閰嶇疆淇℃伅閿欒鎻愮ず
-   */
-  actionSettingError = () => {
-    notification.warning({
-      top: 92,
-      message: '鎸夐挳璁剧疆閿欒锛�',
-      duration: 5
-    })
   }
 
   handleModelConfig = (config) => {
@@ -2171,10 +2181,36 @@
         _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, '')
+          if (item.interception === 'func') {
+            try {
+              // eslint-disable-next-line
+              let func = new Function('value', 'data', item.func)
+              _item.value = func(_item.value, _data)
+              _item.value = _item.value !== undefined ? _item.value : ''
+            } catch (e) {
+              console.warn(e)
+              _item.value = ''
+            }
+          } else if (item.interception === 'charTure') {
+            let str = _item.value.replace(/(^\s*|\s*$)/g, '')
+            let result = ''
+            for (let i = 0 ; i < str.length; i++) {
+              let code = str.charCodeAt(i)
+              if (code >= 65281 && code <= 65373) {
+                result += String.fromCharCode(str.charCodeAt(i) - 65248)
+              } else if (code === 12288) {
+                result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32)
+              } else {
+                result += str.charAt(i)
+              }
+            }
+            _item.value = result
+          } else {
+            _item.value = _item.value.replace(/(^\s*|\s*$)/g, '')
+          }
         }
         if (_item.type === 'text' && /@appkey@|@SessionUid@|@bid@/ig.test(_item.value)) { // 鐗规畩瀛楁鏇挎崲
           _item.value = _item.value.replace(/^(\s*)@appkey@(\s*)$/ig, window.GLOB.appkey).replace(/^(\s*)@SessionUid@(\s*)$/ig, (localStorage.getItem('SessionUid') || '')).replace(/^(\s*)@bid@(\s*)$/ig, (this.props.BID || ''))
@@ -2218,7 +2254,7 @@
       this.execSubmit(selines, () => {}, result)
     } else {
       confirm({
-        title: this.state.dict['main.action.confirm.tip'],
+        title: '纭畾瑕佹墽琛屽悧?',
         onOk() {
           _this.triggerPrint(selines, result)
         },
@@ -2252,6 +2288,13 @@
       clickouter = true
     }
 
+    if (btnconfig.setting.icon) {
+      title = <>
+        <span className={'mk-modal-icon-' + btnconfig.setting.iconType} style={{background: btnconfig.setting.iconColor || 'unset', color: btnconfig.setting.iconColor || 'inherit'}}><MkIcon type={btnconfig.setting.icon}/></span>
+        {title}
+      </>
+    }
+
     return (
       <Modal
         title={title}
@@ -2268,7 +2311,6 @@
       >
         <MutilForm
           BID={BID}
-          dict={this.state.dict}
           action={btnconfig}
           inputSubmit={this.handleOk}
           data={this.state.selines[0]}
@@ -2349,6 +2391,7 @@
     return <>
       <Button
         type={type}
+        id={'button' + btn.uuid}
         title={disabled ? (btn.reason || '') : (btn.show === 'icon' ? btn.label : '')}
         loading={loading}
         disabled={disabled}

--
Gitblit v1.8.0