// 文件内都是即将废弃的工具类 import { JSEncrypt } from 'jsencrypt' /** * 保存当前页面接口入参(request.js) */ export function saveApiRequest(config) { let urlArr = config.url.split('?') let url = '/' + urlArr[0] let data = {} if (config.data || (config.params && !config.params['_t'])) { data = config.data || config.params } else { data = toJson(urlArr[1]) } let obj = { [url]: { body: data } } let requestAllData = JSON.parse(sessionStorage.getItem('requestAllData')) if (requestAllData) { requestAllData = { ...requestAllData, ...obj } sessionStorage.setItem('requestAllData', JSON.stringify(requestAllData)) } else { sessionStorage.setItem('requestAllData', JSON.stringify(obj)) } } /** * 处理字段权限(request.js) */ export const setFieldPrivInfo = (config) => { //判断是否需要清空menuId //过滤公共接口关键字数组 let apiUrlArr = [ 'find-resource', 'find-user-menu', 'sockjs-node/info', 'base-tenant-system/find-tenant-defined', `${window.getVersionTypeApiUrl('dicURL')}/dic-items/get-dictype`, '/portal-favourite/save-one-click', '/base-user/update-pwd', '/base-exception/save', '/base-rolemenu/get-keyword', ] //如果请求地址包含公共接口,则把menuId清空 //apiUrlArr.map(item => { config.url.indexOf(item) > -1 ? sessionStorage['menuIdFlag'] = 1 : '' }) // 修改记录。 基于 apiUrlArr.some((item) => { if (config.url.indexOf(item) > -1) { sessionStorage['menuIdFlag'] = 1 return true } sessionStorage['menuIdFlag'] = 0 }) //headers赋值 if (sessionStorage['menuIdFlag'] !== 1) { if (sessionStorage['menuId']) { config.headers['menuId'] = sessionStorage['menuId'] } else { delete config.headers['menuId'] } } else { delete config.headers['menuId'] } // sessionStorage['menuIdFlag'] == 1 ? null : config.headers['menuId'] = sessionStorage['menuId'] sessionStorage['menuIdFlag'] = 0 //菜单ID if ( config.data && (config.data._preFartherURL_ || (config.data.params && config.data.params._preFartherURL_)) ) { let url = config.data._preFartherURL_ || config.data.params._preFartherURL_ config.headers['preControllerURL'] = Base64.encode(url) let menuId = localStorage.getItem('menuId') let key = '_fieldDataList_' + '#' + menuId + '#' + url let fieldData = localStorage.getItem(key) if (fieldData) { let _fieldDataList_ = JSON.parse(fieldData) //隐藏字段,进行删除 const hiddenFieldList = _fieldDataList_.filter((v) => v.hiddenFlag) hiddenFieldList.forEach((item) => { // eslint-disable-next-line no-prototype-builtins if (config.data.params.hasOwnProperty(item.name)) delete config.data.params[item.name] }) //没有加密的字段,进行加密处理 const encryptFieldList = _fieldDataList_.filter((v) => v.encryptFlag) if (encryptFieldList.length) { let pubkey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCUoHGYCV0xrvQacKnd81bR5jY5ph50bGa8ixpl6siyfdL8GDStVUaatqFrfaExzg0Gi0i399ZG9xSVn5iIsdrUq4HDQHZXqfmC+Ss3GBTPkYickTUpmnPzod9AMyEDnddVD1vyfuePw1JaeEpqhEtyRs6bra8q4LtVQIdYtBmJdwIDAQAB' const jsencrypt = new JSEncrypt() jsencrypt.setPublicKey(pubkey) encryptFieldList.forEach((item) => { // eslint-disable-next-line no-prototype-builtins if (config.data.params.hasOwnProperty(item.name)) { //没有加密,进行加密 // eslint-disable-next-line no-prototype-builtins if (item.hasOwnProperty('noData')) { let fieldContent = config.data.params[item.name] if (fieldContent) { fieldContent = JSON.stringify(fieldContent) //加密字段内容 config.data.params[item.name] = jsencrypt.encrypt(fieldContent) } } } }) } if (config.data.params['_preFartherURL_']) delete config.data.params['_preFartherURL_'] } if (config.data._preFartherURL_) delete config.data._preFartherURL_ } }