From 169f6cd29a0d3add4fe2cf35c3579b45fa83c0d4 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 14 十一月 2023 00:02:45 +0800
Subject: [PATCH] 2023-11-14

---
 src/utils/utils.js |  164 +++++++++++++++++-------------------------------------
 1 files changed, 53 insertions(+), 111 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index f640cee..7c45ab0 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -116,46 +116,6 @@
   }
 
   /**
-   * @description sql璇硶楠岃瘉
-   * @return {String}  sql    sql璇彞
-   * @return {String}  type   楠岃瘉绫诲瀷
-   */
-  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}
-    ]
-    
-    if (type === 'customscript') {
-      chars = chars.filter(char => !['create', 'insert', 'delete', 'update', 'set', 'drop', 'if', 'exec'].includes(char.key))
-    }
-
-    let error = ''
-    
-    sql = sql.replace(/sys\.fn_/ig, '') // 璺宠繃sys.fn_楠岃瘉
-
-    chars.forEach(char => {
-      if (!error && char.reg.test(sql)) {
-        error = char.key
-      }
-    })
-
-    return error
-  }
-
-  /**
    * @description sql鍔犲瘑
    * @return {String}   value
    */
@@ -509,17 +469,21 @@
           newsearches[item.key] = _val
         }
       } else if (item.type === 'datemonth') {
-        // 鏈�-杩囨护鏉′欢锛屼粠鏈堝紑濮嬭嚦缁撴潫
-        let _startval = ''
-        let _endval = ''
-
-        if (item.value) {
-          _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
-          _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
+        if (item.match === '=') {
+          newsearches[item.key] = item.value
+        } else {
+          // 鏈�-杩囨护鏉′欢锛屼粠鏈堝紑濮嬭嚦缁撴潫
+          let _startval = ''
+          let _endval = ''
+  
+          if (item.value) {
+            _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
+            _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
+          }
+          
+          newsearches[item.key] = _startval
+          newsearches[item.key + '1'] = _endval
         }
-        
-        newsearches[item.key] = _startval
-        newsearches[item.key + '1'] = _endval
       } else if (item.type === 'dateweek') {
         let _startval = ''
         let _endval = ''
@@ -623,10 +587,14 @@
 
         searchText.push('(' + item.key + ' ' + _match + ' \'' + _val + timetail + '\')')
       } else if (item.type === 'datemonth') { // 鏈�-杩囨护鏉′欢锛屼粠鏈堝紑濮嬭嚦缁撴潫锛岀粨鏉熸椂闂翠负鏈堟湯鍔犱竴澶╃殑0鐐癸紝鏂瑰紡涓�<
-        let _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
-        let _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
-
-        searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')')
+        if (item.match === '=') {
+          searchText.push('(' + item.key + ' = \'' + item.value + '\')')
+        } else {
+          let _startval = moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000'
+          let _endval = moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
+  
+          searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')')
+        }
       } else if (item.type === 'dateweek') { // 鍛�-杩囨护鏉′欢
         let _startval = moment(item.value, 'YYYY-MM-DD' ).startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000'
         let _endval = moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000'
@@ -719,17 +687,21 @@
 
         options.push(item)
       } else if (item.type === 'datemonth') {
-        let _startval = item.value ? moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000' : '1970-01-01 00:00:00.000'
-        let _endval = item.value ? moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000'
-
-        let copy = JSON.parse(JSON.stringify(item))
-        copy.key = copy.key + '1'
-        copy.value = _endval
-        
-        item.value = _startval
-
-        options.push(item)
-        options.push(copy)
+        if (item.match === '=') {
+          options.push(item)
+        } else {
+          let _startval = item.value ? moment(item.value, 'YYYY-MM').startOf('month').format('YYYY-MM-DD') + ' 00:00:00.000' : '1970-01-01 00:00:00.000'
+          let _endval = item.value ? moment(item.value, 'YYYY-MM').endOf('month').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000'
+  
+          let copy = JSON.parse(JSON.stringify(item))
+          copy.key = copy.key + '1'
+          copy.value = _endval
+          
+          item.value = _startval
+  
+          options.push(item)
+          options.push(copy)
+        }
       } else if (item.type === 'dateweek') {
         let _startval = item.value ? moment(item.value, 'YYYY-MM-DD').startOf('week').format('YYYY-MM-DD') + ' 00:00:00.000' : '1970-01-01 00:00:00.000'
         let _endval = item.value ? moment(item.value, 'YYYY-MM-DD').endOf('week').add(1, 'days').format('YYYY-MM-DD') + ' 00:00:00.000' : '2050-01-01 00:00:00.000'
@@ -979,7 +951,11 @@
           })
         }
       } else if (/^Decimal/ig.test(col.type) || /^int/ig.test(col.type)) {
-        if (!val && val !== 0) {
+        if (col.required === 'false') {
+          if (!val || isNaN(val)) {
+            val = 0
+          }
+        } else if (!val && val !== 0) {
           errors.push(_position + '鍐呭涓嶅彲涓虹┖')
         } else if (isNaN(val)) {                                  // 妫�楠屾槸鍚︿负鏁板��
           errors.push(_position + '鍐呭搴斾负鏁板��')
@@ -1408,7 +1384,7 @@
  * @return {Array}   columns   鏄剧ず鍒�
  * @return {Boolean} retmsg    鏄惁闇�瑕佹暟鎹繑鍥�
  */
-export function getSysDefaultSql (btn, setting, formdata, param, data, columns, retmsg = false, moduleParams, getOptions) {
+export function getSysDefaultSql (btn, setting, formdata, param, data, columns, retmsg = false, moduleParams) {
   let primaryId = param.ID
   let BID = param.BID || ''
   let verify = btn.verify || {}
@@ -1658,47 +1634,9 @@
   }
 
   // 澶辨晥楠岃瘉锛屾坊鍔犳暟鎹椂涓嶇敤
-  if (btn.sqlType !== 'insert' && btn.Ot !== 'notRequired' && verify.invalid === 'true' && setting.dataresource) {
-    let datasource = setting.dataresource
-    let customScript = setting.customScript || ''
-    let search = moduleParams ? moduleParams.search : null
-    let orderBy = moduleParams ? moduleParams.orderBy : setting.order
-
-    if (/\s/.test(datasource) && !/tb$/.test(datasource)) { // 鎷兼帴鍒悕
-      datasource = '(' + datasource + ') tb'
-    }
-
-    if (getOptions && (setting.queryType === 'statistics' || customScript)) {
-      let allSearch = getOptions(search)
-
-      let regoptions = allSearch.map(item => {
-        return {
-          reg: new RegExp('@' + item.key + '@', 'ig'),
-          value: `'${item.value}'`
-        }
-      })
-      regoptions.push({
-        reg: new RegExp('@userName@', 'ig'),
-        value: `'${userName}'`
-      }, {
-        reg: new RegExp('@fullName@', 'ig'),
-        value: `'${fullName}'`
-      }, {
-        reg: new RegExp('@orderBy@', 'ig'),
-        value: orderBy
-      }, {
-        reg: new RegExp('@pageSize@', 'ig'),
-        value: 999999
-      }, {
-        reg: new RegExp('@pageIndex@', 'ig'),
-        value: 1
-      })
-
-      regoptions.forEach(item => {
-        datasource = datasource.replace(item.reg, item.value)
-        customScript = customScript.replace(item.reg, item.value)
-      })
-    }
+  if (verify.invalid === 'true' && moduleParams && moduleParams.dataresource) {
+    let datasource = moduleParams.dataresource
+    let customScript = moduleParams.customScript || ''
 
     if (customScript) {
       _sql += `
@@ -1908,7 +1846,7 @@
   let hasvoucher = false
 
   // 鍑瘉-鏄剧ず鍒椾腑閫夊彇,蹇呴』閫夎
-  if (verify.voucher && verify.voucher.enabled && data) {
+  if (verify.voucher && verify.voucher.enabled) {
     let _voucher = verify.voucher
 
     hasvoucher = true
@@ -1916,7 +1854,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}',
@@ -2370,6 +2308,10 @@
   _sql = _sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
   _sql = _sql.replace(/@typename@/ig, `'admin'`)
 
+  if (window.GLOB.externalDatabase !== null) {
+    _sql = _sql.replace(/@db@/ig, window.GLOB.externalDatabase)
+  }
+
   if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
     _sql = _sql.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, `'Y'`)
   } else {
@@ -2395,7 +2337,7 @@
  * @description 鑾峰彇鏍囪淇℃伅
  */
 export function getMark (marks, record, style) {
-  let res = {}
+  let res = {signType: ''}
 
   marks.some(mark => {
     let originVal = record[mark.field[0]]

--
Gitblit v1.8.0