田源
2024-12-16 d186b4d37394e4816e0f271fcced4d06b3069454
Source/plt-web/plt-web-ui/src/store/modules/user.js
@@ -2,11 +2,12 @@
import {Message} from 'element-ui'
import {setStore, getStore} from '@/util/store'
import {isURL, validatenull} from '@/util/validate'
import {deepClone,queryStringToObject} from '@/util/util'
import {deepClone, queryStringToObject} from '@/util/util'
import website from '@/config/website'
import {loginByUsername, loginBySocial, loginBySso, getUserInfo, logout, refreshToken, getButtons} from '@/api/user'
import {getTopMenu, getRoutes} from '@/api/system/menu'
import md5 from 'js-md5'
import func from "@/util/func";
function addPath(ele, first) {
@@ -16,7 +17,7 @@
    label: propsConfig.label || 'name',
    path: propsConfig.path || 'path',
    icon: propsConfig.icon || 'icon',
    children: propsConfig.children || 'children'
    children: propsConfig.children || 'children',
  }
  const icon = ele[propsDefault.icon];
  ele[propsDefault.icon] = validatenull(icon) ? menu.iconDefault : icon;
@@ -37,7 +38,7 @@
    item.pathValue = item.path;
    item.path = '/' + item.code;
    item.query = {}; // 初始化 item.query
    if(item.pathValue.indexOf('?')!=-1) {
    if (item.pathValue.indexOf('?') != -1) {
      item.query = queryStringToObject(item.pathValue)
    }
    if (item.children && item.children.length > 0) {
@@ -62,23 +63,25 @@
    //根据用户名登录
    LoginByUsername({commit}, userInfo) {
      return new Promise((resolve, reject) => {
        loginByUsername(userInfo.tenantId, userInfo.deptId, userInfo.roleId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key,).then(res => {
        let passwordDes = func.encryptData(userInfo.password, 'daliantan0v0vcip')
        loginByUsername(userInfo.deptId, userInfo.roleId, userInfo.username, passwordDes, userInfo.type, userInfo.key,).then(res => {
          const data = res.data;
          if (data.success) {
            commit('SET_TOKEN', data.obj.sessionInfo.token);
            commit('SET_REFRESH_TOKEN', data.obj.sessionInfo.token);
            commit('SET_TENANT_ID', data.tenant_id);
            commit('SET_USER_INFO', data.obj.sessionInfo);
          if (data.obj.failCode === 'loginSuccess' || data.obj.failCode === 'passwordRemainDay') {
            commit('SET_TOKEN', data.obj.tokenVO.accessToken);
            commit('SET_REFRESH_TOKEN', data.obj.tokenVO.accessToken);
            commit('DEL_ALL_TAG');
            commit('CLEAR_LOCK');
          } else {
            Message({
              message: data.msg,
              type: 'error'
            getUserInfo().then((res) => {
              const data = res.data;
              commit('SET_USER_INFO', data.obj);
            }).catch(err => {
              console.log(err)
            })
          }
          resolve();
          resolve(data);
        }).catch(error => {
          // console.log(error)
          reject(error);
        })
      })
@@ -137,18 +140,6 @@
            commit('CLEAR_LOCK');
          }
          resolve();
        })
      })
    },
    //获取用户信息
    GetUserInfo({commit}) {
      return new Promise((resolve, reject) => {
        getUserInfo().then((res) => {
          const data = res.data.data;
          commit('SET_ROLES', data.roles);
          resolve(data);
        }).catch(err => {
          reject(err);
        })
      })
    },
@@ -213,6 +204,21 @@
        })
      })
    },
    //获取用户信息
    GetUserInfo({commit}) {
      return new Promise((resolve, reject) => {
        getUserInfo().then((res) => {
          const data = res.data.data;
          console.log('user', res)
          // commit('SET_USER_INFO', data.roles);
          resolve(data);
        }).catch(err => {
          reject(err);
        })
      })
    },
    //获取系统菜单
    GetMenu({commit, dispatch}, topMenuId) {
      return new Promise(resolve => {
@@ -226,16 +232,19 @@
          commit('SET_MENU_ALL', menu)
          commit('SET_MENU', menu)
          //dispatch('GetButtons');s
          dispatch('GetButtons');
          resolve(menu)
        })
      })
    },
    //获取系统按钮
    GetButtons({commit}) {
      return new Promise((resolve) => {
        getButtons().then(res => {
          const data = res.data.data;
          console.log('getButton',data)
          commit('SET_PERMISSION', data);
          resolve();
        })
@@ -288,8 +297,20 @@
    SET_ROLES: (state, roles) => {
      state.roles = roles;
    },
    SET_PERMISSION: (state, permission) => {
      let permission_new = {};
      permission.forEach(item => {
        let children = {};
        if (item.children && item.children.length > 0) {
          item.children.forEach(child => {
            Vue.set(children, child.code, true);
          });
        }
        Vue.set(permission_new, item.id, children);
      });
      state.permission = permission_new;
      setStore({name: "permission", content: permission_new});
    },
  }
}
export default user