1
This commit is contained in:
@ -1,6 +1,82 @@
|
||||
import {createWebHashHistory, createRouter} from 'vue-router'
|
||||
import {isMobile} from '@/utils/responsive'
|
||||
|
||||
import HomeView from '@/views/homepage/index.vue'
|
||||
// 动态加载首页组件
|
||||
const HomeView = () => {
|
||||
return new Promise((resolve) => {
|
||||
if (isMobile.value) {
|
||||
import('@/views/homepage/mobile.vue').then(resolve)
|
||||
} else {
|
||||
import('@/views/homepage/index.vue').then(resolve)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 动态加载新闻中心组件
|
||||
const NewsView = () => {
|
||||
return new Promise((resolve) => {
|
||||
if (isMobile.value) {
|
||||
import('@/views/news/mobile.vue').then(resolve)
|
||||
} else {
|
||||
import('@/views/news/index.vue').then(resolve)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 动态加载联系我们组件
|
||||
const LinkView = () => {
|
||||
return new Promise((resolve) => {
|
||||
if (isMobile.value) {
|
||||
import('@/views/link/mobile.vue').then(resolve)
|
||||
} else {
|
||||
import('@/views/link/index.vue').then(resolve)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 动态加载关于我们组件
|
||||
const AboutView = () => {
|
||||
return new Promise((resolve) => {
|
||||
if (isMobile.value) {
|
||||
import('@/views/about/mobile.vue').then(resolve)
|
||||
} else {
|
||||
import('@/views/about/index.vue').then(resolve)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 动态加载硬件系统组件
|
||||
const HardwareSystemView = () => {
|
||||
return new Promise((resolve) => {
|
||||
if (isMobile.value) {
|
||||
import('@/views/product/hardwareSystem/mobile.vue').then(resolve)
|
||||
} else {
|
||||
import('@/views/product/hardwareSystem.vue').then(resolve)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 动态加载软件系统组件
|
||||
const SoftwareSystemView = () => {
|
||||
return new Promise((resolve) => {
|
||||
if (isMobile.value) {
|
||||
import('@/views/product/softwareSystem/mobile.vue').then(resolve)
|
||||
} else {
|
||||
import('@/views/product/softwareSystem.vue').then(resolve)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 动态加载产品详情组件
|
||||
const ProductDetailView = () => {
|
||||
return new Promise((resolve) => {
|
||||
if (isMobile.value) {
|
||||
import('@/views/product/detail/mobile.vue').then(resolve)
|
||||
} else {
|
||||
import('@/views/product/detail.vue').then(resolve)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const routes = [
|
||||
// ============================================ 首页 ============================================
|
||||
@ -10,7 +86,7 @@ const routes = [
|
||||
{
|
||||
path: '/product/hardwareSystem',
|
||||
name: 'HardwareSystem',
|
||||
component: () => import('@/views/product/hardwareSystem.vue'),
|
||||
component: HardwareSystemView,
|
||||
meta: {
|
||||
title: '低空监管体系',
|
||||
},
|
||||
@ -18,7 +94,7 @@ const routes = [
|
||||
{
|
||||
path: '/product/softwareSystem',
|
||||
name: 'SoftwareSystem',
|
||||
component: () => import('@/views/product/softwareSystem.vue'),
|
||||
component: SoftwareSystemView,
|
||||
meta: {
|
||||
title: '低空远程识别设备',
|
||||
},
|
||||
@ -26,76 +102,39 @@ const routes = [
|
||||
{
|
||||
path: '/product/detail',
|
||||
name: 'ProductDetail',
|
||||
component: () => import('@/views/product/detail.vue'),
|
||||
component: ProductDetailView,
|
||||
meta: {
|
||||
title: '产品详情',
|
||||
},
|
||||
},
|
||||
|
||||
// ============================================ 服务与支撑 ============================================
|
||||
{
|
||||
path: '/services',
|
||||
name: 'Services',
|
||||
component: () => import('@/views/services/index.vue'),
|
||||
meta: {
|
||||
title: '服务与支撑',
|
||||
},
|
||||
},
|
||||
|
||||
// ============================================ 新闻中心 ============================================
|
||||
{
|
||||
path: '/news',
|
||||
name: 'News',
|
||||
component: () => import('@/views/news/index.vue'),
|
||||
component: NewsView,
|
||||
meta: {
|
||||
title: '新闻中心',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/news/detail',
|
||||
name: 'NewsDetail',
|
||||
component: () => import('@/views/news/detail.vue'),
|
||||
meta: {
|
||||
title: '新闻详情',
|
||||
},
|
||||
},
|
||||
|
||||
// ============================================ 关于我们 ============================================
|
||||
{
|
||||
path: '/about',
|
||||
name: 'About',
|
||||
component: () => import('@/views/about/index.vue'),
|
||||
meta: {
|
||||
title: '关于我们',
|
||||
},
|
||||
},
|
||||
|
||||
// ============================================ 联系我们 ============================================
|
||||
{
|
||||
path: '/link',
|
||||
name: 'Link',
|
||||
component: () => import('@/views/link/index.vue'),
|
||||
component: LinkView,
|
||||
meta: {
|
||||
title: '联系我们',
|
||||
},
|
||||
},
|
||||
|
||||
// ============================================ 下载中心 ============================================
|
||||
// ============================================ 关于我们 ============================================
|
||||
{
|
||||
path: '/download',
|
||||
name: 'Download',
|
||||
component: () => import('@/views/download/index.vue'),
|
||||
path: '/about',
|
||||
name: 'About',
|
||||
component: AboutView,
|
||||
meta: {
|
||||
title: '下载中心',
|
||||
},
|
||||
},
|
||||
// ============================================ 管理页面 ============================================
|
||||
{
|
||||
path: '/manager',
|
||||
name: 'Manager',
|
||||
component: () => import('@/views/manager/index.vue'),
|
||||
meta: {
|
||||
title: '管理中心',
|
||||
title: '关于我们',
|
||||
},
|
||||
},
|
||||
]
|
||||
@ -105,20 +144,4 @@ const router = createRouter({
|
||||
routes,
|
||||
})
|
||||
|
||||
// router.beforeEach(async (to, from, next) => {
|
||||
// const {useNavStore} = await import('@/store/nav.js')
|
||||
// const navStore = useNavStore()
|
||||
// navStore.setLoad(true)
|
||||
// next()
|
||||
// })
|
||||
|
||||
router.afterEach((to, from) => {
|
||||
// 只有路径变化时才滚动到顶部
|
||||
if (to.path !== from.path) {
|
||||
requestAnimationFrame(() => {
|
||||
window.scrollTo({top: 0, behavior: 'instant'})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
export default router
|
||||
|
||||
Reference in New Issue
Block a user