Administrator
2022-04-11 79d9fc857559982b00b68b2d709807bdc4cd286f
src/store/modules/user.js
@@ -1,11 +1,11 @@
import {setToken, setRefreshToken, removeToken, removeRefreshToken} from '@/util/auth'
import {Message} from 'element-ui'
import {setStore, getStore} from '@/util/store'
import {isURL, validatenull} from '@/util/validate'
import {deepClone} from '@/util/util'
import { setToken, setRefreshToken, removeToken, removeRefreshToken } from '@/util/auth'
import { 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, loginBySocial, getUserInfo, logout, refreshToken, getButtons} from '@/api/user'
import {getTopMenu, getRoutes} from '@/api/system/menu'
import { loginByUsername, loginBySocial, getUserInfo, logout, refreshToken, getButtons } from '@/api/user'
import { getTopMenu, getRoutes } from '@/api/system/menu'
import md5 from 'js-md5'
@@ -34,22 +34,25 @@
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'}) || '',
    menu: getStore({ name: 'menu' }) || [],
    menuAll: getStore({ name: 'menuAll' }) || [],
    token: getStore({ name: 'token' }) || '',
    refreshToken: getStore({ name: 'refreshToken' }) || '',
    hideHome: false,
  },
  actions: {
    //根据用户名登录
    LoginByUsername({commit}, userInfo) {
    LoginByUsername({ commit }, userInfo) {
      return new Promise((resolve, reject) => {
        loginByUsername(userInfo.tenantId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key, userInfo.code).then(res => {
          // debugger;
          const data = res.data;
          // console.log(res.data, 'datadatadatadatadata')
          if (data.error_description) {
            Message({
              message: data.error_description,
@@ -70,7 +73,7 @@
      })
    },
    //根据手机号登录
    LoginByPhone({commit}, userInfo) {
    LoginByPhone({ commit }, userInfo) {
      return new Promise((resolve) => {
        loginByUsername(userInfo.phone, userInfo.code).then(res => {
          const data = res.data.data;
@@ -82,7 +85,7 @@
      })
    },
    //根据第三方信息登录
    LoginBySocial({commit}, userInfo) {
    LoginBySocial({ commit }, userInfo) {
      return new Promise((resolve) => {
        loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state).then(res => {
          const data = res.data;
@@ -103,7 +106,7 @@
      })
    },
    //获取用户信息
    GetUserInfo({commit}) {
    GetUserInfo({ commit }) {
      return new Promise((resolve, reject) => {
        getUserInfo().then((res) => {
          const data = res.data.data;
@@ -115,7 +118,7 @@
      })
    },
    //刷新token
    refreshToken({state, commit}) {
    refreshToken({ state, commit }) {
      window.console.log('handle refresh token')
      return new Promise((resolve, reject) => {
        refreshToken(state.refreshToken, state.tenantId).then(res => {
@@ -129,7 +132,7 @@
      })
    },
    // 登出
    LogOut({commit}) {
    LogOut({ commit }) {
      return new Promise((resolve, reject) => {
        logout().then(() => {
          commit('SET_TOKEN', '');
@@ -148,7 +151,7 @@
      })
    },
    //注销session
    FedLogOut({commit}) {
    FedLogOut({ commit }) {
      return new Promise(resolve => {
        commit('SET_TOKEN', '');
        commit('SET_MENU_ALL_NULL', []);
@@ -172,12 +175,36 @@
      })
    },
    //获取系统菜单
    GetMenu({commit, dispatch}, topMenuId) {
    GetMenu({ commit, dispatch }, data) {
      var topMenuId = data[1], user = data[0];
      // console.log(user, "useruseruseruseruseruser");
      var d;
      if (user.role_name == "保安") {
        //持证隐藏菜单
        d = user.list.hold == 1;
      }
      // debugger;
      return new Promise(resolve => {
        getRoutes(topMenuId).then((res) => {
          const data = res.data.data
          let menu = deepClone(data);
          menu.forEach(ele => {
            var doItOnce = (ele, name, childrenName) => {
              if (d && ele.name == name) {
                var a = [];
                for (var k in ele.children) {
                  if (ele.children[k].name == childrenName) {
                    a.push(ele.children[k]);
                    break;
                  }
                }
                ele.children = a;
              }
            }
            doItOnce(ele, "考试管理", "成绩查看");
            doItOnce(ele, "培训管理", "培训考试成绩查看");
            addPath(ele, true);
          });
          commit('SET_MENU_ALL', menu)
@@ -188,7 +215,7 @@
      })
    },
    //获取系统按钮
    GetButtons({commit}) {
    GetButtons({ commit }) {
      return new Promise((resolve) => {
        getButtons().then(res => {
          const data = res.data.data;
@@ -199,10 +226,13 @@
    },
  },
  mutations: {
    set_hideHome: (state, val) => {
      state.hideHome = val;
    },
    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;
@@ -228,18 +258,18 @@
    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";
        userInfo.avatar = "http://61.131.136.25:2081/zhba/upload/picture/mrtx.png";
      }
      state.userInfo = userInfo;
      setStore({name: 'userInfo', content: state.userInfo})
      setStore({ name: 'userInfo', content: state.userInfo })
    },
    SET_ROLES: (state, roles) => {
      state.roles = roles;
@@ -266,7 +296,7 @@
      result.forEach(ele => {
        state.permission[ele] = true;
      });
      setStore({name: 'permission', content: state.permission})
      setStore({ name: 'permission', content: state.permission })
    }
  }