| | |
| | | data |
| | | }) |
| | | } |
| | | // 物流车预约修改 |
| | | export const driverCarApplyEdit = (data) => { |
| | | return http({ |
| | | url: 'visitsAdmin/cloudService/web/driverPlatform/applyEdit', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | // 物流车撤销 |
| | | export const driverCarRevoke= (data) => { |
| | | return http({ |
| | |
| | | data |
| | | }) |
| | | } |
| | | // 月台 排队情况 |
| | | export const driverLineUpDetail = (data) => { |
| | | return http({ |
| | | url: 'visitsAdmin/cloudService/web/driverPlatform/lineUpDetail', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | | // 月台 任务详情 |
| | | export const driverTaskJobDetail = (data) => { |
| | | return http({ |
| | | url: 'visitsAdmin/cloudService/web/driverPlatform/jobDetail', |
| | | method: 'post', |
| | | data |
| | | }) |
| | | } |
| | |
| | | <!-- --> |
| | | <view class="task_list"> |
| | | <swiper circular class="task_swiper"> |
| | | <swiper-item> |
| | | <swiper-item v-for="item in taskList" :key="item.id"> |
| | | <view class="item"> |
| | | <view class="head"> |
| | | <view class="name">运输单222</view> |
| | | <view class="name">运输单{{ item.contractNum }}</view> |
| | | <view class="status"> |
| | | <view class="text">请确认任务</view> |
| | | <view class="time">预计等待:12小时</view> |
| | | <view class="text" v-if="item.status == 0">请确认任务</view> |
| | | <view class="text" v-if="item.status == 1">请于{{item.arriveDate.slice(5,11)}}现场签到</view> |
| | | <view class="text" v-if="item.status == 2">前方排队:{{item.lineUpNum}}辆</view> |
| | | <view class="text" v-if="item.status == 3">请入园进入等待区</view> |
| | | <view class="text" v-if="item.status == 4">请入园停靠1号月台作业</view> |
| | | <view class="text" v-if="item.status == 5">1号月台作业中</view> |
| | | <view class="text" v-if="item.status == 6">作业已完成</view> |
| | | <view class="time" v-if="item.waitTime">{{ item.waitTime }}</view> |
| | | </view> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="info"> |
| | | <view class="plate"> |
| | | <image src="@/static/driver/wuliu_ic_car@2x.png" class="icon" mode=""></image> |
| | | <text>皖AD</text> |
| | | <text>{{ item.carCodeFront }}</text> |
| | | </view> |
| | | <view class="plate"> |
| | | <image src="@/static/driver/wuliu_ic_huowu@2x.png" class="icon" mode=""></image> |
| | | <text>3000万</text> |
| | | <text>{{ item.totalNum }}万支</text> |
| | | </view> |
| | | </view> |
| | | <view class="sub"> |
| | | <view class="time">02-01 08:11:11</view> |
| | | <view class="sub_btn" @click="handleTask()">确认任务</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </swiper-item> |
| | | <swiper-item> |
| | | <view class="item"> |
| | | <view class="head"> |
| | | <view class="name">运输单222</view> |
| | | <view class="status"><view class="text">请与现场签到</view></view> |
| | | </view> |
| | | <view class="content"> |
| | | <view class="info"> |
| | | <view class="plate"> |
| | | <image src="@/static/driver/wuliu_ic_car@2x.png" class="icon" mode=""></image> |
| | | <text>皖AD</text> |
| | | </view> |
| | | <view class="plate"> |
| | | <image src="@/static/driver/wuliu_ic_huowu@2x.png" class="icon" mode=""></image> |
| | | <text>3000万</text> |
| | | </view> |
| | | </view> |
| | | <view class="sub"> |
| | | <view class="time">02-01 08:11:11</view> |
| | | <view class="sub_btn" @click="handleTask(1)">立即签到</view> |
| | | <view class="time" v-if="item.arriveDate">{{ item.arriveDate.slice(5) }}</view> |
| | | <view v-if="item.status == 0" class="sub_btn" @click="handleTask(item)">确认任务</view> |
| | | <view v-if="item.status == 1" class="sub_btn" @click="handleSign(item)">立即签到</view> |
| | | <view v-if="item.status == 2" class="sub_btn" @click="handleQueup(item)">查看排队</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | driverInfo: uni.getStorageSync('driverInfo') |
| | | taskList: [], |
| | | driverInfo: uni.getStorageSync('driverInfo'), |
| | | |
| | | }; |
| | | }, |
| | | created() { |
| | | this.initData(); |
| | | }, |
| | | methods: { |
| | | handleSign(item) { |
| | | uni.navigateTo({ |
| | | url: '/pages/driver/taskDetail?id=' + item.id |
| | | }); |
| | | }, |
| | | handleQueup(item) {}, |
| | | initData() { |
| | | driverHomeData().then(res => { |
| | | if (res.code == 200) { |
| | |
| | | bookingTips: res.data.bookingTips, |
| | | reservationMap: res.data.reservationMap |
| | | }); |
| | | this.taskList = res.data.platformJobList || [] |
| | | } |
| | | }); |
| | | }, |
| | |
| | | data() { |
| | | return { |
| | | form: { |
| | | username: '13996529050', |
| | | username: '13333333333', |
| | | password: '1' |
| | | }, |
| | | isShowProtocol: false, |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { driverLineUpDetail } from '@/api' |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | } |
| | | }, |
| | | onLoad() { |
| | | this.getData() |
| | | }, |
| | | methods: { |
| | | getData() { |
| | | driverLineUpDetail({ |
| | | mobile: uni.getStorageSync('driverInfo').mobile, |
| | | queryType: 0 |
| | | }) |
| | | }, |
| | | handleCheck() { |
| | | uni.navigateTo({ |
| | | url: "/pages/driver/queueUpRecord" |
| | |
| | | |
| | | <script> |
| | | import keyboardInput from '@/components/keyboard-input/keyboard-input.vue'; |
| | | import { uploadUrl, driverCarApply, driverReasonList } from '@/api'; |
| | | import { uploadUrl, driverCarApply,driverCarApplyEdit, driverReasonList, driverApplyDetail } from '@/api'; |
| | | import dayjs from 'dayjs' |
| | | export default { |
| | | components: { |
| | |
| | | inputType: '' |
| | | }; |
| | | }, |
| | | created() { |
| | | onLoad(option) { |
| | | if(option && option.id){ |
| | | this.getDetail(option.id, option.type) |
| | | } |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | |
| | | if (!param.carCodeBack) return this.showToast('请输入车后牌号') |
| | | if (!param.transportImgFull) return this.showToast('请上传准运证照片') |
| | | param.arriveDate = param.arriveDate + ':00' |
| | | driverCarApply({...param}).then(res => { |
| | | let fn = param.id ? driverCarApplyEdit : driverCarApply |
| | | fn({...param}).then(res => { |
| | | if(res && res.code === 200){ |
| | | uni.navigateBack() |
| | | setTimeout(() => { |
| | | this.showToast('预约申请成功') |
| | | }) |
| | | this.$jump('/pages/driver/reservedRecord') |
| | | } |
| | | }) |
| | | }, |
| | | getDetail(id, type) { |
| | | driverApplyDetail({id}).then(res => { |
| | | this.param = { ...res.data, transportImgFull: res.data.prefixUrl + res.data.transportImg } |
| | | if(type && type == 'reject'){ |
| | | this.$set(this.param, 'id', null) |
| | | } |
| | | }) |
| | | }, |
| | |
| | | }, |
| | | methods: { |
| | | handleCancel(){ |
| | | const { info } = this |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '这是一个模态弹窗', |
| | | content: '您确认要撤回当前申请吗?', |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | console.log('用户点击确定'); |
| | | driverCarRevoke({ |
| | | id: info.id, info: '' |
| | | }) |
| | | } else if (res.cancel) { |
| | | console.log('用户点击取消'); |
| | | } |
| | | } |
| | | }); |
| | | // driverCarRevoke |
| | | }, |
| | | handleEdit(){}, |
| | | handleAga(){}, |
| | | handleEdit(){ |
| | | uni.navigateTo({ |
| | | url: '/pages/driver/reserved?id=' + this.info.id |
| | | }) |
| | | }, |
| | | handleAga(){ |
| | | const { info } = this |
| | | uni.navigateTo({ |
| | | url: `/pages/driver/reserved?id=${info.id}&type=reject` |
| | | }) |
| | | }, |
| | | getDetail(id) { |
| | | driverApplyDetail({id}).then(res => { |
| | | this.info = res.data |
| | |
| | | .item { |
| | | display: flex; |
| | | margin-bottom: 48rpx; |
| | | |
| | | position: relative; |
| | | .separate { |
| | | position: absolute; |
| | | width: 4rpx; |
| | | height: calc( 100% - 52rpx ); |
| | | background-color: #eeeeee; |
| | | left: 40rpx; |
| | | top: 90rpx; |
| | | } |
| | | .avatar_wrap { |
| | | width: 80rpx; |
| | | height: 80rpx; |
| | |
| | | bottom: 0; |
| | | } |
| | | |
| | | .separate { |
| | | position: absolute; |
| | | width: 4rpx; |
| | | height: 100%; |
| | | background-color: #eeeeee; |
| | | left: 50%; |
| | | transform: translate(-50%, 0); |
| | | bottom: -80rpx; |
| | | } |
| | | } |
| | | |
| | | .content { |
| | |
| | | src="../../static/driver/bg_renwu@2x.png" |
| | | mode="" |
| | | ></image> |
| | | <view class="name">作业已完成</view> |
| | | <view class="id_card">皖AD1212</view> |
| | | <view class="status">作业完成</view> |
| | | <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" v-if="param.status == 1">等待签到</view> |
| | | <view class="status" v-if="param.status == 2">等待叫号</view> |
| | | <view class="status" v-if="param.status == 5">作业中</view> |
| | | <view class="status" v-if="param.status == 6">作业完成</view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="main_content"> |
| | | <view class="line"> |
| | | <view class="label">司机姓名</view> |
| | | <view class="value">刘某</view> |
| | | <view class="value">{{param.lineUpNum}}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">手机号</view> |
| | | <view class="value">188</view> |
| | | <view class="value">{{param.lineUpNum}}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">运输单号</view> |
| | | <view class="value" @click="showDetail = true"> |
| | | <text class="waybill_num">Y111</text> |
| | | <text class="waybill_num">{{param.lineUpNum}}</text> |
| | | <text class="btn">运单详情</text> |
| | | </view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">作业类型</view> |
| | | <view class="value">入园装货</view> |
| | | <view class="value">{{param.lineUpNum}}</view> |
| | | </view> |
| | | <view class="line"> |
| | | <view class="label">车牌照</view> |
| | | <view class="value">前:皖A21</view> |
| | | <view class="value">{{param.lineUpNum}}</view> |
| | | </view> |
| | | <!-- --> |
| | | <view class="line"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { driverTaskJobDetail } from '@/api' |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | showDetail: false, |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | this.getLocation(option.id) |
| | | }, |
| | | methods: { |
| | | handleSignIn() { |
| | | const { param } = this |
| | | this.param.status = param.status == '0' ? '1' : '0' |
| | | }, |
| | | getLocation() { |
| | | getLocation(jobId) { |
| | | uni.getLocation({ |
| | | type: 'wgs84', |
| | | |
| | | success: function (res) { |
| | | driverTaskJobDetail({ |
| | | jobId, |
| | | lat: res.latitude, |
| | | lnt: res.longitude, |
| | | }).then(ress => { |
| | | this.param = { ...ress.data } |
| | | }) |
| | | console.log(res); |
| | | console.log('当前位置的经度:' + res.longitude) |
| | | console.log('当前位置的纬度:' + res.latitude) |
| | |
| | | <view class="appr_modal"> |
| | | <view class="title">{{ this.flag == '0' ? '拒绝' : '同意' }}</view> |
| | | <textarea |
| | | v-model="checkInfo" |
| | | :placeholder="this.flag == '0' ? '拒绝说明,必填' : '同意说明,非必填'" |
| | | placeholder-class="placeholder9" |
| | | /> |
| | |
| | | }, |
| | | handleAppy() { |
| | | const {flag,checkInfo, type,info } = this |
| | | if(flag == 0 && !checkInfo) return this.showToast('拒绝说明必填') |
| | | if(flag == 0 && checkInfo == '') return this.showToast('拒绝说明必填') |
| | | carUseBookAppr({ |
| | | checkInfo,objId: info.id,objType: 6,status: flag == 0 ? 3 : 2 |
| | | }).then(res => { |
| | |
| | | data() { |
| | | return { |
| | | form: { |
| | | account: '', |
| | | password: '', |
| | | username: '13996529050', |
| | | password: '123456', |
| | | code: 1 |
| | | }, |
| | | isShowProtocol: false, |
| | | ProtocolFlag: false, |
| | | ProtocolFlag: true, |
| | | captcha: {}, |
| | | htmlText: '' |
| | | } |
| | |
| | | empty(state) { |
| | | state.token = '' |
| | | state.userInfo = {} |
| | | state.driverInfo = {} |
| | | uni.removeStorageSync('userInfo') |
| | | uni.removeStorageSync('driverInfo') |
| | | uni.removeStorageSync('token') |
| | | } |
| | | }, |