| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import { defineStore } from "pinia"
- import { removeToken, setToken } from "@/libs/auth"
- import router from "@/router"
- import { httpAjax } from "@/plugins/httpAjax"
- import { store } from "./index"
- import { getUserInfoApi } from "@/api/user"
- import { getCurrentUrlParams, normalizeAuthorization } from "@/utils/urlParams"
- interface userType {
- userInfo: {
- nickname?: string
- phone?: string
- }
- roles: ""
- }
- const useStore = defineStore("user", {
- state: (): userType => {
- return {
- userInfo: {}, //用户信息
- roles: "" //用户角色
- }
- },
- actions: {
- /** 登录 */
- async login() {
- const token = normalizeAuthorization(getCurrentUrlParams().get("Authorization"))
- token && setToken(token)
- },
- /** 获取用户信息 */
- async getUserInfo() {
- const userInfoRes = await httpAjax(getUserInfoApi)
- if (userInfoRes.code !== 200) {
- return Promise.reject(userInfoRes)
- }
- const userInfo = userInfoRes.data || {}
- if (!userInfo.id) {
- return Promise.reject({
- code: "500",
- data: null,
- message: "获取用户信息出错,请联系管理员!"
- })
- }
- this.userInfo = userInfo
- this.roles = userInfo.id
- return Promise.resolve()
- },
- /** 退出登录 */
- async loginOut() {
- this.resetUser()
- return Promise.resolve()
- },
- /** 清空所有登录信息,退出 */
- resetUser() {
- this.userInfo = {}
- this.roles = ""
- removeToken()
- router.push({
- path: "/login"
- })
- }
- }
- })
- export default () => {
- return useStore(store)
- }
|