From c10fc10d5fd307a7b334bcde6af5c1175aaa0410 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 28 八月 2024 17:47:28 +0800 Subject: [PATCH] 2024-08-28 --- src/utils/utils-datamanage.js | 302 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 235 insertions(+), 67 deletions(-) diff --git a/src/utils/utils-datamanage.js b/src/utils/utils-datamanage.js index 4e96051..aff2f1e 100644 --- a/src/utils/utils-datamanage.js +++ b/src/utils/utils-datamanage.js @@ -13,7 +13,12 @@ let param = null if (setting.interType === 'system') { - param = this.getDefaultQueryParam(setting, search, orderBy, pageIndex, pageSize, id, BID, year) + 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) + } else { + param = this.getDefaultQueryParam(setting, search, orderBy, pageIndex, pageSize, id, BID, year) + } } else { param = this.getCustomQueryParam(setting, search, orderBy, pageIndex, pageSize, id, year) } @@ -289,72 +294,6 @@ param.menuname = setting.$name } - // if (window.backend && window.GLOB.CacheData.has('sql_' + setting.uuid)) { - // let item = window.GLOB.CacheData.get('sql_' + setting.uuid) - - // let values = { - // userid: sessionStorage.getItem('UserID') || '', - // time_id: Utils.getguid(), - // 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, - // 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' ? '/*' : '', - // datam_end: sessionStorage.getItem('dataM') === 'true' ? '*/' : '', - // } - - // 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 Ltext = item.LText - // let DateCount = item.DateCount - // let customScript = item.customScript - - // item.reps.forEach(n => { - // let key = n.toLowerCase() - // if (values.hasOwnProperty(key)) { - // Ltext = Ltext.replace(new RegExp('@' + key + '@', 'ig'), values[key]) - // DateCount = DateCount.replace(new RegExp('@' + key + '@', 'ig'), values[key]) - // customScript = customScript.replace(new RegExp('@' + key + '@', 'ig'), values[key]) - // } - // }) - - // if (search.length) { - - // } - // } - param.custom_script = Utils.formatOptions(_customScript, param.exec_type) param.LText = Utils.formatOptions(LText, param.exec_type) param.DateCount = Utils.formatOptions(DateCount, param.exec_type) @@ -397,6 +336,235 @@ } /** + * @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) { -- Gitblit v1.8.0