From cb59703536b8fe29117ea1de415361395f4820e6 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 15 八月 2024 12:09:10 +0800
Subject: [PATCH] 2024-08-15

---
 src/menu/debug/index.jsx |   38 ++++++++++++++++++++++++++++++++++----
 1 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/src/menu/debug/index.jsx b/src/menu/debug/index.jsx
index 3b440ad..6f89f4b 100644
--- a/src/menu/debug/index.jsx
+++ b/src/menu/debug/index.jsx
@@ -95,6 +95,9 @@
       config.interfaces.forEach(m => {
         if (m.status !== 'true' || m.setting.interType !== 'system') return false
   
+        m.setting.laypage = 'false'
+        m.setting.$top = true
+
         let sql = this.formatDataSource(m, regs)
   
         this.sqlList.push({label: m.setting.name, children: [{label: '鏁版嵁婧�', sql: sql}]})
@@ -309,6 +312,11 @@
         }
 
         if (item.setting && item.setting.interType === 'system') {
+          if (item.format === 'object') {
+            item.setting.laypage = 'false'
+            item.setting.$top = true
+          }
+
           let sql = this.formatDataSource(item, regs, _mainSearch)
   
           children.push({label: '鏁版嵁婧�', sql: sql})
@@ -656,8 +664,24 @@
     let BID = Utils.getuuid()
     let verify = btn.verify || {}
     let _actionType = null
-    let setting = component.setting
+    let setting = component.setting || {}
     let columns = component.columns || []
+
+    if (verify.invalid === 'true') {
+      if (component.wrap && (component.wrap.datatype === 'static' || component.wrap.datatype === 'public')) {
+        verify.invalid = 'false'
+      } else if (setting.maxScript && setting.maxScript >= 300) {
+        verify.invalid = 'false'
+      } else if (!setting.dataresource) {
+        verify.invalid = 'false'
+      } else if (btn.intertype !== 'system' && btn.procMode !== 'system') {
+        verify.invalid = 'false'
+      } else if (btn.sqlType === 'insert') {
+        verify.invalid = 'false'
+      } else if (btn.Ot === 'notRequired') {
+        verify.invalid = 'false'
+      }
+    }
   
     if (verify.default !== 'false') { // 鍒ゆ柇鏄惁浣跨敤榛樿sql
       _actionType = btn.sqlType
@@ -820,7 +844,7 @@
     })
   
     // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鎴栧琛屾嫾鎺ユ椂璺宠繃)
-    if (btn.Ot !== 'notRequired' && columns && columns.length > 0) {
+    if (btn.Ot !== 'notRequired' && columns.length > 0) {
       const setField = (col) => {
         if (!col.field) return
         let _key = col.field.toLowerCase()
@@ -955,7 +979,7 @@
     }
   
     // 澶辨晥楠岃瘉锛屾坊鍔犳暟鎹椂涓嶇敤
-    if (btn.sqlType !== 'insert' && btn.Ot !== 'notRequired' && verify.invalid === 'true' && setting.dataresource) {
+    if (verify.invalid === 'true') {
       let datasource = setting.dataresource
       let customScript = setting.customScript || ''
       let orderBy = setting.order
@@ -2055,7 +2079,7 @@
 
   formatDataSource = (item, regs, mainSearch = []) => {
     if (!item.setting || item.setting.interType !== 'system') return false
-    
+
     let searches = item.search || []
     if (item.setting.useMSearch === 'true' && mainSearch.length > 0) {
       searches = [...searches, ...mainSearch]
@@ -2120,6 +2144,12 @@
         _dataresource = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search} `
       } else if (item.setting.laypage === 'true' && item.setting.order) {
         _dataresource = `/*system_query*/select top 10 ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${item.setting.order}) as rows from ${_dataresource} ${_search}) tmptable where rows > 0 order by tmptable.rows `
+      } else if (item.setting.$top) {
+        if (item.setting.order) {
+          _dataresource = `/*system_query*/select top 1 ${arr_field} from ${_dataresource} ${_search} order by ${item.setting.order} `
+        } else {
+          _dataresource = `/*system_query*/select top 1 ${arr_field} from ${_dataresource} ${_search}  `
+        }
       } else if (item.setting.order) {
         _dataresource = `/*system_query*/select ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${item.setting.order}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows `
       } else {

--
Gitblit v1.8.0