From 01a88094eaa183714ed7490ca7b85fee1e7bb064 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 20 五月 2023 23:03:41 +0800
Subject: [PATCH] 2023-05-20

---
 src/utils/utils.js |  349 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 210 insertions(+), 139 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 82fedc6..630fc57 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -59,17 +59,22 @@
   }
 
   /**
-   * @description 鏁版嵁婧愬悕绉帮紝鐢ㄤ簬缁熶竴鏌ヨ
-   * @return {String}  name
+   * @description 鑾峰彇鍥捐〃楂樺害
    */
-  static getdataName () {
-    let name = []
-    let _options = 'abcdefghigklmnopqrstuvwxyz'
-    for (let i = 0; i < 6; i++) {
-      name.push(_options.substr(Math.floor(Math.random() * 26), 1))
+  static getHeight (val) {
+    if (typeof(val) === 'string') {
+      if (val.indexOf('px') > -1) {
+        val = parseFloat(val)
+      } else if (val.indexOf('vw') > -1) {
+        val = parseFloat(val)
+        val = document.body.clientWidth * val / 100
+      } else if (val.indexOf('vh') > -1) {
+        val = parseFloat(val)
+        val = document.body.clientHeight * val / 100
+      }
     }
-    name.splice(3, 0, new Date().getTime())
-    return name.join('')
+  
+    return parseInt(val || 400) - 30
   }
 
   /**
@@ -137,19 +142,19 @@
   static verifySql (sql, type) {
     if (!sql) return ''
     let chars = [
-      {key: 'create', reg: /(^|\s)create\s/ig},
-      {key: 'insert', reg: /(^|\s)insert\s/ig},
-      {key: 'delete', reg: /(^|\s)delete\s/ig},
-      {key: 'update', reg: /(^|\s)update\s/ig},
-      {key: 'set', reg: /(^|\s)set\s/ig},
-      {key: 'drop', reg: /(^|\s)drop\s/ig},
-      {key: 'alter', reg: /(^|\s)alter\s/ig},
-      {key: 'truncate', reg: /(^|\s)truncate\s/ig},
-      {key: 'if', reg: /(^|\s)if\s/ig},
-      {key: 'exec', reg: /(^|\s)exec(\s|\()/ig},
-      {key: 'OBJECT', reg: /(^|\s)object(\s|\()/ig},
-      {key: 'sys.', reg: /(^|\s)sys\./ig},
-      {key: 'kill', reg: /(^|\s)kill\s/ig}
+      {key: 'create', reg: /(^|\s|\(|\))create\s/ig},
+      {key: 'insert', reg: /(^|\s|\(|\))insert\s/ig},
+      {key: 'delete', reg: /(^|\s|\(|\))delete\s/ig},
+      {key: 'update', reg: /(^|\s|\(|\))update\s/ig},
+      {key: 'set', reg: /(^|\s|\(|\))set\s/ig},
+      {key: 'drop', reg: /(^|\s|\(|\))drop\s/ig},
+      {key: 'alter', reg: /(^|\s|\(|\))alter\s/ig},
+      {key: 'truncate', reg: /(^|\s|\(|\))truncate\s/ig},
+      {key: 'if', reg: /(^|\s|\(|\))if\s/ig},
+      {key: 'exec', reg: /(^|\s|\(|\))exec(\s|\()/ig},
+      {key: 'OBJECT', reg: /(^|\s|\(|\))object(\s|\()/ig},
+      {key: 'sys.', reg: /(^|\s|\(|\))sys\./ig},
+      {key: 'kill', reg: /(^|\s|\(|\))kill\s/ig}
     ]
     
     if (type === 'customscript') {
@@ -158,7 +163,7 @@
 
     let error = ''
     
-    sql = sql.replace(/sys\.fn_sqlvarbasetostr\(HashBytes\('MD5'/ig, '') // 璺宠繃MD5鍔犲瘑
+    sql = sql.replace(/sys\.fn_/ig, '') // 璺宠繃sys.fn_楠岃瘉
 
     chars.forEach(char => {
       if (!error && char.reg.test(sql)) {
@@ -200,6 +205,35 @@
 
     return value
   }
+
+  // /**
+  //  * @description sql瑙e瘑
+  //  * @return {String}   value
+  //  */
+  // static unFormatOptions (value) {
+  //   if (!value) return ''
+
+  //   value = window.atob(value)
+  //   value = value.replace('minKe', '')
+  //   value = window.decodeURIComponent(window.atob(value))
+
+  //   // 澶栬仈鏁版嵁搴撴浛鎹�
+  //   if (window.GLOB.externalDatabase !== null && window.GLOB.externalDatabase) {
+  //     value = value.replace(window.GLOB.externalDatabase, '@db@')
+  //   }
+
+  //   value = value.replace(/ mpercent /ig, '%')
+    
+  //   // 鏇挎崲鍏抽敭瀛�
+  //   formatKeys.forEach(item => {
+  //     let reg = new RegExp('(\\s)?' + item.value.replace(/\s/g, '') + '(\\s)?', 'ig')
+  //     value = value.replace(reg, ' ' + item.key + ' ')
+  //   })
+
+  //   // value = value.replace(/\n/ig, ' \n ')
+
+  //   return value
+  // }
 
   /**
    * @description sPC_TableData_InUpDe sql鍔犲瘑
@@ -764,6 +798,8 @@
       arrfield.push(item.cardValField)
       if (item.urlField) {
         arrfield.push(item.urlField)
+      } else if (item.colorField) {
+        arrfield.push(item.colorField)
       }
     }
 
@@ -771,6 +807,8 @@
       arrfield.push(item.linkField)
     }
     if (['select', 'radio', 'link', 'checkcard'].includes(item.type) && item.linkSubField && item.linkSubField.length > 0) {
+      arrfield.push(...item.linkSubField)
+    } else if (item.type === 'text' && item.editType === 'select' && item.linkSubField && item.linkSubField.length > 0) { // 鍙紪杈戣〃
       arrfield.push(...item.linkSubField)
     }
     if (item.disableField) {
@@ -789,10 +827,8 @@
     arrfield = arrfield.join(',')
 
     if (item.orderBy) {
-      // sql = `select ${item.type === 'checkcard' ? 'top 20' : ''} ${arrfield} from (select distinct ${arrfield},${item.orderBy} as orderfield from ${_datasource} ) a order by orderfield ${item.orderType}`
       sql = `select distinct ${arrfield},${item.orderBy} as orderfield from ${_datasource} order by orderfield ${item.orderType}`
     } else {
-      // sql = `select ${item.type === 'checkcard' ? 'top 20' : ''} ${arrfield} from (select distinct ${arrfield} from ${_datasource}) a`
       sql = `select distinct ${arrfield} from ${_datasource}`
     }
 
@@ -811,10 +847,6 @@
     sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
     sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
 
-    if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
-      console.info(sql)
-    }
-
     return {
       sql: sql,
       field: arrfield
@@ -826,10 +858,9 @@
  * @description 鑾峰彇excel瀵煎叆鍙傛暟
  * @return {Object} item   鎸夐挳淇℃伅
  * @return {Array}  data   excel鏁版嵁
- * @return {Object} dict   瀛楀吀椤�
  * @return {String} BID    涓婄骇Id
  */
-export function getExcelInSql (item, data, dict, BID) {
+export function getExcelInSql (item, data, BID, primaryId) {
   let btn = item.verify
   let keys = ['delete', 'drop', 'insert', 'truncate', 'update']
   let userName = sessionStorage.getItem('User_Name') || ''
@@ -882,20 +913,30 @@
     btn.scripts.forEach(script => {
       if (script.status === 'false') return
 
+      let _sql = script.sql
+
+      _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 (script.position === 'init') {
         _initCustomScript += `
       /* 鑷畾涔夎剼鏈� */
-      ${script.sql}
+      ${_sql}
       `
       } else if (script.position === 'front') {
         _prevCustomScript += `
       /* 鑷畾涔夎剼鏈� */
-      ${script.sql}
+      ${_sql}
       `
       } else {
         _backCustomScript += `
       /* 鑷畾涔夎剼鏈� */
-      ${script.sql}
+      ${_sql}
       `
       }
     })
@@ -916,64 +957,68 @@
 
       let val = item[col.Column] !== undefined ? item[col.Column] : ''
       let _colindex = cols[cindex] || (cindex + 1)
-      let _position = (_topline + lindex + 1) + dict['main.excel.line'] + ' ' + _colindex + dict['main.excel.column']  + ' '
+      let _position = (_topline + lindex + 1) + '琛� ' + _colindex + '鍒� '
 
       if (/^Nvarchar/ig.test(col.type)) {
         if (typeof(val) === 'number') {
           val = val.toString()
         }
 
-        val = val.replace(/(^\s*$)|\t*|\v*|'*/ig, '')
+        if (/'/.test(val)) {
+          val = val.replace(/'/ig, '"')
+        }
+
+        val = val.replace(/(^\s*$)|\t*|\v*/ig, '')
 
         if (!val && col.required === 'true') {            // 蹇呭~鏍¢獙
-          errors.push(_position + dict['main.excel.content.emptyerror'])
+          errors.push(_position + '鍐呭涓嶅彲涓虹┖')
         } else if (col.limit && val.length > col.limit) { // 闀垮害鏍¢獙
-          errors.push(_position + dict['main.excel.content.maxlimit'])
+          errors.push(_position + '鍐呭瓒呴暱')
         } else {                                          // 鍏抽敭瀛楁牎楠�
           keys.forEach(key => {
             let _patten = new RegExp('(^' + key + '\\s+)|(\\s+' + key + '\\s+)', 'ig')
             if (_patten.test(val)) {
-              errors.push(_position + dict['main.excel.includekey'] + key)
+              errors.push(_position + '鍚湁鍏抽敭瀛�' + key)
             }
           })
         }
       } else if (/^int/ig.test(col.type)) {
         if (!val && val !== 0) {
-          errors.push(_position + dict['main.excel.content.emptyerror'])
+          errors.push(_position + '鍐呭涓嶅彲涓虹┖')
         } else {
           let _val = val + ''
 
           if (!/^(([^0][0-9]+|0)$)|^(([1-9]+)$)/.test(_val)) {               // 妫�楠屾槸鍚︿负鏁存暟
-            errors.push(_position + dict['main.excel.content.interror'])
+            errors.push(_position + '鍐呭搴斾负鏁存暟')
           } else if ((col.min || col.min === 0) && val < col.min) {          // 鏈�灏忓�兼楠�
-            errors.push(_position + dict['main.excel.content.limitmin'])
+            errors.push(_position + '灏忎簬鏈�灏忓��')
           } else if ((col.max || col.max === 0) && val > col.max) {          // 鏈�澶у�兼楠�
-            errors.push(_position + dict['main.excel.content.limitmax'])
+            errors.push(_position + '澶т簬鏈�澶у��')
           }
         }
       } else if (/^Decimal/ig.test(col.type)) {
         if (!val && val !== 0) {
-          errors.push(_position + dict['main.excel.content.emptyerror'])
+          errors.push(_position + '鍐呭涓嶅彲涓虹┖')
         } else {
           let _val = val + ''
           let _vals = _val.split('.')
 
           if (!/^(([^0][0-9]+|0)\.([0-9]+)$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9]+)$)|^(([1-9]+)$)/.test(_val)) {                           // 妫�楠屾槸鍚︿负娴偣鏁�
-            errors.push(_position + dict['main.excel.content.floaterror'])
+            errors.push(_position + '鍐呭搴斾负娴偣鏁�')
           } else if (_vals[0].length > 18) {                          // 妫�楠屾暣鏁颁綅
-            errors.push(_position + dict['main.excel.content.floatIntover'])
+            errors.push(_position + '鏁存暟浣嶈秴鍑鸿寖鍥�')
           } else if (_vals[1] && _vals[1].length > col.limit) {       // 鏈�灏忓�兼楠�
-            errors.push(_position + dict['main.excel.content.floatPointover'])
+            errors.push(_position + '灏忔暟浣嶈秴鍑鸿寖鍥�')
           } else if ((col.min || col.min === 0) && val < col.min) {   // 鏈�灏忓�兼楠�
-            errors.push(_position + dict['main.excel.content.limitmin'])
+            errors.push(_position + '灏忎簬鏈�灏忓��')
           } else if ((col.max || col.max === 0) && val > col.max) {   // 鏈�澶у�兼楠�
-            errors.push(_position + dict['main.excel.content.limitmax'])
+            errors.push(_position + '澶т簬鏈�澶у��')
           }
         }
       } else if (col.type === 'date') {
         if (typeof(val) === 'number') {
           if (val > 2958465 || val <= 0) {                 // 鏃堕棿杩囧ぇ鎴栧皬浜庣瓑浜�0
-            errors.push(_position + dict['main.excel.content.date.over'])
+            errors.push(_position + '鏃堕棿涓鸿礋鍊兼垨澶ぇ')
           } else {                                         // 鏃堕棿鏍煎紡鍖�
             if (val < 60) {                                // 1900-2-29锛宔xcel涓瓨鍦紝瀹為檯涓嶅瓨鍦�
               val++
@@ -983,12 +1028,12 @@
         } else if (typeof(val) === 'string') {
           val = val.replace(/(^\s*$)|\t*|\v*/ig, '')
           if (!val && col.required === 'true') {           // 鏃堕棿蹇呭~鏍¢獙
-            errors.push(_position + dict['main.excel.content.emptyerror'])
+            errors.push(_position + '鍐呭涓嶅彲涓虹┖')
           } else if (val && !/^[1-9][0-9]{3}/.test(val)) { // 鏃堕棿姝e垯鏍¢獙
-            errors.push(_position + dict['main.excel.content.date.formatError'])
+            errors.push(_position + '鏃堕棿鏍煎紡閿欒')
           }
         } else {                                           // 鏃堕棿鏍煎紡閿欒
-          errors.push(_position + dict['main.excel.content.date.formatError'])
+          errors.push(_position + '鏃堕棿鏍煎紡閿欒')
         }
       }
 
@@ -1027,14 +1072,14 @@
     let _uniquesql = ''
     if (btn.uniques && btn.uniques.length > 0) {
       btn.uniques.forEach(unique => {
-        if (unique.status === 'false') return
+        if (unique.status === 'false' || !unique.verifyType) return
 
         let _fields = unique.field.split(',')
         let _fields_ = _fields.map(_field => `a.${_field}=b.${_field}`)
         let _afields = _fields.map(_field => `a.${_field}`)
         _fields_ = _fields_.join(' and ')
 
-        if (unique.verifyType !== 'physical') {
+        if (unique.verifyType === 'logic' || unique.verifyType === 'logic_temp') {
           _fields_ += ' and b.deleted=0'
         }
 
@@ -1049,14 +1094,14 @@
         goto aaa
       end
       
-      Set @tbid=''
+      ${unique.verifyType.indexOf('temp') === -1 ? `Set @tbid=''
       Select top 1 @tbid=${_afields.join('+\' \'+')} from  @${sheet} a Inner join ${sheet} b on ${_fields_}
       
       If @tbid!=''
       Begin
         select @ErrorCode='${unique.errorCode}',@retmsg=@tbid+' 涓庡凡鏈夋暟鎹噸澶�'
         goto aaa
-      end
+      end` : ''}
       `
       })
     }
@@ -1248,14 +1293,14 @@
     let _uniquesql = ''
     if (btn.uniques && btn.uniques.length > 0) {
       btn.uniques.forEach(unique => {
-        if (unique.status === 'false') return
+        if (unique.status === 'false' || !unique.verifyType) return
 
         let _fields = unique.field.split(',')
         let _fields_ = _fields.map(_field => `a.${_field}=b.${_field}`)
         let _afields = _fields.map(_field => `a.${_field}`)
         _fields_ = _fields_.join(' and ')
 
-        if (unique.verifyType !== 'physical') {
+        if (unique.verifyType === 'logic' || unique.verifyType === 'logic_temp') {
           _fields_ += ' and b.deleted=0'
         }
 
@@ -1270,14 +1315,14 @@
         goto aaa
       end
       
-      Set @tbid=''
+      ${unique.verifyType.indexOf('temp') === -1 ? `Set @tbid=''
       Select top 1 @tbid=${_afields.join('+\' \'+')} from  @${sheet} a Inner join ${sheet} b on ${_fields_}
       
       If @tbid!=''
       Begin
         select @ErrorCode='${unique.errorCode}',@retmsg=@tbid+' 涓庡凡鏈夋暟鎹噸澶�'
         goto aaa
-      end
+      end` : ''}
       `
       })
     }
@@ -1369,17 +1414,16 @@
  * @return {Object}  param     璇锋眰鍙傛暟
  * @return {Array}   data      鍒楄〃琛屾暟鎹�
  * @return {Array}   columns   鏄剧ず鍒�
- * @return {Object}  tab       鏍囩淇℃伅
  * @return {Boolean} retmsg    鏄惁闇�瑕佹暟鎹繑鍥�
  */
-export function getSysDefaultSql (btn, setting, formdata, param, data, columns, tab, retmsg = false, moduleParams, getOptions) {
+export function getSysDefaultSql (btn, setting, formdata, param, data, columns, retmsg = false, moduleParams, getOptions) {
   let primaryId = param.ID
-  let BID = param.BID
+  let BID = param.BID || ''
   let verify = btn.verify || {}
   let datavars = {}                 // 澹版槑鐨勫彉閲忥紝琛ㄥ崟鍙婃樉绀哄垪
   let _actionType = null
   let _callbacksql = ''
-  let foreignKey = tab && tab.foreignKey ? tab.foreignKey.toLowerCase() : ''
+  let foreignKey = setting.foreignKey ? setting.foreignKey.toLowerCase() : ''
 
   if (verify.default !== 'false') { // 鍒ゆ柇鏄惁浣跨敤榛樿sql
     _actionType = btn.sqlType
@@ -1411,7 +1455,7 @@
   })
 
   // 闇�瑕佸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', 'bid']
+  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']
 
   // 涓婚敭瀛楁
   let primaryKey = setting.primaryKey || 'id'
@@ -1431,20 +1475,24 @@
 
     if (!_initvars.includes(_key)) {
       _initvars.push(_key)
+      let val = form.value
 
       if (form.type === 'number' || form.type === 'rate') {
-        let val = form.value
-        if (typeof(val) !== 'number') {
-          val = parseFloat(val)
-          if (isNaN(val)) {
-            val = 0
-          }
+        if (isNaN(val)) {
+          val = 0
         }
         _initFormfields.push(`@${_key}=${val}`)
-      } else if (['date', 'datemonth', 'datetime'].includes(form.type)) {
-        _initFormfields.push(`@${_key}='${form.value || '1949-10-01'}'`)
+      } else if (['date', 'datemonth'].includes(form.type)) {
+        _initFormfields.push(`@${_key}='${val || '1949-10-01'}'`)
       } else {
-        _initFormfields.push(`@${_key}='${form.value}'`)
+        if (/'/.test(val)) {
+          val = val.replace(/'/ig, '"')
+        }
+        if (form.isconst) {
+          _initFormfields.push(`@${_key}=N'${val}'`)
+        } else {
+          _initFormfields.push(`@${_key}='${val}'`)
+        }
       }
     }
     
@@ -1469,15 +1517,16 @@
     }
   })
 
+  let _data = {}
   if (data) {
     Object.keys(data).forEach(key => {
-      data[key.toLowerCase()] = data[key]
+      _data[key.toLowerCase()] = data[key]
     })
   }
 
   // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鎴栧琛屾嫾鎺ユ椂璺宠繃)
-  if (data && btn.Ot !== 'notRequired' && btn.Ot !== 'requiredOnce') {
-    datavars = {...data, ...datavars}
+  if (data && btn.Ot !== 'notRequired' && columns && columns.length > 0) {
+    datavars = {..._data, ...datavars}
 
     const setField = (col) => {
       if (!col.field) return
@@ -1488,6 +1537,10 @@
 
         if (col.datatype && /^date/ig.test(col.datatype) && !_val) {
           _val = '1949-10-01'
+        }
+
+        if (/'/.test(_val)) {
+          _val = _val.replace(/'/ig, '"')
         }
 
         _initvars.push(_key)
@@ -1518,17 +1571,15 @@
       }
     }
 
-    if (columns && columns.length > 0) {
-      columns.forEach(col => {
-        if (col.type === 'colspan' || col.type === 'old_colspan') {
-          col.subcols.forEach(cell => {
-            setField(cell)
-          })
-        } else {
-          setField(col)
-        }
-      })
-    }
+    columns.forEach(col => {
+      if (col.type === 'colspan' || col.type === 'old_colspan') {
+        col.subcols.forEach(cell => {
+          setField(cell)
+        })
+      } else {
+        setField(col)
+      }
+    })
   }
 
   // 鍙橀噺澹版槑
@@ -1537,7 +1588,7 @@
     _declarefields = ',' + _declarefields
   }
   _sql = `/* 绯荤粺鐢熸垚 */
-      Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50),@ModularDetailCode nvarchar(50), @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),@bid nvarchar(50)${_declarefields}
+      Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50),@ModularDetailCode nvarchar(50), @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),@mk_deleted int,@bid nvarchar(50)${_declarefields}
     `
 
   let userName = sessionStorage.getItem('User_Name') || ''
@@ -1560,7 +1611,7 @@
   // 鍒濆鍖栧嚟璇佸強鐢ㄦ埛淇℃伅瀛楁
   _sql += `
       /* 鍑瘉鍙婄敤鎴蜂俊鎭垵濮嬪寲璧嬪�� */
-      select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}', @BillCode='', @ModularDetailCode=''
+      select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}', @mk_deleted=1, @bid='${BID}', @BillCode='', @ModularDetailCode=''
       `
 
   // 琛ㄥ崟鍙橀噺璧嬪��
@@ -1674,7 +1725,7 @@
       /* 澶辨晥楠岃瘉 */
       select @tbid='', @ErrorCode='',@retmsg=''
       select @tbid='X' from ${datasource} right join (select ID from  dbo.SplitComma(@ID@)) sp
-      on tb.id =sp.id where tb.id is null
+      on tb.${primaryKey} =sp.id where tb.${primaryKey} is null
 
       If @tbid!=''
       Begin
@@ -1748,8 +1799,8 @@
         let _val = ''
         if (_linkKey === 'bid' && BID) { // 鏇挎崲bid
           _val = BID
-        } else if (data && data.hasOwnProperty(_linkKey)) {
-          _val = data[_linkKey]
+        } else if (_data.hasOwnProperty(_linkKey)) {
+          _val = _data[_linkKey]
         }
         _ModularDetailCode = `'${item.TypeCharOne + _val}'`
       } else {
@@ -1878,7 +1929,7 @@
     _sql += `
       /* 鍒涘缓鍑瘉 */
       exec s_BVoucher_Create
-        @Bill ='${data[_voucher.linkField.toLowerCase()]}',
+        @Bill ='${_data[_voucher.linkField.toLowerCase()]}',
         @BVoucherType ='${_voucher.BVoucherType}',
         @VoucherTypeOne ='${_voucher.VoucherTypeOne}',
         @VoucherTypeTwo ='${_voucher.VoucherTypeTwo}',
@@ -1935,6 +1986,11 @@
     } else if (foreignKey && !keys.includes(foreignKey)) {
       keys.push(foreignKey)
       values.push('@BID@')
+    }
+
+    if (!keys.includes('typename')) {
+      keys.push('typename')
+      values.push('@typename@')
     }
 
     keys = keys.join(',')
@@ -1994,6 +2050,9 @@
         _form.push('FiYear=@FiYear')
       }
     }
+    if (!_arr.includes('typename')) {
+      _form.push('typename=@typename@')
+    }
     _form = _form.join(',')
 
     let _ID = '=@ID@'
@@ -2025,17 +2084,16 @@
 
     _sql += `
       /* 榛樿sql */
-      update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuser=@username,modifyuserid=@userid@ where ${primaryKey}${_ID};`
+      update ${btn.sql} set deleted=@mk_deleted,modifydate=getdate(),modifyuser=@username,modifystaff=@fullname,modifyuserid=@userid@ where ${primaryKey}${_ID};`
   
   } else if (_actionType === 'delete') {      // 鐗╃悊鍒犻櫎
     let _msg = ''
-    if (data && columns && columns.length > 0) {
+    if (data && columns && columns.length > 0 && btn.Ot !== 'notRequired') {
       let _index = 0
       columns.forEach(col => {
-        if (col.Hide !== 'true' && col.type !== 'colspan' && col.type !== 'old_colspan' && _index < 4) {
-          _msg += col.label + '=' + data[col.field] + ','
-          _index++
-        }
+        if (!col.field || col.Hide === 'true' || _index >= 4) return
+        _msg += col.label + '=' + data[col.field] + ','
+        _index++
       })
     }
 
@@ -2046,7 +2104,7 @@
 
     _sql += `
       /* 榛樿sql */
-      insert into snote (remark,createuserid,CreateUser,CreateStaff) select left('鍒犻櫎琛�:${btn.sql} 鏁版嵁: ${_msg}${primaryKey}='+@ID@,200),@userid@,@username,@fullname
+      insert into snote (remark,createuserid,CreateUser,CreateStaff,typename) select left('鍒犻櫎琛�:${btn.sql} 鏁版嵁: ${_msg}${primaryKey}='+@ID@,200),@userid@,@username,@fullname,@typename@
       delete ${btn.sql} where ${primaryKey}${_ID};`
   } else if (_actionType === 'insertOrUpdate') {
     _sql += `
@@ -2069,6 +2127,20 @@
     _sql += _backCustomScript
   }
 
+  if (window.GLOB.breakpoint) {
+    let start = new RegExp('\\/\\*\\$breakpoint_begin_' + window.GLOB.breakpoint + '@', 'ig')
+    let end = new RegExp('@breakpoint_end_' + window.GLOB.breakpoint + '\\$\\*\\/', 'ig')
+
+    if (window.GLOB.breakpoint === 'all') {
+      start = /\/\*\$breakpoint_begin_[0-9a-z_]+@/ig
+      end = /@breakpoint_end_[0-9a-z_]+\$\*\//ig
+    }
+    
+    _sql = _sql.replace(start, '').replace(end, '').replace(/\$breakpoint_proc@/ig, window.GLOB.breakpoint)
+    _sql += `
+      z_debug_end: select @ErrorCode='E',@retmsg='debug_end' goto aaa`
+  }
+
   if (retmsg) {
     _sql += `
       aaa: if @ErrorCode!=''
@@ -2082,11 +2154,12 @@
   }
 
   _sql = _sql.replace(/@ID@/ig, `'${primaryId || ''}'`)
-  _sql = _sql.replace(/@BID@/ig, `'${BID || ''}'`)
+  _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 (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
     // _sql = _sql.replace(/\n\s{8}/ig, '\n')
@@ -2094,6 +2167,14 @@
   }
 
   if (retmsg) {
+    _callbacksql = _callbacksql.replace(/@ID@/ig, `'${primaryId || ''}'`)
+    _callbacksql = _callbacksql.replace(/@BID@/ig, `'${BID}'`)
+    _callbacksql = _callbacksql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
+    _callbacksql = _callbacksql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
+    _callbacksql = _callbacksql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
+    _callbacksql = _callbacksql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+    _callbacksql = _callbacksql.replace(/@typename@/ig, `'admin'`)
+    
     return {
       sql: _sql,
       callbacksql: _callbacksql
@@ -2110,6 +2191,7 @@
   let icon = null
   let innerStyle = null
   let position = null
+  let signType = ''
   style = JSON.parse(JSON.stringify(style))
 
   marks.some(mark => {
@@ -2119,6 +2201,7 @@
 
     if (mark.field[1] === 'static') {
       contrastVal = mark.contrastValue
+      originVal = originVal + ''
     } else {
       contrastVal = record[mark.field[2]]
     }
@@ -2146,8 +2229,9 @@
     if (type === 'font') {
       style.color = mark.color
       innerStyle = {color: mark.color}
+      signType = ' sign-font'
     } else if (type === 'background') {
-      style.background = mark.color
+      style.backgroundColor = mark.color
       if (mark.fontColor) {
         style.color = mark.fontColor
         innerStyle = {color: mark.fontColor}
@@ -2177,7 +2261,8 @@
     style,
     icon,
     innerStyle,
-    position
+    position,
+    signType
   }
 }
 
@@ -2186,36 +2271,21 @@
  */
 export function setGLOBFuncs () {
   window.GLOB.funcs = []
-  if (!window.GLOB.WebSql && !window.GLOB.IndexDB) {
+  if (!window.GLOB.IndexDB) {
     return
   }
 
-  if (window.GLOB.WebSql) {
-    window.GLOB.WebSql.transaction(tx => {
-      tx.executeSql("SELECT * FROM FUNCS", [], (tx, results) => {
-        let rows = results.rows
-        if (!rows || rows.length === 0) return
-        for (let i = 0; i < rows.length; i++) {
-          window.GLOB.funcs.push({
-            func_code: rows[i].func_code,
-            key_sql: window.decodeURIComponent(window.atob(rows[i].key_sql))
-          })
-        }
+  let objectStore = window.GLOB.IndexDB.transaction('funcs').objectStore('funcs')
+
+  objectStore.openCursor().onsuccess = (event) => {
+    let cursor = event.target.result
+
+    if (cursor) {
+      window.GLOB.funcs.push({
+        func_code: cursor.value.func_code,
+        key_sql: window.decodeURIComponent(window.atob(cursor.value.key_sql))
       })
-    })
-  } else {
-    let objectStore = window.GLOB.IndexDB.transaction('funcs').objectStore('funcs')
-
-    objectStore.openCursor().onsuccess = (event) => {
-      let cursor = event.target.result
-
-      if (cursor) {
-        window.GLOB.funcs.push({
-          func_code: cursor.value.func_code,
-          key_sql: window.decodeURIComponent(window.atob(cursor.value.key_sql))
-        })
-        cursor.continue()
-      }
+      cursor.continue()
     }
   }
 }
@@ -2236,7 +2306,7 @@
    * @description 鍒涘缓椤甸潰瀛樺偍杩囩▼
    * @return {String}
    */
-  static getTableFunc (param, menu, config) {
+  static getTableFunc (func = 'func', menu, config) {
     let form = ''
     let formParam = ''
     let _vars = ['bid', 'pageindex', 'pagesize', 'ordercol', 'ordertype', 'exceltype', 'septmenuno', 'lang', 'debug', 'loginuid', 'sessionuid', 'userid', 'errorcode', 'retmsg']
@@ -2291,7 +2361,7 @@
       `
     }
 
-    let Ltext = `create proc ${param.innerFunc}
+    let Ltext = `create proc ${func}
     ( /*${menu.MenuName}*/
     @appkey nvarchar(50)='',
     @BID nvarchar(50)='',${formParam}
@@ -2306,6 +2376,7 @@
     @LoginUID nvarchar(50)='',
     @SessionUid nvarchar(50)='',
     @UserID nvarchar(50),
+    @dataM nvarchar(50),
     @ErrorCode nvarchar(50) out,
     @retmsg nvarchar(4000) out
     )
@@ -2527,9 +2598,9 @@
         @ErrorSeverity=ERROR_SEVERITY(),
         @ErrorState=ERROR_STATE();
         
-      RAISERROR(@ErrorMessage, /*-- Message text.*/
-        @ErrorSeverity, /*-- Severity.*/
-        @ErrorState  /*-- State.*/
+      RAISERROR(@ErrorMessage, /* Message text.*/
+        @ErrorSeverity, /* Severity.*/
+        @ErrorState  /* State.*/
       );
     END CATCH
     
@@ -2668,9 +2739,9 @@
         @ErrorSeverity=ERROR_SEVERITY(),
         @ErrorState=ERROR_STATE();
         
-      RAISERROR(@ErrorMessage, /*-- Message text.*/
-        @ErrorSeverity, /*-- Severity.*/
-        @ErrorState  /*-- State.*/
+      RAISERROR(@ErrorMessage, /* Message text.*/
+        @ErrorSeverity, /* Severity.*/
+        @ErrorState  /* State.*/
       );
     END CATCH
     

--
Gitblit v1.8.0