推拿小程序前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

175 lines
3.4 KiB

<template>
<view class="page">
<navbar title="订单详情" leftClick @leftClick="$utils.navigateBack" color="#fff" />
<view class="page-content">
<view class="page-label">订单详情</view>
<!-- 商品详情 -->
<productCard :data="productDetail" size="medium" :readonly="true"></productCard>
<view class="info">
<view class="info-header">订单信息</view>
<view class="info-content">
<view class="flex info-row">
<text>实付款</text>
<text class="price"><text class="price-unit">¥</text>{{ orderDetail.price }}</text>
</view>
<view class="flex info-row">
<text>订单号</text>
<text>{{ orderDetail.orderNo }}</text>
</view>
<view class="flex info-row">
<text>付款时间</text>
<text>{{ orderDetail.payTime }}</text>
</view>
<view class="flex info-row">
<text>核销时间</text>
<text>{{ orderDetail.verifyTime }}</text>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import productCard from '@/components/product/productCard.vue'
import {
mapState
} from 'vuex'
const TEMP_BANNER_IMG_URL = 'http://gips3.baidu.com/it/u=70459541,3412285454&fm=3028&app=3028&f=JPEG&fmt=auto?w=960&h=1280'
export default {
components: {
productCard
},
computed: {},
data() {
return {
// todo: fetch
productDetail: {
id: '001',
imgUrl: TEMP_BANNER_IMG_URL,
price: 99,
num: 1,
sales: 235,
title: '60分钟肩颈推拿按摩',
desc: '疏通经络 放松肌肉',
tags: ['专业技师', '舒适环境', '深度放松'],
details: '<p>这里是商品详情..............<br/>这里是商品详情..............</p>'
},
orderDetail: {
id: '001',
orderNo: 'da123567',
price: 99,
payTime: '2024-12-24 18:45:23',
verifyTime: '2024-12-24 18:45:23',
},
id: 0,
}
},
onLoad(args) {
this.id = args.id
},
onShow() {
this.getOrderDetail()
},
onPullDownRefresh() {
this.getOrderDetail()
},
methods: {
getOrderDetail() {
// todo: delete test code
return
this.$api('getOrderDetail', {
id: this.id
}, res => {
uni.stopPullDownRefresh()
if (res.code == 200) {
this.order = res.result
}
})
},
//复制内容
copy(content) {
uni.setClipboardData({
data: content,
success: () => {
uni.showToast({
title: '复制成功',
icon: 'none'
})
}
})
},
}
}
</script>
<style scoped lang="scss">
.page {
height: 100vh;
background-color: #FFFFFF;
/deep/ .nav-bar__view {
background-image: linear-gradient(#84A73F, #D8FF8F);
}
/deep/ .product-card__view {
padding: 19rpx 7rpx 28rpx 7rpx !important;
}
&-content {
padding: 35rpx 46rpx;
}
&-label {
color: #000000;
font-size: 28rpx;
padding-left: 11rpx;
position: relative;
margin-left: 7rpx;
&:before {
content: ' ';
width: 5rpx;
height: 40rpx;
background-image: linear-gradient(#84A73F, #D8FF8F);
border-radius: 3rpx;
position: absolute;
left: 0;
}
}
}
.info {
padding: 30rpx 7rpx;
border-top: 1px dashed #707070;
color: #999999;
font-size: 22rpx;
&-header {
color: #000000;
font-size: 28rpx;
}
&-row {
justify-content: space-between;
margin-top: 23rpx;
}
.price {
color: #000000;
&-unit {
font-size: 14rpx;
}
}
}
</style>