import Vue from 'vue' import VueRouter from 'vue-router' import Layout from '@/views/layout/layout.vue' import Login from '@/views/user/login/Login.vue' Vue.use(VueRouter) const routes = [ { path: '/', component: Layout, redirect: '/views/index/index', children: [ { path: '/views/index/index', name: '/views/index/index', component: () => import('@/views/index/index.vue') }, { path: '/pages/dev/appManage', name: '/pages/dev/appManage', component: () => import('@/views/dev/app/appList.vue') }, { path: '/pages/dev/serviceManage', name: '/pages/dev/serviceManage', component: () => import('@/views/dev/serviceList.vue') }, { path: '/pages/dev/serviceRegisterManage', name: '/pages/dev/serviceRegisterManage', component: () => import('@/views/dev/routeList.vue') }, { path: '/views/dev/addRoute', name: '/views/dev/addRoute', component: () => import('@/views/dev/addRoute.vue') }, { path: '/pages/dev/serviceImplManage', name: '/pages/dev/serviceImplManage', component: () => import('@/views/dev/serviceBusinessList.vue') }, { path: '/pages/dev/businessTableHisManage', name: '/pages/dev/businessTableHisManage', component: () => import('@/views/dev/businessTableHisList.vue') }, { path: '/pages/dev/menuCatalogManage', name: '/pages/dev/menuCatalogManage', component: () => import('@/views/dev/menuCatalogList.vue') }, { path: '/views/dev/menuGroupCatalogList', name: '/views/dev/menuGroupCatalogList', component: () => import('@/views/dev/menuGroupCatalogList.vue') }, { path: '/pages/dev/menuGroupManage', name: '/pages/dev/menuGroupManage', component: () => import('@/views/dev/menuGroupList.vue') }, { path: '/pages/dev/mappingDomainManage', name: '/pages/dev/mappingDomainManage', component: () => import('@/views/dev/mappingDomainList.vue') }, { path: '/pages/dev/mappingManage', name: '/pages/dev/mappingManage', component: () => import('@/views/dev/mappingList.vue') }, { path: '/pages/dev/businessDatabusManage', name: '/pages/dev/businessDatabusManage', component: () => import('@/views/dev/businessDatabusList.vue') }, { path: '/pages/dev/dictManage', name: '/pages/dev/dictManage', component: () => import('@/views/dev/dictList.vue') }, { path: '/pages/dev/cacheManage', name: '/pages/dev/cacheManage', component: () => import('@/views/dev/cacheList.vue') }, { path: '/pages/dev/menuManage', name: '/pages/dev/menuManage', component: () => import('@/views/dev/menuList.vue') }, { path: '/views/dev/privilegeList', name: '/views/dev/privilegeList', component: () => import('@/views/dev/privilegeList.vue') }, { path: '/pages/frame/changeStaffPwd', name: '/pages/frame/changeStaffPwd', component: () => import('@/views/user/login/updatePwd.vue') }, { path: '/pages/dev/jobManage', name: '/pages/dev/jobManage', component: () => import('@/views/dev/taskList.vue') }, { path: '/pages/dev/attrSpecManage', name: '/pages/dev/attrSpecManage', component: () => import('@/views/dev/attrSpecList.vue') }, { path: '/views/dev/attrValueList', name: '/pages/dev/attrValueList', component: () => import('@/views/dev/attrValueList.vue') }, { path: '/pages/frame/orgManage', name: '/pages/frame/orgManage', component: () => import('@/views/org/orgList.vue') }, { path: '/pages/frame/staff', name: '/pages/frame/staff', component: () => import('@/views/staff/staffList.vue') }, { path: '/views/staff/addStaff', name: '/views/staff/addStaff', component: () => import('@/views/staff/addStaff.vue') }, { path: '/pages/frame/role', name: '/pages/frame/role', component: () => import('@/views/role/roleList.vue') }, { path: '/views/staff/staffDetailList', name: '/views/staff/staffDetailList', component: () => import('@/views/staff/staffDetailList.vue') }, { path: '/pages/dev/reportCustomGroupManage', name: '/pages/dev/reportCustomGroupManage', component: () => import('@/views/report/reportCustomGroupManageList.vue') }, { path: '/pages/dev/reportCustomManage', name: '/pages/dev/reportCustomManage', component: () => import('@/views/report/reportCustomManageList.vue') }, { path: '/pages/dev/reportCustomComponentManage', name: '/pages/dev/reportCustomComponentManage', component: () => import('@/views/report/reportCustomComponentManageList.vue') }, { path: '/pages/dev/transactionLogManage', name: '/pages/dev/transactionLogManage', component: () => import('@/views/log/transactionLogManageList.vue') }, { path: '/pages/log/mqttLog', name: '/pages/log/mqttLog', component: () => import('@/views/log/mqttLogList.vue') }, { path: '/pages/frame/systemInfoManage', name: '/pages/frame/systemInfoManage', component: () => import('@/views/system/systemInfoManageList.vue') }, { path: '/pages/frame/registerProtocol', name: '/pages/frame/registerProtocol', component: () => import('@/views/system/registerProtocolList.vue') }, { path: '/pages/dev/initializeCommunityManage', name: '/pages/dev/initializeCommunityManage', component: () => import('@/views/community/initializeCommunityManageList.vue') }, { path: '/pages/dev/serviceProvideManage', name: '/pages/dev/serviceProvideManage', component: () => import('@/views/dev/serviceProvideManageList.vue') }, { path: '/views/dev/devServiceProvide', name: '/views/dev/devServiceProvide', component: () => import('@/views/dev/devServiceProvideList.vue') }, { path: '/views/report/reportCustomComponentRelManage', name: '/views/report/reportCustomComponentRelManage', component: () => import('@/views/report/reportCustomComponentRelManageList.vue') }, { path: '/views/report/componentConditionManage', name: '/views/report/componentConditionManage', component: () => import('@/views/report/componentConditionManageList.vue') }, { path: '/views/report/reportCustomComponentFooterManage', name: '/views/report/reportCustomComponentFooterManage', component: () => import('@/views/report/reportCustomComponentFooterManageList.vue') }, { path: '/pages/dev/transactionOutLog', name: '/pages/dev/transactionOutLog', component: () => import('@/views/log/transactionOutLogList.vue') }, { path: '/pages/common/communityManage', name: '/pages/common/communityManage', component: () => import('@/views/community/communityManageList.vue') }, { path: '/pages/admin/propertyCompanyManage', name: '/pages/admin/propertyCompanyManage', component: () => import('@/views/store/propertyCompanyManageList.vue') }, { path: '/views/community/propertyCommunity', name: '/views/community/propertyCommunity', component: () => import('@/views/community/propertyCommunityList.vue') }, { path: '/pages/community/cityArea', name: '/pages/community/cityArea', component: () => import('@/views/community/cityAreaList.vue') }, { path: '/pages/admin/merchantManage', name: '/pages/admin/merchantManage', component: () => import('@/views/mall/merchantManageList.vue') }, { path: '/pages/admin/shopManage', name: '/views/mall/shopManage', component: () => import('@/views/mall/shopManageList.vue') }, { path: '/pages/admin/shopCommunity', name: '/pages/admin/shopCommunity', component: () => import('@/views/mall/shopCommunityList.vue') }, { path: '/pages/staff/systemUser', name: '/pages/staff/systemUser', component: () => import('@/views/staff/systemUserList.vue') }, { path: '/views/staff/systemUserDetail', name: '/views/staff/systemUserDetail', component: () => import('@/views/staff/systemUserDetailList.vue') }, { path: '/pages/staff/storeStaff', name: '/pages/staff/storeStaff', component: () => import('@/views/staff/storeStaffList.vue') }, { path: '/views/staff/adminStaffDetail', name: '/views/staff/adminStaffDetail', component: () => import('@/views/staff/adminStaffDetail.vue') }, { path: '/pages/community/adminRoom', name: '/pages/community/adminRoom', component: () => import('@/views/community/adminRoomList.vue') }, { path: '/pages/owner/adminOwner', name: '/pages/owner/adminOwner', component: () => import('@/views/owner/adminOwnerList.vue') }, { path: '/pages/car/adminCar', name: '/pages/car/adminCar', component: () => import('@/views/car/adminCarList.vue') }, { path: '/pages/owner/adminAuthOwner', name: '/pages/owner/adminAuthOwner', component: () => import('@/views/owner/adminAuthOwnerList.vue') }, { path: '/pages/owner/adminAccount', name: '/pages/owner/adminAccount', component: () => import('@/views/account/adminAccountList.vue') }, { path: '/views/account/adminAccountDetail', name: '/views/account/adminAccountDetail', component: () => import('@/views/account/adminAccountDetailList.vue') }, { path: '/pages/fee/adminFeeConfig', name: '/pages/fee/adminFeeConfig', component: () => import('@/views/fee/adminFeeConfigList.vue') }, { path: '/pages/resource/adminEquipment', name: '/pages/resource/adminEquipment', component: () => import('@/views/resource/adminEquipmentList.vue') }, { path: '/pages/fee/adminRoomFee', name: '/pages/fee/adminRoomFee', component: () => import('@/views/fee/adminRoomFeeList.vue') }, { path: '/pages/work/adminRepair', name: '/pages/work/adminRepair', component: () => import('@/views/work/adminRepairList.vue') }, { path: '/views/work/adminRepairDetail', name: '/views/work/adminRepairDetail', component: () => import('@/views/work/adminRepairDetailList.vue') }, { path: '/pages/inspection/adminInspectionPlan', name: '/pages/inspection/adminInspectionPlan', component: () => import('@/views/inspection/adminInspectionPlanList.vue') }, { path: '/pages/inspection/aInspectionPlanDetail', name: '/pages/inspection/aInspectionPlanDetail', component: () => import('@/views/inspection/aInspectionPlanDetailList.vue') }, { path: '/pages/inspection/adminInspectionTask', name: '/pages/inspection/adminInspectionTask', component: () => import('@/views/inspection/adminInspectionTaskList.vue') }, { path: '/views/inspection/adminInspectionTaskDetail', name: '/views/inspection/adminInspectionTaskDetail', component: () => import('@/views/inspection/adminInspectionTaskDetailList.vue') }, { path: '/pages/complaint/adminComplaint', name: '/pages/complaint/adminComplaint', component: () => import('@/views/complaint/adminComplaintList.vue') }, { path: '/views/complaint/adminComplaintDetail', name: '/views/complaint/adminComplaintDetail', component: () => import('@/views/complaint/adminComplaintDetailList.vue') }, { path: '/pages/oa/adminWorkPool', name: '/pages/oa/adminWorkPool', component: () => import('@/views/work/adminWorkPoolList.vue') }, { path: '/views/work/adminWorkDetail', name: '/views/work/adminWorkDetail', component: () => import('@/views/work/adminWorkDetailList.vue') }, { path: '/pages/iot/aAccessControl', name: '/pages/iot/aAccessControl', component: () => import('@/views/iot/aAccessControlList.vue') }, { path: '/pages/iot/adminBarrier', name: '/pages/iot/adminBarrier', component: () => import('@/views/iot/adminBarrierList.vue') }, { path: '/pages/iot/adminChargeMachine', name: '/pages/iot/adminChargeMachine', component: () => import('@/views/iot/adminChargeMachineList.vue') }, { path: '/pages/iot/adminMeter', name: '/pages/iot/adminMeter', component: () => import('@/views/iot/adminMeterList.vue') }, { path: '/pages/iot/adminInout', name: '/pages/iot/adminInout', component: () => import('@/views/iot/adminInoutList.vue') }, { path: '/pages/iot/adminCarInout', name: '/pages/iot/adminCarInout', component: () => import('@/views/iot/adminCarInoutList.vue') }, { path: '/pages/iot/adminChargeOrder', name: '/pages/iot/adminChargeOrder', component: () => import('@/views/iot/adminChargeOrderList.vue') }, { path: '/pages/iot/adminMeterRecharge', name: '/pages/iot/adminMeterRecharge', component: () => import('@/views/iot/adminMeterRechargeList.vue') }, { path: '/pages/report/operationalAnalysis', name: '/pages/report/operationalAnalysis', component: () => import('@/views/report/operationalAnalysisList.vue') }, { path: '/pages/report/communityFeeSummary', name: '/pages/report/communityFeeSummary', component: () => import('@/views/report/communityFeeSummaryList.vue') }, { path: '/pages/fee/adminPayFeeDetail', name: '/pages/fee/adminPayFeeDetail', component: () => import('@/views/fee/adminPayFeeDetailList.vue') }, { path: '/pages/fee/adminOweFeeDetail', name: '/pages/fee/adminOweFeeDetail', component: () => import('@/views/fee/adminOweFeeDetailList.vue') }, { path: '/pages/admin/orderManage', name: '/pages/admin/orderManage', component: () => import('@/views/admin/orderManageList.vue') }, { path: '/pages/frame/userLogin', name: '/pages/frame/userLogin', component: () => import('@/views/user/userLoginList.vue') }, { path: '/pages/admin/productSj', name: '/pages/admin/productSj', component: () => import('@/views/mall/productSjList.vue') }, { path: '/pages/admin/housekeepingSjServ', name: '/pages/admin/housekeepingSjServ', component: () => import('@/views/mall/housekeepingSjServList.vue') }, { path: '/pages/admin/storeOrderCartManage', name: '/pages/admin/storeOrderCartManage', component: () => import('@/views/mall/storeOrderCartManageList.vue') }, { path: '/pages/admin/storeOrderCartReturn', name: '/pages/admin/storeOrderCartReturn', component: () => import('@/views/mall/storeOrderCartReturnList.vue') }, { path: '/pages/admin/userIntegral', name: '/pages/admin/userIntegral', component: () => import('@/views/mall/userIntegralList.vue') }, { path: '/pages/admin/integralDetail', name: '/pages/admin/integralDetail', component: () => import('@/views/mall/integralDetailList.vue') }, // 其他子路由可以在这里添加 ] }, { path: '/views/user/login', name: 'views/user/login', component: Login, meta: { title: '登陆页面', icon: 'el-icon-s-home' } } ] const router = new VueRouter({ routes }) // 路由守卫 router.beforeEach((to, from, next) => { // 排除静态资源路径 if (to.path.startsWith('/img/') || to.path.startsWith('/static/')) { return next(); // 直接放行 } const token = localStorage.getItem('token') if (to.path !== '/views/user/login' && !token) { next('/views/user/login') } else { let _title = to.meta.title; if (!_title) { _title = '物业官网平台' } else { _title = _title + ' - 物业官网平台' } document.title = _title next() } }) export default router