wangting
2024-04-08 5848ccc253f59e32742cf7de16b13c5860f25824
Source/ProjectWeb/src/store/modules/user.js
@@ -27,10 +27,36 @@
  } else {
    ele[propsDefault.children].forEach(child => {
      addPath(child);
    })
  }
    });
  }
}
function updateCode(items) {
  items.forEach(item => {
    item.pathValue = item.path;
    item.path = '/' + item.code;
    item.query = {}; // 初始化 item.query
    item.query = queryStringToObject(item.pathValue)
    console.log('item', item);
    if (item.children && item.children.length > 0) {
      updateCode(item.children);
    }
  });
}
function queryStringToObject(queryString) {
  const index = queryString.indexOf('?');
  if (index !== -1) {
    queryString = queryString.substring(index + 1);
  }
  const params = new URLSearchParams(queryString);
  const obj = {};
  for (const [key, value] of params.entries()) {
    obj[key] = value;
  }
  return obj;
}
const user = {
  state: {
@@ -48,20 +74,21 @@
    //根据用户名登录
    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 => {
        loginByUsername(userInfo.tenantId, userInfo.deptId, userInfo.roleId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key,).then(res => {
          const data = res.data;
          if (data.error_description) {
            Message({
              message: data.error_description,
              type: 'error'
            })
          } else {
            commit('SET_TOKEN', data.access_token);
            commit('SET_REFRESH_TOKEN', data.refresh_token);
          if (data.success) {
            debugger;
            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);
            commit('SET_USER_INFO', data.obj.sessionInfo);
            commit('DEL_ALL_TAG');
            commit('CLEAR_LOCK');
          } else {
            Message({
              message: data.msg,
              type: 'error'
            })
          }
          resolve();
        }).catch(error => {
@@ -85,7 +112,7 @@
    //根据第三方信息登录
    LoginBySocial({commit}, userInfo) {
      return new Promise((resolve) => {
        loginBySocial(userInfo.tenantId, userInfo.source,  userInfo.state).then(res => {
        loginBySocial(userInfo.tenantId, userInfo.source, userInfo.state).then(res => {
          const data = res.data;
          if (data.error_description) {
            Message({
@@ -207,10 +234,12 @@
          let menu = deepClone(data);
          menu.forEach(ele => {
            addPath(ele, true);
            updateCode([ele]);
          });
          commit('SET_MENU_ALL', menu)
          commit('SET_MENU', menu)
          dispatch('GetButtons');
          //dispatch('GetButtons');s
          resolve(menu)
        })
      })
@@ -228,6 +257,7 @@
  },
  mutations: {
    SET_TOKEN: (state, token) => {
      debugger;
      setToken(token);
      state.token = token;
      setStore({name: 'token', content: state.token})
@@ -243,15 +273,15 @@
        }
      })
      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)