|
|
@@ -1,17 +1,18 @@
|
|
|
-import Vue from 'vue'
|
|
|
-import Router from 'vue-router'
|
|
|
+import Vue from "vue";
|
|
|
+import Router from "vue-router";
|
|
|
import { getToken } from "@/utils/auth";
|
|
|
-import store from './store'
|
|
|
-import { getUserByUserName } from '@/api/login'
|
|
|
-import awaitTo from 'await-to-js'
|
|
|
+import store from "./store";
|
|
|
+import { getUserByUserName } from "@/api/login";
|
|
|
+import awaitTo from "await-to-js";
|
|
|
|
|
|
Vue.use(Router);
|
|
|
|
|
|
let router = new Router({
|
|
|
- routes: [{
|
|
|
- path: '/',
|
|
|
- name: 'home',
|
|
|
- component: () => import('./views/Home.vue')
|
|
|
+ routes: [
|
|
|
+ {
|
|
|
+ path: "/",
|
|
|
+ name: "home",
|
|
|
+ component: () => import("./views/Home.vue"),
|
|
|
},
|
|
|
{
|
|
|
path: "/introduce",
|
|
|
@@ -19,12 +20,12 @@ let router = new Router({
|
|
|
component: () => import("./views/Introduce.vue"),
|
|
|
},
|
|
|
{
|
|
|
- path: '/news',
|
|
|
- name: 'news',
|
|
|
+ path: "/news",
|
|
|
+ name: "news",
|
|
|
meta: {
|
|
|
- requireAuth: true
|
|
|
+ requireAuth: true,
|
|
|
},
|
|
|
- component: () => import('./views/News.vue'),
|
|
|
+ component: () => import("./views/News.vue"),
|
|
|
},
|
|
|
{
|
|
|
path: "/newsdetails/:id",
|
|
|
@@ -75,29 +76,34 @@ let router = new Router({
|
|
|
component: () => import("./views/Download.vue"),
|
|
|
},
|
|
|
{
|
|
|
- path: '/register',
|
|
|
- name: 'register',
|
|
|
- component: () => import('./views/Register.vue')
|
|
|
+ path: "/register",
|
|
|
+ name: "register",
|
|
|
+ component: () => import("./views/Register.vue"),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/login',
|
|
|
+ name: 'login',
|
|
|
+ component: () => import('./views/Login.vue')
|
|
|
},
|
|
|
{
|
|
|
- path: '/personal-center',
|
|
|
- name: 'personal',
|
|
|
+ path: "/personal-center",
|
|
|
+ name: "personal",
|
|
|
meta: {
|
|
|
- requireAuth: true
|
|
|
+ requireAuth: true,
|
|
|
},
|
|
|
- component: () => import('./views/PersonalCenter.vue')
|
|
|
+ component: () => import("./views/PersonalCenter.vue"),
|
|
|
},
|
|
|
{
|
|
|
- path: '/contact-us',
|
|
|
- name: 'contactUs',
|
|
|
+ path: "/contact-us",
|
|
|
+ name: "contactUs",
|
|
|
meta: {
|
|
|
- requireAuth: true
|
|
|
+ requireAuth: true,
|
|
|
},
|
|
|
- component: () => import('./views/ContactUs.vue')
|
|
|
+ component: () => import("./views/ContactUs.vue"),
|
|
|
},
|
|
|
{
|
|
|
- path: '/admin',
|
|
|
- name: 'admin',
|
|
|
+ path: "/admin",
|
|
|
+ name: "admin",
|
|
|
meta: {
|
|
|
requireAuth: true,
|
|
|
},
|
|
|
@@ -155,18 +161,18 @@ let router = new Router({
|
|
|
|
|
|
// 判断是否需要登录权限 以及是否登录
|
|
|
router.beforeEach(async (to, from, next) => {
|
|
|
- const token = getToken()
|
|
|
+ const token = getToken();
|
|
|
// 拉取用户信息
|
|
|
- if(token && !store.getters.userInfo.id) {
|
|
|
- const [err, res] = await awaitTo(getUserByUserName())
|
|
|
- if(err) return
|
|
|
- store.dispatch('setUserInfo', res.data.userInfo)
|
|
|
+ if (token && !store.getters.userInfo.id) {
|
|
|
+ const [err, res] = await awaitTo(getUserByUserName());
|
|
|
+ if (err) return;
|
|
|
+ store.dispatch("setUserInfo", res.data.userInfo);
|
|
|
}
|
|
|
// 判断是否需要登录权限
|
|
|
if (to.matched.some((res) => res.meta.requireAuth)) {
|
|
|
// 判断是否登录
|
|
|
if (token) {
|
|
|
- next()
|
|
|
+ next();
|
|
|
} else {
|
|
|
// 没登录则跳转到登录界面
|
|
|
next({
|
|
|
@@ -181,4 +187,4 @@ router.beforeEach(async (to, from, next) => {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
-export default router
|
|
|
+export default router;
|