import Vue from 'vue' import VueRouter from 'vue-router' import HomeView from '../views/HomeView.vue' import LoginView from '@/views/LoginView.vue' import Notice from '@/components/notice/notice.vue' import Empty from '@/components/Empty.vue' import IocDashboard from "@/components/dashboard/iocDashboard.vue"; Vue.use(VueRouter) const router = new VueRouter({ mode: 'history', base: import.meta.env.BASE_URL, routes: [ { path: '/', name: 'home', meta: {breadcrumb: '首页'}, component: HomeView, children: [ { path: '/empty', name: 'empty', meta: {breadcrumb: '空'}, component: Empty, }, { path: '/notice', name: 'notice', meta: {breadcrumb: '消息通知'}, component: Notice, }, { path: '/dashboard', name: 'dashboard', meta: {breadcrumb: '智能看板'}, component: IocDashboard, }, { path: '/life', name: 'life', meta: {breadcrumb: '智享生活'}, component: () => import('@/components/life/life.vue'), children: [ { path: '/life/restaurant', name: 'lifeRestaurant', meta: {breadcrumb: '智慧餐厅'}, component: () => import('@/components/life/restaurant/lifeRestaurant.vue'), }, { path: '/life/parking', name: 'lifeParking', meta: {breadcrumb: '智慧停车'}, component: () => import('@/components/life/parking/lifeParking.vue'), }, { path: '/life/supermarket', name: 'lifeSupermarket', meta: {breadcrumb: '无人商超'}, component: () => import('@/components/life/supermarket/lifeSupermarket.vue'), }, { path: '/life/healthyHome', name: 'lifeHealthyHome', meta: {breadcrumb: '健康小屋'}, component: () => import('@/components/life/healthyHome/lifeHealthyHome.vue'), }, ] }, { path: '/work', name: 'work', meta: {breadcrumb: '智慧办公'}, component: () => import('@/components/work/work.vue'), children: [ { path: '/work/overview', name: 'workOverview', meta: {breadcrumb: '楼层概览'}, component: () => import('@/components/work/overview/workOverview.vue'), }, { path: '/work/meeting', name: 'workMeeting', meta: {breadcrumb: '会议管理'}, component: () => import('@/components/work/meeting/workMeeting.vue'), }, { path: '/work/print', name: 'workPrint', meta: {breadcrumb: '文印管理'}, component: () => import('@/components/work/print/workPrint.vue'), }, { path: '/work/bus', name: 'workBus', meta: {breadcrumb: '公车管理'}, component: () => import('@/components/work/bus/workBus.vue'), }, ] }, { path: '/doubleCarbon', name: 'doubleCarbon', meta: {breadcrumb: '数智双碳'}, component: () => import('@/components/doubleCarbon/doubleCarbon.vue'), children: [ { path: '/doubleCarbon/overview', name: 'doubleCarbonOverview', meta: {breadcrumb: '双碳概览'}, component: () => import('@/components/doubleCarbon/overview/doubleCarbonOverview.vue'), }, { path: '/doubleCarbon/car', name: 'doubleCarbonCar', meta: {breadcrumb: '车辆排放'}, component: () => import('@/components/doubleCarbon/car/doubleCarbonCar.vue'), }, { path: '/doubleCarbon/print', name: 'doubleCarbonPrint', meta: {breadcrumb: '文印排放'}, component: () => import('@/components/doubleCarbon/print/doubleCarbonPrint.vue'), }, { path: '/doubleCarbon/pv', name: 'doubleCarbonPv', meta: {breadcrumb: '光伏发电'}, component: () => import('@/components/doubleCarbon/PV/doubleCarbonPv.vue'), }, ] }, { path: '/business', name: 'business', meta: {breadcrumb: '智慧运营'}, component: () => import('@/components/business/business.vue'), children: [ { path: '/business/asset', name: 'businessAsset', meta: {breadcrumb: '资产管理'}, component: () => import('@/components/business/asset/asset.vue'), }, { path: '/business/space', name: 'businessSpace', meta: {breadcrumb: '空间管理'}, component: () => import('@/components/business/space/space.vue'), }, { path: '/business/analysis', name: 'businessAnalysis', meta: {breadcrumb: '运营分析'}, component: () => import('@/components/business/analysis/analysis.vue'), } ] }, { path: '/security', name: 'security', meta: {breadcrumb: '智慧安防'}, component: () => import('@/components/security/security.vue'), children: [ { path: '/security/person', name: 'securityPerson', meta: {breadcrumb: '安防人员', hideChild: true}, component: () => import('@/components/security/person/securityPerson.vue'), children: [ { path: '/security/person/more', name: 'securityPersonMore', meta: {breadcrumb: '更多'}, component: () => import('@/components/security/person/securityPersonMore.vue'), } ] }, { path: '/security/alarm', name: 'securityAlarm', meta: {breadcrumb: '安消联动'}, component: () => import('@/components/security/alarm/securityAlarm.vue'), children: [ { path: '/security/alarm/map', name: 'securityAlarmMap', meta: {breadcrumb: '地图模式'}, component: () => import('@/components/security/alarm/securityAlarmMap.vue'), }, { path: '/security/alarm/grid', name: 'securityAlarmGrid', meta: {breadcrumb: '宫格模式'}, component: () => import('@/components/security/alarm/securityAlarmGrid.vue'), }, { path: '/security/alarm/manage', name: 'securityAlarmManage', meta: {breadcrumb: '告警管理'}, component: () => import('@/components/security/alarm/securityAlarmManage.vue'), }, { path: '/security/alarm/info', name: 'securityAlarmInfo', meta: {breadcrumb: '告警库'}, component: () => import('@/components/security/alarm/securityAlarmInfo.vue'), }, ] }, { path: '/security/device', name: 'securityDevice', meta: {breadcrumb: '设备交互'}, component: () => import('@/components/security/device/securityDevice.vue'), }, ] }, { path: '/scene', name: 'scene', meta: {breadcrumb: '智慧场景'}, component: () => import('@/components/scene/scene.vue'), children: [ { path: '/scene/meeting', name: 'sceneMeeting', meta: {breadcrumb: '智·会议'}, component: () => import('@/components/scene/meeting/sceneMeeting.vue'), children: [ { path: '/scene/meeting/config', name: 'sceneMeetingConfig', meta: {breadcrumb: '配置会议'}, component: () => import('@/components/scene/meeting/sceneMeetingConfig.vue'), }, { path: '/scene/meeting/overview', name: 'sceneMeetingOverview', meta: {breadcrumb: '统计分析'}, component: () => import('@/components/scene/meeting/sceneMeetingOverview.vue'), }, ] }, { path: '/scene/energy', name: 'sceneEnergy', meta: {breadcrumb: '智·能源'}, component: () => import('@/components/scene/energy/sceneEnergy.vue'), children: [ { path: '/scene/energy/aircondition', name: 'sceneEnergyAircondition', meta: {breadcrumb: '智能空调'}, component: () => import('@/components/scene/energy/sceneEnergyAircondition.vue'), }, { path: '/scene/energy/light', name: 'sceneEnergyLight', meta: {breadcrumb: '智能照明'}, component: () => import('@/components/scene/energy/sceneEnergyLight.vue'), }, { path: '/scene/energy/water', name: 'sceneEnergyWater', meta: {breadcrumb: '智能饮水机'}, component: () => import('@/components/scene/energy/sceneEnergyWater.vue'), }, ] }, { path: '/scene/access', name: 'sceneAccess', meta: {breadcrumb: '智·安防'}, component: () => import('@/components/scene/access/sceneAccess.vue'), children: [ { path: '/scene/access/manage', name: 'sceneAccessManage', meta: {breadcrumb: '门禁管理'}, component: () => import('@/components/scene/access/sceneAccessManage.vue'), }, { path: '/scene/access/guest', name: 'sceneAccessGuest', meta: {breadcrumb: '访客管理'}, component: () => import('@/components/scene/access/sceneAccessGuestManage.vue'), }, { path: '/scene/access/park', name: 'sceneAccessPark', meta: {breadcrumb: '停车管理'}, component: () => import('@/components/scene/access/sceneAccessParkManage.vue'), }, { path: '/scene/access/behaviour', name: 'sceneAccessBehaviour', meta: {breadcrumb: '行为感知'}, component: () => import('@/components/scene/access/sceneAccessBehaviour.vue'), } ] }, ] }, ], }, { path: '/login', name: 'login', meta: {breadcrumb: '登录'}, component: LoginView, }, ], }) let routerPush = VueRouter.prototype.push; VueRouter.prototype.push = function push(location) { return routerPush.call(this, location).catch(err => err) } export default router