|  |  |  | 
|---|
|  |  |  | <image class="bg" src="../../static/driver/bg_renwu@2x.png" mode=""></image> | 
|---|
|  |  |  | <view class="name" v-if="param.status == 1">请与{{ param.arriveDate.slice(0,11) }}现场签到</view> | 
|---|
|  |  |  | <view class="name" v-if="param.status == 2">前方排队:{{param.lineUpNum}}辆</view> | 
|---|
|  |  |  | <view class="name" v-if="param.status == 3">入园等待</view> | 
|---|
|  |  |  | <view class="name" v-if="param.status == 3">入园等待</view> | 
|---|
|  |  |  | <view class="name" v-if="param.status == 4">请入园停靠{{param.platformName}}作业</view> | 
|---|
|  |  |  | <view class="name" v-if="param.status == 5">月台作业中</view> | 
|---|
|  |  |  | <view class="name" v-if="param.status == 6">作业已完成</view> | 
|---|
|  |  |  | <view class="name" v-if="param.status == 6">作业已完成</view> | 
|---|
|  |  |  | <view class="name" v-if="param.status == 7">转移中</view> | 
|---|
|  |  |  | <view class="name red" v-if="param.status == 8">异常挂起</view> | 
|---|
|  |  |  | <view class="id_card">{{ param.carCodeFront }}</view> | 
|---|
|  |  |  | <view class="status">{{statusMap[param.status]}}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | 
|---|
|  |  |  | <view class="label">手机号</view> | 
|---|
|  |  |  | <view class="value">{{param.drivierPhone}}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <template v-if="param.type != 4"> | 
|---|
|  |  |  | <template v-if="param.billCode"> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">运输单号</view> | 
|---|
|  |  |  | <view class="value" @click="wmsDetail"> | 
|---|
|  |  |  | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">作业类型</view> | 
|---|
|  |  |  | <view class="value" v-if="param.type == 0">自有车卸货</view> | 
|---|
|  |  |  | <view class="value" v-if="param.type == 1">自有车装货</view> | 
|---|
|  |  |  | <view class="value" v-if="param.type == 2">外协车卸货</view> | 
|---|
|  |  |  | <view class="value" v-if="param.type == 0">自有车卸货</view> | 
|---|
|  |  |  | <view class="value" v-if="param.type == 1">自有车装货</view> | 
|---|
|  |  |  | <view class="value" v-if="param.type == 2">外协车卸货</view> | 
|---|
|  |  |  | <view class="value" v-if="param.type == 3">外协车装货</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | 
|---|
|  |  |  | </view> --> | 
|---|
|  |  |  | <view v-if="param.status == 1" class="signIn_wrap" @click="handleSignIn"> | 
|---|
|  |  |  | <image :src=" | 
|---|
|  |  |  | param.getDistance < signDistance | 
|---|
|  |  |  | (param.getDistance || param.getDistance == 0) && param.getDistance < signDistance | 
|---|
|  |  |  | ? require('@/static/driver/btn_qiandao@2x.png') | 
|---|
|  |  |  | : require('@/static/driver/btn_qiandao_fail@2x.png') | 
|---|
|  |  |  | " class="img" mode="widthFix"></image> | 
|---|
|  |  |  | <view class="handle">{{ param.getDistance > signDistance ? '无法签到' : '签到' }}</view> | 
|---|
|  |  |  | <view class="handle">{{ !param.getDistance || param.getDistance > signDistance ? '无法签到' : '签到' }}</view> | 
|---|
|  |  |  | <view class="time">{{nowTime}}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="space"></view> | 
|---|
|  |  |  | <!-- 等待叫号 --> | 
|---|
|  |  |  | <view v-if="param.status == 2" class="padding_wrap"> | 
|---|
|  |  |  | <view class="btn check" @click="handleQueue">查看排队情况</view> | 
|---|
|  |  |  | 
|---|
|  |  |  | <view class="value">{{ wmsInfo.carrierName }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="separate"></view> | 
|---|
|  |  |  | <view class="contract_list" v-for="item in wmsInfo.wmsJobContractVOList"> | 
|---|
|  |  |  | <view class="title">合同号:{{ item.contractCode }}</view> | 
|---|
|  |  |  | <view class="address">收货地:{{ item.address }}</view> | 
|---|
|  |  |  | <view class="list"> | 
|---|
|  |  |  | <view class="item" v-for="line in item.platformWmsDetailList"> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">物料:</view> | 
|---|
|  |  |  | <view class="value">{{ line.materialName }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">数量:</view> | 
|---|
|  |  |  | <view class="value">{{ line.ioQty }}</view> | 
|---|
|  |  |  | <view class="contract_wrap"> | 
|---|
|  |  |  | <view class="contract_list" v-for="item in wmsInfo.wmsJobContractVOList"> | 
|---|
|  |  |  | <view class="title">合同号:{{ item.contractCode }}</view> | 
|---|
|  |  |  | <view class="address">收货地:{{ item.address }}</view> | 
|---|
|  |  |  | <view class="list"> | 
|---|
|  |  |  | <view class="item" v-for="line in item.platformWmsDetailList"> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">物料:</view> | 
|---|
|  |  |  | <view class="value">{{ line.materialName }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">数量:</view> | 
|---|
|  |  |  | <view class="value">{{ line.ioQty }}万支</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | 
|---|
|  |  |  | status: '0' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | jobId: '', | 
|---|
|  |  |  | // lat: '', | 
|---|
|  |  |  | // lnt: '', | 
|---|
|  |  |  | lat: '31.783205', | 
|---|
|  |  |  | lnt: '117.262635', | 
|---|
|  |  |  | lat: '', | 
|---|
|  |  |  | lnt: '', | 
|---|
|  |  |  | // lat: '31.783205', | 
|---|
|  |  |  | // lnt: '117.262635', | 
|---|
|  |  |  | nowTime: '', | 
|---|
|  |  |  | wmsInfo: {}, | 
|---|
|  |  |  | signDistance: uni.getStorageSync('driverGuide').signDistance, | 
|---|
|  |  |  | showDetail: false, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onLoad(option) { | 
|---|
|  |  |  | onLoad(option) { | 
|---|
|  |  |  | uni.setStorageSync('ywinfo',{}) | 
|---|
|  |  |  | this.jobId = option.id | 
|---|
|  |  |  | // if(option.status && option.status == '1'){ | 
|---|
|  |  |  | //    this.getLocation() | 
|---|
|  |  |  | // }else{ | 
|---|
|  |  |  | //    this.getDetail() | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | this.getDetail() | 
|---|
|  |  |  | if (option.status && option.status == '1') { | 
|---|
|  |  |  | // wx.config({ | 
|---|
|  |  |  | //    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 | 
|---|
|  |  |  | //    appId: 'wx173e6caf5abc718a', // 必填,公众号的唯一标识 | 
|---|
|  |  |  | //    timestamp: timeStamp, // 必填,生成签名的时间戳 | 
|---|
|  |  |  | //    nonceStr: nonceStr, // 必填,生成签名的随机串 | 
|---|
|  |  |  | //    signature: Sign, // 必填,签名 | 
|---|
|  |  |  | //    jsApiList: [ | 
|---|
|  |  |  | //       'getLocation', | 
|---|
|  |  |  | //       'openLocation' | 
|---|
|  |  |  | //    ] // 必填,需要使用的JS接口列表 | 
|---|
|  |  |  | // }) | 
|---|
|  |  |  | this.getLocation() | 
|---|
|  |  |  | // this.getDetail() | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.getDetail() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // this.getDetail() | 
|---|
|  |  |  | setInterval(() => { | 
|---|
|  |  |  | this.nowTime = dayjs().format('HH:mm:ss') | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | 
|---|
|  |  |  | lnt, | 
|---|
|  |  |  | jobId | 
|---|
|  |  |  | } = this | 
|---|
|  |  |  | if (param.getDistance > signDistance) return | 
|---|
|  |  |  | if (!param.getDistance || param.getDistance > signDistance) return | 
|---|
|  |  |  | driverSignInTask({ | 
|---|
|  |  |  | jobId, | 
|---|
|  |  |  | lat, | 
|---|
|  |  |  | lnt, | 
|---|
|  |  |  | signType: 0 | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.showToast('签到成功') | 
|---|
|  |  |  | this.getDetail() | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | if (res && res.code == 200) { | 
|---|
|  |  |  | this.showToast('签到成功') | 
|---|
|  |  |  | this.getDetail() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getDetail() { | 
|---|
|  |  |  | 
|---|
|  |  |  | const { | 
|---|
|  |  |  | jobId | 
|---|
|  |  |  | } = this | 
|---|
|  |  |  | // wx.ready(() => { | 
|---|
|  |  |  | //    wx.getLocation({ | 
|---|
|  |  |  | //       type: "gcj02", // gcj02(火星坐标),wgs84(GPS坐标) | 
|---|
|  |  |  | //       success: (res) => { | 
|---|
|  |  |  | //          this.lat = res.latitude | 
|---|
|  |  |  | //          this.lnt = res.longitude | 
|---|
|  |  |  | //          this.getDetail() | 
|---|
|  |  |  | //       }, | 
|---|
|  |  |  | //       fail: (err) => { | 
|---|
|  |  |  | //          console.error("获取定位失败:", err); | 
|---|
|  |  |  | //       }, | 
|---|
|  |  |  | //       cancel: () => { | 
|---|
|  |  |  | //          console.warn("用户拒绝授权获取地理位置"); | 
|---|
|  |  |  | //       }, | 
|---|
|  |  |  | //    }); | 
|---|
|  |  |  | // }); | 
|---|
|  |  |  | uni.getLocation({ | 
|---|
|  |  |  | type: 'wgs84', | 
|---|
|  |  |  | success: (res) => { | 
|---|
|  |  |  | this.lat = res.latitude | 
|---|
|  |  |  | this.lnt = res.longitude | 
|---|
|  |  |  | this.lnt = res.longitude | 
|---|
|  |  |  | console.log('---', res); | 
|---|
|  |  |  | this.getDetail() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | fail: (err) => { | 
|---|
|  |  |  | this.showToast('获取定位失败') | 
|---|
|  |  |  | fail: (err) => { | 
|---|
|  |  |  | this.getDetail() | 
|---|
|  |  |  | this.showToast('获取定位失败', err) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .label { | 
|---|
|  |  |  | width: 150rpx; | 
|---|
|  |  |  | width: 154rpx; | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .detail_modal { | 
|---|
|  |  |  | height: calc(100vh - 88rpx); | 
|---|
|  |  |  | padding: 36rpx 30rpx; | 
|---|
|  |  |  | border-radius: 12rpx; | 
|---|
|  |  |  | box-shadow: 0 0 6rpx rgba(0, 0, 0, 0.5); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .modal_title { | 
|---|
|  |  |  | font-weight: 600; | 
|---|
|  |  |  | 
|---|
|  |  |  | margin-bottom: 36rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .contract_wrap { | 
|---|
|  |  |  | height: calc(100% - 400rpx); | 
|---|
|  |  |  | overflow-y: auto; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .contract_list { | 
|---|
|  |  |  | border-top: 1rpx solid #E5E5E5; | 
|---|
|  |  |  | margin-bottom: 30rpx; | 
|---|
|  |  |  | padding-top: 30rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | &:nth-last-child(1) { | 
|---|
|  |  |  | margin-bottom: 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .list { | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | border-radius: 8rpx; | 
|---|
|  |  |  | padding: 20rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | border-bottom: 1rpx solid #e5e5e5; | 
|---|
|  |  |  | padding-bottom: 20rpx; | 
|---|
|  |  |  | margin-bottom: 20rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | &:nth-last-child(1) { | 
|---|
|  |  |  | border: none; | 
|---|
|  |  |  | padding-bottom: 0; | 
|---|
|  |  |  | margin-bottom: 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .line { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | margin-bottom: 20rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | &:nth-of-type(3n) { | 
|---|
|  |  |  | border-top: 1rpx solid #e5e5e5; | 
|---|
|  |  |  | padding-top: 20rpx; | 
|---|
|  |  |  | &:nth-last-child(1) { | 
|---|
|  |  |  | margin-bottom: 0rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .label { | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | width: 86rpx; | 
|---|
|  |  |  | width: 92rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .value { | 
|---|