linwe
2024-07-03 6155669d6cecdff465688ec86bc69453b7896b2c
src/store/modules/user.js
@@ -4,10 +4,21 @@
  removeToken,
  removeRefreshToken,
} from "@/util/auth";
import { Alert, Message } from "element-ui";
import { setStore, getStore } from "@/util/store";
import { isURL, validatenull } from "@/util/validate";
import { deepClone } from "@/util/util";
import {
  Alert,
  Message
} from "element-ui";
import {
  setStore,
  getStore
} from "@/util/store";
import {
  isURL,
  validatenull
} from "@/util/validate";
import {
  deepClone
} from "@/util/util";
import website from "@/config/website";
import {
  loginByUsername,
@@ -18,7 +29,10 @@
  refreshToken,
  getButtons,
} from "@/api/user";
import { getTopMenu, getRoutes } from "@/api/system/menu";
import {
  getTopMenu,
  getRoutes
} from "@/api/system/menu";
import md5 from "js-md5";
function findChildrenUrl(data) {
@@ -58,21 +72,42 @@
const user = {
  state: {
    tenantId: getStore({ name: "tenantId" }) || "",
    userInfo: getStore({ name: "userInfo" }) || [],
    permission: getStore({ name: "permission" }) || {},
    tenantId: getStore({
      name: "tenantId"
    }) || "",
    userInfo: getStore({
      name: "userInfo"
    }) || [],
    permission: getStore({
      name: "permission"
    }) || {},
    roles: [],
    menuId: {},
    menu: getStore({ name: "menu" }) || [],
    menuAll: getStore({ name: "menuAll" }) || [],
    token: getStore({ name: "token" }) || "",
    refreshToken: getStore({ name: "refreshToken" }) || "",
    homeFirstPage: getStore({ name: "firstPage" }) || "",
    homeFirstTagPage: getStore({ name: "firstTagPage" }) || {},
    menu: getStore({
      name: "menu"
    }) || [],
    menuAll: getStore({
      name: "menuAll"
    }) || [],
    token: getStore({
      name: "token"
    }) || "",
    refreshToken: getStore({
      name: "refreshToken"
    }) || "",
    homeFirstPage: getStore({
      name: "firstPage"
    }) || "",
    homeFirstTagPage: getStore({
      name: "firstTagPage"
    }) || {},
  },
  actions: {
    //根据用户名登录
    LoginByUsername({ dispatch, commit }, userInfo) {
    LoginByUsername({
      dispatch,
      commit
    }, userInfo) {
      return new Promise((resolve, reject) => {
        loginByUsername(
          userInfo.tenantId,
@@ -91,7 +126,9 @@
                message: data.error_description,
                type: "error",
              });
              resolve({ error: "error" });
              resolve({
                error: "error"
              });
            } else {
              commit("SET_TOKEN", data.access_token);
              commit("SET_REFRESH_TOKEN", data.refresh_token);
@@ -107,9 +144,13 @@
                  findChildrenRole(data.role_name, "administrator") ||
                  findChildrenRole(data.role_name, "gagly") ||
                  findChildrenRole(data.role_name, "jdgly") ||
                  findChildrenRole(data.role_name, "sqgly")
                  findChildrenRole(data.role_name, "sqgly") ||
                  findChildrenRole(data.role_name, "mj")
                ) {
                  setStore({ name: "showMenu", content: true });
                  setStore({
                    name: "showMenu",
                    content: true
                  });
                  commit("SET_HOMEFIRSTTAGPAGE", {
                    label: "首页",
@@ -132,7 +173,10 @@
                    menuData,
                  });
                } else {
                  setStore({ name: "showMenu", content: false });
                  setStore({
                    name: "showMenu",
                    content: false
                  });
                  commit("SET_HOMEFIRSTTAGPAGE", {
                    label: fistMenu.name,
@@ -148,7 +192,10 @@
                  commit("SET_HOMEFIRSTPAGE", fistMenu.path);
                  resolve({ fistMenu, menuData });
                  resolve({
                    fistMenu,
                    menuData
                  });
                }
                commit("DEL_ALL_TAG");
@@ -161,7 +208,9 @@
      });
    },
    //根据手机号登录
    LoginByPhone({ commit }, userInfo) {
    LoginByPhone({
      commit
    }, userInfo) {
      return new Promise((resolve) => {
        loginByUsername(userInfo.phone, userInfo.code).then((res) => {
          const data = res.data.data;
@@ -173,7 +222,9 @@
      });
    },
    //根据第三方信息登录
    LoginBySocial({ commit }, userInfo) {
    LoginBySocial({
      commit
    }, userInfo) {
      return new Promise((resolve) => {
        loginBySocial(
          userInfo.tenantId,
@@ -200,7 +251,9 @@
      });
    },
    //根据单点信息登录
    LoginBySso({ commit }, userInfo) {
    LoginBySso({
      commit
    }, userInfo) {
      return new Promise((resolve) => {
        loginBySso(userInfo.state, userInfo.code).then((res) => {
          const data = res.data;
@@ -222,7 +275,9 @@
      });
    },
    //获取用户信息
    GetUserInfo({ commit }) {
    GetUserInfo({
      commit
    }) {
      return new Promise((resolve, reject) => {
        getUserInfo()
          .then((res) => {
@@ -236,7 +291,10 @@
      });
    },
    //刷新token
    refreshToken({ state, commit }, userInfo) {
    refreshToken({
      state,
      commit
    }, userInfo) {
      return new Promise((resolve, reject) => {
        refreshToken(
          state.refreshToken,
@@ -257,7 +315,9 @@
      });
    },
    // 登出
    LogOut({ commit }) {
    LogOut({
      commit
    }) {
      return new Promise((resolve, reject) => {
        logout()
          .then(() => {
@@ -279,7 +339,9 @@
      });
    },
    //注销session
    FedLogOut({ commit }) {
    FedLogOut({
      commit
    }) {
      return new Promise((resolve) => {
        commit("SET_TOKEN", "");
        commit("SET_MENU_ALL_NULL", []);
@@ -304,7 +366,10 @@
      });
    },
    //获取系统菜单
    GetMenu({ commit, dispatch }, topMenuId) {
    GetMenu({
      commit,
      dispatch
    }, topMenuId) {
      return new Promise((resolve) => {
        getRoutes(topMenuId).then((res) => {
          const data = res.data.data;
@@ -320,7 +385,9 @@
      });
    },
    //获取系统按钮
    GetButtons({ commit }) {
    GetButtons({
      commit
    }) {
      return new Promise((resolve) => {
        getButtons().then((res) => {
          const data = res.data.data;
@@ -332,7 +399,10 @@
  },
  mutations: {
    SET_HOMEFIRSTPAGE: (state, homeFirstPage) => {
      setStore({ name: "firstPage", content: homeFirstPage });
      setStore({
        name: "firstPage",
        content: homeFirstPage
      });
      state.homeFirstPage = homeFirstPage;
    },
    SET_HOMEFIRSTTAGPAGE: (state, homeFirstTagPage) => {
@@ -345,7 +415,10 @@
    SET_TOKEN: (state, token) => {
      setToken(token);
      state.token = token;
      setStore({ name: "token", content: state.token });
      setStore({
        name: "token",
        content: state.token
      });
    },
    SET_MENU_ID(state, menuId) {
      state.menuId = menuId;
@@ -362,31 +435,49 @@
        }
      });
      state.menuAll = menu;
      setStore({ name: "menuAll", content: state.menuAll });
      setStore({
        name: "menuAll",
        content: state.menuAll
      });
    },
    SET_MENU_ALL_NULL: (state) => {
      state.menuAll = [];
      setStore({ name: "menuAll", content: state.menuAll });
      setStore({
        name: "menuAll",
        content: state.menuAll
      });
    },
    SET_MENU: (state, menu) => {
      state.menu = menu;
      setStore({ name: "menu", content: state.menu });
      setStore({
        name: "menu",
        content: state.menu
      });
    },
    SET_REFRESH_TOKEN: (state, refreshToken) => {
      setRefreshToken(refreshToken);
      state.refreshToken = refreshToken;
      setStore({ name: "refreshToken", content: state.refreshToken });
      setStore({
        name: "refreshToken",
        content: state.refreshToken
      });
    },
    SET_TENANT_ID: (state, tenantId) => {
      state.tenantId = tenantId;
      setStore({ name: "tenantId", content: state.tenantId });
      setStore({
        name: "tenantId",
        content: state.tenantId
      });
    },
    SET_USER_INFO: (state, userInfo) => {
      if (validatenull(userInfo.avatar)) {
        userInfo.avatar = "/img/bg/img-logo.png";
      }
      state.userInfo = userInfo;
      setStore({ name: "userInfo", content: state.userInfo });
      setStore({
        name: "userInfo",
        content: state.userInfo
      });
    },
    SET_ROLES: (state, roles) => {
      state.roles = roles;
@@ -413,7 +504,10 @@
      result.forEach((ele) => {
        state.permission[ele] = true;
      });
      setStore({ name: "permission", content: state.permission });
      setStore({
        name: "permission",
        content: state.permission
      });
    },
  },
};