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..d3b40ac 100644 --- a/src/api/account.ts +++ b/src/api/account.ts @@ -60,3 +60,63 @@ 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.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 + }) +} 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 @@