From b24691f4e391e80607532fe66087bde015ee2dee Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 14 四月 2020 15:34:08 +0800
Subject: [PATCH] 2020-04-14

---
 src/templates/zshare/verifycard/index.jsx |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 54 insertions(+), 4 deletions(-)

diff --git a/src/templates/zshare/verifycard/index.jsx b/src/templates/zshare/verifycard/index.jsx
index ce85f97..9d8f8bf 100644
--- a/src/templates/zshare/verifycard/index.jsx
+++ b/src/templates/zshare/verifycard/index.jsx
@@ -406,26 +406,76 @@
         _fields.push(...group.sublist)
       })
 
-      let _usefulfields = ['BID', 'ID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey']
+      let _usefulfields = ['BID', 'ID', 'LoginUID', 'SessionUid', 'UserID', 'Appkey', 'UserName', 'FullName']
+      let _declare = ['@UserName nvarchar(50)', '@FullName nvarchar(50)', '@ErrorCode nvarchar(50)', '@retmsg nvarchar(4000)']
+      let _select = ['@UserName=\'\'', '@FullName=\'\'', '@ErrorCode=\'\'', '@retmsg=\'\'']
+      let fieldArr = _usefulfields.map(_f => _f.toLowerCase())
+
       _fields.forEach(_f => {
         if (_f.field) {
+          if (fieldArr.includes(_f.field.toLowerCase())) return
+          fieldArr.push(_f.field.toLowerCase())
+
           _usefulfields.push(_f.field)
+
+          let _fieldlen = _f.fieldlength || 50
+
+          if (['textarea', 'fileupload', 'multiselect'].includes(_f.type)) {
+            _fieldlen = _f.fieldlength || 512
+          } else if (_f.type === 'number') {
+            _fieldlen = _f.decimal ? _f.decimal : 0
+          }
+
+          let _type = `nvarchar(${_fieldlen})`
+
+          if (_f.type.match(/date/ig)) {
+            _type = 'datetime'
+            _select.push(`@${_f.field}='1900-01-01'`)
+          } else if (_f.type === 'number') {
+            _type = `decimal(18,${_fieldlen})`
+            _select.push(`@${_f.field}=0`)
+          } else {
+            _select.push(`@${_f.field}=''`)
+          }
+
+          _declare.push(`@${_f.field} ${_type}`)
         }
       })
 
       if (columns && columns.length > 0 && this.props.btnTab.Ot !== 'notRequired') {
         columns.forEach(_f => {
-          if (_f.field) {
-            _usefulfields.push(_f.field)
+          if (!_f.field || fieldArr.includes(_f.field.toLowerCase())) return
+
+          fieldArr.push(_f.field.toLowerCase())
+
+          _usefulfields.push(_f.field)
+
+          let _type = `nvarchar(${_f.fieldlength || 50})`
+
+          if (_f.type === 'number') {
+            _type = `decimal(18,${_f.decimal ? _f.decimal : 0})`
+          } else if (_f.type === 'picture' || _f.type === 'textarea') {
+            _type = `nvarchar(${_f.fieldlength || 512})`
           }
+
+          if (_f.type === 'number') {
+            _select.push(`@${_f.field}=0`)
+          } else {
+            _select.push(`@${_f.field}=''`)
+          }
+
+          _declare.push(`@${_f.field} ${_type}`)
         })
       }
 
-      _usefulfields = Array.from(new Set(_usefulfields))
       _usefulfields = _usefulfields.join(', ')
+      let _sql = `Declare ${_declare.join(', ')}
+        Select ${_select.join(', ')}
+      `
 
       this.setState({
         fields: _fields,
+        initsql: _sql,
         usefulfields: _usefulfields
       })
       return

--
Gitblit v1.8.0