import { createStore } from 'vuex'
|
const keys = { USER: 'user' }
|
function getUserInfo(state) {
|
if (state.userInfo) return state.userInfo;
|
let userInfo = localStorage.getItem(keys.USER);
|
if (userInfo) {
|
state.userInfo = JSON.parse(userInfo);
|
}
|
return state.userInfo;
|
}
|
export default createStore({
|
state: {
|
data: {},
|
permission: [],
|
isLoading: false,//2020.06.03增加路由切换时加载提示
|
userInfo: null,
|
// wcsState: true//wcs服务状态
|
},
|
mutations: {
|
setPermission(state, data) { //调用方式 this.$store.commit('setPermission', data)
|
if (!data || typeof data != 'object') return;
|
if (data instanceof Array) {
|
state.permission.push(...data);
|
} else {
|
state.permission = data;
|
}
|
}, setUserInfo(state, data) {
|
state.userInfo = data;
|
localStorage.setItem(keys.USER, JSON.stringify(data));
|
},
|
clearUserInfo(state) {
|
state.permission = [];
|
state.userInfo = null;
|
localStorage.removeItem(keys.USER);
|
},
|
test(state) {
|
return 113344;
|
},
|
updateLoadingState(state, flag) {
|
state.isLoading = flag
|
}
|
}, getters: {
|
getPermission: (state) => (path) => { //调用方式 store.getters.getPermission('sys_User')
|
if (!path) return state.permission;
|
return state.permission.find(x => x.path == path);
|
},
|
getUserInfo: (state) => () => {
|
getUserInfo(state);
|
return state.userInfo;
|
}, getUserName: (state) => () => {
|
getUserInfo(state);
|
if (state.userInfo) {
|
return state.userInfo.userName;
|
}
|
return '未获取到登陆信息';
|
},
|
getToken: (state) => () => {
|
getUserInfo(state);
|
if (state.userInfo) {
|
return 'Bearer ' + state.userInfo.token;
|
}
|
return '';
|
},
|
isLogin: (state) => () => {
|
if (getUserInfo(state)) {
|
return true;
|
}
|
return false;
|
},
|
isLoading: (state) => () => {
|
return state.isLoading;
|
},
|
data: (state) => () => {
|
return state.data;
|
},
|
getData: (state) => () => {
|
return state.data;
|
},
|
}, actions: {
|
setPermission(context, data) {
|
context.commit('setPermission', data); //调用方式 store.dispatch('push')
|
},
|
toDo(context) {
|
return context.Store.m;
|
},
|
onLoading(context, flag) {
|
context.commit("updateLoadingState", flag);
|
}
|
}
|
})
|