智慧园区前端大屏
linwe
2024-11-21 8f9d48be28aae04422edb407b18107e379cbda23
src/store/login.js
@@ -1,13 +1,15 @@
// src/stores/useUserStore.js
import {
  loginByUsername,
  logout
  logout,
  refreshToken,
} from '@/api/user'
import { defineStore } from 'pinia'
import md5 from 'js-md5'
import {
  ElMessage
} from 'element-plus'
import { validatenull } from '@/utils/validate'
export const useLogin = defineStore('login', {
  // 存储状态的地方,相当于 Vuex 的 state
@@ -91,6 +93,35 @@
          })
      })
    },
    RefreshToken (userInfo = {}) {
      return new Promise((resolve, reject) => {
        refreshToken(
          this.refreshToken,
          this.tenantId,
          !validatenull(userInfo) ? userInfo.deptId : this.userInfo.dept_id,
          !validatenull(userInfo) ? userInfo.roleId : this.userInfo.role_id
        )
          .then(res => {
            const data = res.data
            this.SET_TOKEN(data.access_token)
            this.SET_REFRESH_TOKEN(data.refresh_token)
            this.SET_USER_INFO(data)
            resolve()
          })
          .catch(error => {
            reject(error)
          })
      })
    },
    removeToken () {
      this.SET_TOKEN('')
    },
    removeRefreshToken () {
      this.SET_REFRESH_TOKEN('')
    }
  },
  persist: {