import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) const whiteList = [ '/login', // 登录页面 '/register', // 注册页面 // ...其他不需要登录的路由 ]; const router = new Router({ mode: 'history', // 使用history模式 routes: [ { path: '/home', name: 'home', component: () => import('@/pages/home/home.vue'), meta: { navigationStyle: 'custom' } }, { path: '/login', name: 'login', component: () => import('@/pages/login/login.vue'), meta: { navigationBarTitleText: '登录', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/my', name: 'my', component: () => import('@/pages/my/my.vue'), meta: { navigationStyle: 'custom' } }, { path: '/apply', name: 'apply', component: () => import('@/pages/apply/apply.vue'), meta: { navigationBarTitleText: '申请记录', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/shops', name: 'shops', component: () => import('@/pages/shops/shops.vue'), meta: { navigationBarTitleText: '租商铺', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/applyDetail', name: 'applyDetail', component: () => import('@/pages/applyDetail/applyDetail.vue'), meta: { navigationBarTitleText: '详情', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/message', name: 'message', component: () => import('@/pages/message/message.vue'), meta: { navigationStyle: 'custom' } }, { path: '/field', name: 'field', component: () => import('@/pages/field/field.vue'), meta: { navigationBarTitleText: '租场地', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/advertisement', name: 'advertisement', component: () => import('@/pages/advertisement/advertisement.vue'), meta: { navigationBarTitleText: '租广告', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/details', name: 'details', component: () => import('@/pages/details/details.vue'), meta: { navigationBarTitleText: '详情', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/leaseAdd', name: 'leaseAdd', component: () => import('@/pages/leaseAdd/leaseAdd.vue'), meta: { navigationBarTitleText: '申请租赁', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/recordService', name: 'recordService', component: () => import('@/pages/recordService/recordService.vue'), meta: { navigationBarTitleText: '服务记录', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/activityAdd', name: 'activityAdd', component: () => import('@/pages/activityAdd/activityAdd.vue'), meta: { navigationBarTitleText: '活动申请', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/complaint', name: 'complaint', component: () => import('@/pages/complaint/complaint.vue'), meta: { navigationBarTitleText: '投诉建议', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/repair', name: 'repair', component: () => import('@/pages/repair/repair.vue'), meta: { navigationBarTitleText: '故障报修', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/advertisementTime', name: 'advertisementTime', component: () => import('@/pages/advertisementTime/advertisementTime.vue'), meta: { navigationBarTitleText: '租赁时段选择', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/advertisementAdd', name: 'advertisementAdd', component: () => import('@/pages/advertisementAdd/advertisementAdd.vue'), meta: { navigationBarTitleText: '申请', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/participation', name: 'participation', component: () => import('@/pages/participation/participation.vue'), meta: { navigationBarTitleText: '活动参与', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/questionnaire', name: 'questionnaire', component: () => import('@/pages/questionnaire/questionnaire.vue'), meta: { navigationBarTitleText: '问卷调查', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/createQuestionnaire', name: 'createQuestionnaire', component: () => import('@/pages/createQuestionnaire/createQuestionnaire.vue'), meta: { navigationBarTitleText: '创建问卷', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/mycreated', name: 'mycreated', component: () => import('@/pages/mycreated/mycreated.vue'), meta: { navigationBarTitleText: '我创建的活动', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/record', name: 'record', component: () => import('@/pages/record/record.vue'), meta: { navigationBarTitleText: '申请记录', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/accepting', name: 'accepting', component: () => import('@/pages/accepting/accepting.vue'), meta: { navigationBarTitleText: '详情', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/servicerecords', name: 'servicerecords', component: () => import('@/pages/servicerecords/servicerecords.vue'), meta: { navigationBarTitleText: '服务记录', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/servicedetails', name: 'servicedetails', component: () => import('@/pages/servicedetails/servicedetails.vue'), meta: { navigationBarTitleText: '详情', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/application', name: 'application', component: () => import('@/pages/application/application.vue'), meta: { navigationBarTitleText: '推广方案申请', navigationBarBackgroundColor: '#FFFFFF' } }, { path: '/projectManagement', name: 'projectManagement', component: () => import('@/pages/projectManagement/projectManagement.vue'), meta: { navigationBarTitleText: '推广方案管理', navigationBarBackgroundColor: '#FFFFFF' } }, // ...其他路由配置 { path: '/mycreated', name: 'mycreated', component: () => import('@/pages/mycreated/mycreated.vue'), meta: { navigationBarTitleText: '我创建的活动', navigationBarBackgroundColor: '#FFFFFF' } }, // ...其他路由配置 ] }) router.beforeEach((to, from, next) => { // 检查目标页面是否在白名单中 let token = uni.getStorageSync('token'); if (whiteList.includes(to.path)) { // 如果在白名单中,直接放行 next(); } else { // 如果不在白名单中,检查用户是否登录 if (token) { // 如果已登录,继续跳转到目标页面 next(); } else { // 如果未登录,跳转到登录页面 next({ path: '/login' }); } } }); export default router