xc-app/components/xinyu-logistics/xinyu-logistics.vue

307 lines
5.4 KiB
Vue

<template>
<view class="page">
<view class="express">
<view class="shop">
<image :src="img" mode="aspectFit" class="express-img"></image>
</view>
<view class="express-detail">
<view class="status">{{wlInfo.logisticsStatus == 1 ? '已签收' : '配送中'}}</view>
<view class="name">{{name}}</view>
<view class="no">{{wlInfo.brand}} <text>{{wlInfo.no}}</text></view>
</view>
</view>
<!-- 收货地址 -->
<view class="content bgf">
<view>
<view class="flex list">
<!-- <view class="time"></view> -->
<view class="info flex1">
<view class="title address">[收货地址]{{address}}</view>
</view>
</view>
<!-- :class="{one: index+1 == wlInfo.item.length && wlInfo.delivery_status == 1}" -->
<view class="flex list" v-for="(item, index) in wlInfo.items" :key="index" :class="{one: index == 0}">
<!-- <view class="time">
<view class="day">{{item.time.split(' ')[0]}}</view>
<view>{{item.time.split(' ')[1]}}</view>
</view> -->
<view class="info flex1">
<view class="title" :class="{active:index == 0 && logisticsStatus == 1}">{{index == 0 && logisticsStatus == 1 ? '已签收' : '配送中'}}</view>
<view class="time-new">{{item.time.split(' ')[0]}} {{item.time.split(' ')[1]}}</view>
<view class="text">{{item.context}}</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
props: {
wlInfo: {
type: Object,
default: () => ({})
},
img:{
type:String,
default:''
},
name:{
type:String,
default:''
},
address:{
type:String,
default:''
},
logisticsStatus:{
type:Number,
default:0
}
},
data() {
return {}
},
mounted() {
console.log(this.wlInfo)
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.page {
max-height: 100vh;
/* #ifdef H5 */
max-height: calc(100vh - 44px);
/* #endif */
font-size: 24rpx;
background-color: #fff;
padding: 0 32rpx;
// overflow-y: auto;
}
/*flex 转换成flex容器*/
.flex {
display: flex;
flex-direction: row;
}
/*flex1 自动填充*/
.flex1 {
flex: 1;
}
/*ali-c 竖直居中*/
.ali-c {
display: flex;
flex-direction: row;
align-items: center;
}
.bgf {
background-color: #fff;
}
.express{
display: flex;
align-items: center;
padding-bottom: 32rpx;
border-bottom: 1px solid #F2F2F2;
.shop{
width: 160rpx;
height: 160rpx;
border-radius: 0 24rpx 24rpx 0;
background-image: url('@/static/new/shop-bg.png');
background-size: contain;
display: flex;
align-items: center;
justify-content: center;
.express-img{
width: 142rpx;
height: 132rpx;
}
}
.express-detail{
margin-left: 24rpx;
.status{
font-weight: bold;
font-size: 32rpx;
color: #000000;
}
.name{
width: 500rpx;
font-weight: 500;
font-size: 24rpx;
color: #999999;
margin-top: 24rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.no{
width: 500rpx;
margin-top: 8rpx;
font-weight: 500;
font-size: 24rpx;
color: #999999;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
}
//收货地址
.content {
// margin: 20rpx;
padding: 56rpx 0rpx 56rpx 0rpx;
border-radius: 20rpx;
.list {
&:first-child {
.info::before {
bottom: -20rpx;
margin-top: 40rpx;
border-left: 1px dashed #e5e5e5;
}
.title {
margin-bottom: 56rpx;
&::before {
width: 46rpx;
height: 46rpx;
left: -23rpx;
display:flex;
align-items: center;
justify-content: center;
background-image: url('@/static/new/mine/sh.png');
background-size: 46rpx 46rpx;
}
}
}
&:last-child {
.info::before {
height: 32rpx;
}
}
&.one {
.info::before {
margin-top: 20rpx;
}
.title {
color: #1a1a1a;
&::before {
width: 46rpx;
height: 46rpx;
left: -23rpx;
background: url('@/static/new/mine/yun.png') no-repeat center;
background-size: 46rpx 46rpx;
}
}
.active{
color: #1a1a1a;
&::before {
width: 46rpx;
height: 46rpx;
left: -23rpx;
background: url('@/static/new/mine/pai.png') no-repeat center;
background-size: 46rpx 46rpx;
}
}
.text {
color: #333333;
}
.time {
font-size: 16rpx;
color: #888;
.day {
font-size: 22rpx;
}
}
}
}
.time {
width: 100rpx;
padding-right: 30rpx;
text-align: right;
font-size: 16rpx;
color: #888888;
.day {
margin-bottom: 4rpx;
font-size: 22rpx;
color: #333333;
}
}
.info {
position: relative;
padding-top: 12rpx;
color: #999;
&::before {
content: "";
position: absolute;
left: 0;
top: 0;
bottom: 0;
z-index: 1;
width: 0;
border-left: 1px solid #e5e5e5;
}
.title {
position: relative;
margin-bottom: 10rpx;
padding-left: 32rpx;
font-size: 28rpx;
&::before {
content: "";
position: absolute;
left: -3px;
top: 0;
bottom: 0;
z-index: 1;
width: 7px;
height: 7px;
margin: auto 0;
border-radius: 50%;
background-color: #cecece;
}
&.address {
font-size: 24rpx;
color: #333;
}
}
.text {
padding: 0 0 44rpx 32rpx;
}
}
.time-new{
padding-left: 30rpx;
padding-bottom: 10rpx;
}
}
</style>