240 lines
4.7 KiB
JavaScript
240 lines
4.7 KiB
JavaScript
import Vue from 'vue';
|
||
import Router from 'vue-router';
|
||
|
||
import { getAccessToken } from '../utils/cache';
|
||
|
||
Vue.use(Router);
|
||
|
||
const routes = [
|
||
{
|
||
path: '*',
|
||
redirect: '/home'
|
||
},
|
||
{
|
||
name: 'home',
|
||
component: () => import('../page/index'),
|
||
meta: {
|
||
title: '首页'
|
||
}
|
||
},
|
||
{
|
||
path: '/login',
|
||
component: () => import('../page/account/phonelogin'),
|
||
meta: {
|
||
title: '登录'
|
||
}
|
||
},
|
||
// {
|
||
// path: '/login/password',
|
||
// component: () => import('../page/account/password'),
|
||
// meta: {
|
||
// title: '登录'
|
||
// }
|
||
// },
|
||
// {
|
||
// path: '/login/phone',
|
||
// component: () => import('../page/account/phonelogin'),
|
||
// meta: {
|
||
// title: '手机号登录'
|
||
// }
|
||
// },
|
||
// {
|
||
// path: '/login/register',
|
||
// component: () => import('../page/account/register'),
|
||
// meta: {
|
||
// title: '注册'
|
||
// }
|
||
// },
|
||
{
|
||
path: '/user/index',
|
||
component: () => import('../page/user/index'),
|
||
name: 'user',
|
||
meta: {
|
||
title: '会员中心'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/info',
|
||
component: () => import('../page/user/info/detail'),
|
||
name: 'user',
|
||
meta: {
|
||
title: '个人信息',
|
||
requireAuth: true,
|
||
}
|
||
},
|
||
{
|
||
path: '/user/address',
|
||
component: () => import('../page/user/address/list'),
|
||
meta: {
|
||
title: '我的地址'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/address/edit',
|
||
component: () => import('../page/user/address/edit'),
|
||
meta: {
|
||
title: '修改地址'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/favorite',
|
||
component: () => import('../page/user/favorite/list'),
|
||
meta: {
|
||
title: '我的收藏'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/coupon',
|
||
component: () => import('../page/user/coupon/list'),
|
||
meta: {
|
||
title: '我的优惠券',
|
||
requireAuth: true,
|
||
}
|
||
},
|
||
{
|
||
path: '/user/order',
|
||
component: () => import('../page/user/order/list'),
|
||
meta: {
|
||
title: '我的订单'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/order/:id',
|
||
component: () => import('../page/user/order/list'),
|
||
meta: {
|
||
title: '我的订单'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/order/info/:id',
|
||
component: () => import('../page/user/order/info'),
|
||
meta: {
|
||
title: '我的订单'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/order/logistics/:id',
|
||
component: () => import('../page/user/order/logistics'),
|
||
meta: {
|
||
title: '订单追踪'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/aftersale',
|
||
component: () => import('../page/user/aftersale/list'),
|
||
meta: {
|
||
title: '售后'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/aftersale/apply',
|
||
component: () => import('../page/user/aftersale/apply'),
|
||
meta: {
|
||
title: '申请售后'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/aftersale/detail',
|
||
component: () => import('../page/user/aftersale/detail'),
|
||
meta: {
|
||
title: '服务单详情'
|
||
}
|
||
},
|
||
{
|
||
path: '/user/aftersale/track/:id',
|
||
component: () => import('../page/user/aftersale/track'),
|
||
meta: {
|
||
title: '进度详情'
|
||
}
|
||
},
|
||
{
|
||
path: '/product/:id',
|
||
component: () => import('../page/product/detail'),
|
||
meta: {
|
||
title: '商品详情'
|
||
}
|
||
},
|
||
{
|
||
path: '/product/search',
|
||
component: () => import('../page/product/search'),
|
||
meta: {
|
||
title: '商品搜索'
|
||
}
|
||
},
|
||
{
|
||
path: '/products/list',
|
||
component: () => import('../page/product/list'),
|
||
meta: {
|
||
title: '商品列表'
|
||
}
|
||
},
|
||
{
|
||
name: 'cart',
|
||
component: () => import('../page/cart/index'),
|
||
meta: {
|
||
title: '购物车'
|
||
}
|
||
},
|
||
{
|
||
path: '/order',
|
||
component: () => import('../page/shipping/order'),
|
||
meta: {
|
||
title: '确认订单',
|
||
requireAuth: true,
|
||
}
|
||
},
|
||
{
|
||
path: '/order/success',
|
||
component: () => import('../page/shipping/order-success'),
|
||
meta: {
|
||
title: '确认订单'
|
||
}
|
||
},
|
||
{
|
||
name: 'category',
|
||
component: () => import('../page/category/index'),
|
||
meta: {
|
||
title: '分类'
|
||
}
|
||
},
|
||
{
|
||
path: '/coupon/fetch',
|
||
component: () => import('../page/coupon/fetch'),
|
||
meta: {
|
||
title: '优惠劵领取'
|
||
}
|
||
}
|
||
];
|
||
|
||
// add route path
|
||
routes.forEach(route => {
|
||
route.path = route.path || '/' + (route.name || '');
|
||
});
|
||
|
||
const router = new Router({ routes });
|
||
|
||
router.beforeEach((to, from, next) => {
|
||
// 判断是否需要认证
|
||
const requireAuth = to.meta && to.meta.requireAuth;
|
||
if (requireAuth) {
|
||
if (!getAccessToken()) { // 未登陆
|
||
next({
|
||
path: '/login',
|
||
query: {redirect: to.fullPath} // 将跳转的路由path作为参数,登录成功后跳转到该路由
|
||
});
|
||
return;
|
||
}
|
||
}
|
||
// 处理标题
|
||
const title = to.meta && to.meta.title;
|
||
if (title) {
|
||
document.title = title;
|
||
}
|
||
// 继续路由
|
||
next();
|
||
});
|
||
|
||
export {
|
||
router
|
||
};
|