From 7f0a10808559aeed3344e9563912dc064e9c5637 Mon Sep 17 00:00:00 2001 From: liruiqiang <3151805288@qq.com> Date: Sat, 23 Aug 2025 13:34:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=BD=A6=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=B8=B2=E6=9F=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/cart/cart.vue | 403 +++++++++++++++++++++++++++++++++++++++++++++- src/pages/login/login.vue | 3 +- src/services/cart.ts | 12 ++ src/types/cart.d.ts | 25 +++ 4 files changed, 436 insertions(+), 7 deletions(-) create mode 100644 src/types/cart.d.ts diff --git a/src/pages/cart/cart.vue b/src/pages/cart/cart.vue index d277755..93d4663 100644 --- a/src/pages/cart/cart.vue +++ b/src/pages/cart/cart.vue @@ -1,11 +1,402 @@ - - + + diff --git a/src/pages/login/login.vue b/src/pages/login/login.vue index 4794a44..4f1bda4 100644 --- a/src/pages/login/login.vue +++ b/src/pages/login/login.vue @@ -84,7 +84,8 @@ const loginSuccess = (profile: LoginResult) => { uni.showToast({ icon: 'success', title: '登录成功' }) setTimeout(() => { // 页面跳转 - uni.switchTab({ url: '/pages/my/my' }) + // uni.switchTab({ url: '/pages/my/my' }) + uni.navigateBack() }, 500) } diff --git a/src/services/cart.ts b/src/services/cart.ts index 7e14ca5..dbe46b4 100644 --- a/src/services/cart.ts +++ b/src/services/cart.ts @@ -1,4 +1,6 @@ import { http } from '@/utils/http' +import type { CartItem } from '@/types/cart' + /** * 加入购物车 * @param data 请求体参数 @@ -10,3 +12,13 @@ export const postMemberCartAPI = (data: { skuId: string; count: number }) => { data, }) } + +/** + * 获取购物车列表 + */ +export const getMemberCartAPI = () => { + return http({ + method: 'GET', + url: '/member/cart', + }) +} diff --git a/src/types/cart.d.ts b/src/types/cart.d.ts new file mode 100644 index 0000000..18e3b46 --- /dev/null +++ b/src/types/cart.d.ts @@ -0,0 +1,25 @@ +/** 购物车类型 */ +export type CartItem = { + /** 商品 ID */ + id: string + /** SKU ID */ + skuId: string + /** 商品名称 */ + name: string + /** 图片 */ + picture: string + /** 数量 */ + count: number + /** 加入时价格 */ + price: number + /** 当前的价格 */ + nowPrice: number + /** 库存 */ + stock: number + /** 是否选中 */ + selected: boolean + /** 属性文字 */ + attrsText: string + /** 是否为有效商品 */ + isEffective: boolean +}