Merge branch 'main' of ssh://18.167.251.121:10002/aidlab/Aida_Purchaser_Front

This commit is contained in:
2026-05-21 13:44:58 +08:00
5 changed files with 150 additions and 21 deletions

View File

@@ -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': '',

View File

@@ -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
})
}

55
src/api/shoppingCart.ts Normal file
View File

@@ -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
})
}

View File

@@ -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)

View File

@@ -71,6 +71,7 @@
</template>
<script setup lang="ts">
import { AccountSendVerifyCode, AccountVerifyCode, AccountResetPassword } from '@/api/account'
import md5 from 'md5'
import { computed, reactive, ref } from 'vue'
import { validateEmail, validatePass } from './tools'
@@ -103,22 +104,12 @@
const onSubmit1 = () => {
form1Ref.value?.validate?.((valid) => {
if (valid) {
index.value = 1
} else {
console.warn('error submit!')
}
})
}
const onSubmit2 = () => {
form2Ref.value?.validate?.((valid) => {
if (valid) {
const data = {
AccountSendVerifyCode({
email: formData.email,
code: formData.code,
password: md5(formData.password)
}
console.log(data)
emit('back')
operationType: 'FORGOT_PWD'
}).then(() => {
index.value = 1
})
} else {
console.warn('error submit!')
}
@@ -126,8 +117,30 @@
}
const onVerifyCode = (code: string) => {
if (!code) return
AccountVerifyCode({
email: formData.email,
emailVerifyCode: code,
operationType: 'FORGOT_PWD'
}).then(() => {
formData.code = code
index.value = 2
})
}
const onSubmit2 = () => {
form2Ref.value?.validate?.((valid) => {
if (valid) {
const data = {
email: formData.email,
password: md5(formData.password),
emailVerifyCode: formData.code
}
AccountResetPassword(data).then(() => {
emit('back')
})
} else {
console.warn('error submit!')
}
})
}
</script>