feat: 商品详情页的立即购买

This commit is contained in:
jqtmviyu 2025-05-08 17:05:45 +08:00
parent f8673b8553
commit 1e9cd792b4
4 changed files with 39 additions and 9 deletions

View File

@ -270,8 +270,10 @@ const handlerAddCart = async (e: SkuPopupEvent) => {
} }
// //
const handlerBuyNow = () => { const handlerBuyNow = (e: SkuPopupEvent) => {
console.log('立即购买') uni.navigateTo({
url: `/pagesOrder/create/create?skuId=${e._id}&count=${e.buy_num}`,
})
} }
</script> </script>

View File

@ -79,13 +79,13 @@ const handleDelete = (id: string) => {
// //
const props = defineProps<{ const props = defineProps<{
from: string from?: string
}>() }>()
const useSelectedAddress = useSelectedAddressStore() const useSelectedAddress = useSelectedAddressStore()
const handleSelectAddress = (address: AddressItem) => { const handleSelectAddress = (address: AddressItem) => {
if (props.from === 'order') { if (props?.from === 'order') {
useSelectedAddress.setSelectedAddress(address) useSelectedAddress.setSelectedAddress(address)
uni.navigateBack() uni.navigateBack()
} }

View File

@ -92,9 +92,8 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getMemberOrderAPI } from '@/services/order' import { getMemberOrderPreAPI, getMemberOrderPreNowAPI } from '@/services/order'
import { useSelectedAddressStore } from '@/stores/modules/selectedAddress' import { useSelectedAddressStore } from '@/stores/modules/selectedAddress'
import type { AddressItem } from '@/types/address'
import type { OrderPreResult } from '@/types/order' import type { OrderPreResult } from '@/types/order'
import { onShow } from '@dcloudio/uni-app' import { onShow } from '@dcloudio/uni-app'
import { computed, ref } from 'vue' import { computed, ref } from 'vue'
@ -120,8 +119,20 @@ const onChangeDelivery: UniHelper.SelectorPickerOnChange = (ev) => {
// //
const orderPreList = ref<OrderPreResult>() const orderPreList = ref<OrderPreResult>()
const props = defineProps<{
skuId?: string
count?: number
}>()
const getOrderPre = async () => { const getOrderPre = async () => {
const res = await getMemberOrderAPI() let res
if (props?.skuId && props?.count) {
res = await getMemberOrderPreNowAPI({
skuId: props.skuId,
count: props.count,
})
} else {
res = await getMemberOrderPreAPI()
}
console.log(res) console.log(res)
if (res.code === '1') { if (res.code === '1') {
orderPreList.value = res.result orderPreList.value = res.result

View File

@ -28,11 +28,28 @@ export const orderStateList = [
] ]
/** /**
* * 获取预付订单: 从购物车跳转
*/ */
export const getMemberOrderAPI = () => { export const getMemberOrderPreAPI = () => {
return http<OrderPreResult>({ return http<OrderPreResult>({
url: '/member/order/pre', url: '/member/order/pre',
method: 'GET', method: 'GET',
}) })
} }
/**
* -立即购买: 从商品详情页跳转
* */
type getMemberOrderPreNowParams = {
skuId: string
count: number
addressId?: string
}
export const getMemberOrderPreNowAPI = (data: getMemberOrderPreNowParams) => {
return http<OrderPreResult>({
url: '/member/order/pre/now',
method: 'GET',
data,
})
}