From 5e10a7ee4a5ef882d6b0d92b19b1a888ffcc6f7f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 14 四月 2020 11:55:03 +0800
Subject: [PATCH] 2020-04-14

---
 src/utils/utils.js |   42 +++++++++++++++++++++++++++++++-----------
 1 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 506e85e..b59e5a2 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -164,8 +164,8 @@
     })
 
     // 1銆佹浛鎹�%绗︼紙鏁版嵁搴撲腑瑙f瀽鍚巗ql鎶ラ敊锛夛紝2銆佸幓闄ゆ敹灏惧浣欑┖鏍�
-    value = value.replace(/%/ig, 'mpercent')
-    value = value.replace(/(^\s|\s$)/ig, '')
+    value = value.replace(/%/ig, ' mpercent ')
+    // value = value.replace(/(^\s|\s$)/ig, '')
 
     // 1銆乪ncode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛夛紝2銆乥ase64鍔犲瘑
     value = window.btoa(window.encodeURIComponent(value))
@@ -505,7 +505,7 @@
             })
           }
         } else if (/^int/ig.test(col.type)) {
-          if (!val) {
+          if (!val && val !== 0) {
             let _error =  _position + dict['main.excel.content.emptyerror']
             errors.push(_error)
           } else {
@@ -523,7 +523,7 @@
             }
           }
         } else if (/^Decimal/ig.test(col.type)) {
-          if (!val) {
+          if (!val && val !== 0) {
             let _error =  _position + dict['main.excel.content.emptyerror']
             errors.push(_error)
           } else {
@@ -667,7 +667,7 @@
    * @return {String} type   鎵ц绫诲瀷
    * @return {String} table  琛ㄥ悕
    */
-  static getSysDefaultSql (btn, setting, formdata, param, data, logcolumns) {
+  static getSysDefaultSql (btn, setting, formdata, param, data, logcolumns, tab) {
     let primaryId = param.ID
     let BID = param.BID
     let verify = btn.verify || {}
@@ -985,8 +985,9 @@
       _actionType = btn.sqlType
     }
 
-    // 娣诲姞銆佷慨鏀广�侀�昏緫鍒犻櫎銆佺墿鐞嗗垹闄�
-    if (_actionType === 'insert') {
+    let _insertsql = ''
+    let _updatesql = ''
+    if (_actionType === 'insert' || _actionType === 'insertOrUpdate') { // 娣诲姞璇彞
       let keys = []
       let values = []
 
@@ -1020,14 +1021,18 @@
         values.push('@fullname')
       }
       if (!keys.includes('bid')) {
-        keys.push('bid')
+        if (tab && tab.foreignKey && !keys.includes(tab.foreignKey.toLowerCase())) {
+          keys.push(tab.foreignKey)
+        } else {
+          keys.push('bid')
+        }
         values.push('@BID@')
       }
 
       keys = keys.join(',')
       values = values.join(',')
-      _sql += `insert into ${btn.sql} (${keys}) select ${values};`
-    } else if (_actionType === 'update') {
+      _insertsql = `insert into ${btn.sql} (${keys}) select ${values};`
+    } else if (_actionType === 'insert' || _actionType === 'insertOrUpdate') { // 淇敼璇彞
       let _form = []
       let _arr = []
 
@@ -1062,7 +1067,14 @@
       }
 
       _form = _form.join(',')
-      _sql += `update ${btn.sql} set ${_form} where ${primaryKey}=@${primaryKeyName};`
+      _updatesql = `update ${btn.sql} set ${_form} where ${primaryKey}=@${primaryKeyName};`
+    }
+
+    // 娣诲姞銆佷慨鏀广�侀�昏緫鍒犻櫎銆佺墿鐞嗗垹闄�
+    if (_actionType === 'insert') {
+      _sql += _insertsql
+    } else if (_actionType === 'update') {
+      _sql += _updatesql
     } else if (_actionType === 'LogicDelete') { // 閫昏緫鍒犻櫎
       _sql += `update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuserid=@userid@ where ${primaryKey}=@${primaryKeyName};`
     
@@ -1078,6 +1090,14 @@
         })
       }
       _sql += `insert into snote (remark,createuserid,CreateUser,CreateStaff) select '鍒犻櫎琛�:${btn.sql} 鏁版嵁: ${_msg}${primaryKey}='+@${primaryKeyName},@userid@,@username,@fullname delete ${btn.sql} where ${primaryKey}=@${primaryKeyName};`
+    } else if (_actionType === 'insertOrUpdate') {
+      _sql += `select @tbid=''
+        select @tbid='X' from ${btn.sql} where ${primaryKey}=@ID@
+        if @tbid=''
+          ${_insertsql}
+        else
+          ${_updatesql}
+      `
     }
 
     // 鎷兼帴鑷畾涔夎剼鏈�

--
Gitblit v1.8.0