import Vue from 'vue'
import Router from 'vue-router'


const originalPush = Router.prototype.push;
Router.prototype.push = function push(location) {
    return originalPush.call(this, location).catch(err => err);
}

Vue.use(Router)

export default new Router({
    routes: [
        {
            path: '/404',
            component: () => import('@/views/404')
        },
        {
            path: '/',
            component: () => import('@/views/Index'),
            children: [
                {
                    path: 'graphModel',
                    component: () => import('@/components/menus/GraphModel')
                },
                {
                    path: 'graphModel_g',
                    component: () => import('@/components/graph/GraphModel')
                },
                {
                    path: 'graphImport',
                    component: () => import('@/components/menus/GraphImport')
                },
                {
                    path: 'graphSpaceSet',
                    component: () => import('@/components/menus/GraphSpaceSet')
                },
                {
                    path: 'graphSpace_g',
                    component: () => import('@/components/graph/GraphSpace')
                },
                {
                    path: 'graph_x6',
                    component: () => import('@/components/graph/Graph_x6')
                },
                {
                    path: 'textTag',
                    component: () => import('@/components/menus/TextTag')
                },
                {
                    path: 'dataSetManage',
                    component: () => import('@/components/menus/DataSetManage')
                },
                {
                    path: 'dataSetCompare',
                    component: () => import('@/components/menus/DataSetCompare')
                },
                {
                    path: 'algorithmSpeedVerification',
                    component: () => import('@/components/menus/AlgorithmSpeedVerification')
                },
                {
                    path: 'noumenonModelImport',
                    component: () => import('@/components/menus/NoumenonModelImport')
                },
                {
                    path: 'dataRepeatRate',
                    component: () => import('@/components/menus/DataRepeatRate')
                },
                {
                    path: 'knowledgeFusion',
                    component: () => import('@/components/menus/KnowledgeFusion')
                },
                {
                    path: 'graphAssessment',
                    component: () => import('@/components/menus/GraphAssessment')
                },
                {
                    path: 'reasonGraph',
                    component: () => import('@/components/menus/ReasonGraph')
                },
                {
                    path: 'graphRelation',
                    component: () => import('@/components/menus/GraphRelation')
                },
                {
                    path: 'graphPath',
                    component: () => import('@/components/menus/GraphPath')
                },
                {
                    path: 'knowledgeQuestion',
                    component: () => import('@/components/menus/KnowledgeQuestion')
                },
                {
                    path: 'graphRecommend',
                    component: () => import('@/components/menus/GraphRecommend')
                },
                {
                    path: 'graphShow',
                    component: () => import('@/components/menus/GraphShow')
                },
                {
                    path: 'graphExhibition',
                    component: () => import('@/components/menus/GraphExhibition')
                },

                {
                    path: 'algorithmPublishing',
                    component: () => import('@/components/menus/AlgorithmPublishing')
                },
                {
                    path: 'codeWarehouse',
                    component: () => import('@/components/menus/CodeWarehouse')
                },
                {
                    path: 'modelManage',
                    component: () => import('@/components/menus/ModelManage')
                },
                {
                    path: 'nodeManage',
                    component: () => import('@/components/menus/NodeManage')
                },
                {
                    path: 'serviceManage',
                    component: () => import('@/components/menus/ServiceManage')
                },
                {
                    path: 'graphSpaceManage',
                    component: () => import('@/components/menus/GraphSpaceManage')
                },
                {
                    path: '/',
                    redirect: "graphModel"
                },
            ]
        },
        {
            path: '/614',
            component: () => import('@/views/Index'),
            children: [
                {
                    path: 'indexPage',
                    component: () => import('@/components/menus/614/IndexPage')
                },
                {
                    path: 'infoExtract',
                    component: () => import('@/components/menus/614/InfoExtract')
                },
                {
                    path: 'linkPrediction',
                    component: () => import('@/components/menus/614/LinkPrediction')
                },
                {
                    path: 'infoConverge',
                    component: () => import('@/components/menus/614/InfoConverge')
                },
                {
                    path: 'auxiliaryMaintenance',
                    component: () => import('@/components/menus/614/AuxiliaryMaintenance')
                },
                {
                    path: 'riskPrediction',
                    component: () => import('@/components/menus/614/RiskPrediction')
                },
            ]
        },
        {
            path: '/login',
            name: 'Login',
            component: () => import('@/views/Login'),
        },
        {path: '*', redirect: '/404'}
    ],
    mode: "hash"
})
