| | |
| | | <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> |