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/tabviews/zshare/actionList/index.jsx |   62 +++++++++++++++++++++---------
 1 files changed, 43 insertions(+), 19 deletions(-)

diff --git a/src/tabviews/zshare/actionList/index.jsx b/src/tabviews/zshare/actionList/index.jsx
index 2afdbbf..c5774d2 100644
--- a/src/tabviews/zshare/actionList/index.jsx
+++ b/src/tabviews/zshare/actionList/index.jsx
@@ -2341,7 +2341,10 @@
     let param = {
       func: 'sPC_Get_TableData',
       obj_name: 'data',
-      arr_field: arr_field
+      arr_field: arr_field,
+      custom_script: setting.customScript || '',
+      default_sql: setting.default || 'true',
+      dataM: this.props.dataManager ? 'Y' : ''
     }
 
     if (this.props.BID) {
@@ -2354,37 +2357,58 @@
       _dataresource = '(' + _dataresource + ') tb'
     }
 
-    if (setting.queryType === 'statistics') { // 缁熻鏁版嵁婧愶紝鍐呭鏇挎崲
-      let fieldmap = new Map()
-      let options = search.map(item => {
-        let _field = item.key
+    if (this.props.dataManager) { // 鏁版嵁鏉冮檺
+      _dataresource = _dataresource.replace(/\$@/ig, '/*')
+      _dataresource = _dataresource.replace(/@\$/ig, '*/')
+      param.custom_script = param.custom_script.replace(/\$@/ig, '/*')
+      param.custom_script = param.custom_script.replace(/@\$/ig, '*/')
+    } else {
+      _dataresource = _dataresource.replace(/@\$|\$@/ig, '')
+      param.custom_script = param.custom_script.replace(/@\$|\$@/ig, '')
+    }
 
-        if (fieldmap.has(_field)) {
-          _field = _field + '1'
-        }
+    let regoptions = null
+    if (setting.queryType === 'statistics' || param.custom_script) {
+      let allSearch = Utils.getAllSearchOptions(search)
 
-        fieldmap.set(item.key, true)
-
+      regoptions = allSearch.map(item => {
         return {
-          reg: new RegExp('@' + _field, 'ig'),
-          value: item.value
+          reg: new RegExp('@' + item.key + '@', 'ig'),
+          value: `'${item.value}'`
         }
       })
 
-      options.reverse()
-
-      options.forEach(item => {
-        _dataresource = _dataresource.replace(item.reg, `'${item.value}'`)
+      regoptions.push({
+        reg: new RegExp('@orderBy@', 'ig'),
+        value: orderBy
+      }, {
+        reg: new RegExp('@pageSize@', 'ig'),
+        value: pageSize
+      }, {
+        reg: new RegExp('@pageIndex@', 'ig'),
+        value: pageIndex
       })
+    }
 
+    if (setting.queryType === 'statistics') { // 缁熻鏁版嵁婧愶紝鍐呭鏇挎崲
+      regoptions.forEach(item => {
+        _dataresource = _dataresource.replace(item.reg, item.value)
+      })
       _search = ''
     }
 
-    let LText = ''
+    let LText = `select ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows`
+    
     if (pagination) {
       LText = `select top ${pageSize} ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable where rows > ${pageSize * (pageIndex - 1)} order by tmptable.rows`
-    } else {
-      LText = `select ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows`
+    }
+
+    if (param.custom_script) {
+      regoptions.forEach(item => {
+        param.custom_script = param.custom_script.replace(item.reg, item.value)
+      })
+
+      param.custom_script = Utils.formatOptions(param.custom_script)
     }
 
     param.LText = Utils.formatOptions(LText)

--
Gitblit v1.8.0