221 lines
5.2 KiB
Vue
221 lines
5.2 KiB
Vue
|
<template>
|
|||
|
<!-- 公用卡片 -->
|
|||
|
<view class="card" @click="goDetailsSucc()">
|
|||
|
<view class="topCont"> <text>任务编号:{{item.transportTaskId}}</text> <text v-if="item.isDelay == 1 && type == 0" class="label">已延期</text> </view>
|
|||
|
<view class="addrCont">
|
|||
|
<view class="startAddr">{{item.startAddress}}</view>
|
|||
|
<view class="endAddr">{{item.endAddress}}</view>
|
|||
|
</view>
|
|||
|
<view class="botCont" v-show="type == 0">
|
|||
|
<view class="timeCont">
|
|||
|
<view class="tit"> <text>提货时间</text> </view>
|
|||
|
<view class="time"> <text>{{item.planDepartureTime}}</text> </view>
|
|||
|
</view>
|
|||
|
<view class="ButCont">
|
|||
|
<text class="butRed" v-if="item.enablePickUp" @click="goDetails(item)" >提货</text>
|
|||
|
<text class="butRed butDis" v-else >提货</text>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="botCont" v-show="type == 1">
|
|||
|
<view class="timeCont">
|
|||
|
<view class="tit"> <text>预计到达时间 </text> </view>
|
|||
|
<view class="time"> <text>{{item.planArrivalTime}}</text> </view>
|
|||
|
</view>
|
|||
|
<view class="ButCont" v-if="item.status <= 3 "> <text class="butRed" @click="goDetails(item)" >交付</text> </view>
|
|||
|
<view class="ButCont" v-if="item.status == 4 "> <text class="butRed" @click="goDetails(item)" >回车登记</text> </view>
|
|||
|
</view>
|
|||
|
<view class="botCont " v-show="type == 2">
|
|||
|
<view class="timeCont finish">
|
|||
|
<view class="tit"> <text>交货时间</text> </view>
|
|||
|
<view class="time"> <text>{{item.actualArrivalTime}}</text> </view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<!-- end -->
|
|||
|
</template>
|
|||
|
|
|||
|
<script setup>
|
|||
|
import { ref, reactive, onMounted } from 'vue';
|
|||
|
import { useStore } from 'vuex';
|
|||
|
// 获取父组件值、方法
|
|||
|
const props = defineProps({
|
|||
|
data: {
|
|||
|
type: Object,
|
|||
|
default: () => {}
|
|||
|
},
|
|||
|
type: {
|
|||
|
type: Number,
|
|||
|
default: 0
|
|||
|
},
|
|||
|
src:{
|
|||
|
type: String,
|
|||
|
default: ''
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
const item = ref({...props.data})
|
|||
|
|
|||
|
// 去往详情页
|
|||
|
function goDetails(item){
|
|||
|
if(props.src){
|
|||
|
uni.navigateTo({
|
|||
|
url: props.src,
|
|||
|
success: function(res) {
|
|||
|
// 通过eventChannel向被打开页面传送数据
|
|||
|
res.eventChannel.emit('acceptDataFromOpenerPage', { data: item })
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
// 已完成详情
|
|||
|
function goDetailsSucc(){
|
|||
|
if (props.src && props.type == 2){
|
|||
|
uni.navigateTo({
|
|||
|
url: props.src,
|
|||
|
// success: function(res) {
|
|||
|
// // 通过eventChannel向被打开页面传送数据
|
|||
|
// res.eventChannel.emit('acceptDataFromOpenerPage', { data: item })
|
|||
|
// }
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
<style lang="scss" scoped>
|
|||
|
@import url(@/styles/theme.scss);
|
|||
|
.card{
|
|||
|
padding: 30rpx 40rpx;
|
|||
|
margin: 30rpx 0;
|
|||
|
border-radius: 20rpx;
|
|||
|
background: var(--neutral-color-white);
|
|||
|
.topCont{
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
font-weight: 500;
|
|||
|
line-height: 60rpx;
|
|||
|
font-size: 32rpx;
|
|||
|
color: #2A2929;
|
|||
|
margin-bottom: 20rpx;
|
|||
|
.label{
|
|||
|
display: inline-block;
|
|||
|
padding: 16rpx 10rpx 12rpx 10rpx;
|
|||
|
border: 2rpx solid #EF4F3F;
|
|||
|
border-radius: 6rpx;
|
|||
|
font-weight: 400;
|
|||
|
font-size: 28rpx;
|
|||
|
line-height: 28rpx;
|
|||
|
color: #EF4F3F;
|
|||
|
letter-spacing: 0.32rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
.addrCont{
|
|||
|
font-weight: 400;
|
|||
|
font-size: 28rpx;
|
|||
|
color: #818181;
|
|||
|
letter-spacing: 0.32rpx;
|
|||
|
padding-bottom: 40rpx;
|
|||
|
margin-bottom: 20rpx;
|
|||
|
border-bottom: 1px solid #EEEEEE;
|
|||
|
position: relative;
|
|||
|
&:before{
|
|||
|
position: absolute;
|
|||
|
left: 18rpx;
|
|||
|
color:var(--neutral-color-white);
|
|||
|
text-align: center;
|
|||
|
content: '';
|
|||
|
display: inline-block;
|
|||
|
width: 0px;
|
|||
|
height: 56%;
|
|||
|
border-left: dashed 2px #D9D9D9;
|
|||
|
border-radius: 11px;
|
|||
|
}
|
|||
|
.startAddr{
|
|||
|
padding-left: 66rpx;
|
|||
|
position: relative;
|
|||
|
margin-bottom: 20rpx;
|
|||
|
line-height: 44rpx;
|
|||
|
&:before{
|
|||
|
position: absolute;
|
|||
|
font-size: 22rpx;
|
|||
|
left: 0;
|
|||
|
color:var(--neutral-color-white);
|
|||
|
text-align: center;
|
|||
|
content: '起';
|
|||
|
display: inline-block;
|
|||
|
width: 22px;
|
|||
|
height: 22px;
|
|||
|
background: #2A2929;
|
|||
|
border-radius: 11px;
|
|||
|
}
|
|||
|
}
|
|||
|
.endAddr{
|
|||
|
padding-left: 66rpx;
|
|||
|
position: relative;
|
|||
|
line-height: 44rpx;
|
|||
|
// height: 44rpx;
|
|||
|
// overflow: hidden;
|
|||
|
&:before{
|
|||
|
font-size: 22rpx;
|
|||
|
position: absolute;
|
|||
|
left: 0;
|
|||
|
color: var(--neutral-color-white);
|
|||
|
text-align: center;
|
|||
|
content: '止';
|
|||
|
display: inline-block;
|
|||
|
width: 22px;
|
|||
|
height: 22px;
|
|||
|
background: #EF4F3F;
|
|||
|
border-radius: 11px;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
.botCont{
|
|||
|
position: relative;
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
align-items: center;
|
|||
|
.timeCont{
|
|||
|
.tit{
|
|||
|
font-weight: 400;
|
|||
|
font-size: 28rpx;
|
|||
|
margin-bottom: 20rpx;
|
|||
|
color: #818181;
|
|||
|
}
|
|||
|
.time{
|
|||
|
font-size: 28rpx;
|
|||
|
color: #2A2929;
|
|||
|
}
|
|||
|
}
|
|||
|
.finish{
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
.tit{
|
|||
|
margin-bottom: 0;
|
|||
|
margin-right: 18rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
.butRed, .butDis{
|
|||
|
display: inline-block;
|
|||
|
min-width: 80px;
|
|||
|
line-height: 32px;
|
|||
|
background: #EF4F3F;
|
|||
|
border-radius: 16px;
|
|||
|
font-size: var(--font-size-14);
|
|||
|
text-align: center;
|
|||
|
color: var(--neutral-color-white)
|
|||
|
}
|
|||
|
.butDis{
|
|||
|
background: #DEDEDE;
|
|||
|
}
|
|||
|
.butAsh{
|
|||
|
display: inline-block;
|
|||
|
min-width: 80px;
|
|||
|
line-height: 32px;
|
|||
|
background: #EF4F3F;
|
|||
|
border-radius: 16px;
|
|||
|
text-align: center;
|
|||
|
color: var(--neutral-color-white)
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</style>
|