cart.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { defineStore } from 'pinia'
  2. import router from '@/router'
  3. interface cartState {
  4. cartList: Api.xsbCategoryProductList[]
  5. }
  6. export const useXsbCartStore = defineStore('xsb-cart', {
  7. state: (): cartState => ({
  8. cartList: [],
  9. }),
  10. actions: {
  11. /**
  12. * 星闪豹加入购物车逻辑
  13. * @param skuId 商品skuId
  14. * @param num 商品数量
  15. */
  16. async addCart(skuId: number, num: number) {
  17. return new Promise((resolve, reject) => {
  18. if (!skuId) {
  19. useGlobalToast().show({ msg: '请选择商品规格' })
  20. return reject(new Error('请选择商品规格'))
  21. }
  22. const { userInfo, token } = storeToRefs(useUserStore())
  23. if (!token.value) {
  24. useGlobalToast().show({ msg: '请先登录' })
  25. setTimeout(() => {
  26. router.replace({ name: 'smqjh-login' })
  27. }, 2000)
  28. return reject(new Error('请先登录'))
  29. }
  30. const { SelectShopInfo } = storeToRefs(useSysXsbStore())
  31. Apis.common.addShoppingCart({
  32. data: {
  33. businessType: 'XSB',
  34. skuId,
  35. num,
  36. shopId: SelectShopInfo.value?.shopId,
  37. channelId: userInfo.value.channelId,
  38. },
  39. }).then((res) => {
  40. resolve(res)
  41. })
  42. })
  43. },
  44. },
  45. })