import {isURL} from '@tievd/cube-block/lib/utils/validate'
|
import onlineCommons from '@jeecg/antd-online-mini'
|
import getCubeComponentPath from '@tievd/cube-block/lib/utils/cubeComponentPath'
|
|
// 生成首页路由
|
export function generateIndexRouter(data) {
|
let indexRouter = [
|
{
|
path: '/',
|
name: 'dashboard',
|
//component: () => import('@/components/layouts/BasicLayout'),
|
component: resolve => require(['@/components/layouts/TabLayout'], resolve),
|
meta: {title: '首页'},
|
redirect: '/analysisScreen/operationBigdata',
|
children: [...generateChildRouters(data)]
|
},
|
{
|
path: '*',
|
redirect: '/404',
|
hidden: true
|
}
|
]
|
return indexRouter
|
}
|
|
// 生成嵌套路由(子路由)
|
|
function generateChildRouters(data) {
|
const routers = []
|
for (let item of data) {
|
let component = ''
|
if (item.component.indexOf('layouts') >= 0) {
|
component = 'components/' + item.component
|
} else {
|
component = 'views/' + item.component
|
}
|
|
// eslint-disable-next-line
|
let URL = (item.meta.url || '').replace(/{{([^}}]+)?}}/g, (s1, s2) => eval(s2)) // URL支持{{ window.xxx }}占位符变量
|
if (isURL(URL)) {
|
item.meta.url = URL
|
}
|
|
let componentPath
|
if (item.component == 'modules/online/cgform/OnlCgformHeadList') {
|
componentPath = onlineCommons.OnlCgformHeadList
|
} else if (item.component == 'modules/online/cgform/OnlCgformCopyList') {
|
componentPath = onlineCommons.OnlCgformCopyList
|
} else if (item.component == 'modules/online/cgform/auto/OnlCgformAutoList') {
|
componentPath = onlineCommons.OnlCgformAutoList
|
} else if (item.component == 'modules/online/cgform/auto/OnlCgformTreeList') {
|
componentPath = onlineCommons.OnlCgformTreeList
|
} else if (item.component == 'modules/online/cgform/auto/erp/OnlCgformErpList') {
|
componentPath = onlineCommons.OnlCgformErpList
|
} else if (item.component == 'modules/online/cgform/auto/tab/OnlCgformTabList') {
|
componentPath = onlineCommons.OnlCgformTabList
|
} else if (item.component == 'modules/online/cgform/auto/innerTable/OnlCgformInnerTableList') {
|
componentPath = onlineCommons.OnlCgformInnerTableList
|
} else if (item.component == 'modules/online/cgreport/OnlCgreportHeadList') {
|
componentPath = onlineCommons.OnlCgreportHeadList
|
} else if (item.component == 'modules/online/cgreport/auto/OnlCgreportAutoList') {
|
componentPath = onlineCommons.OnlCgreportAutoList
|
} else {
|
componentPath = resolve => require(['@/' + component + '.vue'], resolve)
|
}
|
|
componentPath = getCubeComponentPath(item.component, componentPath)
|
|
let menu = {
|
path: item.path,
|
name: item.name,
|
redirect: item.redirect,
|
component: componentPath,
|
//component: resolve => require(['@/' + component+'.vue'], resolve),
|
hidden: item.hidden,
|
meta: {
|
title: item.meta.title,
|
icon: item.meta.icon,
|
url: item.meta.url,
|
permissionList: item.meta.permissionList,
|
keepAlive: item.meta.keepAlive,
|
/*update_begin author:wuxianquan date:20190908 for:赋值 */
|
internalOrExternal: item.meta.internalOrExternal,
|
/*update_end author:wuxianquan date:20190908 for:赋值 */
|
componentName: item.meta.componentName
|
}
|
}
|
if (item.alwaysShow) {
|
menu.alwaysShow = true
|
menu.redirect = menu.path
|
}
|
if (item.children && item.children.length > 0) {
|
menu.children = [...generateChildRouters(item.children)]
|
}
|
//--update-begin----author:scott---date:20190320------for:根据后台菜单配置,判断是否路由菜单字段,动态选择是否生成路由(为了支持参数URL菜单)------
|
//判断是否生成路由
|
if (item.route && item.route === '0') {
|
//console.log(' 不生成路由 item.route: '+item.route);
|
//console.log(' 不生成路由 item.path: '+item.path);
|
} else {
|
routers.push(menu)
|
}
|
//--update-end----author:scott---date:20190320------for:根据后台菜单配置,判断是否路由菜单字段,动态选择是否生成路由(为了支持参数URL菜单)------
|
}
|
return routers
|
}
|
|
// 去除对象空值
|
export function clearEmptyPro(data) {
|
let curVal;
|
let toString = Object.prototype.toString;
|
let dataType = toString.call(data);
|
if (data || dataType === "[object Number]" || dataType === "[object Boolean]") {
|
switch (dataType) {
|
case "[object Object]":
|
if (Object.keys(data).length > 0) {
|
let momObj = {};
|
for (let key in data) {
|
let value = clearEmptyPro(data[key]);
|
let valueType = toString.call(value);
|
valueType === "[object Boolean]" || valueType === "[object Number]" || value ? momObj[key] = value : "";
|
}
|
curVal = momObj;
|
} else {
|
return;
|
}
|
break;
|
case "[object Array]":
|
if (data.length > 0) {
|
let momValue = [];
|
data.forEach((e) => {
|
let value = clearEmptyPro(e);
|
let valueType = toString.call(value);
|
valueType === "[object Boolean]" || valueType === "[object Number]" || value ? momValue.push(value) : "";
|
});
|
momValue.length > 0 ? curVal = momValue : "";
|
} else {
|
return;
|
}
|
break;
|
case "[object Boolean]":
|
default:
|
curVal = data;
|
break;
|
}
|
} else {
|
return;
|
}
|
return curVal;
|
}
|
|
// 分钟转换 时分
|
export function ChangeHourMinutestr(str) {
|
if (str !== 0 && str !== "" && str !== null && str !== undefined) {
|
let hour = (Math.floor(str / 60)).toString()
|
let minute = (str % 60).toString()
|
return `${hour > 0 ? hour + '小时' : ''}${minute > 0 ? minute + "分钟 " : ""}`
|
} else {
|
return '';
|
}
|
}
|
|
export const validateTxtSpec = (rule, value, callback) => {
|
if (value != null && value !== '') {
|
if (value.indexOf(' ') !== -1) {
|
callback(new Error('不能包含空格'))
|
} else {
|
callback()
|
}
|
} else {
|
callback()
|
}
|
}
|
|
|
export const validateIPAddress = (rule, value, callback) => {
|
if (value == null) {
|
return callback(new Error('IP地址不能为空'));
|
}
|
let regexp = /^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}$/;
|
let valdata = value.split(',');
|
let isCorrect = true;
|
if (valdata.length) {
|
for (let i = 0; i < valdata.length; i++) {
|
if (regexp.test(valdata[i]) == false) {
|
isCorrect = false;
|
}
|
}
|
}
|
if (!isCorrect) {
|
callback(new Error('请输入正确的IP地址'));
|
} else {
|
callback()
|
}
|
}
|