blob: a5b1afe0cede7069d7ee21b5184c36d5caf303ac [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import Vue from 'vue';
import Router, { RouteConfig } from 'vue-router';
// import Login from './views/containers/login.vue';
import Index from './views/containers/index.vue';
Vue.use(Router);
window.axiosCancel = [];
export const routes: RouteConfig[] = [
// {
// path: '/login',
// component: Login,
// meta: { login: true },
// },
{
path: '',
component: Index,
children: [
{
path: '/',
component: () => import('./views/containers/dashboard.vue'),
meta: { icon: 'chart', title: 'dashboard', exact: true },
},
{
path: 'topology',
component: () => import('./views/containers/topology/topology.vue'),
meta: { icon: 'issues', title: 'topology', exact: false },
},
{
name: 'trace',
path: 'trace',
component: () => import('./views/containers/trace.vue'),
props: true,
meta: { icon: 'merge', title: 'trace', exact: false },
},
{
path: 'profile',
component: () => import('./views/containers/profile.vue'),
meta: { icon: 'timeline', title: 'profile', exact: false },
},
{
path: 'log',
component: () => import('./views/containers/log.vue'),
meta: { icon: 'assignment', title: 'log', exact: false },
},
{
path: 'alarm',
component: () => import('./views/containers/alarm.vue'),
meta: { icon: 'spam', title: 'alarm', exact: false },
},
{
path: 'event',
component: () => import('./views/containers/event.vue'),
meta: { icon: 'storage', title: 'event', exact: false },
},
{
path: 'debug',
component: () => import('./views/containers/debug.vue'),
meta: { icon: 'library_books', title: 'debug', exact: false },
},
],
},
];
const router = new Router({
mode: 'history',
base: process.env.BASE_URL,
linkActiveClass: 'active',
routes,
});
router.beforeEach((to, from, next) => {
const token = window.localStorage.getItem('skywalking-authority');
if (window.axiosCancel.length !== 0) {
for (const func of window.axiosCancel) {
setTimeout(func(), 0);
}
window.axiosCancel = [];
}
// if (to.meta.login && (token === null || token === 'guest')) {
// next();
// } else if (token === null || token === 'guest') {
// next('/login');
// } else if (to.meta.login) {
// next(from.path);
// } else {
// next();
// }
next();
});
export default router;