shuishen
2025-09-29 b9a26af5b08d3d92a6c38fd90e023bc4706f19eb
src/store/modules/user/index.js
@@ -8,9 +8,9 @@
 * Copyright 2025 OBKoro1, All Rights Reserved. 
 * 2025-09-28 09:31:16
 */
import { defineStore } from 'pinia';
import { UserApi } from '@/api';
import { clearToken, setToken } from '@/utils/auth';
import { defineStore } from 'pinia'
import { UserApi } from '@/api'
import { clearToken, setToken } from '@/utils/auth'
const useUserStore = defineStore('user', {
  state: () => ({
@@ -20,68 +20,68 @@
    token: ''
  }),
  getters: {
    userInfo(state) {
      return { ...state };
    userInfo (state) {
      return { ...state }
    }
  },
  actions: {
    // 设置用户的信息
    setInfo(partial) {
      this.$patch(partial);
    setInfo (partial) {
      this.$patch(partial)
    },
    // 重置用户信息
    resetInfo() {
      this.$reset();
    resetInfo () {
      this.$reset()
    },
    // 获取用户信息
    async info() {
      const result = await UserApi.profile();
      this.setInfo(result);
    async info () {
      const result = await UserApi.profile()
      this.setInfo(result)
    },
    // 异步登录并存储token
    login(loginForm) {
    login (loginForm) {
      return new Promise((resolve, reject) => {
        UserApi.login(loginForm)
          .then((res) => {
            const token = res.token;
            const token = res.token
            if (token) {
              setToken(token);
              setToken(token)
            }
            resolve(res);
            resolve(res)
          })
          .catch((error) => {
            reject(error);
          });
      });
            reject(error)
          })
      })
    },
    // Logout
    async logout() {
      await UserApi.logout();
      this.resetInfo();
      clearToken();
    async logout () {
      await UserApi.logout()
      this.resetInfo()
      clearToken()
    },
    // 小程序授权登录
    authLogin(provider = 'weixin') {
    authLogin (provider = 'weixin') {
      return new Promise((resolve, reject) => {
        uni.login({
          provider,
          success: async (result) => {
            if (result.code) {
              const res = await UserApi.loginByCode({ code: result.code });
              resolve(res);
              const res = await UserApi.loginByCode({ code: result.code })
              resolve(res)
            } else {
              reject(new Error(result.errMsg));
              reject(new Error(result.errMsg))
            }
          },
          fail: (err) => {
            console.error(`login error: ${err}`);
            reject(err);
            console.error(`login error: ${err}`)
            reject(err)
          }
        });
      });
        })
      })
    }
  },
  persist: true
});
})
export default useUserStore;
export default useUserStore