xlcs/xlcs-user/pagesOrder/getOrderInfo/getOrderInfo.vue

237 lines
6.6 KiB
Vue
Raw Normal View History

2023-09-22 15:41:37 +08:00
<template>
<view class="gg">
<u-navbar :border-bottom="false" :is-back="true">
<view class="u-flex u-m-l-20 u-m-r-20">
<view class="u-font-xl u-m-r-20">订单详情</view>
</view>
</u-navbar>
<view class="gg-content">
<scroll-view class="gg-cart-sv-container" scroll-y="true">
<!-- 提货点 -->
<u-card :padding="10" :show-head="true">
2024-03-21 10:29:45 +08:00
<view slot="head" class="u-m-10">联系方式</view>
2023-09-22 15:41:37 +08:00
<view slot="body" class="u-m-10">
2024-03-21 10:29:45 +08:00
<view class="u-p-20">姓名{{ order.receiverName }}</view>
2023-09-22 15:41:37 +08:00
<view class="u-p-20">联系方式{{ order.receiverPhone }}</view>
2024-03-21 10:29:45 +08:00
<view class="u-p-20">地点{{ order.receiverAddress }}</view>
2023-09-22 15:41:37 +08:00
</view>
</u-card>
<!-- 商品 -->
<u-card :padding="10" :show-head="true">
<view slot="head" class="u-m-10">选购商品</view>
<view slot="body" class="u-m-10">
<view v-for="(orderItem, index) in order.orderItemList" :key="orderItem.id">
<view class="u-body-item u-flex u-col-between u-p-10">
<u-image :height="200" :lazy-load="true" :src="orderItem.imgUrl" :width="200"></u-image>
<view class="orderItemPrices u-p-20">
<view class="u-font-xl">{{ orderItem.skuName }}</view>
<view>单价{{ orderItem.skuPrice }}</view>
<view>数量{{ orderItem.skuNum }}</view>
2024-03-21 10:29:45 +08:00
<view v-if="orderItem.splitActivityAmount > 0">
活动金额:{{ orderItem.splitActivityAmount }}
</view>
<view v-if="orderItem.splitCouponAmount > 0">优惠券额:{{ orderItem.splitCouponAmount }}
</view>
2023-09-22 15:41:37 +08:00
<view>
小计
<text class="u-type-error">{{ orderItem.splitTotalAmount }}</text>
</view>
</view>
</view>
</view>
<view>
<view class="u-flex u-row-between u-p-20">
<view>商品总额</view>
<view>{{ order.originalTotalAmount }}</view>
</view>
<view class="u-flex u-row-between u-p-20">
<view>实际付款</view>
<view>{{ order.totalAmount }}</view>
</view>
</view>
</view>
</u-card>
<u-card :padding="10" :show-head="false">
<view slot="body" class="u-m-10">
<view class="u-flex u-row-between u-p-20">
<view class="u-flex-1">订单编号</view>
<view class="u-flex">
<view>{{ order.orderNo }}</view>
<view class="u-type-primary u-p-l-10" @click="copyOrderNo">复制</view>
</view>
</view>
<view class="u-flex u-row-between u-p-20">
<view class="u-flex-1">下单时间</view>
<view>{{ order.createTime }}</view>
</view>
</view>
</u-card>
</scroll-view>
<view class="gg-navigation">
<view class="navigation">
2024-03-21 10:29:45 +08:00
<view class="buy btn u-line-1" @click="payWxOrder">微信支付订单</view>
<view class="buy btn u-line-1" @click="payAliOrder">支付宝支付订单</view>
2023-09-22 15:41:37 +08:00
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
timer: null,
resul: {},
orderId: 0,
order: {}
};
},
onLoad(options) {
this.orderId = +options.orderId;
},
methods: {
async getOrderInfoById(orderId) {
2024-03-21 10:29:45 +08:00
const result = await this.$u.api.getOrderInfo({
orderId
});
2023-09-22 15:41:37 +08:00
this.order = result;
},
copyOrderNo() {
uni.setClipboardData({
data: this.order.orderNo, //要被复制的内容
success: () => {
//复制成功的回调函数
uni.showToast({
title: '复制成功',
icon: 'none'
});
}
});
},
2024-03-21 10:29:45 +08:00
async payWxOrder() {
const result = await this.$u.api.getWxPayment({
orderNo: this.order.orderNo
});
2023-09-22 15:41:37 +08:00
wx.requestPayment({
timeStamp: result.timeStamp,
nonceStr: result.nonceStr,
package: result.package,
signType: 'MD5',
paySign: result.paySign,
success: res => {
2024-03-21 10:29:45 +08:00
this.$u.api.getOrderStatus({
orderNo: this.order.orderNo
});
2023-09-22 15:41:37 +08:00
uni.showToast({
title: '支付成功',
icon: 'none'
});
uni.switchTab({
url: '/pages/index/index'
});
},
fail: err => {
uni.showToast({
icon: 'none',
title: err
});
}
});
2024-03-21 10:29:45 +08:00
},
async payAliOrder() {
try {
const result = await this.$u.api.getAliPayment({
orderNo: this.order.orderNo
});
my.tradePay({
tradeNO: result.tradeNO,
success: res => {
if (res.resultCode === '9000') {
this.$u.api.getOrderStatus({
orderNo: this.order.orderNo
});
uni.showToast({
title: '支付成功',
icon: 'none'
});
uni.switchTab({
url: '/pages/index/index'
});
} else {
throw new Error('支付失败');
}
},
fail: err => {
uni.showToast({
icon: 'none',
title: err.errorMessage || '支付失败'
});
}
});
} catch (error) {
uni.showToast({
icon: 'none',
title: error.message || '支付失败'
});
}
2023-09-22 15:41:37 +08:00
}
2024-03-21 10:29:45 +08:00
2023-09-22 15:41:37 +08:00
},
mounted() {
this.getOrderInfoById(this.orderId);
}
};
</script>
<style lang="scss">
.gg {
height: 100%;
background-color: $u-bg-color;
// scrollView的固定高度设置
// 底部导航与顶部自定义导航高度需要减去
&-cart-sv-container {
height: calc(100vh - 90rpx - 136rpx);
}
.orderItemPrices {
display: flex;
flex-direction: column;
}
// 底部导航
&-navigation {
width: 100%;
height: 90rpx;
position: fixed;
bottom: 0;
.navigation {
height: 100%;
display: flex;
justify-content: flex-end;
border: solid 2rpx #f2f2f2;
background-color: #ffffff;
padding: 12rpx 0;
.btn {
line-height: 66rpx;
padding: 0 30rpx;
border-radius: 36rpx;
color: #ffffff;
}
.buy {
background-color: #ff7900;
margin: 0 30rpx;
}
}
}
}
</style>