GitBucket
4.6.0
Toggle navigation
Sign in
Files
Branches
1
Tags
Issues
Pull Requests
Labels
Milestones
Wiki
08335
/
hivui-platform-template
hivui平台项目模板
Browse code
最近使用菜单
master
1 parent
f828375
commit
15027d42dd21037c64f5f668dd2aedcc0fedca39
20278
authored
on 28 Oct 2021
Showing
4 changed files
project/hivuiMain/api/menu.js
project/hivuiMain/store/index.js
project/hivuiMain/store/modules/app.js
project/hivuiMain/utils/index.js
Ignore Space
Show notes
View
project/hivuiMain/api/menu.js
/** * 菜单权限列表:eaptpl.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/yhcdqxlb.store/SqlEntity_NTqEeq7n.sqlentity /amrept-web/hcm/xtgl/xtfg/xtsy/funcdir/sygn.func 首页左侧菜单数据集: eaptpl.pro/ptpz.dir/xtgn.dir/sy.modeldir/datadir.datadir/syzccd.store/SqlEntity_r3hx80TL.sqlentity 菜单权限列表:eaptpl.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/yhcdqxlb.store/SqlEntity_NTqEeq7n.sqlentity 取数功能路径:/project/xtgl/xtfg/xtsy/funcdir/sygn.func 测试地址:http://192.168.1.183:5001/amrept-web/project/ptpz/xtgj/sjdxzs/funcdir/sjdxzs.func cxf 跨域查询 url: http://192.168.100.183:5001/amrept-web/server/WebServiceWadl/{projectN}/cxfService/query 方式:get 参数: "body":查询条件 "modelFilePath":数据集业务路径 "queryCdion": "pageSize":每页数据条数 "pageNum":页数 "treePath": "funcpath":功能路径 "queryCache":是否应用查询缓存 跨域保存 URL: http://192.168.100.183:5001/amrept-web/server/WebServiceWadl/{projectN}/cxfService/save 方式:get 参数:同上 */ import { projectName,codeProjectName } from '../config' import request from '../utils/request' import qs from 'qs'; let hi_request=null; if(window.HIVUI_SETTING&&window.HIVUI_SETTING.request){ hi_request=window.HIVUI_SETTING.request; } function _request(opt){ if(hi_request){ return hi_request(opt); }else{ return request(opt); } } const __base=(window.HIVUI_SETTING.serverUrl||codeProjectName); const queryUrl = (import.meta.env.VITE_APP_QUERYDATA||process.env.VITE_APP_QUERYDATA).replace("[projectName]",projectName) export function getMenus() { ///amrept-web/data/query.do /*let body={ "queryCdions": { "join": "and", "items": [ { "sign": "in", "name": "isShow", "desc": "", "dataType": "dbString", "value": [1,3,5], "enabled": true } ] } } return request({ url: queryUrl, method: 'post', data: qs.stringify({ modelFilePath: `${projectName}.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/yhcdqxlb.store/SqlEntity_NTqEeq7n.sqlentity`, __funcpath: `/${projectName}/xtgl/xtfg/xtsy/funcdir/sygn.func`, pageNum: -1, pageSize: -1, __body:JSON.stringify(body) }) })*/ return _request({ url: __base+"/login/user/menu", method: 'get', }) } //首面左侧快速导航 export function getQuickNav() { ///amrept-web/data/query.do let body={ "queryCdions": { "join": "and", "items": [ { "sign": "in", "name": "isShow", "desc": "", "dataType": "dbString", "value": [4,5], "enabled": true } ] } } return _request({ url: queryUrl, method: 'post', data: qs.stringify({ modelFilePath: `${projectName}.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/yhcdqxlb.store/SqlEntity_NTqEeq7n.sqlentity`, __funcpath: `/${projectName}/xtgl/xtfg/xtsy/funcdir/sygn.func`, pageNum: -1, pageSize: -1, __body:JSON.stringify(body) }) }) } export function getPortalMenus() { ///amrept-web/data/query.do let body={ "queryCdions": { "join": "and", "items": [ { "sign": "in", "name": "isShow", "desc": "", "dataType": "dbString", "value": [6], "enabled": true } ] } } return _request({ url: queryUrl, method: 'post', data: qs.stringify({ modelFilePath: `${projectName}.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/yhcdqxlb.store/SqlEntity_NTqEeq7n.sqlentity`, __funcpath: `/${projectName}/xtgl/xtfg/xtsy/funcdir/sygn.func`, pageNum: -1, pageSize: -1, __body:JSON.stringify(body) }) }) } //最近使用 export function getLeastRecentlyUsed(username) { ///amrept-web/data/query.do /*let body={ "queryCdions": { "join": "and", "items": [ { "sign": "eq", "name": "FUSERNAME", "desc": "", "dataType": "dbString", "value": username, "enabled": true } ] } } return _request({ url: queryUrl, method: 'post', data: qs.stringify({ modelFilePath: `${projectName}.pro/ptpz.dir/xtgn.dir/zjyy.modeldir/datadir.datadir/zjyy.store/SqlEntity_DrYlHLl6.sqlentity`, __funcpath: `/${projectName}/xtgl/xtfg/xtsy/funcdir/sygn.func`, pageNum: 1, pageSize: 10, __body:JSON.stringify(body) }) })*/ return _request({ url: __base+"/sys/recent/get", method: 'get', }) } //取功能权限 export function getPermissions(username) { ///amrept-web/data/query.do let body={ "queryCdions": { "join": "and", "items": [ { "sign": "eq", "name": "userName", "desc": "", "dataType": "dbString", "value": username, "enabled": true } ] } } return _request({ url: queryUrl, method: 'post', data: qs.stringify({ modelFilePath: `${projectName}.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/qxurllb.store/SqlEntity_nAIsAP3H.sqlentity`, __funcpath: `/${projectName}/xtgl/xtfg/xtsy/funcdir/sygn.func`, pageNum: -1, pageSize: -1, __body:JSON.stringify(body) }) }) }
/** * 菜单权限列表:eaptpl.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/yhcdqxlb.store/SqlEntity_NTqEeq7n.sqlentity /amrept-web/hcm/xtgl/xtfg/xtsy/funcdir/sygn.func 首页左侧菜单数据集: eaptpl.pro/ptpz.dir/xtgn.dir/sy.modeldir/datadir.datadir/syzccd.store/SqlEntity_r3hx80TL.sqlentity 菜单权限列表:eaptpl.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/yhcdqxlb.store/SqlEntity_NTqEeq7n.sqlentity 取数功能路径:/project/xtgl/xtfg/xtsy/funcdir/sygn.func 测试地址:http://192.168.1.183:5001/amrept-web/project/ptpz/xtgj/sjdxzs/funcdir/sjdxzs.func cxf 跨域查询 url: http://192.168.100.183:5001/amrept-web/server/WebServiceWadl/{projectN}/cxfService/query 方式:get 参数: "body":查询条件 "modelFilePath":数据集业务路径 "queryCdion": "pageSize":每页数据条数 "pageNum":页数 "treePath": "funcpath":功能路径 "queryCache":是否应用查询缓存 跨域保存 URL: http://192.168.100.183:5001/amrept-web/server/WebServiceWadl/{projectN}/cxfService/save 方式:get 参数:同上 */ import { projectName,codeProjectName } from '../config' import request from '../utils/request' import qs from 'qs'; let hi_request=null; if(window.HIVUI_SETTING&&window.HIVUI_SETTING.request){ hi_request=window.HIVUI_SETTING.request; } function _request(opt){ if(hi_request){ return hi_request(opt); }else{ return request(opt); } } const __base=(window.HIVUI_SETTING.serverUrl||codeProjectName); const queryUrl = (import.meta.env.VITE_APP_QUERYDATA||process.env.VITE_APP_QUERYDATA).replace("[projectName]",projectName) export function getMenus() { ///amrept-web/data/query.do /*let body={ "queryCdions": { "join": "and", "items": [ { "sign": "in", "name": "isShow", "desc": "", "dataType": "dbString", "value": [1,3,5], "enabled": true } ] } } return request({ url: queryUrl, method: 'post', data: qs.stringify({ modelFilePath: `${projectName}.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/yhcdqxlb.store/SqlEntity_NTqEeq7n.sqlentity`, __funcpath: `/${projectName}/xtgl/xtfg/xtsy/funcdir/sygn.func`, pageNum: -1, pageSize: -1, __body:JSON.stringify(body) }) })*/ return _request({ url: __base+"/login/user/menu", method: 'get', }) } //首面左侧快速导航 export function getQuickNav() { ///amrept-web/data/query.do let body={ "queryCdions": { "join": "and", "items": [ { "sign": "in", "name": "isShow", "desc": "", "dataType": "dbString", "value": [4,5], "enabled": true } ] } } return _request({ url: queryUrl, method: 'post', data: qs.stringify({ modelFilePath: `${projectName}.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/yhcdqxlb.store/SqlEntity_NTqEeq7n.sqlentity`, __funcpath: `/${projectName}/xtgl/xtfg/xtsy/funcdir/sygn.func`, pageNum: -1, pageSize: -1, __body:JSON.stringify(body) }) }) } export function getPortalMenus() { ///amrept-web/data/query.do let body={ "queryCdions": { "join": "and", "items": [ { "sign": "in", "name": "isShow", "desc": "", "dataType": "dbString", "value": [6], "enabled": true } ] } } return _request({ url: queryUrl, method: 'post', data: qs.stringify({ modelFilePath: `${projectName}.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/yhcdqxlb.store/SqlEntity_NTqEeq7n.sqlentity`, __funcpath: `/${projectName}/xtgl/xtfg/xtsy/funcdir/sygn.func`, pageNum: -1, pageSize: -1, __body:JSON.stringify(body) }) }) } //最近使用 export function getLeastRecentlyUsed(username) { ///amrept-web/data/query.do let body={ "queryCdions": { "join": "and", "items": [ { "sign": "eq", "name": "FUSERNAME", "desc": "", "dataType": "dbString", "value": username, "enabled": true } ] } } return _request({ url: queryUrl, method: 'post', data: qs.stringify({ modelFilePath: `${projectName}.pro/ptpz.dir/xtgn.dir/zjyy.modeldir/datadir.datadir/zjyy.store/SqlEntity_DrYlHLl6.sqlentity`, __funcpath: `/${projectName}/xtgl/xtfg/xtsy/funcdir/sygn.func`, pageNum: 1, pageSize: 10, __body:JSON.stringify(body) }) }) } //最近使用 export function getPermissions(username) { ///amrept-web/data/query.do let body={ "queryCdions": { "join": "and", "items": [ { "sign": "eq", "name": "userName", "desc": "", "dataType": "dbString", "value": username, "enabled": true } ] } } return _request({ url: queryUrl, method: 'post', data: qs.stringify({ modelFilePath: `${projectName}.pro/ptpz.dir/xtgn.dir/gnqxcz.modeldir/data.datadir/qxurllb.store/SqlEntity_nAIsAP3H.sqlentity`, __funcpath: `/${projectName}/xtgl/xtfg/xtsy/funcdir/sygn.func`, pageNum: -1, pageSize: -1, __body:JSON.stringify(body) }) }) }
Ignore Space
Show notes
View
project/hivuiMain/store/index.js
// import Vue from 'vue' // import Vuex from 'vuex' import app from './modules/app' import portal from './modules/portal' import user from './modules/user' import getters from './getters' Vue.use(Vuex) export default new Vuex.Store({ modules:{ portal, app, user }, getters, state: { appStatus:'loading'//failed , loading ,success }, mutations: { SET_appStatus(state,str){ state.appStatus = str; } }, actions: { async initApp(me){ // await me.dispatch('user/load') //await me.dispatch('app/getPowers')//权限 // console.log('//权限 end') await me.dispatch('app/getMenus')//菜单 // console.log('//菜单 end') await me.dispatch('user/getInfo')//获取用户信息 // console.log('//获取用户信息 end') await me.dispatch('user/getBzList')//获取多岗信息 // console.log('//获取多岗信息 end') await me.dispatch('app/getLatelyUse')//最近使用 // console.log('//最近使用 end') //await me.dispatch('app/getQuickNav')//快速导航 // console.log('//快速导航 end') // await me.dispatch('portal/loadColumns')//栏目功能 // console.log('//栏目功能 end') // await me.dispatch('portal/loadList')//工作台门户列表 // console.log('//工作台门户列表 end') // await me.dispatch('portal/loadSysList')//系统门户列表 // console.log('//系统门户列表 end') }, setAppLoad({state,commit},status){ commit('SET_appStatus',status); } } })
// import Vue from 'vue' // import Vuex from 'vuex' import app from './modules/app' import portal from './modules/portal' import user from './modules/user' import getters from './getters' Vue.use(Vuex) export default new Vuex.Store({ modules:{ portal, app, user }, getters, state: { appStatus:'loading'//failed , loading ,success }, mutations: { SET_appStatus(state,str){ state.appStatus = str; } }, actions: { async initApp(me){ // await me.dispatch('user/load') //await me.dispatch('app/getPowers')//权限 // console.log('//权限 end') await me.dispatch('app/getMenus')//菜单 // console.log('//菜单 end') await me.dispatch('user/getInfo')//获取用户信息 // console.log('//获取用户信息 end') await me.dispatch('user/getBzList')//获取多岗信息 // console.log('//获取多岗信息 end') // await me.dispatch('app/getLatelyUse')//最近使用 // console.log('//最近使用 end') //await me.dispatch('app/getQuickNav')//快速导航 // console.log('//快速导航 end') // await me.dispatch('portal/loadColumns')//栏目功能 // console.log('//栏目功能 end') // await me.dispatch('portal/loadList')//工作台门户列表 // console.log('//工作台门户列表 end') // await me.dispatch('portal/loadSysList')//系统门户列表 // console.log('//系统门户列表 end') }, setAppLoad({state,commit},status){ commit('SET_appStatus',status); } } })
Ignore Space
Show notes
View
project/hivuiMain/store/modules/app.js
import { getMenus, getQuickNav,getLeastRecentlyUsed,getPermissions } from '../../api/menu' import {field5Change3} from '@main/utils/index' const portal = { namespaced: true, state: { powerList:[], menusList:[], menus:[], defTabs: [], navs: [], latelyNavs:[], config:[], }, mutations: { SET_powerList: (state, powerList) => { state.powerList = powerList }, SET_menusList: (state, menusList) => { state.menusList = menusList }, SET_menus: (state, menus) => { state.menus = menus }, SET_defTabs: (state, data) => { state.defTabs = data }, SET_navs: (state, navs) => { state.navs = navs }, SET_latelyNavs: (state, latelyNavs) => { state.latelyNavs = latelyNavs }, SET_config: (state, config) => { state.config = config }, }, actions: { //取功能菜单 async getMenus({ commit, state }) { await getMenus().then(res => { if(res.status==500){ if(window.HIVUI_SETTING.loginUrl){ location=window.HIVUI_SETTING.loginUrl; }else{ location="/"+projectName+"/hivuiLogin/index.html#/"; } } const data = res.dataPack; commit('SET_menusList', [...data]); console.log(`SET_menusList:`,data); let treeData=[...data],defTabs=[]; treeData=field5Change3([...treeData]); getActiveItem(treeData); /*获取默认打开项*/ function getActiveItem(_arr){ _arr.map(item=>{ //构建 树 map if(item.children&&item.children.length>0){ getActiveItem(item.children); } for(let i = (state.defTabs||[]).length-1;i>=0;i--){ if(state.defTabs[i].resId!=item.resId){ defTabs.push(item); break; } } }); } commit('SET_defTabs', [...defTabs,...state.defTabs]); console.info('menusTree:',treeData); commit('SET_menus', treeData); return data; }); }, //取左侧快速 async getQuickNav({ commit, state }) { await getQuickNav().then(res => { const data = res.data.dataPack.rows; console.log(`getQuickNav`) let defTabs=[],flag=false; data.map(item=>{ flag=false; for(let i = state.defTabs.length-1;i>=0;i--){ if(state.defTabs[i].resId==item.resId){ flag = true; break; } } if(item.isActive&&!flag) defTabs.push(item); }); commit('SET_defTabs', [...defTabs,...state.defTabs]); commit('SET_navs', data); return data; }); }, setQuickNav({ commit, state },data){ commit('SET_navs', data); }, //最近使用 async getLatelyUse({ commit, state }){ let me =this; await getLeastRecentlyUsed(me.state.user.id).then(res => { let data = res.dataPack; data=field5Change3([...data]); commit('SET_latelyNavs', data); return data; }); }, //取功能权限 async getPowers({ commit, state }) { await getPermissions(this.state.user.id).then(res => { const data = res.data.dataPack.rows; commit('SET_powerList', [...data]); }); }, getSysConfig({ commit, state }){ commit('SET_config', window.__sysConfig); } } } export default portal
import { getMenus, getQuickNav,getLeastRecentlyUsed,getPermissions } from '../../api/menu' const portal = { namespaced: true, state: { powerList:[], menusList:[], menus:[], defTabs: [], navs: [], latelyNavs:[], config:[], }, mutations: { SET_powerList: (state, powerList) => { state.powerList = powerList }, SET_menusList: (state, menusList) => { state.menusList = menusList }, SET_menus: (state, menus) => { state.menus = menus }, SET_defTabs: (state, data) => { state.defTabs = data }, SET_navs: (state, navs) => { state.navs = navs }, SET_latelyNavs: (state, latelyNavs) => { state.latelyNavs = latelyNavs }, SET_config: (state, config) => { state.config = config }, }, actions: { //取功能菜单 async getMenus({ commit, state }) { await getMenus().then(res => { if(res.status==500){ if(window.HIVUI_SETTING.loginUrl){ location=window.HIVUI_SETTING.loginUrl; }else{ location="/"+projectName+"/hivuiLogin/index.html#/"; } } const data = res.dataPack; commit('SET_menusList', [...data]); console.log(`SET_menusList:`,data); let treeData=[...data],defTabs=[]; /*5.0字段替换3.0*/ let fieldConversion={ isActive:"fisactive", isOffline:"fisoffline", isShow:"fshow", name:"fresname", orderIndex:"forder", parentId:"frespguid", resId:"fresguid", resUrl:"fresurl", type:"frestype", } treeData=fieldChange([...treeData]); getActiveItem(treeData); /*替换*/ function fieldChange(_arr){ _arr.map(item=>{ if(item.children&&item.children.length>0){ fieldChange(item.children); } for(let i in fieldConversion){ if(typeof(item[fieldConversion[i]])!="undefined"){ item[i]=item[fieldConversion[i]]; delete item[fieldConversion[i]]; } } if(!window._global){//正式环境 item.resUrl=window.HIVUI_SETTING.serverName+item.resUrl; } return item; }); return _arr; } /*获取默认打开项*/ function getActiveItem(_arr){ _arr.map(item=>{ //构建 树 map if(item.children&&item.children.length>0){ getActiveItem(item.children); } for(let i = (state.defTabs||[]).length-1;i>=0;i--){ if(state.defTabs[i].resId!=item.resId){ defTabs.push(item); break; } } }); } commit('SET_defTabs', [...defTabs,...state.defTabs]); console.info('menusTree:',treeData); commit('SET_menus', treeData); return data; }); }, //取左侧快速 async getQuickNav({ commit, state }) { await getQuickNav().then(res => { const data = res.data.dataPack.rows; console.log(`getQuickNav`) let defTabs=[],flag=false; data.map(item=>{ flag=false; for(let i = state.defTabs.length-1;i>=0;i--){ if(state.defTabs[i].resId==item.resId){ flag = true; break; } } if(item.isActive&&!flag) defTabs.push(item); }); commit('SET_defTabs', [...defTabs,...state.defTabs]); commit('SET_navs', data); return data; }); }, setQuickNav({ commit, state },data){ commit('SET_navs', data); }, async getLatelyUse({ commit, state }){ let me =this; await getLeastRecentlyUsed(me.state.user.id).then(res => { const data = res.data.dataPack.rows; commit('SET_latelyNavs', data); return data; }); }, //取功能权限 async getPowers({ commit, state }) { await getPermissions(this.state.user.id).then(res => { const data = res.data.dataPack.rows; commit('SET_powerList', [...data]); }); }, getSysConfig({ commit, state }){ commit('SET_config', window.__sysConfig); } } } export default portal
Ignore Space
Show notes
View
project/hivuiMain/utils/index.js
import getScroll from './getScroll' export function getTargetRect(target) { return target !== window ? target.getBoundingClientRect() : { top: 0, left: 0, bottom: 0 }; } export function getOffset(element, target) { const elemRect = element.getBoundingClientRect(); const targetRect = getTargetRect(target); const scrollTop = getScroll(target, true); const scrollLeft = getScroll(target, false); const docElem = window.document.body; const clientTop = docElem.clientTop || 0; const clientLeft = docElem.clientLeft || 0; return { top: elemRect.top - targetRect.top + scrollTop - clientTop, left: elemRect.left - targetRect.left + scrollLeft - clientLeft, width: elemRect.width, height: elemRect.height, }; } export function getDefaultTarget() { return typeof window !== 'undefined' ? window : null; } /** * @method setUrlValue * @description 设置地址栏参数值 * @param url * @param pName * @param pValue * * @example: urlAppend("http://www.fdauto.com","userid=03870");�����http://www.fdauto.com?userid=03870;1` * urlAppend("http://www.fdauto.com?userid=03870","bumen=aj")�����http://www.fdauto.com?userid=03870&bumen=aj; */ export function setUrlValue(url, key, value) { var returnUrl = '' if (url.indexOf('?') == -1) { returnUrl += url + '?' + key + '=' + value } else { if (url.indexOf('?' + key + '=') == -1 && url.indexOf('&' + key + '=') == -1) { returnUrl += url + '&' + key + '=' + value } else { var isDone = false var startIndex = 0 var endIndex = url.length - 1 var parm = '?' + key + '=' for (var i = 0; i < url.length; i++) { if (url.substr(i, parm.length) == parm) { startIndex = i + parm.length for (var j = startIndex; j < url.length; j++) { if (url[j] == '&') { endIndex = j break } else if (j == url.length - 1) { endIndex = url.length } } isDone = true break } } if (!isDone) { parm = '&' + key + '=' for (var i = 0; i < url.length; i++) { if (url.substr(i, parm.length) == parm) { startIndex = i + parm.length for (var j = startIndex; j < url.length; j++) { if (url[j] == '&') { endIndex = j break } else if (j == url.length - 1) { endIndex = url.length } } break } } } var parmKeyValue = parm + url.substring(startIndex, endIndex) returnUrl = url.replace(parmKeyValue, parm + value) } } return returnUrl } /** * @method getUrlValue * @description 获取地址栏参数值 * @param name * string * @param url * string * @example: getUrlValue("p","http://www.baidu.com?p=5"); */ export function getUrlValue(url, name) { var str = url || window.location.search; if (str.indexOf("&" + name) != -1 || str.indexOf("?" + name) != -1) { var pos_start = "" if (str.indexOf("?" + name) > -1) pos_start = str.indexOf("?" + name) + name.length + 2; else pos_start = str.indexOf("&" + name) + name.length + 2; var pos_end = str.indexOf("&", pos_start); if (pos_end == -1) { return str.substring(pos_start); } else { return str.substring(pos_start, pos_end) } } else { return ""; } } export function getUrlSearch(url) { var name, value; var str = url; //取得整个地址栏 var num = str.indexOf("?") str = str.substr(num + 1); //取得所有参数 stringvar.substr(start [, length ] var arr = str.split("&"); //各个参数放到数组里 var search ={}; for (var i = 0; i < arr.length; i++) { num = arr[i].indexOf("="); if (num > 0) { name = arr[i].substring(0, num); value = arr[i].substr(num + 1); search[name] = value; } } return search; } /** * var str='这是一个测试的字符串:{0} {1}'.format('Hello','world'); * var str='这是一个测试的字符串:{str0} {str1}'.format({str0:'Hello',str1:'world'}); */ export function strFormat(str, args) { var result = str; if (arguments.length > 0) { if (arguments.length == 2 && typeof (args) == "object") { for (var key in args) { if (args[key] != undefined) { var reg = new RegExp("({" + key + "})", "g"); result = result.replace(reg, args[key]); } } } else { for (var i = 1; i < arguments.length; i++) { if (arguments[i] != undefined) { var reg = new RegExp("({)" + (i - 1) + "(})", "g"); result = result.replace(reg, arguments[i]); } } } } return result; } export function closeWindow(errorUrl){ if (document.all) { if (window.location.pathname == window.parent.location.pathname) { window.opener = null; window.open('', '_top'); window.top.close(); } } else { window.close(); } window.location.href = errorUrl || "about:blank"; } /*5.0替换3.0菜单字段*/ export function field5Change3(_arr){ /*5.0字段替换3.0*/ let fieldConversion={ isActive:"fisactive", isOffline:"fisoffline", isShow:"fshow", name:"fresname", orderIndex:"forder", parentId:"frespguid", resId:"fresguid", resUrl:"fresurl", type:"frestype", } _arr.map(item=>{ if(item.children&&item.children.length>0){ field5Change3(item.children); } for(let i in fieldConversion){ if(typeof(item[fieldConversion[i]])!="undefined"){ item[i]=item[fieldConversion[i]]; delete item[fieldConversion[i]]; } } if(!window._global){//正式环境 item.resUrl=window.HIVUI_SETTING.serverName+item.resUrl; } return item; }); return _arr; }
import getScroll from './getScroll' export function getTargetRect(target) { return target !== window ? target.getBoundingClientRect() : { top: 0, left: 0, bottom: 0 }; } export function getOffset(element, target) { const elemRect = element.getBoundingClientRect(); const targetRect = getTargetRect(target); const scrollTop = getScroll(target, true); const scrollLeft = getScroll(target, false); const docElem = window.document.body; const clientTop = docElem.clientTop || 0; const clientLeft = docElem.clientLeft || 0; return { top: elemRect.top - targetRect.top + scrollTop - clientTop, left: elemRect.left - targetRect.left + scrollLeft - clientLeft, width: elemRect.width, height: elemRect.height, }; } export function getDefaultTarget() { return typeof window !== 'undefined' ? window : null; } /** * @method setUrlValue * @description 设置地址栏参数值 * @param url * @param pName * @param pValue * * @example: urlAppend("http://www.fdauto.com","userid=03870");�����http://www.fdauto.com?userid=03870;1` * urlAppend("http://www.fdauto.com?userid=03870","bumen=aj")�����http://www.fdauto.com?userid=03870&bumen=aj; */ export function setUrlValue(url, key, value) { var returnUrl = '' if (url.indexOf('?') == -1) { returnUrl += url + '?' + key + '=' + value } else { if (url.indexOf('?' + key + '=') == -1 && url.indexOf('&' + key + '=') == -1) { returnUrl += url + '&' + key + '=' + value } else { var isDone = false var startIndex = 0 var endIndex = url.length - 1 var parm = '?' + key + '=' for (var i = 0; i < url.length; i++) { if (url.substr(i, parm.length) == parm) { startIndex = i + parm.length for (var j = startIndex; j < url.length; j++) { if (url[j] == '&') { endIndex = j break } else if (j == url.length - 1) { endIndex = url.length } } isDone = true break } } if (!isDone) { parm = '&' + key + '=' for (var i = 0; i < url.length; i++) { if (url.substr(i, parm.length) == parm) { startIndex = i + parm.length for (var j = startIndex; j < url.length; j++) { if (url[j] == '&') { endIndex = j break } else if (j == url.length - 1) { endIndex = url.length } } break } } } var parmKeyValue = parm + url.substring(startIndex, endIndex) returnUrl = url.replace(parmKeyValue, parm + value) } } return returnUrl } /** * @method getUrlValue * @description 获取地址栏参数值 * @param name * string * @param url * string * @example: getUrlValue("p","http://www.baidu.com?p=5"); */ export function getUrlValue(url, name) { var str = url || window.location.search; if (str.indexOf("&" + name) != -1 || str.indexOf("?" + name) != -1) { var pos_start = "" if (str.indexOf("?" + name) > -1) pos_start = str.indexOf("?" + name) + name.length + 2; else pos_start = str.indexOf("&" + name) + name.length + 2; var pos_end = str.indexOf("&", pos_start); if (pos_end == -1) { return str.substring(pos_start); } else { return str.substring(pos_start, pos_end) } } else { return ""; } } export function getUrlSearch(url) { var name, value; var str = url; //取得整个地址栏 var num = str.indexOf("?") str = str.substr(num + 1); //取得所有参数 stringvar.substr(start [, length ] var arr = str.split("&"); //各个参数放到数组里 var search ={}; for (var i = 0; i < arr.length; i++) { num = arr[i].indexOf("="); if (num > 0) { name = arr[i].substring(0, num); value = arr[i].substr(num + 1); search[name] = value; } } return search; } /** * var str='这是一个测试的字符串:{0} {1}'.format('Hello','world'); * var str='这是一个测试的字符串:{str0} {str1}'.format({str0:'Hello',str1:'world'}); */ export function strFormat(str, args) { var result = str; if (arguments.length > 0) { if (arguments.length == 2 && typeof (args) == "object") { for (var key in args) { if (args[key] != undefined) { var reg = new RegExp("({" + key + "})", "g"); result = result.replace(reg, args[key]); } } } else { for (var i = 1; i < arguments.length; i++) { if (arguments[i] != undefined) { var reg = new RegExp("({)" + (i - 1) + "(})", "g"); result = result.replace(reg, arguments[i]); } } } } return result; } export function closeWindow(errorUrl){ if (document.all) { if (window.location.pathname == window.parent.location.pathname) { window.opener = null; window.open('', '_top'); window.top.close(); } } else { window.close(); } window.location.href = errorUrl || "about:blank"; }
Show line notes below