import { defineStore } from 'pinia' import { storage } from '@/utils/storage' export const useUserStore = defineStore('user', { state: () => ({ member: {}, token: '', openid: '', isMer: 0, // 是否是商家 merchartShop: {} // 商家店铺信息 }), getters: { /** * 是否登录 */ isLogin: (state) => { return Object.keys(state.member).length > 0 && !!state.token }, /** * 用户信息 */ userInfo: (state) => state.member, /** * 是否是商家 */ isMerchant: (state) => state.isMer === 1 }, actions: { /** * 设置用户信息 */ setMember(member) { this.member = member }, /** * 设置Token */ setToken(token) { this.token = token storage.set('accessToken', token) }, /** * 设置OpenID */ setOpenid(openid) { this.openid = openid }, /** * 设置是否是商家 */ setMer(isMer) { this.isMer = isMer }, /** * 设置商家店铺信息 */ setMerchartShop(shop) { this.merchartShop = shop }, /** * 登出 */ logout() { this.member = {} this.token = '' this.openid = '' this.isMer = 0 this.merchartShop = {} storage.remove('accessToken') }, /** * 初始化用户信息 */ init() { const token = storage.get('accessToken') if (token) { this.token = token } } }, persist: { enabled: true, strategies: [ { storage: localStorage, paths: ['member', 'token', 'openid', 'isMer'] } ] } })