diff --git a/src/permission.js b/src/permission.js index 6bb0a1f..318fdc3 100644 --- a/src/permission.js +++ b/src/permission.js @@ -1,56 +1,65 @@ -import router from './router' -import store from './store' -import { Message } from 'element-ui' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' -import { getToken } from '@/utils/auth' -import { isRelogin } from '@/utils/request' +import router from "./router"; +import store from "./store"; +import { Message } from "element-ui"; +import NProgress from "nprogress"; +import "nprogress/nprogress.css"; +import { getToken } from "@/utils/auth"; +import { isRelogin } from "@/utils/request"; -NProgress.configure({ showSpinner: false }) +NProgress.configure({ showSpinner: false }); -const whiteList = ['/login', '/auth-redirect', '/bind', '/register'] +const whiteList = [ + "/login", + "/auth-redirect", + "/bind", + "/register", + "/userInformation", +]; router.beforeEach((to, from, next) => { - NProgress.start() + NProgress.start(); if (getToken()) { - to.meta.title && store.dispatch('settings/setTitle', to.meta.title) + to.meta.title && store.dispatch("settings/setTitle", to.meta.title); /* has token*/ - if (to.path === '/login') { - next({ path: '/' }) - NProgress.done() + if (to.path === "/login") { + next({ path: "/" }); + NProgress.done(); } else { if (store.getters.roles.length === 0) { - isRelogin.show = true + isRelogin.show = true; // 判断当前用户是否已拉取完user_info信息 - store.dispatch('GetInfo').then(() => { - isRelogin.show = false - store.dispatch('GenerateRoutes').then(accessRoutes => { - // 根据roles权限生成可访问的路由表 - router.addRoutes(accessRoutes) // 动态添加可访问路由表 - next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 - }) - }).catch(err => { - store.dispatch('LogOut').then(() => { - Message.error(err) - next({ path: '/' }) - }) + store + .dispatch("GetInfo") + .then(() => { + isRelogin.show = false; + store.dispatch("GenerateRoutes").then((accessRoutes) => { + // 根据roles权限生成可访问的路由表 + router.addRoutes(accessRoutes); // 动态添加可访问路由表 + next({ ...to, replace: true }); // hack方法 确保addRoutes已完成 + }); }) + .catch((err) => { + store.dispatch("LogOut").then(() => { + Message.error(err); + next({ path: "/" }); + }); + }); } else { - next() + next(); } } } else { // 没有token if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入 - next() + next(); } else { - next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 - NProgress.done() + next(`/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页 + NProgress.done(); } } -}) +}); router.afterEach(() => { - NProgress.done() -}) + NProgress.done(); +}); diff --git a/src/router/index.js b/src/router/index.js index d8e3587..0630aaf 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,10 +1,10 @@ -import Vue from 'vue' -import Router from 'vue-router' +import Vue from "vue"; +import Router from "vue-router"; -Vue.use(Router) +Vue.use(Router); /* Layout */ -import Layout from '@/layout' +import Layout from "@/layout"; /** * Note: 路由配置项 @@ -31,148 +31,157 @@ import Layout from '@/layout' // 公共路由 export const constantRoutes = [ { - path: '/redirect', + path: "/redirect", component: Layout, hidden: true, children: [ { - path: '/redirect/:path(.*)', - component: (resolve) => require([`@/views/redirect`],resolve) - } - ] + path: "/redirect/:path(.*)", + component: (resolve) => require([`@/views/redirect`], resolve), + }, + ], }, { - path: '/login', - component: (resolve) => require([`@/views/myLogin`],resolve), - hidden: true + path: "/login", + component: (resolve) => require([`@/views/myLogin`], resolve), + hidden: true, }, { - path: '/register', - component: (resolve) => require([`@/views/register`],resolve), - hidden: true + path: "/register", + component: (resolve) => require([`@/views/register`], resolve), + hidden: true, }, { - path: '/404', - component: (resolve) => require([`@/views/error/404`],resolve), - hidden: true + path: "/userInformation", + component: (resolve) => require([`@/views/userInformation`], resolve), + hidden: true, }, { - path: '/401', - component: (resolve) => require([`@/views/error/401`],resolve), - hidden: true + path: "/404", + component: (resolve) => require([`@/views/error/404`], resolve), + hidden: true, }, { - path: '', + path: "/401", + component: (resolve) => require([`@/views/error/401`], resolve), + hidden: true, + }, + { + path: "", component: Layout, - redirect: 'index', + redirect: "index", children: [ { - path: 'index', - component: (resolve) => require([`@/views/index`],resolve), - name: 'Index', - meta: { title: '首页', icon: 'dashboard', affix: true } - } - ] + path: "index", + component: (resolve) => require([`@/views/index`], resolve), + name: "Index", + meta: { title: "首页", icon: "dashboard", affix: true }, + }, + ], }, { - path: '/user', + path: "/user", component: Layout, hidden: true, - redirect: 'noredirect', + redirect: "noredirect", children: [ { - path: 'profile', - component: (resolve) => require([`@/views/system/user/profile/index`],resolve), - name: 'Profile', - meta: { title: '个人中心', icon: 'user' } - } - ] - } -] + path: "profile", + component: (resolve) => + require([`@/views/system/user/profile/index`], resolve), + name: "Profile", + meta: { title: "个人中心", icon: "user" }, + }, + ], + }, +]; // 动态路由,基于用户权限动态去加载 export const dynamicRoutes = [ { - path: '/system/user-auth', + path: "/system/user-auth", component: Layout, hidden: true, - permissions: ['system:user:edit'], + permissions: ["system:user:edit"], children: [ { - path: 'role/:userId(\\d+)', - component: (resolve) => require([`@/views/system/user/authRole`],resolve), - name: 'AuthRole', - meta: { title: '分配角色', activeMenu: '/system/user' } - } - ] + path: "role/:userId(\\d+)", + component: (resolve) => + require([`@/views/system/user/authRole`], resolve), + name: "AuthRole", + meta: { title: "分配角色", activeMenu: "/system/user" }, + }, + ], }, { - path: '/system/role-auth', + path: "/system/role-auth", component: Layout, hidden: true, - permissions: ['system:role:edit'], + permissions: ["system:role:edit"], children: [ { - path: 'user/:roleId(\\d+)', - component: (resolve) => require([`@/views/system/role/authUser`],resolve), - name: 'AuthUser', - meta: { title: '分配用户', activeMenu: '/system/role' } - } - ] + path: "user/:roleId(\\d+)", + component: (resolve) => + require([`@/views/system/role/authUser`], resolve), + name: "AuthUser", + meta: { title: "分配用户", activeMenu: "/system/role" }, + }, + ], }, { - path: '/system/dict-data', + path: "/system/dict-data", component: Layout, hidden: true, - permissions: ['system:dict:list'], + permissions: ["system:dict:list"], children: [ { - path: 'index/:dictId(\\d+)', - component: (resolve) => require([`@/views/system/dict/data`],resolve), - name: 'Data', - meta: { title: '字典数据', activeMenu: '/system/dict' } - } - ] + path: "index/:dictId(\\d+)", + component: (resolve) => require([`@/views/system/dict/data`], resolve), + name: "Data", + meta: { title: "字典数据", activeMenu: "/system/dict" }, + }, + ], }, { - path: '/system/oss-config', + path: "/system/oss-config", component: Layout, hidden: true, - permissions: ['system:oss:list'], + permissions: ["system:oss:list"], children: [ { - path: 'index', - component: (resolve) => require([`@/views/system/oss/config`],resolve), - name: 'OssConfig', - meta: { title: '配置管理', activeMenu: '/system/oss' } - } - ] + path: "index", + component: (resolve) => require([`@/views/system/oss/config`], resolve), + name: "OssConfig", + meta: { title: "配置管理", activeMenu: "/system/oss" }, + }, + ], }, { - path: '/tool/gen-edit', + path: "/tool/gen-edit", component: Layout, hidden: true, - permissions: ['tool:gen:edit'], + permissions: ["tool:gen:edit"], children: [ { - path: 'index/:tableId(\\d+)', - component: (resolve) => require([`@/views/tool/gen/editTable`],resolve), - name: 'GenEdit', - meta: { title: '修改生成配置', activeMenu: '/tool/gen' } - } - ] - } -] + path: "index/:tableId(\\d+)", + component: (resolve) => + require([`@/views/tool/gen/editTable`], resolve), + name: "GenEdit", + meta: { title: "修改生成配置", activeMenu: "/tool/gen" }, + }, + ], + }, +]; // 防止连续点击多次路由报错 let routerPush = Router.prototype.push; Router.prototype.push = function push(location) { - return routerPush.call(this, location).catch(err => err) -} + return routerPush.call(this, location).catch((err) => err); +}; export default new Router({ base: process.env.VUE_APP_CONTEXT_PATH, - mode: 'hash', // 去掉url中的# + mode: "hash", // 去掉url中的# scrollBehavior: () => ({ y: 0 }), - routes: constantRoutes -}) + routes: constantRoutes, +}); diff --git a/src/views/register.vue b/src/views/register.vue index 3a3b17d..24f0422 100644 --- a/src/views/register.vue +++ b/src/views/register.vue @@ -1,53 +1,40 @@ - + - - - - - - - - - - - - - - - - {{ btnTitle }} - - - - - 下一步 + + + + + + {{ btnTitle }} - - - - - + + + + + 登录/注册 + + + + + - - 注册状态: - - - - - - - - + --> @@ -350,34 +315,29 @@ export default {