Files
JavaMyShop/shop_Frontend/src/router/index.js
2024-09-27 01:16:36 +08:00

152 lines
3.1 KiB
JavaScript
Executable File

import Vue from 'vue'
import Router from 'vue-router'
import IndexComponents from '@/components/view/index'
import InfoComponents from '@/components/view/info'
import ClassComponents from '@/components/view/class'
import CartComponents from '@/components/view/cart'
import MeComponents from "@/components/view/me";
import LoginComponents from "@/components/view/login";
import addUserComponents from "@/components/view/adduser";
import OrderComponents from "@/components/view/order";
import ResultComponents from "@/components/view/payresult";
import { Confirm, Alert, Toast, Notify, Loading } from 'vue-ydui/dist/lib.rem/dialog';
Vue.use(Router)
const router = new Router({
//解决拖动时多个页面互相影响的问题,当切换到新路由时,想要页面滚到顶部
scrollBehavior(to, from, savedPosition) {
return { x: 0, y: 0 }
},
routes: [
{
path: '/',
name: 'index',
component: IndexComponents,
meta: {
// 是否需要登录
isLogin: false,
// 是否需要被缓存
keepAlive: true,
// 页面标签卡标题
title: "主页"
}
},
{
path: '/info/:id',
name: 'info',
component: InfoComponents,
meta: {
isLogin: false,
keepAlive: false,
title: "详情"
}
},
{
path: '/class',
name: 'class',
component: ClassComponents,
meta: {
isLogin: false,
keepAlive: false,
title: "分类"
}
},
{
path: '/reg',
name: 'register',
component: addUserComponents,
meta: {
isLogin: false,
keepAlive: true,
title: "注册"
}
},
{
path: '/login',
name: 'login',
component: LoginComponents,
meta: {
isLogin: false,
keepAlive: true,
title: "登录"
}
},
{
path: '/cart',
name: 'cart',
component: CartComponents,
meta: {
isLogin: true,
keepAlive: false,
title: "购物车"
}
},
{
path: '/me',
name: 'me',
component: MeComponents,
meta: {
isLogin: true,
keepAlive: false,
title: "我的"
}
},
{
path: '/order',
name: "order",
component: OrderComponents,
meta: {
isLogin: true,
keepAlive: false,
title: "确认订单"
}
},
{
path: '/result',
name: "result",
component: ResultComponents,
meta: {
isLogin: true,
keepAlive: false,
title: "支付成功"
}
}
]
})
router.beforeEach((to, from, next) => {
// 设置浏览器标题
document.title = to.meta.title
// 检查页面是否需要登录
if (to.meta.isLogin) {
// 检查是否已经登录
if (localStorage.getItem("u") == null) {
Toast({
mes: '请先登录',
timeout: 1700,
icon: 'error',
callback: () => {
next({
path: '/login',
query: { redirect: to.fullPath }
})
}
})
} else {
next()
}
} else {
next()
}
})
export default router