|
|
@@ -16,7 +16,8 @@ import { getIFramePath, getIFrameUrl } from '@/utils/iframe'
|
|
|
import { getToken } from '@/utils/auth'
|
|
|
import axios from 'axios'
|
|
|
import { findNavTree } from '@/api/user'
|
|
|
-
|
|
|
+import CryptoJS from "crypto-js";
|
|
|
+let that = this
|
|
|
Vue.use(Router)
|
|
|
|
|
|
const router = new Router({
|
|
|
@@ -80,42 +81,119 @@ const router = new Router({
|
|
|
component: Signature,
|
|
|
meta: { requiresAuth: true }
|
|
|
},
|
|
|
-
|
|
|
+
|
|
|
]
|
|
|
})
|
|
|
router.beforeEach((to, from, next) => {
|
|
|
// 登录界面登录成功之后,会把用户信息保存在会话
|
|
|
// 存在时间为会话生命周期,页面关闭即失效。
|
|
|
- let token =getToken()
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ let token = getToken()
|
|
|
//let userName = sessionStorage.getItem('user')
|
|
|
let userName = Cookies.get('user')
|
|
|
-
|
|
|
+
|
|
|
if (to.matched.some(record => record.meta.requiresAuth)) {
|
|
|
next()
|
|
|
- return
|
|
|
+ return
|
|
|
// next({ path: '/Signature' })
|
|
|
}
|
|
|
- if (to.path === '/login') {
|
|
|
- // 如果是访问登录界面,如果用户会话信息存在,代表已登录过,跳转到主页
|
|
|
+ if (to.path === '/login') {
|
|
|
+ // console.log(window.location.href.includes('token'))
|
|
|
+ if (window.location.href.includes('token')) {
|
|
|
+
|
|
|
+ const decryptedBytes = CryptoJS.AES.decrypt(window.location.href.split("=")[1],
|
|
|
+ 'token')
|
|
|
+ const token = decryptedBytes.toString(CryptoJS.enc.Utf8);
|
|
|
+ getUser()
|
|
|
+ let userName = Cookies.get('user')
|
|
|
+
|
|
|
if (token) {
|
|
|
+ let userInfo = JSON.parse(localStorage.getItem("user_data"))
|
|
|
+
|
|
|
+ Cookies.set("token", token);
|
|
|
+ api.menu.findNavTree({ 'userName': userInfo.id }).then(res => {
|
|
|
+ // 添加动态路由
|
|
|
+ let dynamicRoutes = addDynamicRoutes(res.data)
|
|
|
+
|
|
|
+ // 处理静态组件绑定路由
|
|
|
+ handleStaticComponent(router, dynamicRoutes)
|
|
|
+ router.addRoutes(router.options.routes)
|
|
|
+ // 保存加载状态
|
|
|
+ store.commit('menuRouteLoaded', true)
|
|
|
+ // 保存菜单树
|
|
|
+ store.commit('setNavTree', res.data)
|
|
|
+ }).then(res => {
|
|
|
+ api.user.findPermissions({ 'name': userInfo.id }).then(res => {
|
|
|
+ // 保存用户权限标识集合
|
|
|
+ store.commit('setPerms', res.data)
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
next({ path: '/' })
|
|
|
-
|
|
|
+
|
|
|
} else {
|
|
|
next()
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
} else {
|
|
|
- if (!token) {
|
|
|
- // 如果访问非登录界面,且户会话信息不存在,代表未登录,则跳转到登录界面
|
|
|
- next({ path: '/login' })
|
|
|
+ if (token) {
|
|
|
+ next({ path: '/' })
|
|
|
+
|
|
|
} else {
|
|
|
- // 加载动态菜单和路由
|
|
|
- addDynamicMenuAndRoutes(userName, to, from)
|
|
|
next()
|
|
|
}
|
|
|
+
|
|
|
+ }
|
|
|
+ // 如果是访问登录界面,如果用户会话信息存在,代表已登录过,跳转到主页
|
|
|
+
|
|
|
+ } else {
|
|
|
+ if (!token) {
|
|
|
+ // 如果访问非登录界面,且户会话信息不存在,代表未登录,则跳转到登录界面
|
|
|
+ next({ path: '/login' })
|
|
|
+ } else {
|
|
|
+ // 加载动态菜单和路由
|
|
|
+ addDynamicMenuAndRoutes(userName, to, from)
|
|
|
+ next()
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
})
|
|
|
+//获取用户信息
|
|
|
+function getUser() {
|
|
|
+ api.user.getLoginUser().then((response) => {
|
|
|
+ console.log(response)
|
|
|
+ if (response.code == 200) {
|
|
|
+ //头像地址拼接
|
|
|
+ if (
|
|
|
+ response.data.headSculpture != "" &&
|
|
|
+ response.data.headSculpture != null &&
|
|
|
+ response.data.headSculpture != undefined
|
|
|
+ ) {
|
|
|
+ response.data.headSculpture =
|
|
|
+ process.env.BASE_URL + response.data.headSculpture;
|
|
|
+ }
|
|
|
+
|
|
|
+ localStorage.setItem("user_data", JSON.stringify(response.data));
|
|
|
+ store.commit("SET_USER", response.data);
|
|
|
+ sessionStorage.setItem("user", response.data.id);
|
|
|
+ Cookies.set("user", response.data.id);
|
|
|
+
|
|
|
+ localStorage.setItem("routerId", "420");
|
|
|
+ store.commit("menuRouteLoaded", false);
|
|
|
+ // that.$router.push("/");
|
|
|
+ // that.loadingCode = false;
|
|
|
+ } else {
|
|
|
+ that.$message.error(response.msg);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ api.role.findAll().then((res) => {
|
|
|
+ localStorage.setItem("find_all", JSON.stringify(res.data));
|
|
|
+ });
|
|
|
+}
|
|
|
|
|
|
/**
|
|
|
* 加载动态菜单和路由
|