From ae46c8e640ed64abd7605b289554377e0cdc0cb7 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 04 十月 2023 22:10:30 +0800
Subject: [PATCH] 2023-10-04

---
 src/tabviews/zshare/actionList/normalbutton/index.jsx |  315 ++++++++++++++++++++++++++++------------------------
 1 files changed, 170 insertions(+), 145 deletions(-)

diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx
index 7ab6d6e..816e450 100644
--- a/src/tabviews/zshare/actionList/normalbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx
@@ -8,7 +8,6 @@
 
 import Api from '@/api'
 import Utils, { getSysDefaultSql } from '@/utils/utils.js'
-import options from '@/store/options.js'
 import asyncSpinComponent from '@/utils/asyncSpinComponent'
 import { updateForm } from '@/utils/utils-update.js'
 import MKEmitter from '@/utils/events.js'
@@ -269,14 +268,6 @@
         duration: 5
       })
       return
-    } else if (!['requiredSgl', 'notRequired', 'requiredOnce', 'required'].includes(btn.Ot)) {
-      // 鏁版嵁閫夋嫨绫诲瀷鏍¢獙
-      notification.warning({
-        top: 92,
-        message: '鎸夐挳琛岃缃敊璇紒',
-        duration: 5
-      })
-      return
     } else if (btn.intertype === 'system') {
       // 浣跨敤鍐呴儴鎺ュ彛鏃讹紝鎿嶄綔绫诲瀷鍜屾暟鎹簮涓嶅彲涓虹┖
       if (!btn.sql || !btn.sqlType) {
@@ -460,12 +451,6 @@
           }
         }
 
-        if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-          param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
-        } else {
-          param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
-        }
-
         param.exec_type = 'y' // 鍚庡彴瑙g爜
         param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
         param.secretkey = Utils.encrypt('', param.timestamp)
@@ -501,12 +486,6 @@
               param.key_back_type = 'Y'
             }
           }
-          
-          if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-            param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
-          } else {
-            param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
-          }
 
           param.exec_type = 'y' // 鍚庡彴瑙g爜
           param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
@@ -532,12 +511,6 @@
             if (btn.output) {
               param.key_back_type = 'Y'
             }
-          }
-          
-          if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-            param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
-          } else {
-            param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
           }
 
           param.exec_type = 'y' // 鍚庡彴瑙g爜
@@ -605,12 +578,6 @@
               param.key_back_type = 'Y'
             }
           }
-          
-          if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-            param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
-          } else {
-            param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
-          }
 
           param.exec_type = 'y' // 鍚庡彴瑙g爜
           param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
@@ -651,12 +618,6 @@
                 param.key_back_type = 'Y'
               }
             }
-            
-            if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-              param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
-            } else {
-              param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
-            }
 
             param.exec_type = 'y' // 鍚庡彴瑙g爜
             param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
@@ -682,12 +643,6 @@
               if (btn.output) {
                 param.key_back_type = 'Y'
               }
-            }
-            
-            if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-              param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
-            } else {
-              param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
             }
 
             param.exec_type = 'y' // 鍚庡彴瑙g爜
@@ -749,6 +704,11 @@
       if (this.props.BID) {
         param.BID = this.props.BID
       }
+
+      if (btn.recordUser === 'true') {
+        param.username = sessionStorage.getItem('User_Name') || ''
+        param.fullname = sessionStorage.getItem('Full_Name') || ''
+      }
       
       let primaryId = ''
 
@@ -773,7 +733,7 @@
       }
 
       if (retmsg) {
-        param.$callbacksql = this.getSysDeclareSql(btn, formdata, data[0], columns, primaryId, this.props.BID)
+        param.$callbacksql = this.getSysDeclareSql(btn, formdata, data[0], columns, this.props.BID)
       }
 
       _params.push(param)
@@ -785,6 +745,11 @@
 
         if (this.props.BID) {
           param.BID = this.props.BID
+        }
+
+        if (btn.recordUser === 'true') {
+          param.username = sessionStorage.getItem('User_Name') || ''
+          param.fullname = sessionStorage.getItem('Full_Name') || ''
         }
 
         let primaryId = setting.primaryKey ? cell[setting.primaryKey] || '' : ''
@@ -818,7 +783,7 @@
         }
 
         if (retmsg) {
-          param.$callbacksql = this.getSysDeclareSql(btn, formdata, cell, columns, primaryId, this.props.BID)
+          param.$callbacksql = this.getSysDeclareSql(btn, formdata, cell, columns, this.props.BID)
         }
 
         return param
@@ -831,7 +796,7 @@
   /**
    * @description 鑾峰彇鍥炶皟鑴氭湰鐨勫瓧娈靛畾涔�
    */
-  getSysDeclareSql = (btn, formdata, data, columns, primaryId, BID = '') => {
+  getSysDeclareSql = (btn, formdata, data, columns, BID = '') => {
     let datavars = {}                 // 澹版槑鐨勫彉閲忥紝琛ㄥ崟鍙婃樉绀哄垪
     // 闇�瑕佸0鏄庣殑鍙橀噺闆�
     let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode', 'roleid', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'mk_deleted', 'bid']
@@ -875,7 +840,7 @@
       if (!_vars.includes(_key)) {
         _vars.push(_key)
   
-        if (form.fieldlen && form.fieldlen > 2048) {
+        if (form.fieldlen && form.fieldlen > 4000) {
           form.fieldlen = 'max'
         }
   
@@ -929,7 +894,7 @@
           if (col.datatype) {
             _declarefields.push(`@${_key} ${col.datatype}`)
           } else {
-            if (col.fieldlength && col.fieldlength > 2048) {
+            if (col.fieldlength && col.fieldlength > 4000) {
               col.fieldlength = 'max'
             }
   
@@ -998,20 +963,6 @@
         /* 鏄剧ず鍒楀彉閲忚祴鍊� */
         select ${_initColfields.join(',')}
         `
-    }
-
-    _sql = _sql.replace(/@ID@/ig, `'${primaryId || ''}'`)
-    _sql = _sql.replace(/@BID@/ig, `'${BID}'`)
-    _sql = _sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
-    _sql = _sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
-    _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
@@ -1090,7 +1041,7 @@
               }, 600)
             }
 
-            this.triggerNote(res) // 娑堟伅
+            this.triggerNote(res, _param.ID) // 娑堟伅
             this.execSuccess(res)
           } else {
             this.execError(res)
@@ -1107,7 +1058,7 @@
             setTimeout(() => {
               Api.genericInterface(param).then(res => {
                 if (res.status) {
-                  this.triggerNote(res) // 娑堟伅
+                  this.triggerNote(res, param.ID) // 娑堟伅
                 }
                 resolve(res)
               }, (error) => {
@@ -1194,6 +1145,8 @@
    * @description 鑷畾涔夎姹傚惊鐜墽琛�
    */
   customLoopRequest = (params, _resolve) => {
+    const { setting, btn } = this.props
+
     let param = params.shift()
 
     this.setState({
@@ -1205,6 +1158,10 @@
       ID: param.ID || '',
       callbacksql: param.$callbacksql || '',
       mk_api_key: ''
+    }
+
+    if (!record.ID && btn.Ot !== 'notRequired' && param[setting.primaryKey]) {
+      record.ID = param[setting.primaryKey]
     }
 
     delete param.$callbacksql
@@ -1235,7 +1192,13 @@
             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
+                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]
@@ -1431,7 +1394,6 @@
         result.status = false
         result.message = result.$ErrMesg
         result.ErrCode = 'E'
-        result.ErrMesg = result.$ErrMesg
       } else {
         result.status = result.status !== false
         result.ErrCode = result.ErrCode || '-1'
@@ -1458,6 +1420,8 @@
 
     Api.genericInterface(param).then(res => {
       if (res.status) {
+        this.triggerNote(res, param.ID) // 娑堟伅
+
         if (params.length === 0) {
           this.execSuccess(res)
           _resolve()
@@ -1478,7 +1442,22 @@
   getCallBackSql = (result, record) => {
     const { btn } = this.props
     let lines = []
-    let pre = btn.callbackType === 'script' ? '@' : ''
+    let pre = ''
+    let tables = []
+
+    if (btn.callbackType === 'script') { // 浣跨敤鑷畾涔夎剼鏈�
+      pre = '@'
+
+      btn.verify.cbScripts.forEach(script => {
+        if (script.status === 'false') return
+
+        if (/\s#[a-z0-9_]+(\s|\()/ig.test(script.sql)) {
+          tables.push(...script.sql.match(/\s#[a-z0-9_]+(\s|\()/ig))
+        }
+      })
+
+      tables = tables.map(tb => tb.replace(/\s|\(/g, ''))
+    }
 
     let errSql = ''
     if (result.$ErrCode === 'E') {
@@ -1495,6 +1474,11 @@
       let vals = []
       let subObjs = []
       let id = Utils.getuuid()
+      let tbName = pre + tb
+
+      if (tables.includes('#' + tb)) {
+        tbName = '#' + tb
+      }
 
       delete obj.$$key
 
@@ -1523,9 +1507,11 @@
         }
       })
 
+      keys = keys.join(',')
+
       lines.push({
-        table: tb,
-        insert: `Insert into ${pre}${tb} (${keys.join(',')},[mk_level],[mk_id],[mk_bid])`,
+        table: md5(tb + keys),
+        insert: `Insert into ${tbName} (${keys},[mk_level],[mk_id],[mk_bid])`,
         select: `Select ${vals.join(',')},'${level}','${id}','${bid}'`
       })
 
@@ -1557,7 +1543,7 @@
       param.func = 'sPC_TableData_InUpDe'
       
       if (record.BID) {
-        param.BID = this.props.BID
+        param.BID = record.BID
       }
       if (record.ID) {
         param.ID = record.ID
@@ -1587,6 +1573,8 @@
       if (btn.output) {
         _backCustomScript += `
           aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg,${btn.output} as mk_b_id`
+
+        param.key_back_type = 'Y'
       } else {
         _backCustomScript += `
           aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
@@ -1602,26 +1590,25 @@
       sql = sql + _backCustomScript
 
       sql = sql.replace(/@ID@/ig, `'${record.ID || ''}'`)
-      sql = sql.replace(/@BID@/ig, `'${this.props.BID || ''}'`)
+      sql = sql.replace(/@BID@/ig, `'${record.BID || ''}'`)
       sql = sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
       sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
       sql = sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
       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 (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
+        sql = sql.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
+      } else {
+        sql = sql.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
+      }
+
+      if (window.GLOB.debugger === true) {
+        console.info('%c' + btn.logLabel + '(鍥炶皟)', 'color: blue')
         console.info(sql.replace(/\n\s{8}/ig, '\n'))
       }
 
       param.LText = sql
-      
-      if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-        param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
-      } else {
-        param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
-      }
-      param.LText = param.LText.replace(/\$check@|@check\$/ig, '')
-
       param.exec_type = 'y' // 鍚庡彴瑙g爜
       param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
       param.secretkey = Utils.encrypt('', param.timestamp)
@@ -1645,7 +1632,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
@@ -1671,7 +1658,7 @@
 
     Api.genericInterface(param).then(res => {
       if (res.status) {
-        this.triggerNote(res) // 娑堟伅
+        this.triggerNote(res, param.ID) // 娑堟伅
 
         if (params.length === 0) {
           this.execSuccess(res)
@@ -1705,7 +1692,7 @@
 
     Api.genericInterface(param).then(res => {
       if (res.status) {
-        this.triggerNote(res) // 娑堟伅
+        this.triggerNote(res, param.ID) // 娑堟伅
 
         if (params.length === 0) {
           this.execSuccess(res)
@@ -1727,7 +1714,7 @@
             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)
@@ -1763,7 +1750,7 @@
    * @description 澶栭儴璇锋眰寰幆鎵ц
    */
   outerLoopRequest = (params, _resolve) => {
-    if (!params && params.length === 0) return
+    const { setting, btn } = this.props
 
     let param = params.shift()
 
@@ -1775,6 +1762,10 @@
       BID: param.BID || '',
       ID: param.ID || '',
       callbacksql: param.$callbacksql || ''
+    }
+
+    if (!record.ID && btn.Ot !== 'notRequired' && param[setting.primaryKey]) {
+      record.ID = param[setting.primaryKey]
     }
 
     delete param.$callbacksql
@@ -1830,58 +1821,62 @@
     if (btn.outerFunc) {
       result.func = btn.outerFunc
     }
-    if (window.GLOB.mkHS) {
-      if (btn.outerFunc === 's_app_version_upt') { // special 鏇存柊鐗堟湰鍙锋椂璁块棶sso
-        if (window.GLOB.mainSystemApi) {
-          result.rduri = window.GLOB.mainSystemApi
-        }
-      } else if (btn.sysInterface === 'true' && options.cloudServiceApi) {
-        result.rduri = options.cloudServiceApi
-        result.userid = sessionStorage.getItem('CloudUserID') || ''
-        result.LoginUID = sessionStorage.getItem('CloudLoginUID') || ''
-      } else if (btn.sysInterface !== 'true') {
-        if (window.GLOB.systemType === 'production' && btn.proInterface) {
-          result.rduri = btn.proInterface
-        } else {
-          result.rduri = btn.interface
+
+    if (btn.sysInterface === 'true') {
+      if (window.GLOB.mainSystemApi) {
+        result.rduri = window.GLOB.mainSystemApi
+      }
+    } else if (btn.sysInterface === 'external') {
+      if (window.GLOB.systemType === 'production') {
+        result.$token = btn.exProInterface || ''
+      } else {
+        result.$token = btn.exInterface || ''
+      }
+      ver_token = true
+    } else {
+      if (window.GLOB.systemType === 'production' && btn.proInterface) {
+        result.rduri = btn.proInterface
+      } else {
+        result.rduri = btn.interface
+      }
+
+      if (/function:/i.test(result.rduri)) {
+        let rduri = result.rduri
+        try {
+          rduri = rduri.replace(/function:/i, '')
+          // eslint-disable-next-line
+          let func = new Function(rduri)
+          result.rduri = func()
+        } catch (e) {
+          console.warn(e)
         }
       }
 
-      // special 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉
-      if (result.func === 's_sDataDictb_TBBack' && result.LTextOut) {
+      let host = window.GLOB.baseurl.replace(/http(s):\/\//, '')
+      if (result.rduri.indexOf(host) === -1 && /\/dostars/.test(result.rduri)) {
+        result.$login = true
+      }
+    }
+
+    if (window.GLOB.mkHS) {
+      if (result.func === 's_app_version_upt') { // special 鏇存柊鐗堟湰鍙锋椂璁块棶sso
+        delete result.rduri
+        if (window.GLOB.localSystemApi) {
+          result.rduri = window.GLOB.localSystemApi
+        }
+        result.userid = sessionStorage.getItem('LocalUserID') || ''
+        result.LoginUID = sessionStorage.getItem('LocalLoginUID') || ''
+      } else if (result.func === 's_sDataDictb_TBBack' && result.LTextOut) { // special 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉
         result.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
         result.secretkey = Utils.encrypt(result.LTextOut, result.timestamp)
         result.open_key = Utils.encryptOpenKey(result.secretkey, result.timestamp)
-      }
-    } else {
-      if (btn.sysInterface === 'true') {
-        if (window.GLOB.mainSystemApi) {
-          result.rduri = window.GLOB.mainSystemApi
-        }
-      } else if (btn.sysInterface === 'external') {
-        if (window.GLOB.systemType === 'production') {
-          result.$token = btn.exProInterface || ''
-        } else {
-          result.$token = btn.exInterface || ''
-        }
-        ver_token = true
-      } else {
-        if (window.GLOB.systemType === 'production' && btn.proInterface) {
-          result.rduri = btn.proInterface
-        } else {
-          result.rduri = btn.interface
-        }
-
-        let host = window.GLOB.baseurl.replace(/http(s):\/\//, '')
-        if (result.rduri.indexOf(host) === -1 && /\/dostars/.test(result.rduri)) {
-          result.$login = true
-        }
       }
     }
 
     Api.genericInterface(result).then(res => {
       if (!res) return // LoginError鏃朵腑鏂姹�
-      if (ver_token && res.ErrMesg === 'token_error') {
+      if (ver_token && res.ErrCode === 'token_error') {
+        res.ErrCode = 'E'
         this.execError(res)
         return
       }
@@ -1969,6 +1964,8 @@
 
     Api.genericInterface(param).then(res => {
       if (res.status) {
+        this.triggerNote(res, param.ID) // 娑堟伅
+
         // 涓�娆¤姹傛垚鍔燂紝杩涜涓嬩竴椤硅姹�
         if (params.length === 0) {
           this.execSuccess(res)
@@ -2000,10 +1997,12 @@
       callParam.open_key = Utils.encryptOpenKey(callParam.secretkey, callParam.timestamp)
     }
 
-    if (callParam.UpType === 'SSO' && window.GLOB.mainSystemApi) {
-      ssoParam = fromJS(callParam).toJS()
+    callParam.userid = sessionStorage.getItem('LocalUserID') || ''
+    callParam.LoginUID = sessionStorage.getItem('LocalLoginUID') || ''
 
-      ssoParam.rduri = window.GLOB.mainSystemApi
+    if (callParam.UpType === 'SSO' && window.GLOB.localSystemApi) {
+      ssoParam = fromJS(callParam).toJS()
+      ssoParam.rduri = window.GLOB.localSystemApi
 
       delete ssoParam.UpType
     } else {
@@ -2196,22 +2195,22 @@
 
     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]
+      let menu = null
 
-      if (!newtab && btn.MenuID) {
-        newtab = {
+      if (window.GLOB.mkThdMenus.has(menuId)) {
+        menu = {...window.GLOB.mkThdMenus.get(menuId), param: { $BID: id }}
+      } else if (btn.MenuID) {
+        menu = {
           MenuID: btn.MenuID,
           MenuName: btn.MenuName,
-          MenuNo: btn.MenuNo,
-          type: btn.tabType
+          type: btn.tabType,
+          param: { $BID: id }
         }
-      } else if (!newtab) {
-        return
       }
 
-      newtab = {...newtab, param: { $BID: id }}
-
-      MKEmitter.emit('modifyTabs', newtab, true)
+      if (menu) {
+        MKEmitter.emit('modifyTabs', menu, true)
+      }
     }
 
     if (btn.execSuccess === 'popclose' && btn.$tabId) { // 鏍囩鍏抽棴鍒锋柊
@@ -2219,15 +2218,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
@@ -2251,6 +2254,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({
@@ -2272,7 +2285,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/'
     }
@@ -2869,7 +2882,19 @@
         _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 {
+            _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, (BID || ''))

--
Gitblit v1.8.0