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