From b9be27ab85cf7c2e9f02450f14d15820555bba4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com> Date: Thu, 21 May 2026 11:36:14 +0800 Subject: [PATCH 1/2] aaa --- src/App.vue | 1 + src/api/account.ts | 37 +++++++++++++++++++++ src/utils/request.ts | 8 ++--- src/views/login/retrieve-password.vue | 47 +++++++++++++++++---------- src/views/shopping-drawer.vue | 2 +- 5 files changed, 73 insertions(+), 22 deletions(-) diff --git a/src/App.vue b/src/App.vue index 40ff505..0b9886e 100644 --- a/src/App.vue +++ b/src/App.vue @@ -15,6 +15,7 @@ import ShoppingDrawer from '@/views/shopping-drawer.vue' const globalStore = useGlobalStore() const loading = computed(() => globalStore.state.loading) + globalStore.setLoading(false) const viewRef = ref() const viewStyle = ref({ '--app-view-width': '', diff --git a/src/api/account.ts b/src/api/account.ts index 986ccf2..9f1652f 100644 --- a/src/api/account.ts +++ b/src/api/account.ts @@ -60,3 +60,40 @@ export const AccountSendVerifyCode = (data) => { loading: true }) } +/** + * 忘记密码:重置密码 + * @param data - 包含邮箱的参数 + * @param data.email - 邮箱 + * @param data.password - 密码 + * @param data.emailVerifyCode - 验证码 +*/ +export const AccountResetPassword = (data) => { + return request({ + url: '/buyer/account/resetPassword', + method: 'post', + data, + loading: true + }) +} +/** + * 通用验证码校验 + * @param data - 包含邮箱的参数 + * @param data.email - 邮箱 + * @param data.emailVerifyCode - 验证码 + * @param data.operationType - 操作类型:FORGET_PWD, BIND_MAILBOX +*/ +export const AccountVerifyCode = (data) => { + return request({ + url: '/buyer/account/verifyCode', + method: 'post', + data, + loading: true + }) +} + +/** + * 变更邮箱:发送新邮箱验证码 + * @param data - 包含邮箱的参数 + * @param data.email - 邮箱 + * @param data.operationType - 操作类型:BIND_MAILBOX +*/ diff --git a/src/utils/request.ts b/src/utils/request.ts index 29fd714..01bb1ed 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -76,8 +76,9 @@ service.interceptors.response.use( // 处理异常的情况 // console.log(res) if (res.errCode != 0) { - ElMessage.error(res.message) - return Promise.reject(new Error(res.errMsg || res.message || 'error')) + let msg = res.errMsg || res.message || 'error' + ElMessage.error(msg) + return Promise.reject(new Error(msg)) } else { // 默认只返回data,不返回状态码和message // 通过 meta 中的 responseAll 配置来取决后台是否返回所有数据(包括状态码,message和data) @@ -109,8 +110,7 @@ service.interceptors.response.use( message: 'Please log in and try again.', duration: 5000 }) - router.push('/login') - useUserInfoStore().logOut(false) + useUserInfoStore().logout() return Promise.reject(false) } error.config && removePending(error.config) diff --git a/src/views/login/retrieve-password.vue b/src/views/login/retrieve-password.vue index 30a657e..2bc271a 100644 --- a/src/views/login/retrieve-password.vue +++ b/src/views/login/retrieve-password.vue @@ -71,6 +71,7 @@ diff --git a/src/views/shopping-drawer.vue b/src/views/shopping-drawer.vue index 2ff3664..2a14152 100644 --- a/src/views/shopping-drawer.vue +++ b/src/views/shopping-drawer.vue @@ -12,7 +12,7 @@ import img from '@/assets/images/brand-null.png' let data = reactive({ }) const router = useRouter() -const isShoppingShow = ref(true) +const isShoppingShow = ref(false) const shoppingClose = () => { isShoppingShow.value = false } From 31de24cc2b037382f6f2b22ca969b35e3c203998 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com> Date: Thu, 21 May 2026 11:46:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/account.ts | 27 ++++++++++++++++++-- src/api/shoppingCart.ts | 55 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 src/api/shoppingCart.ts diff --git a/src/api/account.ts b/src/api/account.ts index 9f1652f..d3b40ac 100644 --- a/src/api/account.ts +++ b/src/api/account.ts @@ -94,6 +94,29 @@ export const AccountVerifyCode = (data) => { /** * 变更邮箱:发送新邮箱验证码 * @param data - 包含邮箱的参数 - * @param data.email - 邮箱 - * @param data.operationType - 操作类型:BIND_MAILBOX + * @param data.oldEmail - 旧邮箱 + * @param data.newEmail - 新邮箱 */ +export const AccountSendEmailChangeCode = (data) => { + return request({ + url: '/buyer/account/sendEmailChangeCode', + method: 'post', + data, + loading: true + }) +} +/** + * 变更邮箱:绑定新邮箱 + * @param data - 包含邮箱的参数 + * @param data.oldEmail - 旧邮箱 + * @param data.newEmail - 新邮箱 + * @param data.emailVerifyCode - 验证码 +*/ +export const AccountBindEmail = (data) => { + return request({ + url: '/buyer/account/bindEmail', + method: 'post', + data, + loading: true + }) +} diff --git a/src/api/shoppingCart.ts b/src/api/shoppingCart.ts new file mode 100644 index 0000000..8ecc0e8 --- /dev/null +++ b/src/api/shoppingCart.ts @@ -0,0 +1,55 @@ +import request from '@/utils/request' + +/** + * 加入购物车 + * @param data - 包含邮箱的参数 + * @param data.listingId - 商品ID + * @param data.listingIds - 商品ID列表 +*/ +export const AddShoppingCart = (data, loading?: boolean) => { + return request({ + url: '/buyer/buyer/cart/add', + method: 'post', + data, + loading + }) +} + +/** + * 清空购物车 +*/ +export const ClearShoppingCart = (loading?: boolean) => { + return request({ + url: '/buyer/buyer/cart/clear', + method: 'delete', + loading + }) +} + +/** + * 获取购物车列表 + * @param loading - 是否显示loading + * @returns 购物车列表数据 +*/ +export const GetShoppingCartList = (loading?: boolean) => { + return request({ + url: '/buyer/buyer/cart/list', + method: 'get', + loading + }) +} + +/** + * 从购物车移除商品 + * @param data - 包含邮箱的参数 + * @param data.listingId - 商品ID + * @param data.listingIds - 商品ID列表 +*/ +export const RemoveShoppingCartItem = (data, loading?: boolean) => { + return request({ + url: '/buyer/buyer/cart/remove', + method: 'delete', + data, + loading + }) +}