import md5 from 'md5'
|
import moment from 'moment'
|
import { notification, Modal } from 'antd'
|
|
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 数据源统一查询
|
*/
|
static getQueryDataParams (setting, search = [], orderBy = '', pageIndex = 1, pageSize = 10, BID, id, year) {
|
let param = null
|
|
if (setting.interType === 'system') {
|
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'
|
}
|
}
|
|
return param
|
}
|
|
/**
|
* @description 获取用户自定义存储过程传参
|
*/
|
static getCustomQueryParam (setting, search, orderBy, pageIndex, pageSize, id, year) {
|
let param = Utils.formatCustomMainSearch(search)
|
|
if (orderBy) {
|
param.OrderCol = orderBy
|
}
|
|
if (id) {
|
param.ID = id
|
} else if (setting.laypage) {
|
param.PageIndex = pageIndex
|
param.PageSize = pageSize
|
} else if (setting.$re_year) {
|
param.mk_year = year
|
}
|
|
if (setting.hasExtend) {
|
param.mk_time = setting.extendTime
|
}
|
|
if (setting.interType === 'inner') {
|
param.func = setting.innerFunc
|
|
if (setting.recordUser === 'true') {
|
param.username = sessionStorage.getItem('User_Name') || ''
|
param.fullname = sessionStorage.getItem('Full_Name') || ''
|
}
|
} else {
|
if (setting.sysInterface === 'true') {
|
if (window.GLOB.mainSystemApi) {
|
param.rduri = window.GLOB.mainSystemApi
|
}
|
} else if (setting.sysInterface === 'external') {
|
if (window.GLOB.systemType === 'production') {
|
param.$token = setting.exProInterface || ''
|
} else {
|
param.$token = setting.exInterface || ''
|
}
|
} else if (setting.sysInterface === 'custom') {
|
if (window.GLOB.systemType === 'production') {
|
param.rduri = setting.proInterface
|
} else {
|
param.rduri = setting.interface
|
}
|
} else {
|
if (window.GLOB.systemType === 'production' && setting.proInterface) {
|
param.rduri = setting.proInterface
|
} else {
|
param.rduri = setting.interface
|
}
|
let host = window.GLOB.baseurl.replace(/http(s):\/\//, '')
|
if (param.rduri.indexOf(host) === -1 && /\/dostars/.test(param.rduri)) {
|
param.$login = true
|
}
|
}
|
|
if (setting.outerFunc) {
|
param.func = setting.outerFunc
|
}
|
}
|
|
return param
|
}
|
|
/**
|
* @description 获取系统存储过程的参数
|
*/
|
static getDefaultQueryParam (setting, search, orderBy, pageIndex, pageSize, id, BID, year) {
|
let param = {
|
func: 'sPC_Get_TableData',
|
obj_name: 'data',
|
exec_type: window.GLOB.execType || 'y',
|
arr_field: setting.arr_field,
|
default_sql: setting.execute ? 'true' : 'false'
|
}
|
|
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') || ''
|
|
let _dataresource = setting.dataresource
|
let _customScript = ''
|
let _tailScript = setting.tailScript || ''
|
|
if (setting.customScript) {
|
_customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@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}
|
`
|
}
|
|
let allSearch = Utils.getAllSearchOptions(search)
|
let regoptions = allSearch.map(item => {
|
return {
|
reg: new RegExp('@' + item.key + '@', 'ig'),
|
value: `'${item.value}'`
|
}
|
})
|
regoptions.push(
|
{ reg: /@orderBy@/ig, value: orderBy },
|
{ reg: /@pageSize@/ig, value: setting.laypage ? pageSize : '9999' },
|
{ reg: /@pageIndex@/ig, value: pageIndex},
|
// { reg: /@select\$|\$select@/ig, value: ''},
|
// { reg: /\$sum@/ig, value: '/*'},
|
// { reg: /@sum\$/ig, value: '*/'},
|
{ reg: /@ID@/ig, value: `'${id || ''}'`},
|
{ reg: /@BID@/ig, value: `'${BID || ''}'`},
|
{ reg: /@LoginUID@/ig, value: `'${sessionStorage.getItem('LoginUID') || ''}'`},
|
{ reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid') || ''}'`},
|
{ reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID') || ''}'`},
|
{ reg: /@Appkey@/ig, value: `'${window.GLOB.appkey || ''}'`},
|
{ reg: /@lang@/ig, value: `'${sessionStorage.getItem('lang')}'`},
|
{ reg: /@typename@/ig, value: `'admin'`},
|
)
|
|
if (setting.hasExtend) {
|
regoptions.push({ reg: /@mk_time@/ig, value: `'${setting.extendTime}'` })
|
}
|
if (setting.$re_year) {
|
regoptions.push({ reg: /@mk_year@/ig, value: `'${year}'` })
|
}
|
|
regoptions.forEach(item => {
|
_dataresource = _dataresource.replace(item.reg, item.value)
|
_customScript = _customScript.replace(item.reg, item.value)
|
_tailScript = _tailScript.replace(item.reg, item.value)
|
})
|
|
let _search = ''
|
|
if (_dataresource) {
|
let id_search = ''
|
if (id) {
|
if (/^excel:/.test(id)) {
|
id_search = `${setting.primaryKey} in (select ID from dbo.SplitComma('${id.replace(/^excel:/, '')}'))`
|
} else {
|
id_search = `${setting.primaryKey || 'ID'}='${id}'`
|
orderBy = ''
|
}
|
}
|
|
if (setting.queryType === 'statistics') { // 统计数据源,内容替换
|
if (id) {
|
_dataresource = _dataresource + ` where ${id_search}`
|
}
|
} else if (id) {
|
_search = Utils.joinMainSearchkey(search)
|
_search = `where ${_search ? _search + ' AND ' : ''} ${id_search}`
|
} else {
|
_search = Utils.joinMainSearchkey(search)
|
_search = _search ? 'where ' + _search : ''
|
}
|
}
|
|
if (_customScript) {
|
if (window.GLOB.breakpoint) {
|
_customScript = _customScript.replace(/\$breakpoint_proc@/ig, window.GLOB.breakpoint)
|
param.func = 'sPC_Get_TableData_debug'
|
}
|
}
|
|
let LText = ''
|
let DateCount = ''
|
let arr_field = setting.all_field || setting.arr_field
|
|
if (_dataresource) {
|
if (setting.custompage) {
|
LText = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search} `
|
} else if (setting.laypage && orderBy) {
|
LText = `/*system_query*/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 `
|
if (setting.sub_field) {
|
DateCount = `/*system_query*/select count(1) as total from (select distinct ${setting.primaryKey} from ${_dataresource} ${_search})a`
|
} else {
|
DateCount = `/*system_query*/select count(1) as total from ${_dataresource} ${_search}`
|
}
|
} else if (setting.$top) {
|
if (orderBy) {
|
LText = `/*system_query*/select top 1 ${arr_field} from ${_dataresource} ${_search} order by ${orderBy} `
|
} else {
|
LText = `/*system_query*/select top 1 ${arr_field} from ${_dataresource} ${_search} `
|
}
|
} else if (orderBy) {
|
LText = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search} order by ${orderBy} `
|
} else {
|
LText = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search} `
|
}
|
}
|
|
if (_customScript) {
|
if (DateCount) {
|
DateCount = `${DateCount}
|
${_tailScript}
|
aaa:
|
if @ErrorCode!=''
|
insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}'
|
`
|
} else if (LText) {
|
LText = `${LText}
|
${_tailScript}
|
aaa:
|
if @ErrorCode!=''
|
insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}'
|
`
|
} else {
|
_customScript = `${_customScript}
|
${_tailScript}
|
aaa:
|
if @ErrorCode!=''
|
insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}'
|
`
|
}
|
} else if (_tailScript && DateCount) {
|
LText = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@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}
|
`
|
DateCount = `${DateCount}
|
${_tailScript}
|
aaa:
|
if @ErrorCode!=''
|
insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}'
|
`
|
} else if (_tailScript) {
|
LText = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@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}
|
${_tailScript}
|
aaa:
|
if @ErrorCode!=''
|
insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}'
|
`
|
} else {
|
LText = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@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 (window.GLOB.debugger === true) {
|
_customScript && window.mkInfo(`${setting.$name ? `/*${setting.$name} 自定义脚本*/\n` : ''}${LText ? '' : '/*不执行默认sql*/\n'}${_customScript}`)
|
LText && window.mkInfo(`${setting.$name ? `/*${setting.$name} 数据源*/\n` : ''}` + LText.replace(/\n\s{8}/ig, '\n'))
|
DateCount && window.mkInfo(`${setting.$name ? `/*${setting.$name} 总数查询*/\n` : ''}` + DateCount.replace(/\n\s{8}/ig, '\n'))
|
}
|
|
if (setting.$name) {
|
param.menuname = setting.$name
|
}
|
|
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)
|
|
if (setting.sub_field) {
|
param.sub_name = setting.subdata
|
param.tabid = setting.primaryKey || ''
|
param.parid = setting.subBID || ''
|
param.sub_field = setting.sub_field
|
}
|
|
// exec_type 解码字段:LText、LText1、LText2、custom_script、DateCount
|
|
param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss.SSS')
|
param.secretkey = Utils.encrypt('', param.timestamp)
|
|
param.username = userName
|
param.fullname = fullName
|
|
if (window.GLOB.probation) {
|
param.s_debug_type = 'Y'
|
}
|
|
if (window.GLOB.mkHS) { // 云端数据验证
|
param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp)
|
|
// special HS自定义函数查询
|
if (setting.tableName === 's_custom_script' && window.GLOB.mainSystemApi) {
|
param.rduri = window.GLOB.mainSystemApi
|
}
|
} else if (window.GLOB.forcedUpdate) {
|
param.s_version_up = 'true'
|
}
|
|
if (setting.database === 'sso' && window.GLOB.mainSystemApi) {
|
param.rduri = window.GLOB.mainSystemApi
|
}
|
|
return param
|
}
|
|
/**
|
* @description 获取系统存储过程合计值的参数
|
*/
|
static getStatQueryDataParams (setting, statFields, search, orderBy, BID) {
|
let param = {
|
func: 'sPC_Get_TableData',
|
obj_name: 'data',
|
exec_type: window.GLOB.execType || 'y',
|
arr_field: statFields.map(col => col.field).join(','),
|
default_sql: setting.execute ? 'true' : 'false'
|
}
|
|
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 (setting.customScript) {
|
_customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@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}
|
`
|
}
|
|
let allSearch = Utils.getAllSearchOptions(search)
|
let regoptions = allSearch.map(item => {
|
return {
|
reg: new RegExp('@' + item.key + '@', 'ig'),
|
value: `'${item.value}'`
|
}
|
})
|
|
regoptions.push(
|
{ reg: /@orderBy@/ig, value: orderBy },
|
{ reg: /@pageSize@/ig, value: 999999 },
|
{ reg: /@pageIndex@/ig, value: 1},
|
// { reg: /\$select@/ig, value: '/*'},
|
// { reg: /@select\$/ig, value: '*/'},
|
// { reg: /@sum\$|\$sum@/ig, value: ''},
|
{ reg: /@ID@/ig, value: `''`},
|
{ reg: /@BID@/ig, value: `'${BID || ''}'`},
|
{ reg: /@LoginUID@/ig, value: `'${sessionStorage.getItem('LoginUID') || ''}'`},
|
{ reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid') || ''}'`},
|
{ reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID') || ''}'`},
|
{ reg: /@Appkey@/ig, value: `'${window.GLOB.appkey || ''}'`},
|
{ reg: /@lang@/ig, value: `'${sessionStorage.getItem('lang')}'`},
|
{ reg: /@typename@/ig, value: `'admin'`},
|
)
|
|
regoptions.forEach(item => {
|
_dataresource = _dataresource.replace(item.reg, item.value)
|
_customScript = _customScript.replace(item.reg, item.value)
|
})
|
|
let _search = ''
|
|
if (setting.queryType !== 'statistics') { // 统计数据源,内容替换
|
_search = Utils.joinMainSearchkey(search)
|
if (_search) {
|
_search = 'where ' + _search
|
}
|
}
|
|
let LText = ` /*system_query*/select ${statFields.map(col => `isnull(sum(${col.field}),0) as ${col.field}`).join(',')} from ${_dataresource} ${_search} `
|
|
if (_customScript) {
|
LText = `${LText}
|
aaa:
|
if @ErrorCode!=''
|
insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}'
|
`
|
} else {
|
LText = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@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 (window.GLOB.debugger === true) {
|
_customScript && window.mkInfo(`${setting.$name ? `/*${setting.$name} 自定义脚本 统计查询*/\n` : ''}${LText ? '' : '/*不执行默认sql*/\n'}${_customScript}`)
|
LText && window.mkInfo(`${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.exec_type)
|
param.LText = Utils.formatOptions(LText, param.exec_type)
|
param.DateCount = ''
|
|
param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
|
param.secretkey = Utils.encrypt('', param.timestamp)
|
|
param.username = userName
|
param.fullname = fullName
|
|
if (window.GLOB.mkHS) { // 云端数据验证
|
param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp)
|
}
|
|
if (BID) {
|
param.BID = BID
|
}
|
|
// 数据管理权限
|
if (sessionStorage.getItem('dataM') === 'true') {
|
param.dataM = 'Y'
|
}
|
|
return param
|
}
|
|
/**
|
* @description 数据获取成功
|
*/
|
static querySuccess (result) {
|
if (!result.message) return
|
|
if (result.ErrCode === 'Y') {
|
Modal.success({
|
title: result.message
|
})
|
} else if (result.ErrCode === 'S') {
|
notification.success({
|
top: 92,
|
message: result.message,
|
duration: 2
|
})
|
}
|
}
|
|
/**
|
* @description 数据获取失败
|
*/
|
static queryFail (result) {
|
if (!result.message && result.ErrCode !== 'version_up') return
|
|
if (result.ErrCode === 'N') {
|
Modal.error({
|
title: result.message,
|
})
|
} else if (result.ErrCode === 'version_up') {
|
MKEmitter.emit('reloadTabs')
|
} else if (result.ErrCode !== '-2') {
|
notification.error({
|
top: 92,
|
message: result.message,
|
duration: 10
|
})
|
}
|
}
|
}
|
|
/**
|
* @description 生成单个组件sPC_Get_structured_data请求参数
|
*/
|
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
|
|
let allSearch = Utils.getAllSearchOptions(searchlist)
|
let regoptions = allSearch.map(item => {
|
return {
|
reg: new RegExp('@' + item.key + '@', 'ig'),
|
value: `'${item.value}'`
|
}
|
})
|
|
regoptions.forEach(item => {
|
_dataresource = _dataresource.replace(item.reg, item.value)
|
_customScript = _customScript.replace(item.reg, item.value)
|
})
|
|
let _search = ''
|
if (setting.queryType !== 'statistics' && _dataresource) {
|
_search = Utils.joinMainSearchkey(searchlist)
|
_search = _search ? 'where ' + _search : ''
|
}
|
|
if (setting.$top) {
|
if (setting.order && _dataresource) {
|
_dataresource = `select top 1 ${setting.arr_field} from ${_dataresource} ${_search} order by ${setting.order} `
|
} else if (_dataresource) {
|
_dataresource = `select top 1 ${setting.arr_field} from ${_dataresource} ${_search} `
|
}
|
} else if (setting.order && _dataresource) {
|
_dataresource = `select top 1000 ${setting.arr_field} from ${_dataresource} ${_search} order by ${setting.order} `
|
} else if (_dataresource) {
|
_dataresource = `select top 1000 ${setting.arr_field} 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') || ''
|
|
_customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@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 {
|
uuid: uuid,
|
dataName: dataName,
|
$name: setting.$name,
|
columns: columns,
|
par_tablename: '',
|
order: setting.order || '',
|
type: format === 'array' ? format : '',
|
primaryKey: setting.primaryKey || '',
|
foreign_key: '',
|
sql: _dataresource,
|
script: _customScript
|
}
|
}
|
|
/**
|
* @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
|
|
let regoptions = [
|
{ reg: /@pageSize@/ig, value: 9999 },
|
{ reg: /@pageIndex@/ig, value: 1},
|
{ reg: /@ID@/ig, value: `''`},
|
{ reg: /@BID@/ig, value: `'${BID || ''}'`},
|
{ reg: /@LoginUID@/ig, value: `'${sessionStorage.getItem('LoginUID') || ''}'`},
|
{ reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid') || ''}'`},
|
{ reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID') || ''}'`},
|
{ reg: /@Appkey@/ig, value: `'${window.GLOB.appkey || ''}'`},
|
{ reg: /@lang@/ig, value: `'${sessionStorage.getItem('lang')}'`},
|
{ reg: /@typename@/ig, value: `'admin'`},
|
]
|
|
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
|
}
|
|
_sql = _sql.replace(/@orderBy@/ig, item.order)
|
_script = _script.replace(/@orderBy@/ig, item.order)
|
|
regoptions.forEach(cell => {
|
_sql = _sql.replace(cell.reg, cell.value)
|
_script = _script.replace(cell.reg, cell.value)
|
})
|
|
// 测试系统打印查询语句
|
if (window.GLOB.debugger === true) {
|
_script && window.mkInfo(`${item.$name ? `/*${item.$name} 自定义脚本(同步查询)*/\n` : ''}${_sql ? '' : '/*不执行默认sql*/\n'}${_script}`)
|
_sql && window.mkInfo(`${item.$name ? `/*${item.$name} 数据源(同步查询)*/\n` : ''}` + _sql)
|
}
|
|
item.columns.forEach(cell => {
|
LText_field.push(`Select '${item.dataName}' as tablename,'${cell.field}' as fieldname,'${cell.datatype}' as field_type`)
|
})
|
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 = {
|
func: 'sPC_Get_structured_data',
|
BID: BID,
|
username: sessionStorage.getItem('User_Name') || '',
|
fullName: sessionStorage.getItem('Full_Name') || ''
|
}
|
|
param.menuname = config.MenuName || config.$menuname || ''
|
|
param.exec_type = window.GLOB.execType || 'y'
|
param.LText = Utils.formatOptions(_LText.join(' union all '), param.exec_type)
|
param.custom_script = Utils.formatOptions(LText_field.join(' union all '), param.exec_type)
|
|
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.timestamp)
|
|
return param
|
}
|