| New file |
| | |
| | | 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; |
| | | }; |
| | | |
| | | |