import Vue from 'vue'
import VueRouter from 'vue-router'
// 加载条
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import VueAMap from 'vue-amap';

Vue.use(VueRouter);
// Vue.use(VueAMap);

// VueAMap.initAMapApiLoader({
//     key: 'your amap key',
//     plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor'],
//     // 默认高德 sdk 版本为 1.4.4
//     v: '1.4.4'
// });

const routes = [
    {
        path: '/',
        component: () => import( '../views/Index.vue'),
        children: [
            {
                path: '/',
                name: 'Main',
                component: () => import('@/views/Main.vue'),
                meta: {
                    title: "首页",
                }
            },{
                path: '/member',
                name: 'Member',
                component: () => import('@/views/Member.vue'),
                meta: {
                    title: "会员管理",
                }
            },{
                path: '/lesson',
                name: 'Lesson',
                component: () => import('@/views/Lesson.vue'),
                meta: {
                    title: "课程模板",
                }
            },{
                path: '/lessonTable',
                name: 'lessonTable',
                component: () => import('@/views/LessonTable.vue'),
                meta: {
                    title: "课程表模板",
                }
            },{
                path: '/editLessonTable',
                name: 'EditLessonTable.vue',
                component: () => import('@/views/EditLessonTable.vue'),
                meta: {
                    title: "编辑课程表模板",
                }
            },{
                path: '/adminManage',
                name: 'AdminManage',
                component: () => import('@/views/AdminManage.vue'),
                meta: {
                    title: "用户管理",
                }
            },{
                path: '/log',
                name: 'Log',
                component: () => import('@/views/Log.vue'),
                meta: {
                    title: "操作日志",
                }
            },{
                path: '/shopManage',
                name: 'ShopManage',
                component: () => import('@/views/ShopManage.vue'),
                meta: {
                    title: "店面管理",
                }
            },{
                path: '/adminSetting',
                name: 'AdminSetting',
                component: () => import('@/views/AdminSetting.vue'),
                meta: {
                    title: "系统设置",
                }
            },{
                path: '/lessonManage',
                name: 'lessonManage',
                component: () => import('@/views/lessonManage.vue'),
                meta: {
                    title: "课程表管理",
                }
            },{
                path: '/yhgl',
                name: 'Yhgl',
                component: () => import('@/views/Yhgl.vue'),
                meta: {
                    title: "用户管理",
                }
            },{
                path: '/mockPage',
                name: 'MockPage',
                component: () => import('@/views/MockPage.vue'),
                meta: {
                    title: "用户管理",
                }
            },{
                path: '/chart',
                name: 'Chart',
                component: () => import('@/views/Chart.vue'),
                meta: {
                    title: "图表效果",
                }
            },{
                path: '/test',
                name: 'Test',
                component: () => import('@/views/Test.vue'),
                meta: {
                    title: "Test",
                }
            },{
                path: '/aboutUs',
                name: 'AboutUs',
                component: () => import('@/views/AboutUs.vue'),
                meta: {
                    title: "关于我们",
                }
            },{
                path: '/pwd',
                name: 'Pwd',
                component: () => import('@/views/Pwd.vue'),
                meta: {
                    title: "密码修改",
                }
            },{
                path: '/basic',
                name: 'Basic',
                component: () => import('@/views/Basic.vue'),
                meta: {
                    title: "基本设置",
                }
            },{
                path: '/upload',
                name: 'Upload',
                component: () => import('@/views/Upload.vue'),
                meta: {
                    title: "上传文件",
                }
            },
        ]
    }, {
        path: '/login',
        name: 'Login',
        component: () => import( '../views/Login.vue')
    },, {
        path: '*',
        name: '404',
        component: () => import( '../views/404.vue')
    },
]

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

const router = new VueRouter({
    mode: 'history',
    base: process.env.BASE_URL,
    routes
});

// 路由守卫
router.beforeEach((to,from,next)=>{
    NProgress.start()
    const isLogin = localStorage.token? true : false;
    if(to.path == '/login' || to.path == '/register'){//'login'和'register'相当于是路由白名单
        next();
    }else{
        //如果token存在，就正常跳转，如果不存在，则说明未登陆，则跳转到'login'
        isLogin? next() : next("/login");
    }
});

router.afterEach(() => {
    NProgress.done()
})

export default router
