index.js 11.5 KB
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: '/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