feat: ✨ 创建订单页提交功能
This commit is contained in:
parent
1e9cd792b4
commit
fc3db08c65
@ -84,7 +84,10 @@
|
|||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
class="button"
|
class="button"
|
||||||
:class="{ disabled: orderPreList == null || orderPreList?.goods.length === 0 }"
|
:class="{
|
||||||
|
disabled: !selectedAddress || orderPreList == null || orderPreList?.goods.length === 0,
|
||||||
|
}"
|
||||||
|
@tap="handleSubmitOrder"
|
||||||
>
|
>
|
||||||
提交订单
|
提交订单
|
||||||
</view>
|
</view>
|
||||||
@ -92,7 +95,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { getMemberOrderPreAPI, getMemberOrderPreNowAPI } from '@/services/order'
|
import { getMemberOrderPreAPI, getMemberOrderPreNowAPI, postCreateOrderAPI } from '@/services/order'
|
||||||
import { useSelectedAddressStore } from '@/stores/modules/selectedAddress'
|
import { useSelectedAddressStore } from '@/stores/modules/selectedAddress'
|
||||||
import type { OrderPreResult } from '@/types/order'
|
import type { OrderPreResult } from '@/types/order'
|
||||||
import { onShow } from '@dcloudio/uni-app'
|
import { onShow } from '@dcloudio/uni-app'
|
||||||
@ -151,6 +154,67 @@ const selectedAddress = computed(() => {
|
|||||||
orderPreList.value?.userAddresses.find((item) => item.isDefault === 1)
|
orderPreList.value?.userAddresses.find((item) => item.isDefault === 1)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 提交订单
|
||||||
|
const handleSubmitOrder = async () => {
|
||||||
|
// 判断是否有收货地址
|
||||||
|
if (!selectedAddress.value) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '请选择收货地址',
|
||||||
|
icon: 'none',
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断是否有商品
|
||||||
|
if (!orderPreList.value || orderPreList.value.goods.length === 0) {
|
||||||
|
uni.showToast({
|
||||||
|
title: '没有可提交的商品',
|
||||||
|
icon: 'none',
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 创建订单
|
||||||
|
const res = await postCreateOrderAPI({
|
||||||
|
addressId: selectedAddress.value.id,
|
||||||
|
deliveryTimeType: activeDelivery.value.type as 1 | 2 | 3,
|
||||||
|
buyerMessage: buyerMessage.value,
|
||||||
|
payType: 1, // 在线支付
|
||||||
|
payChannel: 2, // 微信支付
|
||||||
|
goods: orderPreList.value.goods.map((item) => ({
|
||||||
|
skuId: item.skuId,
|
||||||
|
count: item.count,
|
||||||
|
})),
|
||||||
|
})
|
||||||
|
|
||||||
|
if (res.code === '1') {
|
||||||
|
// 提交成功,跳转到支付页面
|
||||||
|
uni.showToast({
|
||||||
|
title: '订单提交成功',
|
||||||
|
icon: 'success',
|
||||||
|
})
|
||||||
|
console.log(res.result)
|
||||||
|
|
||||||
|
// 跳转到支付页面,传递订单ID
|
||||||
|
uni.redirectTo({
|
||||||
|
url: `/pagesOrder/detail/detail?orderId=${res.result.id}`,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
uni.showToast({
|
||||||
|
title: res.msg || '订单提交失败',
|
||||||
|
icon: 'error',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('提交订单失败', error)
|
||||||
|
uni.showToast({
|
||||||
|
title: '订单提交失败',
|
||||||
|
icon: 'error',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@ -162,6 +226,11 @@ page {
|
|||||||
background-color: #f4f4f4;
|
background-color: #f4f4f4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.viewport {
|
||||||
|
flex: unset;
|
||||||
|
height: calc(100vh - 100rpx);
|
||||||
|
}
|
||||||
|
|
||||||
.symbol::before {
|
.symbol::before {
|
||||||
content: '¥';
|
content: '¥';
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import type { OrderPreResult } from '@/types/order'
|
import type { OrderCreateParams, OrderCreateResult, OrderPreResult } from '@/types/order'
|
||||||
import { http } from '@/utils/http'
|
import { http } from '@/utils/http'
|
||||||
|
|
||||||
/** 订单状态枚举 */
|
/** 订单状态枚举 */
|
||||||
@ -53,3 +53,15 @@ export const getMemberOrderPreNowAPI = (data: getMemberOrderPreNowParams) => {
|
|||||||
data,
|
data,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交订单
|
||||||
|
* @param data - 订单信息
|
||||||
|
*/
|
||||||
|
export const postCreateOrderAPI = (data: OrderCreateParams) => {
|
||||||
|
return http<OrderCreateResult>({
|
||||||
|
url: '/member/order',
|
||||||
|
method: 'POST',
|
||||||
|
data,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user