From 5186227a467bd34dc253e64b23bc96d3a07bb399 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 17 十一月 2021 17:39:53 +0800 Subject: [PATCH] 添加用户权限控制 --- src/store/modules/user.js | 98 ++++++++++++++++++++++++++----------------------- 1 files changed, 52 insertions(+), 46 deletions(-) diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 24d681e..abc79e2 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -3,97 +3,103 @@ * @description 鐧诲綍銆佽幏鍙栫敤鎴蜂俊鎭�侀��鍑虹櫥褰曘�佹竻闄ccessToken閫昏緫锛屼笉寤鸿淇敼 */ -import Vue from 'vue' -import { getUserInfo, login, logout } from '@/api/user' +import Vue from "vue"; +import { getUserInfo, login, logout } from "@/api/user"; import { getAccessToken, removeAccessToken, setAccessToken, -} from '@/utils/accessToken' -import { resetRouter } from '@/router' -import { title, tokenName } from '@/config' +} from "@/utils/accessToken"; +import { resetRouter } from "@/router"; +import { title, tokenName } from "@/config"; const state = () => ({ accessToken: getAccessToken(), - username: '', - avatar: '', + username: "", + userId: "", + avatar: "", permissions: [], -}) +}); const getters = { accessToken: (state) => state.accessToken, username: (state) => state.username, + userId: (state) => state.userId, avatar: (state) => state.avatar, permissions: (state) => state.permissions, -} +}; const mutations = { setAccessToken(state, accessToken) { - state.accessToken = accessToken - setAccessToken(accessToken) + state.accessToken = accessToken; + setAccessToken(accessToken); }, setUsername(state, username) { - state.username = username + state.username = username; + }, + setUserId(state, id) { + state.userId = id; }, setAvatar(state, avatar) { - state.avatar = avatar + state.avatar = avatar; }, setPermissions(state, permissions) { - state.permissions = permissions + state.permissions = permissions; }, -} +}; const actions = { setPermissions({ commit }, permissions) { - commit('setPermissions', permissions) + commit("setPermissions", permissions); }, async login({ commit }, userInfo) { - const { data } = await login(userInfo) - const accessToken = data[tokenName] + const { data } = await login(userInfo); + const accessToken = data[tokenName]; if (accessToken) { - commit('setAccessToken', accessToken) - const hour = new Date().getHours() + commit("setAccessToken", accessToken); + const hour = new Date().getHours(); const thisTime = hour < 8 - ? '鏃╀笂濂�' + ? "鏃╀笂濂�" : hour <= 11 - ? '涓婂崍濂�' + ? "涓婂崍濂�" : hour <= 13 - ? '涓崍濂�' + ? "涓崍濂�" : hour < 18 - ? '涓嬪崍濂�' - : '鏅氫笂濂�' - Vue.prototype.$baseNotify(`娆㈣繋鐧诲綍${title}`, `${thisTime}锛乣) + ? "涓嬪崍濂�" + : "鏅氫笂濂�"; + Vue.prototype.$baseNotify(`娆㈣繋鐧诲綍${title}`, `${thisTime}锛乣); } else { Vue.prototype.$baseMessage( `鐧诲綍鎺ュ彛寮傚父锛屾湭姝g‘杩斿洖${tokenName}...`, - 'error' - ) + "error" + ); } }, async getUserInfo({ commit, state }) { - const { data } = await getUserInfo(state.accessToken) + const { data } = await getUserInfo(state.accessToken); if (!data) { - Vue.prototype.$baseMessage('楠岃瘉澶辫触锛岃閲嶆柊鐧诲綍...', 'error') - return false + Vue.prototype.$baseMessage("楠岃瘉澶辫触锛岃閲嶆柊鐧诲綍...", "error"); + return false; } - let { permissions, username, avatar } = data + let { permissions, username, userId, avatar } = data; if (permissions && username && Array.isArray(permissions)) { - commit('setPermissions', permissions) - commit('setUsername', username) - commit('setAvatar', avatar) - return permissions + commit("setPermissions", permissions); + commit("setUsername", username); + commit("setUserId", userId); + commit("setAvatar", avatar); + return permissions; } else { - Vue.prototype.$baseMessage('鐢ㄦ埛淇℃伅鎺ュ彛寮傚父', 'error') - return false + Vue.prototype.$baseMessage("鐢ㄦ埛淇℃伅鎺ュ彛寮傚父", "error"); + return false; } }, async logout({ dispatch }) { - await logout(state.accessToken) - await dispatch('resetAccessToken') - await resetRouter() + await logout(state.accessToken); + await dispatch("resetAccessToken"); + await resetRouter(); }, resetAccessToken({ commit }) { - commit('setPermissions', []) - commit('setAccessToken', '') - removeAccessToken() + commit("setPermissions", []); + commit("setAccessToken", ""); + removeAccessToken(); }, -} -export default { state, getters, mutations, actions } +}; +export default { state, getters, mutations, actions }; -- Gitblit v1.8.0