From f9455c981f94d5fd89103b1d332baefd039bebb2 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 25 十月 2024 09:17:14 +0800
Subject: [PATCH] 2024-10-25

---
 src/menu/debug/index.jsx |  122 +++++++++++++++++++++++-----------------
 1 files changed, 70 insertions(+), 52 deletions(-)

diff --git a/src/menu/debug/index.jsx b/src/menu/debug/index.jsx
index 6c8e603..b66ef90 100644
--- a/src/menu/debug/index.jsx
+++ b/src/menu/debug/index.jsx
@@ -292,6 +292,8 @@
     components.forEach(item => {
       if (item.type === 'tabs') {
         item.subtabs.forEach(tab => {
+          if (tab.hide === 'true') return
+
           let _mainSearch = mainSearch || []
 
           if (appType !== 'mob') {
@@ -385,7 +387,7 @@
           getCols(item.cols)
   
           if (item.subtype === 'editable' && item.submit.intertype === 'system') {
-            let sql = this.getEditTableSql(item.submit, item.cols, item.columns)
+            let sql = this.getEditTableSql(item.submit, item.cols, item.columns, item.setting)
             children.push({label: '鎻愪氦', sql: sql})
           }
         } else if (item.type === 'card' || item.type === 'carousel' || item.type === 'timeline') {
@@ -632,7 +634,7 @@
       }
     })
 
-    if (!_prev) return ''
+    if (!_prev) return _back
 
     let tbs = []
     _prev.replace(/\n|\r/g, ' ').split(/\sdeclare\s/ig).forEach(line => {
@@ -714,6 +716,11 @@
         verify.invalid = 'false'
       } else if (btn.Ot === 'notRequired') {
         verify.invalid = 'false'
+      }
+    }
+    if (verify.uniques && verify.uniques.length > 0 && btn.Ot === 'requiredOnce') {
+      if (component.wrap && (component.wrap.datatype === 'static' || component.wrap.datatype === 'public')) {
+        verify.uniques = []
       }
     }
   
@@ -872,6 +879,8 @@
         } else if (form.type === 'rate') {
           _type = `decimal(18,2)`
         }
+
+        if (['appkey'].includes(_key)) return
   
         _declarefields.push(`@${_key} ${_type}`)
       }
@@ -879,7 +888,7 @@
   
     // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鎴栧琛屾嫾鎺ユ椂璺宠繃)
     if (btn.Ot !== 'notRequired' && columns.length > 0) {
-      const setField = (col) => {
+      columns.forEach(col => {
         if (!col.field) return
         let _key = col.field.toLowerCase()
   
@@ -895,37 +904,9 @@
           }
         }
         
-        if (!_vars.includes(_key)) {
+        if (!_vars.includes(_key) && !['appkey'].includes(_key)) {
           _vars.push(_key)
-  
-          if (col.datatype) {
-            _declarefields.push(`@${_key} ${col.datatype}`)
-          } else {
-            if (col.fieldlength && col.fieldlength > 4000) {
-              col.fieldlength = 'max'
-            }
-  
-            let _type = `nvarchar(${col.fieldlength || 50})`
-  
-            if (col.type === 'number') {
-              let _length = col.decimal ? col.decimal : 0
-              _type = `decimal(18,${_length})`
-            } else if (col.type === 'picture' || col.type === 'textarea') {
-              _type = `nvarchar(${col.fieldlength || 512})`
-            }
-  
-            _declarefields.push(`@${_key} ${_type}`)
-          }
-        }
-      }
-  
-      columns.forEach(col => {
-        if (col.type === 'colspan' || col.type === 'old_colspan') {
-          col.subcols.forEach(cell => {
-            setField(cell)
-          })
-        } else {
-          setField(col)
+          _declarefields.push(`@${_key} ${col.datatype || 'nvarchar(50)'}`)
         }
       })
     }
@@ -1154,6 +1135,17 @@
   
     // 鍞竴鎬ч獙璇侊紝蹇呴』瀛樺湪琛ㄥ崟锛堣〃鍗曞瓨鍦ㄦ椂锛屼富閿潎涓哄崟鍊硷級,蹇呴』濉啓鏁版嵁婧愶紝澶氳鎷兼帴鏃朵笉鍙敤
     if (formdata && verify.uniques && verify.uniques.length > 0 && btn.Ot !== 'requiredOnce') {
+      let dateForms = []
+      let numForms = []
+      formdata.forEach(form => {
+        let _key = form.key.toLowerCase()
+        if (form.type === 'date') {
+          dateForms.push(_key)
+        } else if (form.type === 'number' || form.type === 'rate') {
+          numForms.push(_key)
+        }
+      })
+
       verify.uniques.forEach(item => {
         let _fieldValue = []                     // 琛ㄥ崟閿�煎field=value
         let _value = []                          // 琛ㄥ崟鍊硷紝鐢ㄤ簬閿欒鎻愮ず
@@ -1167,6 +1159,10 @@
           arr.push(_key)
           if (_key === 'bid') { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺
             _val = BID
+          } else if (numForms.includes(_key)) {
+            _val = '1'
+          } else if (dateForms.includes(_key)) {
+            _val = '1949-10-01'
           }
 
           _fieldValue.push(`${_key}='${_val}'`)
@@ -1472,13 +1468,7 @@
       if (_backCustomScript) {
         _sql += _backCustomScript
       }
-  
-      _sql = _sql.replace(/@start_type@/ig, `'寮�濮�'`)
-      _sql = _sql.replace(/@check_type@/ig, `'瀹℃牳'`)
-      _sql = _sql.replace(/@notice_type@/ig, `'鎶勯��'`)
-      _sql = _sql.replace(/@check_userids@/ig, `''`)
-      _sql = _sql.replace(/@notice_userids@/ig, `''`)
-      _sql = _sql.replace(/@works_flow_sign@/ig, `''`)
+
       _sql = _sql.replace(/@works_flow_code@/ig, `'mk'`)
       _sql = _sql.replace(/@works_flow_name@/ig, `'mk'`)
       _sql = _sql.replace(/@works_flow_param@/ig, `''`)
@@ -1487,6 +1477,18 @@
       _sql = _sql.replace(/@statusname@/ig, `'${statusName}'`)
       _sql = _sql.replace(/@work_group@/ig, `'mk'`)
       _sql = _sql.replace(/@work_grade@/ig, `'0'`)
+
+      if (verify.flowType === 'start') {
+        _sql = _sql.replace(/@start_type@/ig, `'寮�濮�'`)
+      } else {
+        _sql = _sql.replace(/@check_type@/ig, `'瀹℃牳'`)
+        _sql = _sql.replace(/@notice_type@/ig, `'鎶勯��'`)
+
+        _sql = _sql.replace(/@check_userids@/ig, `''`)
+        _sql = _sql.replace(/@notice_userids@/ig, `''`)
+
+        _sql = _sql.replace(/@works_flow_sign@/ig, `''`)
+      }
     } else if (_backCustomScript) {
       _sql += _backCustomScript
     }
@@ -1776,7 +1778,7 @@
     return sql
   }
 
-  getEditTableSql = (verify, cols, columns) => {
+  getEditTableSql = (verify, cols, columns, setting) => {
     let btn = verify
     let userName = sessionStorage.getItem('User_Name') || ''
     let fullName = sessionStorage.getItem('Full_Name') || ''
@@ -1804,30 +1806,46 @@
   
     let vals = []
     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)
+
     forms.forEach(col => {
-      if (col.type === 'number') {
+      if (/date/.test(col.datatype)) {
+        vals.push(`'1949-10-01'`)
+      } else if (col.type === 'number') {
         vals.push(`1`)
       } else {
         vals.push(`'mk'`)

--
Gitblit v1.8.0