188 lines
4.9 KiB
JavaScript
188 lines
4.9 KiB
JavaScript
// import { login, logout, getInfo } from '@/api/user'
|
|
import {loginUserAPI} from "@/api/login";
|
|
import {getToken, setToken, removeToken} from "@/utils/auth";
|
|
import {Message} from "element-ui";
|
|
import router, {resetRouter} from "@/router";
|
|
import store from "@/store";
|
|
import {myBalanceAPI} from "@/api/finance/customerRechargeManagement";
|
|
|
|
const state = {
|
|
token: getToken(),
|
|
name: "",
|
|
avatar: "",
|
|
introduction: "",
|
|
//用户名称
|
|
user: "",
|
|
//权限列表
|
|
auths: [],
|
|
// 当前状态码
|
|
requestCode: 200,
|
|
//客户余额
|
|
mybalance: ''
|
|
};
|
|
|
|
const mutations = {
|
|
SET_TOKEN: (state, token) => {
|
|
state.token = token;
|
|
},
|
|
SET_INTRODUCTION: (state, introduction) => {
|
|
state.introduction = introduction;
|
|
},
|
|
SET_NAME: (state, name) => {
|
|
state.name = name;
|
|
},
|
|
SET_AVATAR: (state, avatar) => {
|
|
state.avatar = avatar;
|
|
},
|
|
SET_AUTHS: (state, auths) => {
|
|
state.auths = auths;
|
|
sessionStorage.setItem("auths", JSON.stringify(state.auths));
|
|
},
|
|
SET_USER: (state, user) => {
|
|
state.user = user;
|
|
sessionStorage.setItem("user", state.user);
|
|
},
|
|
SET_REQUESTSTATE: (state, code) => {
|
|
state.requestCode = code;
|
|
},
|
|
SETMYBANLANCE(state, mybalance) {
|
|
state.mybalance = mybalance
|
|
}
|
|
};
|
|
|
|
const actions = {
|
|
//客户获取余额
|
|
async getCustmoersMoney({commit}) {
|
|
let result = await myBalanceAPI()
|
|
if (result.status) {
|
|
commit('SETMYBANLANCE', result.data)
|
|
sessionStorage.setItem('mybalance', result.data)
|
|
}
|
|
},
|
|
// user login
|
|
async login({commit}, userInfo) {
|
|
|
|
const {username, password, codeid, vcode} = userInfo;
|
|
return new Promise(async (resolve, reject) => {
|
|
loginUserAPI(userInfo)
|
|
.then(async (response) => {
|
|
console.log("response:", response)
|
|
if (response.status) {
|
|
if (response.roles == "None") {
|
|
Message({
|
|
message: "请联系管理员给您配置角色哦~",
|
|
type: 'error',
|
|
})
|
|
} else {
|
|
const {data, admin} = response;
|
|
commit("SET_USER", username);
|
|
data ? commit("SET_AUTHS", data) : commit("SET_AUTHS", []);
|
|
const accessRoutes = await store.dispatch(
|
|
"permission/generateRoutes",
|
|
{
|
|
user: username,
|
|
auths: data,
|
|
admin: admin
|
|
}
|
|
)
|
|
resetRouter();
|
|
console.log("挂载前的路由是:", accessRoutes)
|
|
router.addRoutes(accessRoutes);
|
|
resolve(response);
|
|
}
|
|
|
|
} else {
|
|
reject(response);
|
|
}
|
|
})
|
|
.catch((error) => {
|
|
console.log(error)
|
|
reject(error);
|
|
});
|
|
});
|
|
},
|
|
// get user info
|
|
getInfo({commit, state}) {
|
|
return new Promise((resolve, reject) => {
|
|
// getInfo(state.token).then(response => {
|
|
// const { data } = response
|
|
// if (!data) {
|
|
// reject('Verification failed, please Login again.')
|
|
// }
|
|
// const { roles, name, avatar, introduction } = data
|
|
// // roles must be a non-empty array
|
|
// if (!roles || roles.length <= 0) {
|
|
// reject('getInfo: roles must be a non-null array!')
|
|
// }
|
|
// commit('SET_ROLES', roles)
|
|
// commit('SET_NAME', name)
|
|
// commit('SET_AVATAR', avatar)
|
|
// commit('SET_INTRODUCTION', introduction)
|
|
// }).catch(error => {
|
|
// reject(error)
|
|
// })
|
|
});
|
|
},
|
|
|
|
// user logout
|
|
logout({commit, state, dispatch}) {
|
|
return new Promise((resolve, reject) => {
|
|
logout(state.token)
|
|
.then(() => {
|
|
commit("SET_TOKEN", "");
|
|
commit("SET_ROLES", []);
|
|
removeToken();
|
|
resetRouter();
|
|
|
|
// reset visited views and cached views
|
|
// to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485
|
|
dispatch("tagsView/delAllViews", null, {root: true});
|
|
|
|
resolve();
|
|
})
|
|
.catch((error) => {
|
|
reject(error);
|
|
});
|
|
});
|
|
},
|
|
|
|
// remove token
|
|
resetToken({commit}) {
|
|
return new Promise((resolve) => {
|
|
commit("SET_TOKEN", "");
|
|
commit("SET_ROLES", []);
|
|
removeToken();
|
|
resolve();
|
|
});
|
|
},
|
|
|
|
// dynamically modify permissions
|
|
async changeRoles({commit, dispatch}, role) {
|
|
const token = role + "-token";
|
|
|
|
commit("SET_TOKEN", token);
|
|
setToken(token);
|
|
|
|
const {roles} = await dispatch("getInfo");
|
|
|
|
resetRouter();
|
|
|
|
// generate accessible routes map based on roles
|
|
const accessRoutes = await dispatch("permission/generateRoutes", roles, {
|
|
root: true,
|
|
});
|
|
// dynamically add accessible routes
|
|
router.addRoutes(accessRoutes);
|
|
|
|
// reset visited views and cached views
|
|
dispatch("tagsView/delAllViews", null, {root: true});
|
|
},
|
|
};
|
|
|
|
export default {
|
|
namespaced: true,
|
|
state,
|
|
mutations,
|
|
actions,
|
|
};
|