Commit 23b46ecd by xue_wengang

权限管理

parent f369765c
...@@ -106,31 +106,72 @@ Vue.directive("nsLoading", { ...@@ -106,31 +106,72 @@ Vue.directive("nsLoading", {
Vue.directive('drag', { Vue.directive('drag', {
//1.指令绑定到元素上回立刻执行bind函数,只执行一次 //1.指令绑定到元素上回立刻执行bind函数,只执行一次
//2.每个函数中第一个参数永远是el,表示绑定指令的元素,el参数是原生js对象 //2.每个函数中第一个参数永远是el,表示绑定指令的元素,el参数是原生js对象
bind: function (el, elementObj) { bind(el, binding) {
let dragBox = el; //获取当前元素 const instance = new LoadingCons({
dragBox.style.position = 'absolute'; // 拖拽元素使用定位,脱离文档流 el: document.createElement("div"),
dragBox.onmousedown = e => { data: {}
//鼠标相对元素的位置 });
let disX = e.clientX - dragBox.offsetLeft; el.appendChild(instance.$el);
let disY = e.clientY - dragBox.offsetTop; el.instance = instance;
document.onmousemove = e => { Vue.nextTick(() => {
//鼠标的位置减去鼠标相对元素的位置,得到元素的位置 el.instance.isShow = binding.value;
let left = e.clientX - disX; console.log(123);
let top = e.clientY - disY; });
//移动当前元素 console.log(el.instance);
dragBox.style.left = left + 'px'; console.log(binding);
dragBox.style.top = top + 'px'; },
}; /**
document.onmouseup = e => { * 所在组件的 VNode 更新时调用
//鼠标弹起来的时候不再移动 * @param {*} el
document.onmousemove = null; * @param {*} binding
//预防鼠标弹起来后还会循环(即预防鼠标放上去的时候还会移动) */
document.onmouseup = null; update(el, binding) {
// 对外暴露元素相对于父级位置 // 通过对比值的变化判断loading是否显示
elementObj.value.left = dragBox.style.left; if (binding.oldValue !== binding.value) {
elementObj.value.top = dragBox.style.top; el.instance.isShow = binding.value;
}; console.log(123456);
}; }
// console.log(binding);
},
/**
* 只调用一次,在 指令与元素解绑时调用
* @param {*} el
*/
unbind(el) {
const mask = el.instance.$el;
if (mask.parentNode) {
mask.parentNode.removeChild(mask);
}
el.instance.$destroy();
el.instance = undefined;
}
});
function checkPermission(el, binding) {
const { value } = binding
const roles = store.getters && store.getters.roles
if (value && value instanceof Array) {
if (value.length > 0) {
const permissionRoles = value
const hasPermission = roles.some(role => {
return permissionRoles.includes(role)
})
if (!hasPermission) {
el.parentNode && el.parentNode.removeChild(el)
}
}
}
};
Vue.directive('permission', {
inserted(el, binding) {
checkPermission(el, binding)
},
update(el, binding) {
checkPermission(el, binding)
} }
}); });
......
...@@ -3,8 +3,7 @@ import store from "./store"; ...@@ -3,8 +3,7 @@ import store from "./store";
router.beforeEach( async (to, from, next) => { router.beforeEach( async (to, from, next) => {
debugger if (sessionStorage.getItem('token') != null && sessionStorage.getItem('token') != '') {
if (sessionStorage.getItem('token') != null) {
if (to.path === '/login') { if (to.path === '/login') {
next() next()
} else { } else {
...@@ -13,12 +12,10 @@ debugger ...@@ -13,12 +12,10 @@ debugger
next() next()
} else { } else {
try { try {
// get user info
// note: roles must be a object array! such as: ['admin'] or ,['developer','editor']
const roles = JSON.parse(sessionStorage.getItem('userInfo')).permission.split(',') const roles = JSON.parse(sessionStorage.getItem('userInfo')).permission.split(',')
store.commit('user/SET_ROLES', roles) store.commit('user/SET_ROLES', roles)
// generate accessible routes map based on roles
const accessRoutes = await store.dispatch('permission/generateRoutes', roles) const accessRoutes = await store.dispatch('permission/generateRoutes', roles)
// dynamically add accessible routes // dynamically add accessible routes
router.addRoutes(accessRoutes) router.addRoutes(accessRoutes)
......
...@@ -55,32 +55,10 @@ const actions = { ...@@ -55,32 +55,10 @@ const actions = {
commit("SET_TOKEN", ""); commit("SET_TOKEN", "");
removeToken(); removeToken();
}, },
login({ commit }, userInfo) { logout({ commit}) {
const { account, password } = userInfo; commit('SET_ROLES', [])
return new Promise((resolve, reject) => { sessionStorage.setItem('token','')
return login({ account, password }) },
.then(res => {
const { code, data } = res;
if (code == 0) {
commit("SET_TOKEN", data.token);
commit("SET_Auth", "3");
if (userInfo.autoLoginRange !== undefined) {
commit("SET_AUTOLOGIN_FLAG", userInfo.autoLoginRange);
}
setToken(data.token, userInfo.autoLoginRange);
resolve(res);
}
reject();
})
.catch(_err => {
reject(_err);
});
});
}
}; };
export default { export default {
......
import axios from "axios"; import axios from "axios";
// import { getToken } from "./auth.js"; import store from "../store";
import { Message, MessageBox } from "element-ui"; import { Message, MessageBox } from "element-ui";
import qs from "qs"; import qs from "qs";
...@@ -85,19 +85,13 @@ axios.interceptors.response.use( ...@@ -85,19 +85,13 @@ axios.interceptors.response.use(
type: "warning", type: "warning",
}) })
.then(() => { .then(() => {
// if (relUrlIp == '47.92.225.109') { if (relUrlIp == 'localhost') {
// // window.open('http://47.92.225.109:8300/#/login', '_blank') store.dispatch('user/logout')
// window.location.href = 'http://47.92.225.109:8300/#/login'; window.location.href = 'http://localhost:8080/#/login';
// } else if (relUrlIp == '26.3.13.120') { } else {
// window.location.href = 'http://26.3.13.120:8050/#/login'; store.dispatch('user/logout')
// } else if (relUrlIp == '10.142.16.177') {
// window.location.href = 'http://10.142.16.177:8050/#/login';
// } else {
// // window.open('http://localhost:8080/#/login', '_blank')
// window.location.href = 'http://localhost:8080/#/login';
// }
sessionStorage.setItem("token", '');
window.location.href = 'http://zhyy.xzxt.an:8080/index' window.location.href = 'http://zhyy.xzxt.an:8080/index'
}
}) })
} }
if (status < 0) { if (status < 0) {
...@@ -155,7 +149,7 @@ instance.interceptors.response.use( ...@@ -155,7 +149,7 @@ instance.interceptors.response.use(
// // window.open('http://localhost:8080/#/login', '_blank') // // window.open('http://localhost:8080/#/login', '_blank')
// window.location.href = 'http://localhost:8080/#/login'; // window.location.href = 'http://localhost:8080/#/login';
// } // }
sessionStorage.setItem("token", ''); store.dispatch('user/logout')
window.location.href = 'http://zhyy.xzxt.an:8080/index' window.location.href = 'http://zhyy.xzxt.an:8080/index'
}) })
} }
...@@ -190,10 +184,10 @@ json.interceptors.response.use( ...@@ -190,10 +184,10 @@ json.interceptors.response.use(
}) })
.then(() => { .then(() => {
if (relUrlIp == 'localhost') { if (relUrlIp == 'localhost') {
sessionStorage.setItem("token", ''); store.dispatch('user/logout')
window.location.href = 'http://localhost:8080/#/login'; window.location.href = 'http://localhost:8080/#/login';
} else { } else {
sessionStorage.setItem("token", ''); store.dispatch('user/logout')
window.location.href = 'http://zhyy.xzxt.an:8080/index' window.location.href = 'http://zhyy.xzxt.an:8080/index'
} }
...@@ -234,29 +228,6 @@ export function get(url, params) { ...@@ -234,29 +228,6 @@ export function get(url, params) {
params: params params: params
}) })
.then(res => { .then(res => {
const status = res.data.code;
const message = res.data.message;
var relUrlIp = window.location.host.substring(
0,
window.location.host.length - 5
);
var self = this
if (status == "401") {
MessageBox.confirm("系统登录超时,请重新登录", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
if (relUrlIp == 'localhost') {
sessionStorage.setItem("token", '');
window.location.href = 'http://localhost:8080/#/login';
} else {
sessionStorage.setItem("token", '');
window.location.href = 'http://zhyy.xzxt.an:8080/index'
}
})
}
resolve(res.data); resolve(res.data);
}) })
.catch(err => { .catch(err => {
...@@ -276,32 +247,6 @@ export function post(url, params) { ...@@ -276,32 +247,6 @@ export function post(url, params) {
axios axios
.post(url, qs.stringify(params)) .post(url, qs.stringify(params))
.then(response => { .then(response => {
if(response.data){
const status = response.data.code;
const message = response.data.message;
var relUrlIp = window.location.host.substring(
0,
window.location.host.length - 5
);
var self = this
if (status == "401") {
MessageBox.confirm("系统登录超时,请重新登录", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
if (relUrlIp == 'localhost') {
sessionStorage.setItem("token", '');
window.location.href = 'http://localhost:8080/#/login';
} else {
sessionStorage.setItem("token", '');
window.location.href = 'http://zhyy.xzxt.an:8080/index'
}
})
}
}
resolve(response); resolve(response);
}) })
.catch(err => { .catch(err => {
...@@ -319,29 +264,6 @@ export function post(url, params) { ...@@ -319,29 +264,6 @@ export function post(url, params) {
export function postform(url, data) { export function postform(url, data) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
instance.post(url, data).then(response => { instance.post(url, data).then(response => {
const status = response.data.code;
const message = response.data.message;
var relUrlIp = window.location.host.substring(
0,
window.location.host.length - 5
);
var self = this
if (status == "401") {
MessageBox.confirm("系统登录超时,请重新登录", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
if (relUrlIp == 'localhost') {
sessionStorage.setItem("token", '');
window.location.href = 'http://localhost:8080/#/login';
} else {
sessionStorage.setItem("token", '');
window.location.href = 'http://zhyy.xzxt.an:8080/index'
}
})
}
resolve(response); resolve(response);
}); });
}).catch(err => { }).catch(err => {
......
...@@ -21,10 +21,10 @@ export default { ...@@ -21,10 +21,10 @@ export default {
shsexsbh: self.$route.query.shsexsbh, shsexsbh: self.$route.query.shsexsbh,
xxzjbh: self.$route.query.xxzjbh, xxzjbh: self.$route.query.xxzjbh,
asjxgrybh: self.$route.query.asjxgrybh, asjxgrybh: self.$route.query.asjxgrybh,
xsbh:self.$route.query.xsbh, xsbh: self.$route.query.xsbh,
type:self.$route.query.type, type: self.$route.query.type,
module:self.$route.query.module, module: self.$route.query.module,
xsType:self.$route.query.xsType, xsType: self.$route.query.xsType,
}, },
}); });
} else { } else {
...@@ -34,6 +34,8 @@ export default { ...@@ -34,6 +34,8 @@ export default {
if (res.code == 200) { if (res.code == 200) {
sessionStorage.setItem("token", "bearer " + res.data.accessToken); sessionStorage.setItem("token", "bearer " + res.data.accessToken);
sessionStorage.setItem("userInfo", JSON.stringify(res.data)); sessionStorage.setItem("userInfo", JSON.stringify(res.data));
const roles = res.data.permission.split(",");
this.$store.commit("user/SET_ROLES", roles);
this.Loading.close(); this.Loading.close();
debugger; debugger;
this.$router.push({ this.$router.push({
...@@ -43,10 +45,10 @@ export default { ...@@ -43,10 +45,10 @@ export default {
shsexsbh: self.$route.query.shsexsbh, shsexsbh: self.$route.query.shsexsbh,
xxzjbh: self.$route.query.xxzjbh, xxzjbh: self.$route.query.xxzjbh,
asjxgrybh: self.$route.query.asjxgrybh, asjxgrybh: self.$route.query.asjxgrybh,
xsbh:self.$route.query.xsbh, xsbh: self.$route.query.xsbh,
type:self.$route.query.type, type: self.$route.query.type,
module:self.$route.query.module, module: self.$route.query.module,
xsType:self.$route.query.xsType, xsType: self.$route.query.xsType,
}, },
}); });
} else { } else {
......
...@@ -103,6 +103,8 @@ export default { ...@@ -103,6 +103,8 @@ export default {
if (res.code == 200) { if (res.code == 200) {
sessionStorage.setItem("token", "bearer " + res.data.accessToken); sessionStorage.setItem("token", "bearer " + res.data.accessToken);
sessionStorage.setItem("userInfo", JSON.stringify(res.data)); sessionStorage.setItem("userInfo", JSON.stringify(res.data));
const roles = res.data.permission.split(',')
this.$store.commit('user/SET_ROLES', roles)
this.$router.push("/queryZdxx"); this.$router.push("/queryZdxx");
} else { } else {
this.$confirm("账号或密码错误!", { this.$confirm("账号或密码错误!", {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment