From 35b44bed4aa7b3f645c20fca025813cf4f3786ea Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期日, 02 二月 2020 10:22:25 +0800
Subject: [PATCH] 2020-02-02

---
 src/utils/utils.js |   58 ++++++++++++++++++++++++++++------------------------------
 1 files changed, 28 insertions(+), 30 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 4d2c968..0355853 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -166,25 +166,11 @@
     value = value.replace(/%/ig, 'mpercent')
     value = value.replace(/(^\s|\s$)/ig, '')
 
-    // value = value.replace(/>/ig, 'greateror')
-    //   .replace(/</ig, 'lessor')
-    //   .replace(/!=/ig, 'noequal')
-    //   .replace(/=/ig, 'equal')
-    //   .replace(/,/ig, 'comma')
-    //   .replace(/>=/ig, 'greaterorequal')
-    //   .replace(/<=/ig, 'lessorequal')
-    //   .replace(/@/ig, 'matk')
-    //   .replace(/\(/ig, 'mlbrktsk')
-    //   .replace(/\)/ig, 'mrbrktsk')
-    //   .replace(/\*/ig, 'mastrsk')
-    //   .replace(/'/ig, 'mqotek')
-    //   .replace(/\s/ig, 'mspace')
-
     // 1銆乪ncode缂栫爜锛堜腑鏂囧瓧绗﹁秴鍑篵ase64鍔犲瘑鑼冨洿锛夛紝2銆乥ase64鍔犲瘑
     value = window.btoa(window.encodeURIComponent(value))
 
-    // 闅忔満鎻掑叆瀛楃
-    let index = Math.floor(Math.random() * value.length)
+    // 鎻掑叆瀛楃
+    let index = Math.floor(value.length / 2)
     value = value.slice(0, index) + salt + value.slice(index)
 
     // base64鍔犲瘑
@@ -419,10 +405,20 @@
   }
 
   /**
-   * @description 鑾峰彇涓嬫媺鎼滅储鏌ヨsql
+   * @description 鑾峰彇涓嬫媺鎼滅储鏌ヨ鏉′欢
    * @return {String} item   鎼滅储鏉′欢淇℃伅
    */
-  static getSelectQuerySql (item) {
+  static getSelectQueryOptions (item) {
+    let arrfield = [item.valueField, item.valueText]
+
+    if (item.type === 'link') {
+      arrfield.push(item.linkField)
+    } else if (item.type === 'select' && item.linkSubField && item.linkSubField.length > 0) {
+      arrfield.push(...item.linkSubField)
+    }
+
+    arrfield = Array.from(new Set(arrfield))
+
     let _datasource = item.dataSource
     let sql = ''
 
@@ -430,17 +426,18 @@
       _datasource = '(' + _datasource + ') tb'
     }
 
-    if (item.type === 'link') {
-      sql = 'select ' + item.valueField + ',' + item.valueText + ',' + item.linkField + ' from ' + _datasource
-    } else {
-      sql = 'select ' + item.valueField + ',' + item.valueText + ' from ' + _datasource
-    }
+    arrfield = arrfield.join(',')
 
     if (item.orderBy) {
-      sql = sql + ' order by ' + item.orderBy + ' ' + item.orderType
+      sql = 'select distinct ' + arrfield + ',' + item.orderBy + ' as orderfield from ' + _datasource + ' order by orderfield ' + item.orderType
+    } else {
+      sql = 'select distinct ' + arrfield + ' from ' + _datasource
     }
 
-    return sql
+    return {
+      sql: sql,
+      field: arrfield
+    }
   }
 
   /**
@@ -449,7 +446,7 @@
    * @return {String} table  琛ㄥ悕
    */
   static getSysDefaultSql (btn, setting, formdata, param, data) {
-    let primaryId = param[setting.primaryKey]
+    let primaryId = param.ID
     let BID = param.BID
     let verify = btn.verify
     let _formFieldValue = {}
@@ -496,17 +493,18 @@
       verify.uniques.forEach(item => {
         let _fieldValue = [] // 琛ㄥ崟閿�煎field=value
         let _value = []      // 琛ㄥ崟鍊硷紝鐢ㄤ簬閿欒鎻愮ず
+        let _labels = item.fieldlabel.split(',')
 
-        item.field.split(',').forEach(_field => {
+        item.field.split(',').forEach((_field, index) => {
           _fieldValue.push(`${_field}='${_formFieldValue[_field]}'`)
-          _value.push(_formFieldValue[_field])
+          _value.push(`${_labels[index] || ''}锛�${_formFieldValue[_field] || ''}`)
         })
 
         _sql += `Select @tbid='', @ErrorCode='',@retmsg=''
           Select @tbid='X' from ${btn.sql} where ${_fieldValue.join(' and ')} and ${primaryKey} !='${_primaryId}'
           If @tbid!=''
           Begin
-            select @ErrorCode='${item.errorCode}',@retmsg='${item.fieldlabel || ''}锛�${_value.join(' ')} 宸插瓨鍦�' 
+            select @ErrorCode='${item.errorCode}',@retmsg='${_value.join(', ')} 宸插瓨鍦�'
             goto aaa
           end
           `
@@ -615,7 +613,7 @@
       _sql += `declare @UserName  nvarchar(50),@FullName nvarchar(50)
         select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID 
         `
-      _sql += `insert into ${btn.sql} (${keys},createuserid,CreateUser,CreateStaff,BID) select ${values},@BID,@userid,@username,@fullname`
+      _sql += `insert into ${btn.sql} (${keys},createuserid,CreateUser,CreateStaff,BID) select ${values},@userid,@username,@fullname,@BID`
     } else if (btn.OpenType === 'pop' && btn.sqlType === 'update') {
       let _form = []
       formdata.forEach(item => {

--
Gitblit v1.8.0