routes.js 5.2 KB
import Login from './views/Login.vue'
import NotFound from './views/404.vue'
import Home from './views/Home.vue'
import Main from './views/Main.vue'
// import Table from './views/nav1/Table.vue'
import Role from './views/nav1/role.vue'
import Perm from './views/nav1/perm.vue'
import LOG from './views/nav1/Log.vue'
import PreManifest from './views/agent/PreManifest.vue'
import OrgManifest from './views/nmms/orgManifest.vue'
import ExitFlight from './views/nmms/ExitFlight.vue'
import ExitPre from './views/nmms/ExitPre.vue'
import ExitTidy from './views/nmms/ExitTidy.vue'
import ExitArrive from './views/nmms/ExitArrive.vue'
import ExitManifest from './views/nmms/ExitManifest.vue'
import ExitLoading from './views/nmms/ExitLoading.vue'
import ExitFlightDesc from './views/nmms/ExitFlightDesc.vue'
import LostLoad from './views/lostLoadChange/lostLoading.vue'
import LostLoadChange from './views/lostLoadChange/lostLoadChange.vue'


import User from './views/nav1/user.vue'
import Page4 from './views/nav2/Page4.vue'
import Page5 from './views/nav2/Page5.vue'
import Page6 from './views/nav3/Page6.vue'
import echarts from './views/charts/echarts.vue'

let routes = [
    {
        path: '/login',
        component: Login,
        name: '登录',
        hidden: true
    },
    {
        path: '/404',
        component: NotFound,
        name: '错误',
        hidden: true
    },
    {
        path: '/',
        component: Home,
        name: '主页',
        leaf: true,
        iconCls: 'el-icon-menu',
        children: [
            {path: '/main', component: Main, name: '首页'},
        ]
    },
    // { path: '/test', component: Main },
    {
        path: '/admin',
        component: Home,
        name: '系统设置',
        iconCls: 'el-icon-setting',//图标样式class
        children: [
            {path: '/user', component: User, name: '用户管理'},
            {path: '/role', component: Role, name: '角色管理'},
            {path: '/perm', component: Perm, name: '权限管理'},
            {path: '/log', component: LOG, name: '系统日志'},
        ]
    },
    {
        path: '/agent',
        component: Home,
        name: '代理人',
        iconCls: 'fa fa-id-card-o',
        children: [
            {path: '/pre1', component: PreManifest, name: '预配'},
        ]
    },
    {
        path: '/output',
        component: Home,
        name: '出港业务申报',
        iconCls: 'el-icon-collection',
        children: [
            {path: '/flight', component: ExitFlight, name: '出港航班申报'},
            {path: '/manifest', component: ExitManifest, name: '出港运单申报'},
            {path: '/pre', component: ExitPre, name: '出港预配舱单'},
            {path: '/arrive', component: ExitArrive, name: '出港运抵'},
            {path: '/loadingView', component: ExitFlightDesc, name: '出港航班信息'},
            {path: '/loading', component: ExitLoading, name: '出港装载'},
            {path: '/tidy', component: ExitTidy, name: '出港理货'}
        ]
    },
    {
        path: '/lost',
        component: Home,
        name: '落装改配申报',
        iconCls:'el-icon-goods',
        children:[
            {path:'/lostLoad',component:LostLoad,name:'落装业务申报'},
            // {path:'/lostLoadChange',component:LostLoadChange,name:'改配业务申报'}
        ]
    },
    {
        path: '/',
        component: Home,
        name: '导航二',
        iconCls: 'fa fa-id-card-o',
        children: [
            {path: '/page4', component: Page4, name: '页面4'},
            {path: '/page5', component: Page5, name: '页面5'}
        ]
    },
    {
        path: '/',
        component: Home,
        name: '导航三',
        iconCls: 'fa fa-address-card',
        leaf: true,//只有一个节点
        children: [
            {path: '/page6', component: Page6, name: '导航三'}
        ]
    },
    {
        path: '/',
        component: Home,
        name: 'Charts',
        iconCls: 'fa fa-bar-chart',
        children: [
            {path: '/echarts', component: echarts, name: 'echarts'}
        ]
    },
    {
        path: '*',
        hidden: true,
        redirect: {path: '/404'}
    }
];
let initRouters = routes.concat();
let setUserMenus = function (list) {
    routes = list;
}
/**
 * 处理登陆后的账号对应的菜单
 * @param menuList
 */
let handleMenuList = function (router, menu) {
    var _self = this;
    var routerName = "";
    router.forEach(function (v_router) {
        routerName = v_router.name;
        menu.forEach(function (v_menu) {
            //查找返回的目录列表是否包含路由名称,有就返回匹配到的元素,没有就移除
            let result = menu.find(item => {
                return item.name === routerName;
            });

            //匹配到继续判断是否子元素,有子元素继续递归
            if (result) {
                if (v_router.children) {
                    _self.handleMenuList(v_router.children, result.children);
                }
                //没有则可以移除
            } else {
                router.splice(router.findIndex(itm => itm.name === routerName), 1);
            }
        })
    });
}
export default {
    routes, setUserMenus, handleMenuList, initRouters
};