From ebf7a029c270a728c7578870d6d60a5762f0d1f2 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期一, 16 十二月 2024 19:35:07 +0800 Subject: [PATCH] ll --- h5/pages/waybill/waybillDetail.vue | 525 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 320 insertions(+), 205 deletions(-) diff --git a/h5/pages/waybill/waybillDetail.vue b/h5/pages/waybill/waybillDetail.vue index e507bac..0b78b75 100644 --- a/h5/pages/waybill/waybillDetail.vue +++ b/h5/pages/waybill/waybillDetail.vue @@ -1,235 +1,350 @@ <template> <view class="main_app"> - <image class="bg" src="@/static/wuliuche_bg@2x.png" mode="widthFix"></image> - <view class="info"> - <view class="head"> - <view class="code">{{info.contractNumber}}</view> - <view class="status">{{info.orderStatus}}</view> - </view> - <view class="content"> - <view class="line"> - <view class="la">鍙戣揣鍦�</view> - <view class="val">{{info.fromRepertoty || '-'}}</view> + <!-- <image class="bg" src="@/static/wuliuche_bg@2x.png" mode="widthFix"></image> --> + <map id="map" :latitude="latitude" :longitude="longitude" :polyline="polyline" :markers="markers" :scale="4"> + + </map> + <view class="main_content"> + <view class="info"> + <view class="head"> + <view class="code">{{info.contractNumber}}</view> + <view class="status">{{info.orderStatusDesc}}</view> </view> - <view class="line"> - <view class="la">鍒拌揣鍦�</view> - <view class="val">{{info.toRepertoty || '-'}}</view> - </view> - <view class="line"> - <view class="la">杞︾墝鍙�</view> - <view class="val">{{info.plateNumber || '-'}}</view> - </view> - <view class="line"> - <view class="la">鍙告満淇℃伅</view> - <view class="val">{{ '-'}}</view> - </view> - <view class="line"> - <view class="la">杞﹁締浣嶇疆</view> - <view class="val">{{ '-'}}</view> - </view> - <view class="line"> - <view class="la">棰勮鍒拌揪</view> - <view class="val">{{'-'}}</view> + <view class="content"> + <view class="line"> + <view class="la">鍙戣揣鍦�</view> + <view class="val">{{info.deliveryEnterprise || '-'}}</view> + </view> + <view class="line"> + <view class="la">鍒拌揣鍦�</view> + <view class="val">{{info.receiveEnterprise || '-'}}</view> + </view> + <view class="line"> + <view class="la">杞︾墝鍙�</view> + <view class="val">{{info.plateName || '-'}}</view> + </view> + <view class="line"> + <view class="la">鍙告満淇℃伅</view> + <view class="val" @click="callPhone(info.driverTel)">{{ info.driverName }} <text class="primaryColor ml12">{{info.driverTel}}</text> </view> + </view> + <view class="line"> + <view class="la">杞﹁締浣嶇疆</view> + <view class="val">{{'-'}}</view> + </view> + <view class="line"> + <view class="la">棰勮鍒拌揪</view> + <view class="val">{{info.plannedArrivedDate}}</view> + </view> </view> </view> - </view> - <view class="drive_info"> - <view class="title">鐗╂祦淇℃伅</view> -<!-- <view class="item"> - <view class="h2"> - <view class="icon_wrap"><image src="@/static/driver/ic_mostarted.png" class="icon"></image></view> - <view class="text">鍒拌揪鍗歌揣鍦�</view> + <view class="drive_info"> + <view class="title">鐗╂祦淇℃伅</view> + <view class="drive_list" v-for="dri,k in info.cicleStatusList"> + <view class="separate"></view> + <view class="item_title"> + <view class="icon_wrap"> + <image v-if="dri.key == 0 && k != 0" src="@/static/waybill/ic_dingdan@2x.png" class="icon"></image> + <image v-if="dri.key == 0 && k == 0" src="@/static/waybill/ic_dingdan_sel@2x.png" class="icon"></image> + <image v-if="dri.key == 1 && k != 0" src="@/static/waybill/ic_peizai@2x.png" class="icon"></image> + <image v-if="dri.key == 1 && k == 0" src="@/static/waybill/ic_peizai_sel@2x.png" class="icon"></image> + <image v-if="dri.key == 2 && k != 0" src="@/static/waybill/ic_cangku@2x.png" class="icon"></image> + <image v-if="dri.key == 2 && k == 0" src="@/static/waybill/ic_cangku_sel@2x.png" class="icon"></image> + <image v-if="dri.key == 3 && k != 0" src="@/static/waybill/ic_yunshu@2x.png" class="icon"></image> + <image v-if="dri.key == 3 && k == 0" src="@/static/waybill/ic_yunshu_sel@2x.png" class="icon"></image> + <image v-if="dri.key == 4" src="@/static/waybill/ic_daohuo_sel@2x.png" class="icon"></image> + <image v-if="dri.key == 5" src="@/static/waybill/ic_ruku.png" class="icon"></image> + </view> + <view class="" :class="{primaryColor: k == 0}">{{dri.name}}</view> + </view> + <view class="item" v-for="item,i in dri.secondList"> + <view class="h2" v-if="item.orderStatusDes"> + <view class="icon_wrap" v-if="i != 0"> + <image src="@/static/driver/ic_mostarted.png" class="icon"></image> + </view> + <view v-else class="icon_wrap"></view> + <view class="text" :class="{placeholder3: k==0 && i== 0}" > + {{item.orderStatusDes}} + <text v-if="item.tel">锛屽彂璐т粨搴撶數璇濓細</text> + <text v-if="item.tel" @click="callPhone(item.tel)" class="primaryColor">{{item.tel}}</text> + </view> + </view> + <view class="time">{{item.recordDate}}</view> + </view> </view> - <view class="time">202422222222</view> - <view class="separate"></view> </view> - <view class="item"> - <view class="h2 h1"> - <view class="icon_wrap"><image src="@/static/driver/ic_dangqian.png" class="icon"></image></view> - <view class="text">鍒拌揪鍗歌揣鍦�</view> - </view> - <view class="time">202422222222</view> - <view class="separate separate_ac"></view> - </view> - <view class="item"> - <view class="h2"> - <view class="icon_wrap"><image src="@/static/driver/ic_mostarted.png" class="icon"></image></view> - <view class="text">鍒拌揪鍗歌揣鍦�</view> - </view> - <view class="time">202422222222</view> - <view class="separate"></view> - </view> --> - </view> + </view> </view> </template> -<script> - import { orderInfoTms } from '@/api' +<script> + import { + orderInfoTms + } from '@/api' export default { data() { return { - id: '', - info: {}, - param: {} + id: '', + info: {}, + param: {}, + + latitude: 31.783205, + longitude: 117.262635, + markers: [], + includePoints: [ + // {latitude: 31.783205, longitude: 117.262635}, {latitude: 36.783205, longitude: 118.10}, + ], + + polyline: [ + // { + // points: [{ + // latitude: 31.783205, + // longitude: 117.262635 + // }, { + // latitude: 36.783205, + // longitude: 118.10 + // }], + // color: '#FF0000', + // width: 3 + // }, + ] }; - }, - onLoad(options) { - this.id = options.id - this.getDetail() - }, - methods: { - getDetail() { - orderInfoTms({ contractNumber: this.id }).then(res => { - this.info = res.data - }) + }, + onLoad(options) { + this.id = options.id + this.getDetail() + }, + methods: { + getDetail() { + orderInfoTms({ + contractNumber: this.id + }).then(res => { + this.info = res.data + if (res.data.deliveryLat && res.data.receiveLat) { + this.markers = [] + this.markers.push({ + id: 1, + latitude: res.data.deliveryLat, + longitude: res.data.deliveryLon, + width: 36, + iconPath: '/static/driver/ic_fahuodi@2x.png', + label: { + content: ' ', + padding: 3, + borderWidth: 2, + borderRadius: '50%', + borderColor: '#fff', + borderRadius: 32, + bgColor: '#FF0000' + } + }) + this.markers.push({ + id: 2, + latitude: res.data.receiveLat, + longitude: res.data.receiveLon, + width: 36, + iconPath: '/static/driver/ic_huowu@2x.png', + label: { + content: ' ', + padding: 3, + borderWidth: 2, + borderRadius: '50%', + borderColor: '#fff', + borderRadius: 32, + bgColor: '#FF0000' + } + }) + this.latitude = (Number(this.markers[0].latitude) + Number(this.markers[1].latitude)) / 2 - 8 + this.longitude = (Number(this.markers[0].longitude) + Number(this.markers[1].longitude)) / 2 + } + if (res.data && res.data.gisList && res.data.gisList.length > 0) { + this.gisInfo = res.data.gisList[0] + } + }) }, + callPhone(phone){ + uni.makePhoneCall({ + phoneNumber: phone + }); + } } } </script> -<style lang="scss" scoped> - page{ - background-color: #f7f7f7; +<style lang="scss" scoped> + page { + background-color: #f7f7f7; } - .main_app{ - padding-top: 120rpx; - .bg{ - width: 750rpx; - position: absolute; - left: 0; - top: 0; - } - .drive_info{ - background: #fff; - border-radius: 16rpx; - padding: 30rpx; - margin-bottom: 20rpx; - .title{ - font-weight: 500; - font-size: 32rpx; - color: #222222; - margin-bottom: 20rpx; - } - .line{ - display: flex; - margin-bottom: 24rpx; - .label{ - color: #666666; - margin-right: 40rpx; - } - .val{ - - } - } - .item{ - position: relative; - color: #999999; - margin-bottom: 30rpx; - .h2{ - display: flex; - align-items: center; - height: 48rpx; - .icon_wrap{ - width: 48rpx; - margin-right: 30rpx; - display: flex; - align-items: center; - justify-content: center; - .icon{ - width: 24rpx; - height: 24rpx; - position: relative; - z-index: 2; - } - } - } - .h1{ - .icon_wrap{ - .icon{ - width: 48rpx; - height: 48rpx; - } - } - } - .time{ - padding-left: 78rpx; - font-size: 24rpx; - margin-top: 6rpx; - } - .separate{ - height: calc( 100% ); - width: 1rpx; - border: 1rpx dashed #666666; - position: absolute; - left: 22rpx; - top: 24rpx; - z-index: 1; - } - .separate_ac{ - top: 48rpx; - } - } - } - - .info { - border-radius: 12rpx; - margin-bottom: 20rpx; - padding: 0 30rpx; - background-color: #fff; - overflow: hidden; + + .main_app { + padding: 0; + padding-top: 45vh; + .main_content{ + height: 55vh ; + overflow: auto; + padding: 20rpx 30rpx 0; position: relative; - z-index: 1; - .head { + z-index: 999; + } + #map { + width: 750rpx; + position: absolute; + left: 0; + top: 0; + height: 105vh; + + ::v-deep .amap-marker-label { + top: 36px !important; + left: 12px !important; + border: 3px solid #fff !important; + border-radius: 50%; + box-shadow: #222222 0px 0px 1px; + } + } + + .drive_info { + background: #fff; + border-radius: 16rpx; + padding: 30rpx; + margin-bottom: 20rpx; + position: relative; + z-index: 999; + .separate { + height: calc( 100% - 250rpx ); + width: 1rpx; + border: 1rpx dashed #CCCCCC; + position: absolute; + left: 53rpx; + top: 102rpx; + z-index: -1; + } + .title { + font-weight: 500; + font-size: 32rpx; + color: #222222; + margin-bottom: 20rpx; + } + + .line { + display: flex; + margin-bottom: 24rpx; + + .label { + color: #666666; + margin-right: 40rpx; + } + + .val {} + } + .item_title{ + font-weight: 600; + font-size: 32rpx; display: flex; - justify-content: space-between; align-items: center; - padding: 0 30rpx; - width: 690rpx; - height: 84rpx; - margin: 0 -30rpx; - background: linear-gradient( 270deg, #FEFEFF 0%, #E1F7FE 100%); - - .code { - font-weight: 500; - font-size: 32rpx; - color: #222222; - } - - .status { - color: $uni-color-primary; - } } - - .content { - padding: 20rpx 0rpx; - margin-bottom: 20rpx; - - .line { - display: flex; - margin-bottom: 16rpx; - font-size: 26rpx; - - .la { - color: #666666; - width: 140rpx; - } - - .val {} - - &:nth-last-child(1) { - margin-bottom: 0; - } + .icon_wrap { + width: 48rpx; + margin-right: 30rpx; + display: flex; + align-items: center; + justify-content: center; + .icon { + width: 48rpx; + height: 48rpx; + position: relative; + z-index: 2; } - } - - } + } + .item { + position: relative; + color: #999999; + margin-bottom: 30rpx; + .text{ + color: #666666; + } + .icon { + width: 20rpx; + height: 20rpx; + position: relative; + z-index: 2; + } + .h2 { + display: flex; + align-items: center; + height: 48rpx; + } + + .h1 { + } + + .time { + padding-left: 78rpx; + font-size: 24rpx; + margin-top: 6rpx; + } + } + } + + .info { + border-radius: 12rpx; + margin-bottom: 20rpx; + padding: 0 30rpx; + background-color: #fff; + overflow: hidden; + position: relative; + z-index: 1; + + .head { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 30rpx; + width: 690rpx; + height: 84rpx; + margin: 0 -30rpx; + background: linear-gradient(270deg, #FEFEFF 0%, #E1F7FE 100%); + + .code { + font-weight: 500; + font-size: 32rpx; + color: #222222; + } + + .status { + color: $uni-color-primary; + } + } + + .content { + padding: 20rpx 0rpx; + margin-bottom: 20rpx; + + .line { + display: flex; + margin-bottom: 16rpx; + font-size: 28rpx; + + .la { + color: #666666; + width: 140rpx; + } + + .val {} + + &:nth-last-child(1) { + margin-bottom: 0; + } + } + } + + } } - .main_bg { - position: absolute; - left: 0; + + .main_bg { + position: absolute; + left: 0; top: 0; - width: 100%; - z-index: -1; + width: 100%; + z-index: -1; color: #222222; } </style> \ No newline at end of file -- Gitblit v1.9.3