123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- import { createRouter, createWebHashHistory } from 'vue-router'
- import LoginView from '@/views/login'
- import ViewLayout from '@/view/layout'
- import Shop from '@/views/shop'
- import Category from '@/views/category'
- import Brand from '@/views/brand'
- import Scene from '@/views/scene'
- import Log from '@/views/log'
- import Openvideo from '@/views/openvideo'
- import Framework from '@/views/framework'
- import User from '@/views/user'
- import Hotspot from '@/views/hotspot'
- import navs from '@/state/navs'
- // import FirmwareView from '@/view/firmware'
- const routes = [
- {
- name: 'login',
- path: '/login',
- component: LoginView,
- meta: { title: '登錄' }
- },
- {
- name: 'viewLayout',
- path: '/',
- component: ViewLayout,
- meta: { title: 'VR看店管理' },
- children: [
- {
- name: 'scene',
- path: 'scene',
- meta: { title: '場景管理', checkAuth: true },
- component: Scene,
- },
- {
- name: 'shop',
- path: 'shop',
- meta: { title: '店鋪管理', checkAuth: true },
- component: Shop,
- },
- {
- name: 'category',
- path: 'category',
- meta: { title: '店鋪分類', checkAuth: true },
- component: Category,
- },
- {
- name: 'brand',
- path: 'brand',
- meta: { title: '品牌訊息', checkAuth: true },
- component: Brand,
- },
- {
- name: 'hotspot',
- path: 'hotspot',
- meta: { title: '热点设置', checkAuth: true },
- component: Hotspot,
- },
- {
- name: 'openvideo',
- path: 'openvideo',
- meta: { title: '開場視頻', checkAuth: true },
- component: Openvideo,
- },
- {
- name: 'framework',
- path: 'framework',
- meta: { title: '組織架構', checkAuth: true },
- component: Framework,
- },
- {
- name: 'user',
- path: 'user',
- meta: { title: '用戶管理', checkAuth: true },
- component: User,
- },
- {
- name: 'log',
- path: 'log',
- meta: { title: '操作日誌', checkAuth: true },
- component: Log,
- }
-
- ]
- }
- ]
- const router = createRouter({
- history: createWebHashHistory(),
- routes,
- })
- const isVisual = (navs, name) =>
- {
- return navs.some(item =>
- item.name === name ||
- (item.children && isVisual(item.children, name))
- )
- }
- router.beforeEach(async (to, from, next) => {
- console.log(navs,'navs');
- if (!to.name || to.name === 'viewLayout') {
- router.replace({name: 'scene'})
- return;
- }
- if (to.meta && to.meta.checkAuth) {
- console.log(!navs.value);
- while(!navs.value || navs.value.length === 0) {
- await new Promise(r => setTimeout(r, 100))
- }
-
- if (!isVisual(navs.value, to.name)) {
- isVisual(navs.value, 'scene') ? router.replace({name: 'scene'}): router.replace({name: 'login'})
- return;
- }
- }
- next()
- })
- export const config = routes
- export default router
|