From 0c439ced2c97905cb2b02f5f689a37b19369fb8a Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 22 七月 2022 15:00:58 +0800
Subject: [PATCH] 2022-07-22

---
 src/utils/utils-datamanage.js |  470 ++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 374 insertions(+), 96 deletions(-)

diff --git a/src/utils/utils-datamanage.js b/src/utils/utils-datamanage.js
index 8e9bc53..a7411ae 100644
--- a/src/utils/utils-datamanage.js
+++ b/src/utils/utils-datamanage.js
@@ -1,3 +1,4 @@
+import md5 from 'md5'
 import moment from 'moment'
 import options from '@/store/options.js'
 import Utils from './utils.js'
@@ -12,16 +13,15 @@
    * @param {Number}   pageIndex    椤电爜
    * @param {Number}   pageSize     姣忛〉鏁伴噺
    * @param {String}   BID          涓婄骇ID
-   * @param {String}   menuType     鑿滃崟绫诲瀷锛屾櫘閫氳彍鍗曚笌HS
    * @return {Object}  param
    */
-  static getQueryDataParams (setting, arrFields, search = [], orderBy = '', pageIndex = 1, pageSize = 10, BID, menuType, id) {
+  static getQueryDataParams (setting, arrFields, search = [], orderBy = '', pageIndex = 1, pageSize = 10, BID, id) {
     let param = null
 
     if (setting.interType === 'system' || (setting.interType === 'custom' && setting.requestMode === 'system')) {
-      param = this.getDefaultQueryParam(setting, arrFields, search, orderBy, pageIndex, pageSize, menuType, id)
+      param = this.getDefaultQueryParam(setting, arrFields, search, orderBy, pageIndex, pageSize, id, BID)
     } else {
-      param = this.getCustomQueryParam(setting, search, orderBy, pageIndex, pageSize, menuType, id)
+      param = this.getCustomQueryParam(setting, search, orderBy, pageIndex, pageSize, id)
     }
 
     if (BID) {
@@ -38,7 +38,7 @@
   /**
    * @description 鑾峰彇鐢ㄦ埛鑷畾涔夊瓨鍌ㄨ繃绋嬩紶鍙�
    */
-  static getCustomQueryParam (setting, search, orderBy, pageIndex, pageSize, menuType, id) {
+  static getCustomQueryParam (setting, search, orderBy, pageIndex, pageSize, id) {
     let param = Utils.formatCustomMainSearch(search)
 
     if (orderBy) {
@@ -55,7 +55,7 @@
     if (setting.interType === 'inner' || (setting.interType === 'custom' && setting.requestMode === 'inner')) {
       param.func = setting.innerFunc
     } else {
-      if (menuType === 'HS') {
+      if (window.GLOB.mkHS) {
         if (setting.sysInterface === 'true' && options.cloudServiceApi) {
           param.rduri = options.cloudServiceApi
         } else if (setting.sysInterface !== 'true') {
@@ -65,7 +65,7 @@
         if (setting.sysInterface === 'true' && window.GLOB.mainSystemApi) {
           param.rduri = window.GLOB.mainSystemApi
         } else if (setting.sysInterface !== 'true') {
-          param.rduri = setting.interface
+          param.rduri = window.GLOB.systemType === 'production' ? (setting.proInterface || setting.interface) : setting.interface
         }
       }
 
@@ -80,7 +80,7 @@
   /**
    * @description 鑾峰彇绯荤粺瀛樺偍杩囩▼ sPC_Get_TableData 鐨勫弬鏁�
    */
-  static getDefaultQueryParam (setting, arrFields, search, orderBy, pageIndex, pageSize, menuType, id) {
+  static getDefaultQueryParam (setting, arrFields, search, orderBy, pageIndex, pageSize, id, BID) {
     let param = {
       func: 'sPC_Get_TableData',
       obj_name: 'data',
@@ -89,9 +89,21 @@
       default_sql: setting.execute ? 'true' : 'false'
     }
 
+    if (setting.transaction === 'true') {
+      param.func = 'sPC_Get_TableData_try'
+    }
+
     let userName = sessionStorage.getItem('User_Name') || ''
     let fullName = sessionStorage.getItem('Full_Name') || ''
+    let RoleID = sessionStorage.getItem('role_id') || ''
+    let departmentcode = sessionStorage.getItem('departmentcode') || ''
+    let organization = sessionStorage.getItem('organization') || ''
+    let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
+    let nation = sessionStorage.getItem('nation') || ''
+    let province = sessionStorage.getItem('province') || ''
     let city = sessionStorage.getItem('city') || ''
+    let district = sessionStorage.getItem('district') || ''
+    let address = sessionStorage.getItem('address') || ''
 
     if (sessionStorage.getItem('isEditState') === 'true') {
       userName = sessionStorage.getItem('CloudUserName') || ''
@@ -102,11 +114,34 @@
     let _customScript = ''
     
     if (setting.customScript) {
-      _customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@login_city nvarchar(50)
-        Select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @login_city='${city}'
+      _customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100)
+        Select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
         ${setting.customScript}
       `
     }
+
+    _dataresource = _dataresource.replace(/@select\$|\$select@/ig, '')
+    _customScript = _customScript.replace(/@select\$|\$select@/ig, '')
+    _dataresource = _dataresource.replace(/\$sum@/ig, '/*')
+    _dataresource = _dataresource.replace(/@sum\$/ig, '*/')
+    _customScript = _customScript.replace(/\$sum@/ig, '/*')
+    _customScript = _customScript.replace(/@sum\$/ig, '*/')
+
+    let time_id = Utils.getguid().substring(0, 32) || ''
+    _dataresource = _dataresource.replace(/@ID@/ig, `''`)
+    _customScript = _customScript.replace(/@ID@/ig, `''`)
+    _dataresource = _dataresource.replace(/@BID@/ig, `'${BID || ''}'`)
+    _customScript = _customScript.replace(/@BID@/ig, `'${BID || ''}'`)
+    _dataresource = _dataresource.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
+    _customScript = _customScript.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
+    _dataresource = _dataresource.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
+    _customScript = _customScript.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
+    _dataresource = _dataresource.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
+    _customScript = _customScript.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
+    _dataresource = _dataresource.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+    _customScript = _customScript.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+    _dataresource = _dataresource.replace(/@time_id@/ig, `'${time_id}'`)
+    _customScript = _customScript.replace(/@time_id@/ig, `'${time_id}'`)
 
     let regoptions = null
     if (setting.queryType === 'statistics' || _customScript) {
@@ -118,15 +153,6 @@
         }
       })
       regoptions.push({
-        reg: new RegExp('@login_city@', 'ig'),
-        value: `'${city}'`
-      }, {
-        reg: new RegExp('@userName@', 'ig'),
-        value: `'${userName}'`
-      }, {
-        reg: new RegExp('@fullName@', 'ig'),
-        value: `'${fullName}'`
-      }, {
         reg: new RegExp('@orderBy@', 'ig'),
         value: orderBy
       }, {
@@ -140,18 +166,23 @@
 
     let _search = ''
     
-    if (setting.queryType === 'statistics' && _dataresource) { // 缁熻鏁版嵁婧愶紝鍐呭鏇挎崲
-      regoptions.forEach(item => {
-        _dataresource = _dataresource.replace(item.reg, item.value)
-      })
-    } else if (_dataresource && !id) {
-      _search = Utils.joinMainSearchkey(search)
-      if (_search) {
-        _search = 'where ' + _search
+    if (_dataresource) {
+      if (setting.queryType === 'statistics') { // 缁熻鏁版嵁婧愶紝鍐呭鏇挎崲
+        regoptions.forEach(item => {
+          _dataresource = _dataresource.replace(item.reg, item.value)
+        })
+        if (id) {
+          _dataresource = _dataresource + ` where ${setting.primaryKey || 'ID'}='${id}'`
+        }
+      } else if (!id) {
+        _search = Utils.joinMainSearchkey(search)
+        if (_search) {
+          _search = 'where ' + _search
+        }
+      } else if (id) {
+        _search = Utils.joinMainSearchkey(search)
+        _search = `where ${_search ? _search + ' AND ' : ''} ${setting.primaryKey || 'ID'}='${id}'`
       }
-    } else if (_dataresource && id) {
-      _search = Utils.joinMainSearchkey(search)
-      _search = `where ${_search ? _search + ' AND ' : ''} ${setting.primaryKey || 'ID'}='${id}'`
     }
 
     if (_customScript) {
@@ -186,24 +217,52 @@
             insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,@UserID@ 
         `
       }
+    } else {
+      LText = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100)
+        Select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
+        ${LText}
+      `
     }
 
     // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞
-    if ((options.sysType === 'local' && !window.GLOB.systemType) || window.debugger === true) {
-      _customScript &&  console.info(`${setting.$name ? `/*缁勪欢-${setting.$name} 鑷畾涔夎剼鏈�*/\n` : ''}${LText ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`)
-      LText &&  console.info(`${setting.$name ? `/*缁勪欢-${setting.$name} 鏁版嵁婧�*/\n` : ''}` + LText)
+    if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
+      _customScript && console.info(`${setting.$name ? `/*${setting.$name} 鑷畾涔夎剼鏈�*/\n` : ''}${LText ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`)
+      LText && console.info(`${setting.$name ? `/*${setting.$name} 鏁版嵁婧�*/\n` : ''}` + LText.replace(/\n\s{8}/ig, '\n'))
+    }
+
+    if (setting.$name) {
+      param.menuname = setting.$name
     }
 
     param.custom_script = Utils.formatOptions(_customScript)
     param.LText = Utils.formatOptions(LText)
     param.DateCount = Utils.formatOptions(DateCount)
 
+    // 澶氬眰缁撴瀯鏁版嵁
+    // LText = `SELECT a.id as bid,a.ID,a.workerCode,a.workerName,a.jobName,a.Initials,case when isnull(m.friend_id ,'') ='' then '' 
+    // when isnull(m.status,0)=10 then '宸叉坊鍔�' else '寰呴�氳繃' end as friend_text
+    // ,case when images='' then  'http://epc.mk9h.cn/Content/images/upload/img/kane.jpg'  else images end as icon FROM  
+    // (select friend_id,status from oa_mail_list where userid='sso202004100959326131C0805998B6745F886F9' and  Initials=case when right('0',1)='0' then Initials else '0'  end 
+    // and status=10  and deleted=0) m 
+    //  inner join  (select * from BD_workers where 
+    //  Initials=case when right('0',1)='0' then Initials else '0' end and deleted=0 ) a
+    //  on a.id=m.friend_id `
+    // param.custom_script = ''
+    // param.LText = Utils.formatOptions(LText)
+    // param.DateCount = ''
+    // param.prm_field = 'workerCode'
+    // param.arr_field = 'workerName,jobName'
+    // param.tabid = 'ID'
+    // param.parid = 'BID'
+    // param.sub_name = 'sub_data'
+    // param.sub_field = 'BID,friend_text,icon,Initials'
+
     // exec_type: 'y' 瑙g爜瀛楁锛歀Text銆丩Text1銆丩Text2銆乧ustom_script銆丏ateCount
 
     param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
     param.secretkey = Utils.encrypt('', param.timestamp)
 
-    if (menuType === 'HS') { // 浜戠鏁版嵁楠岃瘉
+    if (window.GLOB.mkHS) { // 浜戠鏁版嵁楠岃瘉
       param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp)
     }
 
@@ -213,7 +272,7 @@
   /**
    * @description 鑾峰彇绯荤粺瀛樺偍杩囩▼ sPC_Get_TableData 鍚堣鍊肩殑鍙傛暟
    */
-  static getStatQueryDataParams (setting, statFields, search, orderBy, BID, menuType) {
+  static getStatQueryDataParams (setting, statFields, search, orderBy, BID) {
     let param = {
       func: 'sPC_Get_TableData',
       obj_name: 'data',
@@ -221,12 +280,24 @@
       arr_field: statFields.map(col => col.field).join(','),
       default_sql: setting.execute ? 'true' : 'false'
     }
+
+    if (setting.transaction === 'true') {
+      param.func = 'sPC_Get_TableData_try'
+    }
     
     let _dataresource = setting.dataresource
     let _customScript = ''
     let userName = sessionStorage.getItem('User_Name') || ''
     let fullName = sessionStorage.getItem('Full_Name') || ''
+    let RoleID = sessionStorage.getItem('role_id') || ''
+    let departmentcode = sessionStorage.getItem('departmentcode') || ''
+    let organization = sessionStorage.getItem('organization') || ''
+    let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
+    let nation = sessionStorage.getItem('nation') || ''
+    let province = sessionStorage.getItem('province') || ''
     let city = sessionStorage.getItem('city') || ''
+    let district = sessionStorage.getItem('district') || ''
+    let address = sessionStorage.getItem('address') || ''
 
     if (sessionStorage.getItem('isEditState') === 'true') {
       userName = sessionStorage.getItem('CloudUserName') || ''
@@ -234,11 +305,34 @@
     }
     
     if (setting.customScript) {
-      _customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@login_city nvarchar(50)
-        Select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @login_city='${city}'
+      _customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100)
+        Select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
         ${setting.customScript}
       `
     }
+
+    _dataresource = _dataresource.replace(/@sum\$|\$sum@/ig, '')
+    _customScript = _customScript.replace(/@sum\$|\$sum@/ig, '')
+    _dataresource = _dataresource.replace(/\$select@/ig, '/*')
+    _dataresource = _dataresource.replace(/@select\$/ig, '*/')
+    _customScript = _customScript.replace(/\$select@/ig, '/*')
+    _customScript = _customScript.replace(/@select\$/ig, '*/')
+
+    let time_id = Utils.getguid().substring(0, 32) || ''
+    _dataresource = _dataresource.replace(/@ID@/ig, `''`)
+    _customScript = _customScript.replace(/@ID@/ig, `''`)
+    _dataresource = _dataresource.replace(/@BID@/ig, `'${BID || ''}'`)
+    _customScript = _customScript.replace(/@BID@/ig, `'${BID || ''}'`)
+    _dataresource = _dataresource.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
+    _customScript = _customScript.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
+    _dataresource = _dataresource.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
+    _customScript = _customScript.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
+    _dataresource = _dataresource.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
+    _customScript = _customScript.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
+    _dataresource = _dataresource.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+    _customScript = _customScript.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+    _dataresource = _dataresource.replace(/@time_id@/ig, `'${time_id}'`)
+    _customScript = _customScript.replace(/@time_id@/ig, `'${time_id}'`)
 
     let regoptions = null
     if (setting.queryType === 'statistics' || _customScript) {
@@ -251,15 +345,6 @@
         }
       })
       regoptions.push({
-        reg: new RegExp('@login_city@', 'ig'),
-        value: `'${city}'`
-      }, {
-        reg: new RegExp('@userName@', 'ig'),
-        value: `'${userName}'`
-      }, {
-        reg: new RegExp('@fullName@', 'ig'),
-        value: `'${fullName}'`
-      }, {
         reg: new RegExp('@orderBy@', 'ig'),
         value: orderBy
       }, {
@@ -297,12 +382,21 @@
         if @ErrorCode!=''
           insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,@UserID@ 
       `
+    } else {
+      LText = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100)
+        Select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
+        ${LText}
+      `
     }
 
     // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞
-    if ((options.sysType === 'local' && !window.GLOB.systemType) || window.debugger === true) {
-      _customScript &&  console.info(`${setting.$name ? `/*缁勪欢-${setting.$name} 鑷畾涔夎剼鏈� 缁熻鏌ヨ*/\n` : ''}${LText ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`)
-      LText &&  console.info(`${setting.$name ? `/*缁勪欢-${setting.$name} 鏁版嵁婧� 缁熻鏌ヨ*/\n` : ''}` + LText)
+    if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
+      _customScript &&  console.info(`${setting.$name ? `/*${setting.$name} 鑷畾涔夎剼鏈� 缁熻鏌ヨ*/\n` : ''}${LText ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_customScript}`)
+      LText &&  console.info(`${setting.$name ? `/*${setting.$name} 鏁版嵁婧� 缁熻鏌ヨ*/\n` : ''}` + LText.replace(/\n\s{8}/ig, '\n'))
+    }
+
+    if (setting.$name) {
+      param.menuname = setting.$name
     }
     
     param.custom_script = Utils.formatOptions(_customScript)
@@ -312,7 +406,7 @@
     param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
     param.secretkey = Utils.encrypt('', param.timestamp)
 
-    if (menuType === 'HS') { // 浜戠鏁版嵁楠岃瘉
+    if (window.GLOB.mkHS) { // 浜戠鏁版嵁楠岃瘉
       param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp)
     }
 
@@ -337,14 +431,13 @@
    * @param {Number}   pageIndex    椤电爜
    * @param {Number}   pageSize     姣忛〉鏁伴噺
    * @param {String}   BID          涓婄骇ID
-   * @param {String}   menuType     鑿滃崟绫诲瀷锛屾櫘閫氳彍鍗曚笌HS
    * @return {Object}  param
    */
-  static getPrevQueryParams (setting, search = [], BID, menuType) {
+  static getPrevQueryParams (setting, search = [], BID) {
     let param = null
 
     if (setting.procMode !== 'inner') {
-      param = this.getDefaultPrevQueryParam(setting, search, menuType)
+      param = this.getDefaultPrevQueryParam(setting, search, BID)
     } else {
       param = Utils.formatCustomMainSearch(search)
       param.func = setting.prevFunc || ''
@@ -358,9 +451,9 @@
   }
 
   /**
-   * @description 鑾峰彇绯荤粺瀛樺偍杩囩▼ sPC_Get_TableData 鐨勫弬鏁�
+   * @description 鑾峰彇绯荤粺鍓嶇疆鑴氭湰
    */
-  static getDefaultPrevQueryParam (setting, search, menuType) {
+  static getDefaultPrevQueryParam (setting, search, BID) {
     let param = {
       func: 'sPC_TableData_InUpDe',
       exec_type: 'y',
@@ -370,7 +463,15 @@
     let sql = ''
     let userName = sessionStorage.getItem('User_Name') || ''
     let fullName = sessionStorage.getItem('Full_Name') || ''
+    let RoleID = sessionStorage.getItem('role_id') || ''
+    let departmentcode = sessionStorage.getItem('departmentcode') || ''
+    let organization = sessionStorage.getItem('organization') || ''
+    let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
+    let nation = sessionStorage.getItem('nation') || ''
+    let province = sessionStorage.getItem('province') || ''
     let city = sessionStorage.getItem('city') || ''
+    let district = sessionStorage.getItem('district') || ''
+    let address = sessionStorage.getItem('address') || ''
 
     if (sessionStorage.getItem('isEditState') === 'true') {
       userName = sessionStorage.getItem('CloudUserName') || ''
@@ -385,8 +486,8 @@
 
     if (sql) {
       sql = `/*鍓嶇疆鑴氭湰*/
-        declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@login_city nvarchar(50)
-        Select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @login_city='${city}'
+        declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100)
+        Select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
         ${sql}
         aaa:
           if @ErrorCode!=''
@@ -394,45 +495,39 @@
       `
 
       let allSearch = Utils.getAllSearchOptions(search)
-      let regoptions = allSearch.map(item => {
-        return {
-          reg: new RegExp('@' + item.key + '@', 'ig'),
-          value: `'${item.value}'`
-        }
-      })
-      regoptions.push({
-        reg: new RegExp('@login_city@', 'ig'),
-        value: `'${city}'`
-      }, {
-        reg: new RegExp('@userName@', 'ig'),
-        value: `'${userName}'`
-      }, {
-        reg: new RegExp('@fullName@', 'ig'),
-        value: `'${fullName}'`
+      allSearch.forEach(item => {
+        sql = sql.replace(new RegExp('@' + item.key + '@', 'ig'), `'${item.value}'`)
       })
 
-      regoptions.forEach(item => {
-        sql = sql.replace(item.reg, item.value)
-      })
+      if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
+        sql = sql.replace(/\$@/ig, '/*')
+        sql = sql.replace(/@\$/ig, '*/')
+      } else {
+        sql = sql.replace(/@\$|\$@/ig, '')
+      }
+  
+      sql = sql.replace(/@userName@/ig, `'${userName}'`)
+      sql = sql.replace(/@fullName@/ig, `'${fullName}'`)
+
+      sql = sql.replace(/@ID@/ig, `''`)
+      sql = sql.replace(/@BID@/ig, `'${BID || ''}'`)
+      sql = sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
+      sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
+      sql = sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
+      sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+      sql = sql.replace(/@time_id@/ig, `'${Utils.getguid().substring(0, 32) || ''}'`)
 
       // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞
-      if ((options.sysType === 'local' && !window.GLOB.systemType) || window.debugger === true) {
+      if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
         console.info(sql.replace(/\n\s{8}/ig, '\n'))
       }
-    }
-
-    if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-      sql = sql.replace(/\$@/ig, '/*')
-      sql = sql.replace(/@\$/ig, '*/')
-    } else {
-      sql = sql.replace(/@\$|\$@/ig, '')
     }
 
     param.LText = Utils.formatOptions(sql)
     param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
     param.secretkey = Utils.encrypt('', param.timestamp)
 
-    if (menuType === 'HS') { // 鍑芥暟 sPC_TableData_InUpDe 浜戠楠岃瘉
+    if (window.GLOB.mkHS) { // 鍑芥暟 sPC_TableData_InUpDe 浜戠楠岃瘉
       param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp)
     }
 
@@ -442,9 +537,9 @@
   }
 
   /**
-   * @description 鑾峰彇绯荤粺瀛樺偍杩囩▼ sPC_Get_TableData 鐨勫弬鏁�
+   * @description 鑾峰彇绯荤粺鍥炶皟鑴氭湰
    */
-  static getCallBackQueryParams (setting, sql, errSql) {
+  static getCallBackQueryParams (setting, sql, errSql, BID) {
     let param = {
       func: 'sPC_TableData_InUpDe',
       exec_type: 'y',
@@ -452,15 +547,23 @@
 
     let userName = sessionStorage.getItem('User_Name') || ''
     let fullName = sessionStorage.getItem('Full_Name') || ''
+    let RoleID = sessionStorage.getItem('role_id') || ''
+    let departmentcode = sessionStorage.getItem('departmentcode') || ''
+    let organization = sessionStorage.getItem('organization') || ''
+    let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
+    let nation = sessionStorage.getItem('nation') || ''
+    let province = sessionStorage.getItem('province') || ''
     let city = sessionStorage.getItem('city') || ''
+    let district = sessionStorage.getItem('district') || ''
+    let address = sessionStorage.getItem('address') || ''
 
     if (sessionStorage.getItem('isEditState') === 'true') {
       userName = sessionStorage.getItem('CloudUserName') || ''
       fullName = sessionStorage.getItem('CloudFullName') || ''
     }
 
-    let _prevCustomScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@login_city nvarchar(50)
-        Select @ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @login_city='${city}'
+    let _prevCustomScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100)
+        Select @ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
         ${errSql}
     `
     let _backCustomScript = `
@@ -487,19 +590,27 @@
 
     sql = _prevCustomScript + sql
     sql = sql + _backCustomScript
+    
+    if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
+      sql = sql.replace(/\$@/ig, '/*')
+      sql = sql.replace(/@\$/ig, '*/')
+    } else {
+      sql = sql.replace(/@\$|\$@/ig, '')
+    }
 
-    if ((window.GLOB.systemType !== 'production' && options.sysType !== 'cloud') || window.debugger === true) {
+    sql = sql.replace(/@ID@/ig, `''`)
+    sql = sql.replace(/@BID@/ig, `'${BID || ''}'`)
+    sql = sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
+    sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
+    sql = sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
+    sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+    sql = sql.replace(/@time_id@/ig, `'${Utils.getguid().substring(0, 32) || ''}'`)
+
+    if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
       console.info(sql.replace(/\n\s{8}/ig, '\n'))
     }
 
     param.LText = sql
-    
-    if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-      param.LText = param.LText.replace(/\$@/ig, '/*')
-      param.LText = param.LText.replace(/@\$/ig, '*/')
-    } else {
-      param.LText = param.LText.replace(/@\$|\$@/ig, '')
-    }
 
     param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
     param.secretkey = Utils.encrypt('', param.timestamp)
@@ -579,4 +690,171 @@
 
     return [...lineMap.values()]
   }
+}
+
+/**
+ * @description 鐢熸垚鍗曚釜缁勪欢sPC_Get_structured_data璇锋眰鍙傛暟
+ */
+export function getStructDefaultParam (component, searchlist, first) {
+  const { columns, setting, dataName, format } = component
+
+  let arr_field = columns.map(col => col.field)
+  let _dataresource = setting.dataresource
+  let _customScript = setting.customScript
+  
+  if (setting.queryType === 'statistics' || _customScript) {
+    let allSearch = Utils.getAllSearchOptions(searchlist)
+    let regoptions = allSearch.map(item => {
+      return {
+        reg: new RegExp('@' + item.key + '@', 'ig'),
+        value: `'${item.value}'`
+      }
+    })
+
+    regoptions.forEach(item => {
+      if (_dataresource && setting.queryType === 'statistics') {
+        _dataresource = _dataresource.replace(item.reg, item.value)
+      }
+      _customScript = _customScript.replace(item.reg, item.value)
+    })
+  }
+
+  _dataresource = _dataresource.replace(/@select\$|\$select@/ig, '')
+  _customScript = _customScript.replace(/@select\$|\$select@/ig, '')
+  _dataresource = _dataresource.replace(/\$sum@/ig, '/*')
+  _dataresource = _dataresource.replace(/@sum\$/ig, '*/')
+  _customScript = _customScript.replace(/\$sum@/ig, '/*')
+  _customScript = _customScript.replace(/@sum\$/ig, '*/')
+
+  let _search = ''
+  if (setting.queryType !== 'statistics' && _dataresource) {
+    _search = Utils.joinMainSearchkey(searchlist)
+    _search = _search ? 'where ' + _search : ''
+  }
+
+  if (setting.order && _dataresource) {
+    _dataresource = `select top 1000 ${arr_field.join(',')} from (select ${arr_field.join(',')} ,ROW_NUMBER() over(order by ${setting.order}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows `
+  } else if (_dataresource) {
+    _dataresource = `select top 1000 ${arr_field.join(',')} from ${_dataresource} ${_search} `
+  }
+
+  if (first) {
+    let userName = sessionStorage.getItem('User_Name') || ''
+    let fullName = sessionStorage.getItem('Full_Name') || ''
+    let RoleID = sessionStorage.getItem('role_id') || ''
+    let departmentcode = sessionStorage.getItem('departmentcode') || ''
+    let organization = sessionStorage.getItem('organization') || ''
+    let mk_user_type = sessionStorage.getItem('mk_user_type') || ''
+    let nation = sessionStorage.getItem('nation') || ''
+    let province = sessionStorage.getItem('province') || ''
+    let city = sessionStorage.getItem('city') || ''
+    let district = sessionStorage.getItem('district') || ''
+    let address = sessionStorage.getItem('address') || ''
+  
+    if (sessionStorage.getItem('isEditState') === 'true') {
+      userName = sessionStorage.getItem('CloudUserName') || ''
+      fullName = sessionStorage.getItem('CloudFullName') || ''
+    }
+    _customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100)
+      select @ErrorCode='',@retmsg ='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
+      ${_customScript}
+    `
+  }
+
+  return {
+    name: dataName,
+    $name: setting.$name,
+    columns: columns,
+    par_tablename: '',
+    type: format === 'array' ? format : '',
+    primaryKey: setting.primaryKey || '',
+    foreign_key: '',
+    sql: _dataresource,
+    script: _customScript,
+    transaction: setting.transaction === 'true'
+  }
+}
+
+/**
+ * @description 鐢熸垚sPC_Get_structured_data璇锋眰鍙傛暟
+ * 1銆佹妸澶ф帴鍙PC_Get_structured_data鐨刲text鎷嗘垚涓変唤锛岀涓�娈碉細@LText1锛岀浜屾@LText锛岀涓夋@LText2
+ */
+export function getStructuredParams (params, config, BID) {
+  let LText_field = []
+  let diffUser = false
+  let transaction = false
+  let time_id = Utils.getguid().substring(0, 32) || ''
+  let loginId = `'${sessionStorage.getItem('LoginUID') || ''}'`
+  let sessionId = `'${localStorage.getItem('SessionUid') || ''}'`
+  let userId = `'${sessionStorage.getItem('UserID') || ''}'`
+
+  let _LText = params.map((item, index) => {
+    let _script = item.script
+    let _sql = item.sql
+
+    if (!diffUser && (/@userid@/ig.test(item.sql) || /@userid@/ig.test(_script))) {
+      diffUser = true
+    }
+    if (item.transaction) {
+      transaction = true
+    }
+
+    _sql = _sql.replace(/@ID@/ig, `''`)
+    _script = _script.replace(/@ID@/ig, `''`)
+    _sql = _sql.replace(/@BID@/ig, `'${BID || ''}'`)
+    _script = _script.replace(/@BID@/ig, `'${BID || ''}'`)
+    _sql = _sql.replace(/@LoginUID@/ig, loginId)
+    _script = _script.replace(/@LoginUID@/ig, loginId)
+    _sql = _sql.replace(/@SessionUid@/ig, sessionId)
+    _script = _script.replace(/@SessionUid@/ig, sessionId)
+    _sql = _sql.replace(/@UserID@/ig, userId)
+    _script = _script.replace(/@UserID@/ig, userId)
+    _sql = _sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+    _script = _script.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+    _sql = _sql.replace(/@time_id@/ig, `'${time_id}'`)
+    _script = _script.replace(/@time_id@/ig, `'${time_id}'`)
+
+    // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞
+    if (window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')) {
+      _script && console.info(`${item.$name ? `/*${item.$name} 鑷畾涔夎剼鏈紙鍚屾鏌ヨ锛�*/\n` : ''}${_sql ? '' : '/*涓嶆墽琛岄粯璁ql*/\n'}${_script}`)
+      _sql && console.info(`${item.$name ? `/*${item.$name} 鏁版嵁婧愶紙鍚屾鏌ヨ锛�*/\n` : ''}` + _sql)
+    }
+
+    item.columns.forEach(cell => {
+      LText_field.push(`Select '${item.name}' as tablename,'${cell.field}' as fieldname,'${cell.datatype}' as field_type`)
+    })
+    return `Select '${item.name}' as tablename,'${window.btoa(window.encodeURIComponent(_sql))}' as LText,'${window.btoa(window.encodeURIComponent(_script))}' as Lcustomize,'${item.type}' as table_type,'${item.primaryKey}' as primary_key,'${item.par_tablename}' as par_tablename,'${item.foreign_key}' as foreign_key,'${index}' as Sort`
+  })
+
+  let param = {
+    func: 'sPC_Get_structured_data',
+    LText: _LText.join(' union all '),
+    LText_field: LText_field.join(' union all '),
+    BID: BID
+  }
+
+  if (transaction) {
+    param.func = 'sPC_Get_structured_data_try'
+  }
+
+  let { LText, LText1, LText2 } = Utils.sPCInUpDeFormatOptions(param.LText)
+
+  param.LText1 = LText1
+  param.LText = LText
+  param.LText2 = LText2
+  param.LText_field = Utils.formatOptions(param.LText_field)
+
+  if (config.cacheUseful === 'true') {
+    param.time_type = config.timeUnit
+    param.time_limit = config.cacheTime
+    if (diffUser) {
+      param.userid = sessionStorage.getItem('UserID')
+    }
+    param.data_md5 = md5(JSON.stringify(param))
+  }
+
+  param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
+  param.secretkey = Utils.encrypt(param.LText, param.timestamp)
+
+  return param
 }
\ No newline at end of file

--
Gitblit v1.8.0