From 6d0137932fcc8f9848123743c1aad5cff8172d8a Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期日, 09 二月 2020 13:09:39 +0800
Subject: [PATCH] 2020-02-09

---
 src/utils/utils.js |  106 ++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 72 insertions(+), 34 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 74c1c0e..c7540b2 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -451,7 +451,7 @@
     let verify = btn.verify || {}
     let _formFieldValue = {}
     // 闇�瑕佸0鏄庣殑鍙橀噺闆�
-    let _vars = ['tbid', 'ErrorCode', 'retmsg', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'UserName', 'FullName', 'ID', 'BID']
+    let _vars = ['tbid', 'ErrorCode', 'retmsg', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'UserName', 'FullName', 'ID', 'BID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey']
 
     // 涓婚敭瀛楁
     let primaryKey = setting.primaryKey || 'id'
@@ -460,50 +460,84 @@
     let _sql = `Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50)
       `
 
+    let _initvars = ['ID', 'BID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey'] // 宸茶祴鍊煎瓧娈甸泦
+    let _initfields = []
+    let _declarefields = []
+
     // 鑾峰彇瀛楁閿�煎
     if (formdata) {
       formdata.forEach(form => {
         _formFieldValue[form.key] = form.value
+
+        if (!_initvars.includes(form.key)) {
+          _initvars.push(form.key)
+          _initfields.push(`@${form.key}='${form.value}'`)
+        }
+        
+        if (!_vars.includes(form.key)) {
+          _vars.push(form.key)
+
+          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(`@${form.key} ${_type}`)
+        }
       })
     }
 
-    // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�
-    if (data) {
+    // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鏃惰烦杩�)
+    if (data && btn.Ot !== 'notRequired') {
       _formFieldValue = {...data, ..._formFieldValue}
+
+      if (logcolumns && logcolumns.length > 0) {
+        logcolumns.forEach(col => {
+          if (!_initvars.includes(col.field)) {
+            _initvars.push(col.field)
+
+            let _val = data.hasOwnProperty(col.field) ? data[col.field] : ''
+            _initfields.push(`@${col.field}='${_val}'`)
+          }
+          
+          if (!_vars.includes(col.field)) {
+            _vars.push(col.field)
+  
+            let _type = `nvarchar(${col.fieldlength || 50})`
+
+            if (col.type === 'number') {
+              let _length = (col.decimal || col.decimal === 0) ? col.decimal : 18
+              _type = `decimal(18,${_length})`
+            } else if (col.type === 'picture' || col.type === 'textarea') {
+              _type = `nvarchar(${col.fieldlength || 512})`
+            }
+  
+            _declarefields.push(`@${col.field} ${_type}`)
+          }
+        })
+      }
+    }
+
+    // 鍙橀噺澹版槑
+    _declarefields = _declarefields.join(',')
+    if (_declarefields) {
+      _sql += `,${_declarefields}
+        `
+    }
+
+    // 鍙橀噺璧嬪��
+    _initfields = _initfields.join(',')
+    if (_initfields) {
+      _sql += `select ${_initfields}
+        `
     }
 
     // 娣诲姞鏃朵富閿负绌�
     if (btn.sqlType === 'insert') {
       primaryId = ''
-    }
-
-    // 澹版槑琛ㄥ崟鍙婂垪琛ㄦ暟鎹瓧娈碉紝鍒濆鍖栬祴鍊�
-    let keys = Object.keys(_formFieldValue)
-    let _initfields = []
-    let _initvars = ['ID', 'BID']
-    let _formfields = []
-    keys.forEach(key => {
-      if (!_initvars.includes(key)) {
-        _initvars.push(key)
-        _initfields.push(`@${key}='${_formFieldValue[key]}'`)
-      }
-      
-      if (!_vars.includes(key)) {
-        _vars.push(key)
-        _formfields.push(`@${key} nvarchar(50)`)
-      }
-    })
-
-    _formfields = _formfields.join(',')
-    if (_formfields) {
-      _sql += `,${_formfields}
-        `
-    }
-
-    _initfields = _initfields.join(',')
-    if (_initfields) {
-      _sql += `select ${_initfields}
-        `
     }
 
     // 鍘婚櫎绂佺敤鐨勯獙璇�
@@ -524,7 +558,7 @@
     }
 
     // 鍒濆鍖栧嚟璇佸瓧娈�
-    _sql += `select @BVoucher='',@FIBVoucherDate='',@FiYear=''
+    _sql += `select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg=''
       `
 
     // 鍚敤璐︽湡楠岃瘉
@@ -712,8 +746,12 @@
     } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'delete' && verify.default !== 'false') {      // 鐗╃悊鍒犻櫎
       let _msg = ''
       if (data && logcolumns && logcolumns.length > 0) {
+        let _index = 0
         logcolumns.forEach(col => {
-          _msg += col.label + '=' + data[col.field] + ','
+          if (col.Hide !== 'true' && _index < 4) {
+            _msg += col.label + '=' + data[col.field] + ','
+            _index++
+          }
         })
       }
       _sql += _user

--
Gitblit v1.8.0