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/Index'),
        children: [
            {
                path: '/',
                name: 'Main',
                component: () => import('@/views/Index/Main.vue'),
                meta: {
                    title: "首页",
                    // clmid: "1",
                }
            }, {
                path: '/member',
                name: 'Member',
                component: () => import('@/views/User/Member.vue'),
                meta: {
                    title: "会员管理",
                    // clmid: "2",
                }
            },
            {
                path: '/tempMember',
                name: 'tempMember',
                component: () => import('@/views/User/tempMember.vue'),
                meta: {
                    title: "临时会员",
                    // clmid: "33",
                }
            },{
                path: '/lesson',
                name: 'Lesson',
                component: () => import('@/views/Class/Lesson.vue'),
                meta: {
                    title: "科目管理",
                    // clmid: "3",
                }
            }, {
                path: '/lessonTableTemplate',
                name: 'lessonTableTemplate',
                component: () => import('@/views/Class/LessonTableTemplate.vue'),
                meta: {
                    title: "课程表模板",
                    // clmid: "4",
                }
            }, {
                path: '/lessonTableTemplateEdit',
                name: 'lessonTableTemplateEdit',
                component: () => import('@/views/SttPlan/LessonTableTemplateEdit.vue'),
                meta: {
                    title: "编辑课程表模板",
                    // clmid: "4",
                }
            }, {
                path: '/lessonTableManage',
                name: 'lessonTableManage',
                component: () => import('@/views/Class/LessonTableManage.vue'),
                meta: {
                    title: "课程表管理",
                    // clmid: "5",
                }
            }, {
                path: '/lessonTableManageEdit',
                name: 'lessonTableManageEdit',
                component: () => import('@/views/SchoolTimeTable/LessonTableManageEdit.vue'),
                meta: {
                    title: "编辑课程表",
                    // clmid: "5",
                }
            }, {
                path: '/adminManage',
                name: 'AdminManage',
                component: () => import('@/views/User/AdminManage.vue'),
                meta: {
                    title: "管理员管理",
                    // clmid: "13",
                }
            }, {
                path: '/log',
                name: 'Log',
                component: () => import('@/views/User/Log.vue'),
                meta: {
                    title: "操作日志",
                    // clmid: "14",
                }
            }, {
                path: '/demoDevice',
                name: 'demoDevice',
                component: () => import('@/views/Shop/demoDevice.vue'),
                meta: {
                    title: "演示设备",
                    // clmid: "15",
                }
            }, {
                path: '/shopManage',
                name: 'ShopManage',
                component: () => import('@/views/Shop/ShopManage.vue'),
                meta: {
                    title: "店面管理",
                    // clmid: "12",
                }
            }, {
                path: '/adminSetting',
                name: 'AdminSetting',
                component: () => import('@/views/Auth/AdminSetting.vue'),
                meta: {
                    title: "系统设置",
                    // clmid: "22",
                }
            }, {
                path: '/coach',
                name: 'coach',
                component: () => import('@/views/Teacher/coach.vue'),
                meta: {
                    title: "教练管理",
                    // clmid: "6",
                }
            }, {
                path: '/appoint',
                name: 'appoint',
                component: () => import('@/views/Order/appoint.vue'),
                meta: {
                    title: "预约管理",
                    // clmid: "7",
                }
            }, {
                path: '/record',
                name: 'record',
                component: () => import('@/views/Other/record.vue'),
                meta: {
                    title: "预约记录",
                    // clmid: "8",
                }
            }, {
                path: '/cost',
                name: 'cost',
                component: () => import('@/views/User/cost.vue'),
                meta: {
                    title: "消费记录",
                    // clmid: "9",
                }
            }, {
                path: '/setting',
                name: 'setting',
                component: () => import('@/views/Auth/setting.vue'),
                meta: {
                    title: "系统设置",
                    // clmid: "22",
                }
            }, {
                path: '/finish',
                name: 'finish',
                component: () => import('@/views/SchoolTimeTable/finish.vue'),
                meta: {
                    title: "下课管理",
                    // clmid: "10",
                }
            }, {
                path: '/finishDetail',
                name: 'finishDetail',
                component: () => import('@/views/SchoolTimeTable/finishDetail.vue'),
                meta: {
                    title: "下课管理",
                    // clmid: "10",
                }
            }, {
                path: '/courses',
                name: 'courses',
                component: () => import('@/views/SchoolTimeTable/courses.vue'),
                meta: {
                    title: "课程管理",
                    // clmid: "10",
                }
            },{
                path: '/coursesHistory',
                name: 'coursesHistory',
                component: () => import('@/views/SchoolTimeTable/coursesHistory.vue'),
                meta: {
                    title: "课程管理 历史记录",
                    // clmid: "10",
                }
            }, {
                path: '/classPrepare',
                name: 'classPrepare',
                component: () => import('@/views/Class/classPrepare.vue'),
                meta: {
                    title: "准备上课",
                    // clmid: "10",
                }
            }, {
                path: '/classInfoDetail',
                name: 'classInfoDetail',
                component: () => import('@/views/Class/classInfoDetail.vue'),
                meta: {
                    title: "课程成绩",
                    // clmid: "10",
                }
            }, {
                path: '/courseEdit',
                name: 'courseEdit',
                component: () => import('@/views/SchoolTimeTable/courseEdit.vue'),
                meta: {
                    title: "课程管理",
                    // clmid: "10",
                }
            }, {
                path: '/heartEquip',
                name: 'heartEquip',
                component: () => import('@/views/HrSensors/heartEquip.vue'),
                meta: {
                    title: "心率设备",
                    // clmid: "10",
                }
            }, {
                path: '/heartEquipPerson',
                name: 'heartEquipPerson',
                component: () => import('@/views/HrSensors/heartEquipPerson.vue'),
                meta: {
                    title: "私有心率设备",
                    // clmid: "10",
                }
            }, {
                path: '/heartLog',
                name: 'heartLog',
                component: () => import('@/views/Shop/heartLog.vue'),
                meta: {
                    title: "设备记录",
                    // clmid: "10",
                }
            }, {
                path: '/bindRecord',
                name: 'bindRecord',
                component: () => import('@/views/HrSensors/bindRecord.vue'),
                meta: {
                    title: "绑定记录",
                    // clmid: "10",
                }
            }, {
                path: '/region',
                name: 'region',
                component: () => import('@/views/Shop/region.vue'),
                meta: {
                    title: "区域管理",
                    // clmid: "10",
                }
            },{
                path: '/test',
                name: 'Test',
                component: () => import('@/views/Other/Test.vue'),
                meta: {
                    title: "test",
                    // clmid: "10",
                }
            }, {
                path: '/regionEquip',
                name: 'regionEquip',
                component: () => import('@/views/User/regionEquip.vue'),
                meta: {
                    title: "区域设备",
                    // clmid: "10",
                }
            }, {
                path: '/relevancePhone',
                name: 'relevancePhone',
                component: () => import('@/views/User/relevancePhone.vue'),
                meta: {
                    title: "关联手机",
                    // clmid: "2",
                }
            },{
                path: '/AcrossVip',
                name: 'AcrossVip',
                component: () => import('@/views/User/AcrossVip.vue'),
                meta: {
                    title: "跨店会员",
                    // clmid: "11",
                }
            },{
                path: '/online',
                name: 'online',
                component: () => import('@/views/Shop/online.vue'),
                meta: {
                    title: "在线上课",
                    // clmid: "3",
                }
            },{
                path: '/versionControlMefisto',
                name: 'versionControlMefisto',
                component: () => import('@/views/Other/versionControlMefisto.vue'),
                meta: {
                    title: "app版本控制",
                    // clmid: "999",
                }
            },{
                path: '/versionControlVideo',
                name: 'versionControlVideo',
                component: () => import('@/views/Other/versionControlVideo.vue'),
                meta: {
                    title: "视频app版本控制",
                    // clmid: "999",
                }
            },{
                path: '/classTime',
                name: 'classTime',
                component: () => import('@/views/Class/ClassTime.vue'),
                meta: {
                    title: "课时管理",
                    // clmid: "999",
                }
            }, {
                path: '/classChange',
                name: 'classChange',
                component: () => import('@/views/Class/classChange.vue'),
                meta: {
                    title: "课时调整",
                    // clmid: "999",
                }
            }, {
                path: '/videoClass',
                name: 'videoClass',
                component: () => import('@/views/Class/videoClass.vue'),
                meta: {
                    title: "视频上课",
                    // clmid: "999",
                }
            }, {
                path: '/grpcDemo',
                name: 'grpcDemo',
                component: () => import('@/views/Class/grpcDemo.vue'),
                meta: {
                    title: "grpcDemo",
                    // clmid: "999",
                }
            },
        ]
    }, {
        path: '/login',
        name: 'Login',
        component: () => import( '../views/Auth/Login.vue')
    }, , {
        path: '*',
        name: '404',
        component: () => import( '../views/Auth/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
