import router from '@/router';
|
export const getPortFromUrl=(url) =>{
|
try {
|
const portPattern = /:\d+/;
|
const urlObj = new URL(url);
|
const portMatch = portPattern.exec(urlObj.host)[0].slice(1); // 去掉冒号
|
return parseInt(portMatch, 10); // 转换为整数
|
} catch (error) {
|
console.error(error.message);
|
return null;
|
}
|
};
|
export const doHostName=(hostname)=>{
|
/* if(hostname.includes('localhost')){
|
return hostname;
|
}*/
|
return hostname.substring(hostname.indexOf(".")+1);
|
};
|
export const getApsPage = () => {
|
// 首页部署在各个环境的端口
|
/* const loginPathMap = {
|
prod:`//${window.location.hostname}:9080`,
|
test:`//192.168.20.119:9080`,
|
// 想跳到本地启动的登录页的话需要把dev改成你本地项目路径
|
dev: `//192.168.8.112:8080`
|
};*/
|
//return loginPathMap[environmentType()]
|
let port=getPortFromUrl(window.location.href);//获得端口号
|
let hostname=window.location.hostname;// 一级域名
|
if(hostname.includes('fai365.com')||hostname.includes('smartai.com')||hostname.includes('navicat.com')) {// 代表存在域名
|
hostname='aps.'+doHostName(hostname);
|
}
|
if(hostname.includes('localhost')){
|
port=process.env.VUE_APP_APS_PORT;//端口号与 .env.development 中 VUE_APP_APS_PORT 跟本地aps项目的端口号保持一致
|
}
|
if(router.mode==='history'){
|
if(port){
|
return `${hostname}:${port}`;
|
}else{
|
return `${hostname}`;
|
}
|
}else{
|
if(port){
|
return `${hostname}:${port}`+'/#';
|
}else{
|
return `${hostname}`+'/#';
|
}
|
}
|
};
|
/**
|
* @param dataList 原列表数据
|
* @param childFieldName 子级属性名称
|
* @param pIdFieldName 关联上级节点属性名称
|
* @param idFieldName 节点属性名称
|
* @param rootValue 根节点的值(一般是小于等于0数)
|
* */
|
export const getTreeData=(dataList,childFieldName='children',pIdFieldName='parentId',idFieldName = 'id',rootValue=0)=>{
|
const rootArr=[];
|
//1.先获取根节点列表
|
dataList.forEach(item=>{
|
if(item[pIdFieldName]===rootValue){//是根节点
|
//1.1 递归获取根节点的所有下级节点
|
const children= getChildrenNode(item[idFieldName],dataList);
|
if(Array.isArray(children)&&children.length>0){
|
item[childFieldName]=children;
|
}
|
rootArr.push(item)
|
}
|
});
|
//2.递归获取根节点的所有下级节点
|
function getChildrenNode(parentId,dataList) {
|
//1.根据根节点获取 子节点列表
|
const childrenArr=dataList.filter(item=>parentId===item[pIdFieldName]);
|
//2.孩子有可能还有孩子 遍历孩子进行重新递归
|
childrenArr.forEach(item=>{
|
const children=getChildrenNode(item[idFieldName],dataList);
|
if(children.length>0){
|
item[childFieldName]=children;
|
}
|
});
|
return childrenArr;
|
}
|
return rootArr;
|
};
|