yshop/uniapp-vue3/store/store.js
zheyun 89eca4b5a9
Some checks failed
build-push / build (push) Failing after 20s
upload source code
2026-11-02 21:15:14 +08:00

104 lines
2.1 KiB
JavaScript

import { defineStore } from 'pinia'
import cookie from '@/utils/cookie'
import { navigateTo } from '@/utils/router'
export const useMainStore = defineStore('main', {
state: () => ({
store: {},
cart: [],
orderType: 'takein',
address: {},
addresses: {},
member: {
},
openid:"",
token:"",
lang: 'zh-cn',
cookieKey:'YSESSID=yshop-e4dk4o2utr3c0n95tp42p745ai',
// 默认地为你为北京地址
location: {},
mycoupon: {}
}),
getters: {
isLogin(state) {
return !!(state.token || cookie.get('accessToken'))
},
},
actions: {
DEL_COUPON() {
this.mycoupon = {}
},
SET_COUPON(coupon) {
this.mycoupon = coupon
},
SET_ORDER_TYPE(type) {
this.orderType = type
},
SET_MEMBER(member) {
this.member = member
cookie.set('userinfo', member)
},
SET_ADDRESS(address) {
this.address = address
},
SET_ADDRESSES(addresses) {
this.addresses = addresses
},
SET_STORE(store) {
this.store = store
},
SET_CART(cart) {
this.cart = cart
},
REMOVE_CART(state) {
this.cart = []
},
setCookie(state, provider) {
state.cookie = provider;
uni.setStorage({
key: 'cookieKey',
data: provider
});
},
SET_LOCATION(location) {
this.location = location;
},
SET_OPENID(openid) {
this.openid = openid;
},
SET_TOKEN(token) {
this.token = token;
cookie.set('accessToken', token)
},
setAccessToken(user) {
cookie.set('accessToken', user)
// return getUserInfo()
},
setSelectAddress(id) {
const list = Array.isArray(this.addresses) ? this.addresses : []
this.address = list.find(item => item.id == id) || {}
},
init() {
const accessToken = cookie.get('accessToken')
const userinfo = cookie.get('userinfo')
if (accessToken) {
this.token = accessToken
}
if (userinfo && typeof userinfo === 'object') {
this.member = userinfo
}
},
logout() {
this.member = {}
this.cart = []
this.token = ''
cookie.remove('accessToken')
cookie.remove('userinfo')
navigateTo('/pages-user/login/login')
},
},
})