From 8f6b3d26bde4e22773cc53386dfbae669a7472ed Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 13 十月 2020 09:16:21 +0800
Subject: [PATCH] 2020-10-13

---
 src/utils/utils.js |  105 +++++++++++++++++++++++++++-------------------------
 1 files changed, 55 insertions(+), 50 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 31c3abf..952b283 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -161,9 +161,9 @@
       let reg = new RegExp('(^|\\s)' + item.key + '(\\s|$)', 'ig')
       value = value.replace(reg, item.value)
     })
-    // 1銆佹浛鎹�%绗︼紙鏁版嵁搴撲腑瑙f瀽鍚巗ql鎶ラ敊锛�
+    // 鏇挎崲%绗︼紙鏁版嵁搴撲腑瑙f瀽鍚巗ql鎶ラ敊锛�
     value = value.replace(/%/ig, ' mpercent ')
-    // 1銆乪ncode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛夛紝2銆乥ase64鍔犲瘑
+    // encode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛�
     value = window.btoa(window.encodeURIComponent(value))
     // 鎻掑叆瀛楃
     let index = Math.floor(value.length / 2)
@@ -711,6 +711,9 @@
       fullName = sessionStorage.getItem('CloudFullName') || ''
     }
 
+    let database = item.sheet.match(/(.*)\.(.*)\./ig) || ''
+    let sheet = item.sheet.replace(/(.*)\.(.*)\./ig, '')
+
     let errors = []
     let _topline = btn.range || 0
     let upId = this.getuuid()
@@ -876,7 +879,7 @@
           _uniquesql += `
         /* 閲嶅鎬ч獙璇� */
         Set @tbid=''
-        Select top 1 @tbid=${_fields.join('+\' \'+')} from (select 1 as n,${unique.field} from @${item.sheet} ) a group by ${unique.field} having sum(n)>1
+        Select top 1 @tbid=${_fields.join('+\' \'+')} from (select 1 as n,${unique.field} from @${sheet} ) a group by ${unique.field} having sum(n)>1
         
         If @tbid!=''
         Begin
@@ -885,7 +888,7 @@
         end
         
         Set @tbid=''
-        Select top 1 @tbid=${_afields.join('+\' \'+')} from  @${item.sheet} a Inner join ${item.sheet} b on ${_fields_}
+        Select top 1 @tbid=${_afields.join('+\' \'+')} from  @${sheet} a Inner join ${sheet} b on ${_fields_}
         
         If @tbid!=''
         Begin
@@ -916,20 +919,20 @@
       if (btn.default !== 'false') {
         _insert = `
         /* 榛樿sql */
-        Insert into ${item.sheet} (${fields},createuserid,createuser,createstaff,bid) 
-        Select ${fields},@userid@,@username,@fullname,@BID@ From @${item.sheet}
+        Insert into ${database}${sheet} (${fields},createuserid,createuser,createstaff,bid) 
+        Select ${fields},@userid@,@username,@fullname,@BID@ From @${sheet}
         `
       }
 
       _sql = `
         /* 绯荤粺鐢熸垚 */
-        declare @${item.sheet} table (${declarefields.join(',')},jskey nvarchar(50),BID nvarchar(50) )
+        declare @${sheet} table (${declarefields.join(',')},jskey nvarchar(50),BID nvarchar(50) )
         Declare @UserName nvarchar(50),@FullName nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
         
         Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}'
         ${_initCustomScript}
         `
-      _sqlInsert = `Insert into @${item.sheet} (${fields},jskey,BID)`
+      _sqlInsert = `Insert into @${sheet} (${fields},jskey,BID)`
       _sqlBottom = `
         /* 榛樿sql */
         delete tmp_excel_in where upid=@upid@
@@ -939,7 +942,7 @@
         ${_prevCustomScript}
         ${_insert}
         ${_backCustomScript}
-        Delete @${item.sheet}
+        Delete @${sheet}
         
         aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
 
@@ -958,7 +961,7 @@
     } else { // s_sDataDictb_excelIn 浜戠瀵嗛挜楠岃瘉鍙傛暟
       _sql = `
         /* 绯荤粺鐢熸垚 */
-        declare @${item.sheet} table (jskey nvarchar(50))
+        declare @${sheet} table (jskey nvarchar(50))
         Declare @UserName nvarchar(50),@FullName nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
         
         Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}'
@@ -1040,53 +1043,51 @@
     let _declarefields = []
 
     // 鑾峰彇瀛楁閿�煎
-    if (formdata) {
-      formdata.forEach(form => {
-        if (form.type === 'text') { // 鐗规畩瀛楁鏇挎崲
-          form.value = form.value.replace(/^(\s*)@appkey@(\s*)$/ig, appkey)
-          form.value = form.value.replace(/^(\s*)@SessionUid@(\s*)$/ig, sessionUid)
-          form.value = form.value.replace(/^(\s*)@bid@(\s*)$/ig, BID)
-        }
+    formdata && formdata.forEach(form => {
+      if (form.type === 'text') { // 鐗规畩瀛楁鏇挎崲
+        form.value = form.value.replace(/^(\s*)@appkey@(\s*)$/ig, appkey)
+        form.value = form.value.replace(/^(\s*)@SessionUid@(\s*)$/ig, sessionUid)
+        form.value = form.value.replace(/^(\s*)@bid@(\s*)$/ig, BID)
+      }
 
-        _formFieldValue[form.key] = form.value
-        let _key = form.key.toLowerCase()
+      _formFieldValue[form.key] = form.value
+      let _key = form.key.toLowerCase()
 
-        if (!_initvars.includes(_key)) {
-          _initvars.push(_key)
+      if (!_initvars.includes(_key)) {
+        _initvars.push(_key)
 
-          if (form.type === 'number') {
-            let val = form.value
-            if (typeof(val) !== 'number') {
-              val = parseFloat(val)
-              if (isNaN(val)) {
-                val = 0
-              }
+        if (form.type === 'number') {
+          let val = form.value
+          if (typeof(val) !== 'number') {
+            val = parseFloat(val)
+            if (isNaN(val)) {
+              val = 0
             }
-            _initfields.push(`@${_key}=${val}`)
-          } else {
-            _initfields.push(`@${_key}='${form.value}'`)
           }
+          _initfields.push(`@${_key}=${val}`)
+        } else {
+          _initfields.push(`@${_key}='${form.value}'`)
         }
-        
-        if (!_vars.includes(_key)) {
-          _vars.push(_key)
+      }
+      
+      if (!_vars.includes(_key)) {
+        _vars.push(_key)
 
-          if (form.fieldlen && form.fieldlen > 2048) {
-            form.fieldlen = 'max'
-          }
-
-          let _type = `nvarchar(${form.fieldlen})`
-
-          if (form.type.match(/date/ig)) {
-            _type = 'datetime'
-          } else if (form.type === 'number') {
-            _type = `decimal(18,${form.fieldlen})`
-          }
-
-          _declarefields.push(`@${_key} ${_type}`)
+        if (form.fieldlen && form.fieldlen > 2048) {
+          form.fieldlen = 'max'
         }
-      })
-    }
+
+        let _type = `nvarchar(${form.fieldlen})`
+
+        if (form.type.match(/date/ig)) {
+          _type = 'datetime'
+        } else if (form.type === 'number') {
+          _type = `decimal(18,${form.fieldlen})`
+        }
+
+        _declarefields.push(`@${_key} ${_type}`)
+      }
+    })
 
     // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鎴栧琛屾嫾鎺ユ椂璺宠繃)
     if (data && btn.Ot !== 'notRequired' && btn.Ot !== 'requiredOnce') {
@@ -1266,8 +1267,12 @@
 
     // 鍗曞彿鐢熸垚锛屼娇鐢ㄤ笂绾d锛圔ID锛夋垨鍒楄〃鏁版嵁锛屽0鏄庡彉閲忥紙妫�楠岋級
     let _billcodesSql  = ''
-    if (verify.billcodes && verify.billcodes.length > 0) {
+    if (formdata && verify.billcodes && verify.billcodes.length > 0) {
+      let keys = formdata.map(item => item.key.toLowerCase()) // 琛ㄥ崟瀛楁
+
       verify.billcodes.forEach(item => {
+        if (!keys.includes(item.field.toLowerCase())) return // 琛ㄥ崟涓笉鍚崟鍙风敓鎴愬瓧娈�
+
         let _ModularDetailCode = ''
         let _lpline = ''
         if (item.TypeCharOne === 'Lp') {

--
Gitblit v1.8.0