From fcdfdc9670866fecd2d239d75a6ec28391175e9f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 10 四月 2025 11:13:51 +0800
Subject: [PATCH] 2025-04-10
---
src/utils/utils-datamanage.js | 430 +++++++++++++++++++++++------------------------------
1 files changed, 187 insertions(+), 243 deletions(-)
diff --git a/src/utils/utils-datamanage.js b/src/utils/utils-datamanage.js
index aff2f1e..9507763 100644
--- a/src/utils/utils-datamanage.js
+++ b/src/utils/utils-datamanage.js
@@ -5,6 +5,136 @@
import MKEmitter from '@/utils/events.js'
import Utils from './utils.js'
+const getBackendQueryParam = (setting, search, orderBy, pageIndex, pageSize, id, BID, year, dataName) => {
+ let item = window.GLOB.CacheData.get('sql_' + setting.uuid)
+
+ let searchKeys = null
+ if (setting.dataresource) {
+ searchKeys = []
+
+ if (search.length && setting.queryType !== 'statistics') {
+ searchKeys = Utils.getSearchkeys(search)
+ }
+
+ if (id) {
+ if (/^excel:/.test(id)) {
+ id = id.replace(/^excel:/, '')
+ searchKeys.push({
+ key: setting.primaryKey || 'ID',
+ match: '',
+ type: 'text_in',
+ value: id
+ })
+ } else {
+ searchKeys.push({
+ key: setting.primaryKey || 'ID',
+ match: '03',
+ type: 'text',
+ value: id
+ })
+ }
+ }
+ }
+
+ let values = {
+ time_id: Utils.getguid(),
+ roleid: sessionStorage.getItem('role_id') || '',
+ mk_departmentcode: sessionStorage.getItem('departmentcode') || '',
+ mk_organization: sessionStorage.getItem('organization') || '',
+ mk_user_type: sessionStorage.getItem('mk_user_type') || '',
+ mk_nation: sessionStorage.getItem('nation') || '',
+ mk_province: sessionStorage.getItem('province') || '',
+ mk_city: sessionStorage.getItem('city') || '',
+ mk_district: sessionStorage.getItem('district') || '',
+ mk_address: sessionStorage.getItem('address') || '',
+ orderby: orderBy || '',
+ pagesize: setting.laypage ? pageSize : '9999',
+ pageindex: pageIndex,
+ id: id || '',
+ bid: BID || '',
+ typename: 'admin',
+ datam: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '',
+ datam_begin: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '',
+ datam_end: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '',
+ mk_obj_name: dataName || 'data'
+ }
+
+ if (setting.hasExtend) {
+ values.mk_time = setting.extendTime
+ }
+ if (setting.$re_year) {
+ values.mk_year = year
+ }
+ if (window.GLOB.externalDatabase !== null) {
+ values.db = window.GLOB.externalDatabase
+ }
+ if (item.works_flow_code) {
+ values.works_flow_code = item.works_flow_code
+ }
+
+ item.urlkeys && item.urlkeys.forEach(key => {
+ if (values.hasOwnProperty(key.toLowerCase())) return
+
+ values[key] = item.urlparam[key]
+ })
+
+ let allSearch = Utils.getAllSearchOptions(search)
+
+ allSearch.forEach(cell => {
+ values[cell.key.toLowerCase()] = cell.value
+ })
+
+ let exps = []
+
+ if (searchKeys) {
+ exps.push({
+ key: 'mk_search',
+ value: searchKeys
+ })
+ }
+
+ item.reps.forEach(n => {
+ let key = n.toLowerCase()
+ if (values.hasOwnProperty(key)) {
+ exps.push({
+ key: n,
+ value: values[key]
+ })
+ }
+ })
+
+ let md5_id = ''
+ if (window.GLOB.probation) {
+ md5_id = md5(item.id + JSON.stringify(exps) + Math.floor(new Date().getTime() / 600000))
+ md5_id = moment().format('YYYYMMDDHHmmss') + md5_id.slice(-18)
+ }
+
+ let cell = {
+ id: item.id,
+ menuname: setting.$name || '',
+ exps: exps,
+ md5_id: md5_id
+ }
+
+ if (dataName) {
+ cell.dataName = dataName
+ cell.luser = item.luser
+ return cell
+ }
+
+ let param = {
+ $backend: true,
+ $type: 's_Get_TableData',
+ data: [cell]
+ }
+
+ if (setting.database === 'sso' && window.GLOB.mainSystemApi) {
+ param.rduri = window.GLOB.mainSystemApi
+ }
+
+ return param
+}
+
export default class DataUtils {
/**
* @description 鏁版嵁婧愮粺涓�鏌ヨ
@@ -13,22 +143,23 @@
let param = null
if (setting.interType === 'system') {
- if (window.backend && window.GLOB.CacheData.has('sql_' + setting.uuid) && !window.GLOB.mkHS) {
- param = this.getDefaultQueryParam(setting, search, orderBy, pageIndex, pageSize, id, BID, year)
- this.getBackendQueryParam(setting, search, orderBy, pageIndex, pageSize, id, BID, year)
+ if (window.backend && window.GLOB.CacheData.has('sql_' + setting.uuid)) {
+ param = getBackendQueryParam(setting, search, orderBy, pageIndex, pageSize, id, BID, year)
} else {
param = this.getDefaultQueryParam(setting, search, orderBy, pageIndex, pageSize, id, BID, year)
+ param.BID = BID || ''
+ param.dataM = sessionStorage.getItem('dataM') === 'true' ? 'Y' : ''
}
} else {
param = this.getCustomQueryParam(setting, search, orderBy, pageIndex, pageSize, id, year)
- }
- if (BID) {
- param.BID = BID
- }
- // 鏁版嵁绠$悊鏉冮檺
- if (sessionStorage.getItem('dataM') === 'true') {
- param.dataM = 'Y'
+ if (BID) {
+ param.BID = BID
+ }
+ // 鏁版嵁绠$悊鏉冮檺
+ if (sessionStorage.getItem('dataM') === 'true') {
+ param.dataM = 'Y'
+ }
}
return param
@@ -336,235 +467,6 @@
}
/**
- * @description 鑾峰彇绯荤粺瀛樺偍杩囩▼鐨勫弬鏁�
- */
- static getBackendQueryParam (setting, search, orderBy, pageIndex, pageSize, id, BID, year) {
- let item = window.GLOB.CacheData.get('sql_' + setting.uuid)
-
- let param = {}
-
- let searchKeys = null
- if (setting.dataresource) {
- searchKeys = []
-
- if (search.length) {
- searchKeys = Utils.getSearchkeys(search)
- }
-
- if (id) {
- if (/^excel:/.test(id)) {
- id = id.replace(/^excel:/, '')
- searchKeys.push({
- key: setting.primaryKey || 'ID',
- match: 'in',
- type: 'text_in',
- value: id
- })
- } else {
- searchKeys.push({
- key: setting.primaryKey || 'ID',
- match: '=',
- type: 'text',
- value: id
- })
- }
- }
- }
-
- let values = {
- userid: sessionStorage.getItem('UserID') || '',
- time_id: Utils.getguid(),
- username: sessionStorage.getItem('User_Name') || '',
- fullname: sessionStorage.getItem('Full_Name') || '',
- roleid: sessionStorage.getItem('role_id') || '',
- mk_departmentcode: sessionStorage.getItem('departmentcode') || '',
- mk_organization: sessionStorage.getItem('organization') || '',
- mk_user_type: sessionStorage.getItem('mk_user_type') || '',
- mk_nation: sessionStorage.getItem('nation') || '',
- mk_province: sessionStorage.getItem('province') || '',
- mk_city: sessionStorage.getItem('city') || '',
- mk_district: sessionStorage.getItem('district') || '',
- mk_address: sessionStorage.getItem('address') || '',
- orderby: orderBy,
- pagesize: setting.laypage ? pageSize : '9999',
- pageindex: pageIndex,
- id: id || '',
- bid: BID || '',
- loginuid: sessionStorage.getItem('LoginUID') || '',
- sessionuid: localStorage.getItem('SessionUid') || '',
- appkey: window.GLOB.appkey || '',
- lang: sessionStorage.getItem('lang'),
- typename: 'admin',
- datam: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '',
- datam_begin: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '',
- datam_end: sessionStorage.getItem('dataM') === 'true' ? 'Y' : '',
- // datam_begin: sessionStorage.getItem('dataM') === 'true' ? '/*' : '',
- // datam_end: sessionStorage.getItem('dataM') === 'true' ? '*/' : '',
- mk_obj_name: 'data'
- }
-
- if (setting.hasExtend) {
- values.mk_time = setting.extendTime
- }
- if (setting.$re_year) {
- values.mk_year = year
- }
- if (window.GLOB.externalDatabase !== null) {
- values.db = window.GLOB.externalDatabase
- }
- if (item.works_flow_code) {
- values.works_flow_code = item.works_flow_code
- }
-
- item.urlkeys.forEach(key => {
- values[key] = item.urlparam[key]
- })
-
- let allSearch = Utils.getAllSearchOptions(search)
-
- allSearch.forEach(cell => {
- values[cell.key.toLowerCase()] = cell.value
- })
-
- let list = []
-
- if (searchKeys) {
- list.push({
- key: 'mk_search',
- value: searchKeys
- })
- }
-
- let sql = item.sql
-
- item.reps.forEach(n => {
- let key = n.toLowerCase()
- if (values.hasOwnProperty(key)) {
- list.push({
- key: n,
- value: values[key]
- })
- }
- })
-
- // let list = [
- // {
- // key: "mk_search",
- // value: [
- // { key: "nvarchar1,nvarchar3", match: "like", type: "text_or", value: "www" },
- // { key: "int2", match: ">=", type: "number", value: "0" },
- // { key: "int2", match: "<=", type: "number", value: "50" }
- // ]
- // },
- // { key: "mk_obj_name", value: "data" },
- // { key: "pageSize", value: 10 },
- // { key: "orderBy", value: "ID desc" },
- // { key: "pageIndex", value: 1 },
- // {
- // key: 'mk_excel_data',
- // value: [[`'1'`, `'2'`, `'3'`, `'4'`, `'5'`], [`'6'`, `'7'`, `'8'`, `'9'`, `'10'`]]
- // },
- // {
- // key: 'mk_outer_params',
- // value: [
- // {
- // tb: '#tb1',
- // keys: ['[nvarchar1]', '[nvarchar2]', '[nvarchar3]', '[mk_level]','[mk_id]','[mk_bid]'],
- // values: [[`'1'`, `'2'`, `'3'`, `'4'`, `'5'`, `'6'`], [`'7'`, `'8'`, `'9'`, `'10'`, `'11'`, `'12'`]]
- // },
- // {
- // tb: '@tb2',
- // keys: ['[field1]', '[field2]', '[field3]', '[mk_level]','[mk_id]','[mk_bid]'],
- // values: [[`'1'`, `'2'`, `'3'`, `'4'`, `'5'`, `'6'`], [`'7'`, `'8'`, `'9'`, `'10'`, `'11'`, `'12'`]]
- // }
- // ]
- // },
- // ]
-
- list.forEach(cell => {
- if (cell.key === 'mk_outer_params') {
- let mk_outer_params = []
- cell.value.forEach(n => {
- mk_outer_params.push(` Insert into ${n.tb} (${n.keys.join(',')}) `)
- let vals = []
- n.values.forEach(m => {
- vals.push(` Select ${m.join(',')} `)
- })
- mk_outer_params.push(vals.join(' Union all '))
- })
- mk_outer_params = mk_outer_params.join('')
- sql = sql.replace(/@mk_outer_params@/ig, mk_outer_params)
- } else if (cell.key === 'mk_excel_data') {
- let mk_excel_data = []
- cell.value.forEach(n => {
- mk_excel_data.push(`Select ${n.join(',')}`)
- })
- mk_excel_data = mk_excel_data.join(' Union all ')
- sql = sql.replace(/@mk_excel_data@/ig, mk_excel_data)
- } else if (cell.key === 'datam_begin' || cell.key === 'mk_check_begin') {
- if (cell.value === 'Y') {
- sql = sql.replace(new RegExp('@' + cell.key + '@', 'ig'), '/*')
- } else {
- sql = sql.replace(new RegExp('@' + cell.key + '@', 'ig'), '')
- }
- } else if (cell.key === 'datam_end' || cell.key === 'mk_check_end') {
- if (cell.value === 'Y') {
- sql = sql.replace(new RegExp('@' + cell.key + '@', 'ig'), '*/')
- } else {
- sql = sql.replace(new RegExp('@' + cell.key + '@', 'ig'), '')
- }
- } else if (cell.key === 'mk_search') {
- let mk_search = []
-
- cell.value.forEach(n => {
- let str = n.match === 'like' || n.match === 'not like' ? '%' : ''
- if (n.type === 'text_or') {
- let vals = n.key.split(',').map(key => {
- return `${key} ${n.match} '${str}${n.value}${str}'`
- })
-
- mk_search.push(`(${vals.join(' OR ')})`)
- } else if (n.type === 'text_multi') {
- mk_search.push(`'${n.value}' ${n.match} '%'+${n.key}+'%'`)
- } else if (n.type === 'number') {
- mk_search.push(`${n.key} ${n.match} ${n.value}`)
- } else if (n.type === 'text_in') {
- mk_search.push(`${n.key} in (select ID from dbo.SplitComma('${n.value}'))`)
- } else {
- mk_search.push(`${n.key} ${n.match} '${str}${n.value}${str}'`)
- }
- })
-
- if (mk_search.length === 0) {
- mk_search = ''
- } else {
- mk_search = 'where ' + mk_search.join(' AND ')
- }
-
- sql = sql.replace(/@mk_search@/ig, mk_search)
- } else {
- sql = sql.replace(new RegExp('@' + cell.key + '@', 'ig'), cell.value)
- }
- })
-
- param.list = [
- {
- id: item.v_id,
- regExps: list,
- menuname: setting.$name || '',
- s_debug_type: window.GLOB.probation ? 'Y' : '',
- // md5_id: window.GLOB.probation ? md5(JSON.stringify(list)) : '',
- }
- ]
-
- if (setting.database === 'sso' && window.GLOB.mainSystemApi) {
- param.rduri = window.GLOB.mainSystemApi
- }
-
- return param
- }
-
- /**
* @description 鑾峰彇绯荤粺瀛樺偍杩囩▼鍚堣鍊肩殑鍙傛暟
*/
static getStatQueryDataParams (setting, statFields, search, orderBy, BID) {
@@ -731,8 +633,17 @@
/**
* @description 鐢熸垚鍗曚釜缁勪欢sPC_Get_structured_data璇锋眰鍙傛暟
*/
-export function getStructDefaultParam (component, searchlist, first) {
+export function getStructDefaultParam (component, searchlist, first, BID) {
const { columns, setting, dataName, format, uuid } = component
+
+ if (window.backend && window.GLOB.CacheData.has('sql_' + uuid)) {
+ if (first) {
+ let item = window.GLOB.CacheData.get('sql_' + uuid)
+ window.GLOB.CacheData.set('first_' + item.id, uuid)
+ }
+
+ return getBackendQueryParam(setting, searchlist, setting.order, 1, 1000, '', BID, '', dataName)
+ }
let _dataresource = setting.dataresource
let _customScript = setting.customScript
@@ -789,7 +700,7 @@
return {
uuid: uuid,
- name: dataName,
+ dataName: dataName,
$name: setting.$name,
columns: columns,
par_tablename: '',
@@ -806,6 +717,39 @@
* @description 鐢熸垚sPC_Get_structured_data璇锋眰鍙傛暟
*/
export function getStructuredParams (params, config, BID) {
+ if (window.backend && params[0].exps) {
+ let param = {
+ $backend: true,
+ $type: 's_Get_structured_data',
+ data: params.map(item => {
+ let cell = {...item}
+
+ delete cell.dataName
+ delete cell.luser
+
+ return cell
+ })
+ }
+
+ if (config.cacheUseful === 'true') {
+ param.time_limit = config.cacheTime
+
+ if (config.timeUnit === 'day') {
+ param.time_limit = param.time_limit * 1440
+ } else if (config.timeUnit === 'hour') {
+ param.time_limit = param.time_limit * 60
+ }
+
+ if (params.findIndex(item => item.luser) > -1) {
+ param.data_md5 = md5(window.GLOB.appkey + params[0].id + sessionStorage.getItem('UserID'))
+ } else {
+ param.data_md5 = md5(window.GLOB.appkey + params[0].id)
+ }
+ }
+
+ return param
+ }
+
let LText_field = []
let diffUser = false
@@ -845,9 +789,9 @@
}
item.columns.forEach(cell => {
- LText_field.push(`Select '${item.name}' as tablename,'${cell.field}' as fieldname,'${cell.datatype}' as field_type`)
+ LText_field.push(`Select '${item.dataName}' 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`
+ return `Select '${item.dataName}' 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 = {
--
Gitblit v1.8.0