| | |
| | | <template> |
| | | <view class="main_app"> |
| | | <view class="status_wrap"> |
| | | <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 == 5">月台作业中</view> |
| | | <view class="name" v-if="param.status == 6">作业已完成</view> |
| | | <view class="id_card">{{ param.carCodeFront }}</view> |
| | | <view class="status">{{statusMap[param.status]}}</view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="main_content"> |
| | | <view class="line"> |
| | | <view class="label">司机姓名</view> |
| | | <view class="value">{{param.driverName}}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">手机号</view> |
| | | <view class="value">{{param.drivierPhone}}</view> |
| | | </view> |
| | | <template v-if="param.type != 4"> |
| | | <view class="line"> |
| | | <view class="label">运输单号</view> |
| | | <view class="value" @click="showDetail = true"> |
| | | <text class="waybill_num">{{param.billCode}}</text> |
| | | <text class="btn">运单详情</text> |
| | | </view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">作业类型</view> |
| | | <view class="value">市公司外协车卸货</view> |
| | | </view> |
| | | </template> |
| | | <template v-else> |
| | | <view class="line"> |
| | | <view class="label">合同编号</view> |
| | | <view class="value">{{param.contractNum}}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">入库类型</view> |
| | | <view class="value">{{param.inType == 0 ? '整托盘' : '件烟'}}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">作业量</view> |
| | | <view class="value">{{param.totalNum}}万支</view> |
| | | </view> |
| | | </template> |
| | | <view class="line"> |
| | | <view class="label">车牌照</view> |
| | | <view class="value">前:{{param.carCodeFront}} | 后:{{param.carCodeBack}}</view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="line" v-if="param.status == 1"> |
| | | <view class="label">距离园区</view> |
| | | <view class="value"> |
| | | <view class="">{{param.getDistance}}公里</view> |
| | | <view class="btn" @click="getLocation"> |
| | | <image class="icon mr6" src="../../static/driver/position.png"></image> |
| | | 重新定位 |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="line" v-if="param.signDate"> |
| | | <view class="label">签到时间</view> |
| | | <view class="value">{{param.signDate}}</view> |
| | | </view> |
| | | <view class="line" v-if="param.startDate"> |
| | | <view class="label">开始作业</view> |
| | | <view class="value">{{param.startDate}}</view> |
| | | </view> |
| | | <view class="line" v-if="param.doneDate"> |
| | | <view class="label">作业完成</view> |
| | | <view class="value">{{param.doneDate}}</view> |
| | | </view> |
| | | <view v-if="param.status == 1" class="warnning"> |
| | | <u-icon name="info-circle" color="#ED4545" class="mr12"></u-icon> |
| | | 如无法获取定位,请用微信扫描园区大屏二维 |
| | | </view> |
| | | <!-- <view class="line"> |
| | | <view class="label">签到时间</view> |
| | | <view class="value">2022</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">入园时间</view> |
| | | <view class="value">2022</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">作业完成</view> |
| | | <view class="value">2022</view> |
| | | </view> --> |
| | | <view v-if="param.status == 1" class="signIn_wrap" @click="handleSignIn"> |
| | | <image |
| | | :src=" |
| | | 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="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> |
| | | |
| | | <!-- modal --> |
| | | <u-popup |
| | | :show="showDetail" |
| | | :round="10" |
| | | :safeAreaInsetBottom="true" |
| | | closeOnClickOverlay |
| | | :closeable="true" |
| | | mode="bottom" |
| | | @close="showDetail = false" |
| | | > |
| | | <view class="detail_modal"> |
| | | <view class="modal_title">运单详情</view> |
| | | <view class="id_card"> |
| | | <view class="last">皖</view> |
| | | <view class="name">AD1111</view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="info"> |
| | | <view class="line"> |
| | | <view class="label">运输单号</view> |
| | | <view class="value">2222</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">驾驶员</view> |
| | | <view class="value">2222</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">总运输量</view> |
| | | <view class="value">2222</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">运输公司</view> |
| | | <view class="value">2222</view> |
| | | </view> |
| | | </view> |
| | | <view class="separate"></view> |
| | | <view class="contract_list"> |
| | | <view class="title">合同号:111</view> |
| | | <view class="address">aadd</view> |
| | | <view class="list"> |
| | | <view class="line"> |
| | | <view class="label">物料:</view> |
| | | <view class="value">黄山黑马</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">数量:</view> |
| | | <view class="value">黄山黑马</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">物料:</view> |
| | | <view class="value">黄山黑马</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">数量:</view> |
| | | <view class="value">黄山黑马</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { driverTaskJobDetail, driverSignInTask } from '@/api'; |
| | | import { statusMap } from '@/utils/config.js'; |
| | | import dayjs from 'dayjs'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | statusMap, |
| | | param: { |
| | | status: '0' |
| | | }, |
| | | jobId: '', |
| | | // lat: '', |
| | | // lnt: '', |
| | | lat: '31.783205', |
| | | lnt: '117.262635', |
| | | nowTime: '', |
| | | signDistance: uni.getStorageSync('driverGuide').signDistance, |
| | | showDetail: false, |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | this.jobId = option.id |
| | | // if(option.status && option.status == '1'){ |
| | | // this.getLocation() |
| | | // }else{ |
| | | // this.getDetail() |
| | | // } |
| | | this.getDetail() |
| | | setInterval(() => { |
| | | this.nowTime = dayjs().format('HH:mm:ss') |
| | | }) |
| | | }, |
| | | methods: { |
| | | handleSignIn() { |
| | | const { param, signDistance, lat, lnt, jobId } = this |
| | | if(param.getDistance > signDistance) return |
| | | driverSignInTask({ |
| | | jobId, lat, lnt,signType: 0 |
| | | }).then(res => { |
| | | this.showToast('签到成功') |
| | | this.getDetail() |
| | | }) |
| | | }, |
| | | getDetail() { |
| | | const { jobId, lat, lnt } = this |
| | | driverTaskJobDetail({ |
| | | jobId: this.jobId, |
| | | lat, |
| | | lnt |
| | | }).then(ress => { |
| | | this.param = { ...ress.data } |
| | | }) |
| | | }, |
| | | getLocation() { |
| | | const { jobId } = this |
| | | uni.getLocation({ |
| | | type: 'wgs84', |
| | | success: (res) => { |
| | | this.lat = res.latitude |
| | | this.lnt = res.longitude |
| | | this.getDetail() |
| | | }, |
| | | fail:(err) => { |
| | | this.showToast('获取定位失败') |
| | | } |
| | | }) |
| | | }, |
| | | handleQueue() { |
| | | uni.navigateTo({ |
| | | url:'/pages/driver/queueUp?jobId=' + this.jobId |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .main_app { |
| | | padding: 0; |
| | | .main_content { |
| | | background: #ffffff; |
| | | border-radius: 20rpx 20rpx 0rpx 0rpx; |
| | | padding: 16rpx 30rpx; |
| | | position: relative; |
| | | bottom: 32rpx; |
| | | z-index: 999; |
| | | .line { |
| | | padding: 24rpx 0 28rpx; |
| | | border-bottom: 1rpx solid #e5e5e5; |
| | | display: flex; |
| | | .label { |
| | | width: 150rpx; |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | } |
| | | .value { |
| | | flex: 1; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | font-size: 30rpx; |
| | | .waybill_num { |
| | | flex: 1; |
| | | } |
| | | .btn { |
| | | font-size: 28rpx; |
| | | color: $uni-color-primary; |
| | | display: flex; |
| | | align-items: center; |
| | | .icon{ |
| | | width: 30rpx; |
| | | height: 30rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .warnning { |
| | | display: flex; |
| | | color: #ed4545; |
| | | align-items: center; |
| | | margin: 40rpx 0; |
| | | } |
| | | .signIn_wrap { |
| | | margin: 80rpx auto; |
| | | width: 260rpx; |
| | | height: 260rpx; |
| | | position: relative; |
| | | color: #fff; |
| | | z-index: 1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | .handle { |
| | | font-weight: 600; |
| | | font-size: 40rpx; |
| | | line-height: 56rpx; |
| | | } |
| | | .time { |
| | | color: rgba(255, 255, 255, 0.7); |
| | | } |
| | | .img { |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | z-index: -1; |
| | | } |
| | | } |
| | | } |
| | | .status_wrap { |
| | | height: 200rpx; |
| | | width: 100%; |
| | | padding: 30rpx; |
| | | position: relative; |
| | | color: #fff; |
| | | .bg { |
| | | width: 100%; |
| | | height: 100%; |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | z-index: -1; |
| | | } |
| | | .name { |
| | | font-weight: 600; |
| | | font-size: 40rpx; |
| | | line-height: 56rpx; |
| | | margin-bottom: 12rpx; |
| | | } |
| | | .id_card { |
| | | color: rgba(255, 255, 255, 0.8); |
| | | } |
| | | .status { |
| | | position: absolute; |
| | | right: 0; |
| | | top: 30rpx; |
| | | height: 68rpx; |
| | | line-height: 68rpx; |
| | | background: #ffffff; |
| | | padding: 0 24rpx; |
| | | border-radius: 34rpx 0rpx 0rpx 34rpx; |
| | | font-size: 26rpx; |
| | | color: $uni-color-primary; |
| | | } |
| | | } |
| | | .space { |
| | | width: 750rpx; |
| | | height: 200rpx; |
| | | } |
| | | .padding_wrap { |
| | | position: fixed; |
| | | z-index: 999; |
| | | padding: 0 30rpx 64rpx; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .btn { |
| | | height: 96rpx; |
| | | line-height: 96rpx; |
| | | text-align: center; |
| | | width: 100%; |
| | | font-size: 36rpx; |
| | | color: #333333; |
| | | background: #ffffff; |
| | | border-radius: 48rpx; |
| | | border: 1rpx solid #999999; |
| | | } |
| | | .check { |
| | | background: $uni-color-primary; |
| | | border: 1rpx solid $uni-color-primary; |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | .detail_modal { |
| | | padding: 36rpx 30rpx; |
| | | .modal_title { |
| | | font-weight: 600; |
| | | font-size: 32rpx; |
| | | color: #222222; |
| | | line-height: 44rpx; |
| | | text-align: center; |
| | | margin-bottom: 36rpx; |
| | | } |
| | | .contract_list { |
| | | .list { |
| | | background: #f7f7f7; |
| | | border-radius: 8rpx; |
| | | padding: 20rpx; |
| | | .line { |
| | | display: flex; |
| | | margin-bottom: 20rpx; |
| | | &:nth-of-type(3n) { |
| | | border-top: 1rpx solid #e5e5e5; |
| | | padding-top: 20rpx; |
| | | } |
| | | .label { |
| | | color: #666666; |
| | | width: 86rpx; |
| | | } |
| | | .value { |
| | | flex: 1; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | .title { |
| | | font-weight: 600; |
| | | font-size: 30rpx; |
| | | color: $uni-color-primary; |
| | | margin-bottom: 12rpx; |
| | | } |
| | | .address { |
| | | font-size: 26rpx; |
| | | color: #666666; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | } |
| | | .info { |
| | | .line { |
| | | display: flex; |
| | | margin-bottom: 20rpx; |
| | | .label { |
| | | font-size: 30rpx; |
| | | color: #666666; |
| | | width: 150rpx; |
| | | } |
| | | .value { |
| | | flex: 1; |
| | | font-size: 30rpx; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | .separate { |
| | | width: 750rpx; |
| | | height: 2rpx; |
| | | margin: 30rpx -30rpx; |
| | | border: 1rpx solid #e5e5e5; |
| | | } |
| | | .id_card { |
| | | border-radius: 8rpx; |
| | | display: flex; |
| | | height: 60rpx; |
| | | line-height: 60rpx; |
| | | font-weight: 600; |
| | | font-size: 36rpx; |
| | | color: #111111; |
| | | text-align: center; |
| | | margin-bottom: 30rpx; |
| | | .last { |
| | | background: #e9f5f6; |
| | | width: 60rpx; |
| | | border-radius: 8rpx 0rpx 0rpx 8rpx; |
| | | border: 1rpx solid #dfdede; |
| | | } |
| | | .name { |
| | | width: 186rpx; |
| | | border: 1rpx solid #dfdede; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | <template>
|
| | | <view class="main_app">
|
| | | <view class="status_wrap">
|
| | | <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 == 5">月台作业中</view>
|
| | | <view class="name" v-if="param.status == 6">作业已完成</view>
|
| | | <view class="id_card">{{ param.carCodeFront }}</view>
|
| | | <view class="status">{{statusMap[param.status]}}</view>
|
| | | </view>
|
| | | <!-- -->
|
| | | <view class="main_content">
|
| | | <view class="line">
|
| | | <view class="label">司机姓名</view>
|
| | | <view class="value">{{param.driverName}}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">手机号</view>
|
| | | <view class="value">{{param.drivierPhone}}</view>
|
| | | </view>
|
| | | <template v-if="param.type != 4">
|
| | | <view class="line">
|
| | | <view class="label">运输单号</view>
|
| | | <view class="value" @click="wmsDetail">
|
| | | <text class="waybill_num">{{param.billCode}}</text>
|
| | | <text class="btn">运单详情</text>
|
| | | </view>
|
| | | </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 == 3">外协车装货</view>
|
| | | </view>
|
| | | </template>
|
| | | <template v-else>
|
| | | <view class="line">
|
| | | <view class="label">合同编号</view>
|
| | | <view class="value">{{param.contractNum}}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">入库类型</view>
|
| | | <view class="value">{{param.inType == 0 ? '整托盘' : '件烟'}}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">作业量</view>
|
| | | <view class="value">{{param.totalNum}}万支</view>
|
| | | </view>
|
| | | </template>
|
| | | <view class="line">
|
| | | <view class="label">车牌照</view>
|
| | | <view class="value">前:{{param.carCodeFront}} | 后:{{param.carCodeBack}}</view>
|
| | | </view>
|
| | | <!-- -->
|
| | | <view class="line" v-if="param.status == 1">
|
| | | <view class="label">距离园区</view>
|
| | | <view class="value">
|
| | | <view class="">{{param.getDistance}}公里</view>
|
| | | <view class="btn" @click="getLocation">
|
| | | <image class="icon mr6" src="../../static/driver/position.png"></image>
|
| | | 重新定位
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="line" v-if="param.signDate">
|
| | | <view class="label">签到时间</view>
|
| | | <view class="value">{{param.signDate}}</view>
|
| | | </view>
|
| | | <view class="line" v-if="param.startDate">
|
| | | <view class="label">开始作业</view>
|
| | | <view class="value">{{param.startDate}}</view>
|
| | | </view>
|
| | | <view class="line" v-if="param.doneDate">
|
| | | <view class="label">作业完成</view>
|
| | | <view class="value">{{param.doneDate}}</view>
|
| | | </view>
|
| | | <view v-if="param.status == 1" class="warnning">
|
| | | <u-icon name="info-circle" color="#ED4545" class="mr12"></u-icon>
|
| | | 如无法获取定位,请用微信扫描园区大屏二维
|
| | | </view>
|
| | | <!-- <view class="line">
|
| | | <view class="label">签到时间</view>
|
| | | <view class="value">2022</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">入园时间</view>
|
| | | <view class="value">2022</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">作业完成</view>
|
| | | <view class="value">2022</view>
|
| | | </view> -->
|
| | | <view v-if="param.status == 1" class="signIn_wrap" @click="handleSignIn">
|
| | | <image :src="
|
| | | 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="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>
|
| | |
|
| | | <!-- modal -->
|
| | | <u-popup :show="showDetail" :round="10" :safeAreaInsetBottom="true" closeOnClickOverlay :closeable="true"
|
| | | mode="bottom" @close="showDetail = false">
|
| | | <view class="detail_modal">
|
| | | <view class="modal_title">运单详情</view>
|
| | | <view v-if="wmsInfo.plateNumber" class="id_card">
|
| | | <text>{{ wmsInfo.plateNumber.slice(0, 1) }}</text>
|
| | | <text>{{ wmsInfo.plateNumber.slice(1, 2) }}</text>
|
| | | <text>·</text>
|
| | | <text>{{ wmsInfo.plateNumber.slice(2) }}</text>
|
| | | </view>
|
| | | <!-- -->
|
| | | <view class="info">
|
| | | <view class="line">
|
| | | <view class="label">运输单号</view>
|
| | | <view class="value">{{ wmsInfo.carryBillCode }}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">驾驶员</view>
|
| | | <view class="value">{{ wmsInfo.driverName }} {{ wmsInfo.driverPhone }}</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">总运输量</view>
|
| | | <view class="value">{{ wmsInfo.ioQty }}万支</view>
|
| | | </view>
|
| | | <view class="line">
|
| | | <view class="label">运输公司</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>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </u-popup>
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import {
|
| | | driverTaskJobDetail,
|
| | | driverSignInTask,
|
| | | wmsJobDetail
|
| | | } from '@/api';
|
| | | import {
|
| | | statusMap
|
| | | } from '@/utils/config.js';
|
| | | import dayjs from 'dayjs';
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | statusMap,
|
| | | param: {
|
| | | status: '0'
|
| | | },
|
| | | jobId: '',
|
| | | // lat: '',
|
| | | // lnt: '',
|
| | | lat: '31.783205',
|
| | | lnt: '117.262635',
|
| | | nowTime: '',
|
| | | wmsInfo: {},
|
| | | signDistance: uni.getStorageSync('driverGuide').signDistance,
|
| | | showDetail: false,
|
| | | }
|
| | | },
|
| | | onLoad(option) {
|
| | | this.jobId = option.id
|
| | | // if(option.status && option.status == '1'){
|
| | | // this.getLocation()
|
| | | // }else{
|
| | | // this.getDetail()
|
| | | // }
|
| | | this.getDetail()
|
| | | setInterval(() => {
|
| | | this.nowTime = dayjs().format('HH:mm:ss')
|
| | | })
|
| | | },
|
| | | methods: {
|
| | | handleSignIn() {
|
| | | const {
|
| | | param,
|
| | | signDistance,
|
| | | lat,
|
| | | lnt,
|
| | | jobId
|
| | | } = this
|
| | | if (param.getDistance > signDistance) return
|
| | | driverSignInTask({
|
| | | jobId,
|
| | | lat,
|
| | | lnt,
|
| | | signType: 0
|
| | | }).then(res => {
|
| | | this.showToast('签到成功')
|
| | | this.getDetail()
|
| | | })
|
| | | },
|
| | | getDetail() {
|
| | | const {
|
| | | jobId,
|
| | | lat,
|
| | | lnt
|
| | | } = this
|
| | | driverTaskJobDetail({
|
| | | jobId: this.jobId,
|
| | | lat,
|
| | | lnt
|
| | | }).then(ress => {
|
| | | this.param = {
|
| | | ...ress.data
|
| | | }
|
| | | })
|
| | | },
|
| | | wmsDetail() {
|
| | | const {
|
| | | param
|
| | | } = this
|
| | | wmsJobDetail({
|
| | | id: param.id
|
| | | }).then(res => {
|
| | | this.wmsInfo = res.data
|
| | | this.showDetail = true
|
| | | })
|
| | | },
|
| | | getLocation() {
|
| | | const {
|
| | | jobId
|
| | | } = this
|
| | | uni.getLocation({
|
| | | type: 'wgs84',
|
| | | success: (res) => {
|
| | | this.lat = res.latitude
|
| | | this.lnt = res.longitude
|
| | | this.getDetail()
|
| | | },
|
| | | fail: (err) => {
|
| | | this.showToast('获取定位失败')
|
| | | }
|
| | | })
|
| | | },
|
| | | handleQueue() {
|
| | | uni.navigateTo({
|
| | | url: '/pages/driver/queueUp?jobId=' + this.jobId
|
| | | })
|
| | | },
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss">
|
| | | .main_app {
|
| | | padding: 0;
|
| | |
|
| | | .main_content {
|
| | | background: #ffffff;
|
| | | border-radius: 20rpx 20rpx 0rpx 0rpx;
|
| | | padding: 16rpx 30rpx;
|
| | | position: relative;
|
| | | bottom: 32rpx;
|
| | | z-index: 999;
|
| | |
|
| | | .line {
|
| | | padding: 24rpx 0 28rpx;
|
| | | border-bottom: 1rpx solid #e5e5e5;
|
| | | display: flex;
|
| | |
|
| | | .label {
|
| | | width: 150rpx;
|
| | | font-size: 30rpx;
|
| | | color: #666666;
|
| | | }
|
| | |
|
| | | .value {
|
| | | flex: 1;
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | | align-items: center;
|
| | | font-size: 30rpx;
|
| | |
|
| | | .waybill_num {
|
| | | flex: 1;
|
| | | }
|
| | |
|
| | | .btn {
|
| | | font-size: 28rpx;
|
| | | color: $uni-color-primary;
|
| | | display: flex;
|
| | | align-items: center;
|
| | |
|
| | | .icon {
|
| | | width: 30rpx;
|
| | | height: 30rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .warnning {
|
| | | display: flex;
|
| | | color: #ed4545;
|
| | | align-items: center;
|
| | | margin: 40rpx 0;
|
| | | }
|
| | |
|
| | | .signIn_wrap {
|
| | | margin: 80rpx auto;
|
| | | width: 260rpx;
|
| | | height: 260rpx;
|
| | | position: relative;
|
| | | color: #fff;
|
| | | z-index: 1;
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | justify-content: center;
|
| | | align-items: center;
|
| | |
|
| | | .handle {
|
| | | font-weight: 600;
|
| | | font-size: 40rpx;
|
| | | line-height: 56rpx;
|
| | | }
|
| | |
|
| | | .time {
|
| | | color: rgba(255, 255, 255, 0.7);
|
| | | }
|
| | |
|
| | | .img {
|
| | | position: absolute;
|
| | | top: 0;
|
| | | left: 0;
|
| | | width: 100%;
|
| | | z-index: -1;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .status_wrap {
|
| | | height: 200rpx;
|
| | | width: 100%;
|
| | | padding: 30rpx;
|
| | | position: relative;
|
| | | color: #fff;
|
| | |
|
| | | .bg {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | | position: absolute;
|
| | | top: 0;
|
| | | left: 0;
|
| | | z-index: -1;
|
| | | }
|
| | |
|
| | | .name {
|
| | | font-weight: 600;
|
| | | font-size: 40rpx;
|
| | | line-height: 56rpx;
|
| | | margin-bottom: 12rpx;
|
| | | }
|
| | |
|
| | | .id_card {
|
| | | color: rgba(255, 255, 255, 0.8);
|
| | | }
|
| | |
|
| | | .status {
|
| | | position: absolute;
|
| | | right: 0;
|
| | | top: 30rpx;
|
| | | height: 68rpx;
|
| | | line-height: 68rpx;
|
| | | background: #ffffff;
|
| | | padding: 0 24rpx;
|
| | | border-radius: 34rpx 0rpx 0rpx 34rpx;
|
| | | font-size: 26rpx;
|
| | | color: $uni-color-primary;
|
| | | }
|
| | | }
|
| | |
|
| | | .space {
|
| | | width: 750rpx;
|
| | | height: 200rpx;
|
| | | }
|
| | |
|
| | | .padding_wrap {
|
| | | position: fixed;
|
| | | z-index: 999;
|
| | | padding: 0 30rpx 64rpx;
|
| | | bottom: 0;
|
| | | left: 0;
|
| | | width: 100%;
|
| | | display: flex;
|
| | | justify-content: space-between;
|
| | |
|
| | | .btn {
|
| | | height: 96rpx;
|
| | | line-height: 96rpx;
|
| | | text-align: center;
|
| | | width: 100%;
|
| | | font-size: 36rpx;
|
| | | color: #333333;
|
| | | background: #ffffff;
|
| | | border-radius: 48rpx;
|
| | | border: 1rpx solid #999999;
|
| | | }
|
| | |
|
| | | .check {
|
| | | background: $uni-color-primary;
|
| | | border: 1rpx solid $uni-color-primary;
|
| | | color: #fff;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .detail_modal {
|
| | | padding: 36rpx 30rpx;
|
| | |
|
| | | .modal_title {
|
| | | font-weight: 600;
|
| | | font-size: 32rpx;
|
| | | color: #222222;
|
| | | line-height: 44rpx;
|
| | | text-align: center;
|
| | | margin-bottom: 36rpx;
|
| | | }
|
| | |
|
| | | .contract_list {
|
| | | .list {
|
| | | background: #f7f7f7;
|
| | | border-radius: 8rpx;
|
| | | padding: 20rpx;
|
| | |
|
| | | .line {
|
| | | display: flex;
|
| | | margin-bottom: 20rpx;
|
| | |
|
| | | &:nth-of-type(3n) {
|
| | | border-top: 1rpx solid #e5e5e5;
|
| | | padding-top: 20rpx;
|
| | | }
|
| | |
|
| | | .label {
|
| | | color: #666666;
|
| | | width: 86rpx;
|
| | | }
|
| | |
|
| | | .value {
|
| | | flex: 1;
|
| | | color: #222222;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .title {
|
| | | font-weight: 600;
|
| | | font-size: 30rpx;
|
| | | color: $uni-color-primary;
|
| | | margin-bottom: 12rpx;
|
| | | }
|
| | |
|
| | | .address {
|
| | | font-size: 26rpx;
|
| | | color: #666666;
|
| | | margin-bottom: 20rpx;
|
| | | }
|
| | | }
|
| | |
|
| | | .info {
|
| | | .line {
|
| | | display: flex;
|
| | | margin-bottom: 20rpx;
|
| | |
|
| | | .label {
|
| | | font-size: 30rpx;
|
| | | color: #666666;
|
| | | width: 150rpx;
|
| | | }
|
| | |
|
| | | .value {
|
| | | flex: 1;
|
| | | font-size: 30rpx;
|
| | | color: #222222;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | .separate {
|
| | | width: 750rpx;
|
| | | height: 2rpx;
|
| | | margin: 30rpx -30rpx;
|
| | | border: 1rpx solid #e5e5e5;
|
| | | }
|
| | |
|
| | | .id_card {
|
| | | display: flex;
|
| | | font-weight: 600;
|
| | | height: 60rpx;
|
| | | line-height: 60rpx;
|
| | | font-size: 32rpx;
|
| | | color: #111111;
|
| | | border-radius: 8rpx;
|
| | | border: 1rpx solid #dfdede;
|
| | | width: 220rpx;
|
| | | margin-bottom: 15rpx;
|
| | |
|
| | | text {
|
| | | &:nth-of-type(1) {
|
| | | background: #e9f5f6;
|
| | | padding: 0 12rpx;
|
| | | }
|
| | |
|
| | | &:nth-of-type(2) {
|
| | | padding-left: 10rpx;
|
| | | }
|
| | |
|
| | | &:nth-of-type(4) {
|
| | | padding-right: 6rpx;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | </style> |