jiangping
2024-09-02 843d0abd014ec20424844546fc57a9f976f366ba
h5/pages/driver/taskConfirm.vue
@@ -1,75 +1,62 @@
<template>
  <view class="main_app">
    <view class="status_wrap">
      <image
        class="bg"
        src="../../static/driver/bg_renwu@2x.png"
        mode=""
      ></image>
      <view class="name">作业已完成</view>
      <view class="id_card">皖AD1212</view>
      <view class="status">作业完成</view>
         <image class="bg" src="../../static/driver/bg_renwu@2x.png" mode=""></image>
         <view class="name">请确认任务</view>
         <view class="id_card">{{ param.carCodeFront }}</view>
         <view class="status">任务待确认</view>
    </view>
    <!--  -->
    <view class="main_content">
      <view class="line">
        <view class="label">司机姓名</view>
        <view class="value">刘某</view>
            <view class="value">{{ param.driverName }}</view>
      </view>
      <view class="line">
        <view class="label">手机号</view>
        <view class="value">188</view>
            <view class="value">{{ param.drivierPhone }}</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.contractNum }}</text>
          <text class="btn">运单详情</text>
        </view>
      </view>
      <view class="line">
        <view class="label">作业类型</view>
        <view class="value">入园装货</view>
            <view class="value">{{ param.inType == 0 ? '整托盘' : '件烟' }}</view>
      </view>
      <view class="empty"></view>
      <!--  -->
      <view class="line">
        <view class="label">车前牌照号</view>
        <view class="value" @click="openInput(1)">
          <text :style="{ color: param.carNos ? '#000000' : '#999999' }">{{
            param.carNos ? param.carNos : "请输入车前牌照号"
          }}</text>
            <view class="label">到场日期<text class="red ml6">*</text></view>
            <view class="value" @click="showDate = true">
               <view :class="param.date ? '' : 'placeholder9'">{{ param.date ? param.date : '请选择' }}</view>
               <u-icon color="#999999" name="arrow-right"></u-icon>
        </view>
      </view>
      <view class="line">
        <view class="label">车后牌照号</view>
            <view class="label">车前牌照号</view>
            <view class="value" @click="openInput(1)">
               <text :style="{ color: param.carCodeFront ? '#000000' : '#999999' }">{{ param.carCodeFront ? param.carCodeFront : '请输入车前牌照号' }}</text>
            </view>
         </view>
         <view class="line">
            <view class="label">车后牌照号<text class="red ml6">*</text></view>
        <view class="value">
          <text
            @click="openInput(1)"
            :style="{ color: param.carNos ? '#000000' : '#999999' }"
            >{{ param.carNos ? param.carNos : "请输入车后牌照号" }}</text
          >
          <text class="copy">复制车前牌照号</text>
               <text @click="openInput(2)" :style="{ color: param.carCodeBack ? '#000000' : '#999999' }">{{ param.carCodeBack ? param.carCodeBack : '请输入车后牌照号' }}</text>
               <text class="copy" @click="copy">复制车前牌照号</text>
        </view>
      </view>
      <!--  -->
    </view>
    <view class="space"></view>
    <!-- 等待叫号 -->
    <view class="sub_wrap">
      <view class="btn check">确认任务</view>
    </view>
      <view class="sub_wrap"><view class="btn check" @click="onSubmit">确认任务</view></view>
    <!-- modal -->
    <u-popup
      :show="showDetail"
      :round="10"
      :safeAreaInsetBottom="true"
      closeOnClickOverlay
      :closeable="true"
      mode="bottom"
      @close="showDetail = false"
    >
      <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">
@@ -120,59 +107,85 @@
        </view>
      </view>
    </u-popup>
      <u-datetime-picker :show="showDate" v-model="param.date" :minDate="minDate" @confirm="dateEnter" @cancel="showDate = false" mode="datetime"></u-datetime-picker>
    <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
  </view>
  <!--  -->
</template>
<script>
import keyboardInput from '@/components/keyboard-input/keyboard-input.vue'
import keyboardInput from '@/components/keyboard-input/keyboard-input.vue';
import { driverTaskJobDetail, driverConfirmTask } from '@/api';
import dayjs from 'dayjs'
export default {
  components: {
    keyboardInput
  },
  data() {
    return {
      param: {
        status: '0'
      },
         param: {},
         showDate: false,
      showDetail: false,
         minDate: '',
      inputType: ''
    }
      };
   },
   onLoad(option) {
      this.getDetail(option.id);
      this.minDate = new Date().getTime()
  },
  methods: {
    handleSignIn() {
      onSubmit(){
      const { param } = this
      this.param.status = param.status == '0' ? '1' : '0'
    },
    getLocation() {
      uni.getLocation({
        type: 'wgs84',
        success: function (res) {
          console.log('当前位置的经度:' + res.longitude)
          console.log('当前位置的纬度:' + res.latitude)
        }
         if(!param.date) return this.showToast('请选择到场日期')
         if(!param.carCodeBack) return this.showToast('请输入车后牌照号')
         driverConfirmTask({
            id: param.id,
            carCodeBack: param.carCodeBack,
            arriveDate: param.date + ':59'
         }).then(res =>{
            this.showToast('确认成功')
            this.$goBack()
      })
    },
      getDetail(jobId) {
         driverTaskJobDetail({
            jobId
         }).then(ress => {
            this.param = { ...ress.data, carCodeBack: '' };
         });
      },
      dateEnter(e) {
         setTimeout(() => {
            this.$set(this.param, 'date', dayjs(e.value).format('YYYY-MM-DD HH:mm'))
         })
         this.showDate = false
      },
    openInput(type) {
      this.inputType = type
      this.$refs.keyboard.open()
         this.inputType = type;
         this.$refs.keyboard.open();
      },
      copy() {
         if (this.param.carCodeFront) {
            this.$set(this.param, 'carCodeBack', this.param.carCodeFront);
            this.showToast('复制成功');
         }
    },
    setPlate(e) {
      if (this.inputType === 1) {
        this.param.carNos = e
            this.$set(this.param, 'carCodeFront', e);
      } else if (this.inputType === 2) {
        this.param.carNos = e
            this.$set(this.param, 'carCodeBack', e);
      }
      this.$forceUpdate()
      this.closeInput()
         this.$forceUpdate();
         this.closeInput();
    },
    closeInput() {
      this.$refs.keyboard.close()
         this.$refs.keyboard.close();
    }
  }
}
};
</script>
<style lang="scss">
@@ -189,7 +202,7 @@
    padding: 16rpx 30rpx;
    position: relative;
    bottom: 32rpx;
      z-index: 999;
    .line {
      padding: 24rpx 0 28rpx;
      border-bottom: 1rpx solid #e5e5e5;