From d070b123d97abba5317c0cb41148e392b5c620c2 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 14 九月 2024 11:32:57 +0800
Subject: [PATCH] 2024-09-14

---
 src/utils/utils-custom.js |   77 +++++++++++++++++++++++++-------------
 1 files changed, 50 insertions(+), 27 deletions(-)

diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js
index 893d8aa..968cc1c 100644
--- a/src/utils/utils-custom.js
+++ b/src/utils/utils-custom.js
@@ -3129,7 +3129,7 @@
   
           if (item.subtype === 'editable' && item.submit.intertype === 'system') {
             item.submit.logLabel = item.$menuname + '-鎻愪氦'
-            let msg = getEditTableSql(item.submit, item.cols, item.columns)
+            let msg = getEditTableSql(item.submit, item.cols, item.columns, item.setting)
 
             sqls.push({uuid: 'submit_' + item.uuid, type: 'editable', ...msg})
           }
@@ -3214,8 +3214,8 @@
           // 鏁版嵁婧恠ql璇彞锛岄澶勭悊锛屾潈闄愰粦鍚嶅崟瀛楁璁剧疆涓洪殣钘忚〃鍗�
           if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(form.type) && form.resourceType === '1') {
             let msg = getFormSql(form, '琛ㄥ崟')
-  
-            sqls.push({uuid: form.uuid, type: 'form', ...msg})
+
+            sqls.push({uuid: md5(cell.uuid + form.uuid), type: 'form', ...msg})
           } else if (form.type === 'popSelect') {
             let msg = getPopSelectSql(form)
         
@@ -3248,7 +3248,7 @@
             if (['select', 'link', 'multiselect', 'radio', 'checkbox', 'checkcard'].includes(form.type) && form.resourceType === '1') {
               let msg = getFormSql(form, '琛ㄥ崟')
     
-              sqls.push({uuid: form.uuid, type: 'form', ...msg})
+              sqls.push({uuid: md5(cell.uuid + form.uuid), type: 'form', ...msg})
             } else if (form.type === 'popSelect') {
               let msg = getPopSelectSql(form)
           
@@ -3797,7 +3797,11 @@
         let _key = item.key.toLowerCase()
   
         keys.push(_key)
-        values.push('@mk_' + _key + '_mk@')
+        if (item.type === 'number' || item.type === 'rate') {
+          values.push('@mk_' + _key + '_mk@')
+        } else {
+          values.push(`'@mk_${_key}_mk@'`)
+        }
       })
   
       if (!keys.includes(primaryKey.toLowerCase())) {
@@ -3841,7 +3845,11 @@
         let _key = item.key.toLowerCase()
         
         _arr.push(_key)
-        _form.push(_key + '=@mk_' + _key + '_mk@')
+        if (item.type === 'number' || item.type === 'rate') {
+          _form.push(`${_key}=@mk_${_key}_mk@`)
+        } else {
+          _form.push(`${_key}='@mk_${_key}_mk@'`)
+        }
       })
   
       if (_actionType === 'audit') {
@@ -4190,8 +4198,8 @@
       columns.forEach(col => {
         let _key = col.field.toLowerCase()
 
-        if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(_sql)) return
-        if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return
+        if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(_sql)) return
+        // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return
 
         colreps.push(col.field)
   
@@ -4301,6 +4309,7 @@
       return true
     })
 
+    colreps = Array.from(new Set(colreps))
     reps = [...reps, ...colreps]
     
     return { LText: _sql, md5: md5(_sql), reps }
@@ -4447,7 +4456,7 @@
         `
     }
 
-    let testSql = _prev + _back
+    let testSql = _prev + _back + (btn.output || '')
 
     // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鎴栧琛屾嫾鎺ユ椂璺宠繃)
     if (btn.Ot !== 'notRequired' && columns.length > 0) {
@@ -4455,8 +4464,8 @@
       columns.forEach(col => {
         let _key = col.field.toLowerCase()
 
-        if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(testSql)) return
-        if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(testSql)) return
+        if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(testSql)) return
+        // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(testSql)) return
 
         colreps.push(col.field)
   
@@ -5149,7 +5158,7 @@
     return {LText: sql, md5: md5(sql), reps}
   }
 
-  let getEditTableSql = (btn, cols, columns) => {
+  let getEditTableSql = (btn, cols, columns, setting) => {
     let sheet = btn.sheet.replace(/@db@/ig, '')
     let database = ''
     if (/@db@/ig.test(btn.sheet)) {
@@ -5157,28 +5166,42 @@
     }
   
     let forms = []
-    let _fields = {}
-
-    columns.forEach(col => {
-      _fields[col.field] = col.datatype
-    })
+    let _forms = {}
+    let index = 0
 
     let getColumns = (cols) => {
       cols.forEach(item => {
         if (item.type === 'colspan') {
           getColumns(item.subcols)
         } else if (item.editable === 'true') {
-          forms.push({
-            field: item.field,
-            type: item.type,
-            datatype: _fields[item.field] || 'nvarchar(50)'
-          })
+          item.$sort = index
+          _forms[item.field] = item
+          index++
         }
       })
     }
 
     getColumns(cols)
-  
+
+    columns.forEach(item => {
+      if (item.field === setting.primaryKey) return
+
+      if (_forms[item.field]) {
+        let _item = {..._forms[item.field]}
+        if (_item.editType === 'date') {
+          _item.datatype = _item.declareType || 'datetime'
+        } else {
+          _item.datatype = item.datatype
+        }
+
+        forms.push(_item)
+      } else {
+        forms.push({...item, $sort: 999})
+      }
+    })
+
+    forms.sort((a, b) => a.$sort - b.$sort)
+
     let sql = ''
   
     let _initCustomScript = '' // 鍒濆鍖栬剼鏈�
@@ -5530,8 +5553,8 @@
       component.columns.forEach(col => {
         let _key = col.field.toLowerCase()
 
-        if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(msg.LText)) return
-        if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(msg.LText)) return
+        if (formkeys.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(msg.LText)) return
+        // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(msg.LText)) return
 
         colreps.push(col.field)
   
@@ -5617,8 +5640,8 @@
     component.columns.forEach(col => {
       let _key = col.field.toLowerCase()
 
-      if (syses.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_]', 'ig').test(_sql)) return
-      if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return
+      if (syses.includes(_key) || !new RegExp('@' + _key + '[^0-9a-z_@]', 'ig').test(_sql)) return
+      // if (_key === 'id' && !/@id[^0-9a-z_@]/ig.test(_sql)) return
 
       colreps.push(col.field)
       

--
Gitblit v1.8.0