推广小程序前端代码
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
5.7 KiB

<template>
<view class="cardList">
<view class="container" v-for="(item, index) in cardListData" :key="index">
<view class="head">
<text class="orderTime">下单时间{{item.orderTime}}</text>
<text class="orderStatus" :class="item.state === 'U' ? 'active' : ''">{{item.stateText}}</text>
</view>
<view class="content" :class="['U','S'].includes(item.state) ? 'content_border' : ''">
<view class="left">
<img :src="item.imgUrl" alt="">
</view>
<view class="right">
<view class="detailed">
<view class="title">{{item.title}}</view>
<view class="date">{{item.time}}</view>
<view class="address">{{item.address}}</view>
</view>
<view class="price"><text>总计</text>¥{{item.totalPrice}}</view>
</view>
</view>
<view class="button-sp-area" v-if="Array.isArray(item.btnObj) && item.btnObj.length > 0">
<button @click="skip(val)" :style="{background: val.bgColor, color: val.color}" v-for="(val, i) in item.btnObj" :key="i" class="mini-btn" size="mini">{{val.btnTitle}}</button>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
cardListData : {
type : Array,
default : []
},
},
data() {
return {
};
},
components: {
},
computed: {
},
watch: {
},
created() {
},
mounted() {
},
methods: {
skip(val) {
uni.navigateTo({
url:'/pages_order/orderDetails'
})
}
}
};
</script>
<style scoped lang="scss">
.cardList {
padding: 10rpx 32rpx 250rpx;
.container {
margin-top: 31rpx;
padding: 25rpx 0;
border-radius: 20rpx;
background: #1B1713;
.head {
display: flex;
justify-content: space-between;
padding: 0 35rpx 28rpx;
border-bottom: 1px solid #2A2A2A;
.orderTime {
font-size: 25rpx;
color: $uni-text-color-grey;
}
.orderStatus {
font-size: 26rpx;
color: #ccc;
}
}
.content_border {
border-bottom: 1px solid #2A2A2A;
}
.content {
display: flex;
padding: 24rpx 35rpx;
.left {
width: 228rpx;
height: 228rpx;
border-radius: 20rpx;
overflow: hidden;
img {
width: 100%;
height: 100%;
}
}
.right {
display: flex;
flex-direction: column;
justify-content: space-between;
flex: 1;
margin-left: 26px;
color: $uni-text-color-grey;
font-size: 24rpx;
.detailed {
.title {
font-size: 32rpx;
color: #fff;
padding-top: 11rpx;
}
.date {
padding: 25rpx 0 19rpx;
display: flex;
align-items: center;
&::before {
content: '';
display: block;
background: url('@/static/image/cart/timeIcon.png') no-repeat;
background-size: 100% 100%;
width: 24rpx;
height: 24rpx;
margin-right: 10rpx;
}
}
.address {
display: flex;
align-items: center;
&::before {
content: '';
display: block;
background: url('@/static/image/cart/addressIcon.png') no-repeat;
background-size: 100% 100%;
width: 22rpx;
height: 26rpx;
margin-right: 10rpx;
}
}
}
.price {
font-size: 28rpx;
color: #fff;
text-align: right;
text {
color: $uni-text-color-grey;
font-size: 25rpx;
padding-right: 10rpx;
}
}
}
}
.button-sp-area {
text-align: right;
padding-top: 20rpx;
.mini-btn {
width: 166rpx;
height: 53rpx;
line-height: 53rpx;
font-size: 24rpx;
border-radius: 50rpx;
margin-left: 20rpx;
background-color: #34312E;
color: #AFAFAF;
}
}
}
}
.active {
color: $uni-color-primary!important;
}
</style>