From 763a67d39dcb0e5ae49816abcdb9cb7cbc2bd9e0 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 18 五月 2020 10:12:31 +0800
Subject: [PATCH] 2020-05-18

---
 src/templates/sharecomponent/settingcomponent/settingform/index.jsx |   44 +++++++++++++++++++++++++++++++-------------
 1 files changed, 31 insertions(+), 13 deletions(-)

diff --git a/src/templates/sharecomponent/settingcomponent/settingform/index.jsx b/src/templates/sharecomponent/settingcomponent/settingform/index.jsx
index 76f9893..2f565dc 100644
--- a/src/templates/sharecomponent/settingcomponent/settingform/index.jsx
+++ b/src/templates/sharecomponent/settingcomponent/settingform/index.jsx
@@ -316,15 +316,46 @@
       let _dataresource = _setting.dataresource
       let _customScript = _setting.customScript
 
+      // 鎼滅储鏉′欢
       let allSearch = Utils.initMainSearch(config.search)
       allSearch = Utils.getAllSearchOptions(allSearch)
 
+      // 鏄剧ず鍒楀瓧娈碉紝鐢ㄤ簬鏌ヨ
+      let arr_field = []
+      config.columns.forEach(col => {
+        if (col.field) {
+          arr_field.push(col.field)
+        }
+      })
+      arr_field = arr_field.join(',')
+
+      // 姝e垯鏇挎崲
       let regoptions = allSearch.map(item => {
         return {
           reg: new RegExp('@' + item.key + '@', 'ig'),
           value: `'${item.value}'`
         }
       })
+      regoptions.push({
+        reg: new RegExp('@orderBy@', 'ig'),
+        value: _setting.order
+      })
+      if (_setting.laypage !== 'false') {
+        regoptions.push({
+          reg: new RegExp('@pageSize@', 'ig'),
+          value: 10
+        }, {
+          reg: new RegExp('@pageIndex@', 'ig'),
+          value: 1
+        })
+      }
+
+      // 鏁版嵁婧愬鐞�
+      if (/\s/.test(_dataresource)) {
+        _dataresource = '(' + _dataresource + ') tb'
+      }
+
+      _dataresource = `select ${_setting.laypage !== 'false' ?  'top 10' : ''} ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${_setting.order}) as rows from ${_dataresource}) tmptable ${_setting.laypage !== 'false' ?  'where rows > 0' : ''} order by tmptable.rows`
 
       if (_setting.queryType === 'statistics') {
         regoptions.forEach(item => {
@@ -333,19 +364,6 @@
       }
 
       if (_customScript) {
-        regoptions.push({
-          reg: new RegExp('@orderBy@', 'ig'),
-          value: _setting.order
-        })
-        if (_setting.laypage !== 'false') {
-          regoptions.push({
-            reg: new RegExp('@pageSize@', 'ig'),
-            value: 10
-          }, {
-            reg: new RegExp('@pageIndex@', 'ig'),
-            value: 1
-          })
-        }
         regoptions.forEach(item => {
           _customScript = _customScript.replace(item.reg, item.value)
         })

--
Gitblit v1.8.0