From 1382a7990e9b13f60c6416ada5477673a934dd16 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 29 八月 2024 09:02:57 +0800
Subject: [PATCH] ll

---
 h5/pages/driver/taskConfirm.vue |  809 +++++++++++++++++++++++++++++----------------------------
 1 files changed, 411 insertions(+), 398 deletions(-)

diff --git a/h5/pages/driver/taskConfirm.vue b/h5/pages/driver/taskConfirm.vue
index 592c807..7de5284 100644
--- a/h5/pages/driver/taskConfirm.vue
+++ b/h5/pages/driver/taskConfirm.vue
@@ -1,448 +1,461 @@
 <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">鐨朅D1212</view>
-      <view class="status">浣滀笟瀹屾垚</view>
-    </view>
-    <!--  -->
-    <view class="main_content">
-      <view class="line">
-        <view class="label">鍙告満濮撳悕</view>
-        <view class="value">鍒樻煇</view>
-      </view>
-      <view class="line">
-        <view class="label">鎵嬫満鍙�</view>
-        <view class="value">188</view>
-      </view>
-      <view class="line">
-        <view class="label">杩愯緭鍗曞彿</view>
-        <view class="value" @click="showDetail = true">
-          <text class="waybill_num">Y111</text>
-          <text class="btn">杩愬崟璇︽儏</text>
-        </view>
-      </view>
-      <view class="line">
-        <view class="label">浣滀笟绫诲瀷</view>
-        <view class="value">鍏ュ洯瑁呰揣</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>
-      </view>
-      <view class="line">
-        <view class="label">杞﹀悗鐗岀収鍙�</view>
-        <view class="value">
-          <text
-            @click="openInput(1)"
-            :style="{ color: param.carNos ? '#000000' : '#999999' }"
-            >{{ param.carNos ? param.carNos : "璇疯緭鍏ヨ溅鍚庣墝鐓у彿" }}</text
-          >
-          <text class="copy">澶嶅埗杞﹀墠鐗岀収鍙�</text>
-        </view>
-      </view>
-      <!--  -->
-    </view>
-    <view class="space"></view>
-    <!-- 绛夊緟鍙彿 -->
-    <view class="sub_wrap">
-      <view class="btn check">纭浠诲姟</view>
-    </view>
+	<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">{{ param.carCodeFront }}</view>
+			<view class="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>
+			<view class="line">
+				<view class="label">杩愯緭鍗曞彿</view>
+				<view class="value" @click="showDetail = true">
+					<text class="waybill_num">{{ param.contractNum }}</text>
+					<text class="btn">杩愬崟璇︽儏</text>
+				</view>
+			</view>
+			<view class="line">
+				<view class="label">浣滀笟绫诲瀷</view>
+				<view class="value">{{ param.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' }}</view>
+			</view>
+			<view class="empty"></view>
+			<!--  -->
+			<view class="line">
+				<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="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(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" @click="onSubmit">纭浠诲姟</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>
-    <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
-  </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>
+		<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'
-      },
-      showDetail: false,
+	components: {
+		keyboardInput
+	},
+	data() {
+		return {
+			param: {},
+			showDate: false,
+			showDetail: false,
+			minDate: '',
 
-      inputType: ''
-    }
-  },
-  methods: {
-    handleSignIn() {
-      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)
-        }
-      })
-    },
-    openInput(type) {
-      this.inputType = type
-      this.$refs.keyboard.open()
-    },
-    setPlate(e) {
-      if (this.inputType === 1) {
-        this.param.carNos = e
-      } else if (this.inputType === 2) {
-        this.param.carNos = e
-      }
-      this.$forceUpdate()
-      this.closeInput()
-    },
-    closeInput() {
-      this.$refs.keyboard.close()
-    }
-  }
-}
+			inputType: ''
+		};
+	},
+	onLoad(option) {
+		this.getDetail(option.id);
+		this.minDate = new Date().getTime()
+	},
+	methods: {
+		onSubmit(){
+			const { param } = this
+			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('纭鎴愬姛')
+				uni.navigateBack()
+			})
+		},
+		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();
+		},
+		copy() {
+			if (this.param.carCodeFront) {
+				this.$set(this.param, 'carCodeBack', this.param.carCodeFront);
+				this.showToast('澶嶅埗鎴愬姛');
+			}
+		},
+		setPlate(e) {
+			if (this.inputType === 1) {
+				this.$set(this.param, 'carCodeFront', e);
+			} else if (this.inputType === 2) {
+				this.$set(this.param, 'carCodeBack', e);
+			}
+			this.$forceUpdate();
+			this.closeInput();
+		},
+		closeInput() {
+			this.$refs.keyboard.close();
+		}
+	}
+};
 </script>
 
 <style lang="scss">
 page {
-  background-color: #f7f7f7;
+	background-color: #f7f7f7;
 }
 
 .main_app {
-  padding: 0;
+	padding: 0;
 
-  .main_content {
-    background: #ffffff;
-    border-radius: 20rpx 20rpx 0rpx 0rpx;
-    padding: 16rpx 30rpx;
-    position: relative;
-    bottom: 32rpx;
+	.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;
 
-    .line {
-      padding: 24rpx 0 28rpx;
-      border-bottom: 1rpx solid #e5e5e5;
+			.label {
+				font-size: 26rpx;
+				color: #666666;
+				margin-bottom: 20rpx;
+			}
 
-      .label {
-        font-size: 26rpx;
-        color: #666666;
-        margin-bottom: 20rpx;
-      }
+			.value {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				font-size: 30rpx;
 
-      .value {
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        font-size: 30rpx;
+				.waybill_num {
+					flex: 1;
+				}
 
-        .waybill_num {
-          flex: 1;
-        }
+				.copy {
+					font-size: 26rpx;
+					color: $uni-color-primary;
+				}
 
-        .copy {
-          font-size: 26rpx;
-          color: $uni-color-primary;
-        }
+				.btn {
+					font-size: 28rpx;
+					color: $uni-color-primary;
+					display: flex;
+				}
+			}
+		}
+		.empty {
+			width: 750rpx;
+			height: 20rpx;
+			background-color: #f7f7f7;
+			margin: 0 -30rpx;
+		}
+		.warnning {
+			display: flex;
+			color: #ed4545;
+			align-items: center;
+			margin: 40rpx 0;
+		}
 
-        .btn {
-          font-size: 28rpx;
-          color: $uni-color-primary;
-          display: flex;
-        }
-      }
-    }
-    .empty {
-      width: 750rpx;
-      height: 20rpx;
-      background-color: #f7f7f7;
-      margin: 0 -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;
 
-    .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;
+			}
 
-      .handle {
-        font-weight: 600;
-        font-size: 40rpx;
-        line-height: 56rpx;
-      }
+			.time {
+				color: rgba(255, 255, 255, 0.7);
+			}
 
-      .time {
-        color: rgba(255, 255, 255, 0.7);
-      }
+			.img {
+				position: absolute;
+				top: 0;
+				left: 0;
+				width: 100%;
+				z-index: -1;
+			}
+		}
+	}
 
-      .img {
-        position: absolute;
-        top: 0;
-        left: 0;
-        width: 100%;
-        z-index: -1;
-      }
-    }
-  }
+	.status_wrap {
+		height: 200rpx;
+		width: 100%;
+		padding: 30rpx;
+		position: relative;
+		z-index: 99;
+		color: #fff;
+		.bg {
+			width: 100%;
+			height: 100%;
+			position: absolute;
+			top: 0;
+			left: 0;
+			z-index: -1;
+		}
 
-  .status_wrap {
-    height: 200rpx;
-    width: 100%;
-    padding: 30rpx;
-    position: relative;
-    z-index: 99;
-    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;
+		}
 
-    .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;
+		}
+	}
 
-    .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;
+	}
 
-  .space {
-    width: 750rpx;
-    height: 200rpx;
-  }
+	.sub_wrap {
+		position: fixed;
+		padding: 16rpx 30rpx 64rpx;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		display: flex;
+		z-index: 1;
+		justify-content: space-between;
+		background-color: #fff;
+		.btn {
+			height: 96rpx;
+			line-height: 96rpx;
+			text-align: center;
+			width: 690rpx;
+			font-size: 36rpx;
+			color: #333333;
+			background: #ffffff;
+			border-radius: 48rpx;
+			border: 1rpx solid #999999;
+		}
 
-  .sub_wrap {
-    position: fixed;
-    padding: 16rpx 30rpx 64rpx;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    display: flex;
-    z-index: 1;
-    justify-content: space-between;
-    background-color: #fff;
-    .btn {
-      height: 96rpx;
-      line-height: 96rpx;
-      text-align: center;
-      width: 690rpx;
-      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;
-    }
-  }
+		.check {
+			background: $uni-color-primary;
+			border: 1rpx solid $uni-color-primary;
+			color: #fff;
+		}
+	}
 }
 
 .detail_modal {
-  padding: 36rpx 30rpx;
+	padding: 36rpx 30rpx;
 
-  .modal_title {
-    font-weight: 600;
-    font-size: 32rpx;
-    color: #222222;
-    line-height: 44rpx;
-    text-align: center;
-    margin-bottom: 36rpx;
-  }
+	.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;
+	.contract_list {
+		.list {
+			background: #f7f7f7;
+			border-radius: 8rpx;
+			padding: 20rpx;
 
-      .line {
-        display: flex;
-        margin-bottom: 20rpx;
+			.line {
+				display: flex;
+				margin-bottom: 20rpx;
 
-        &:nth-of-type(3n) {
-          border-top: 1rpx solid #e5e5e5;
-          padding-top: 20rpx;
-        }
+				&:nth-of-type(3n) {
+					border-top: 1rpx solid #e5e5e5;
+					padding-top: 20rpx;
+				}
 
-        .label {
-          color: #666666;
-          width: 86rpx;
-        }
+				.label {
+					color: #666666;
+					width: 86rpx;
+				}
 
-        .value {
-          flex: 1;
-          color: #222222;
-        }
-      }
-    }
+				.value {
+					flex: 1;
+					color: #222222;
+				}
+			}
+		}
 
-    .title {
-      font-weight: 600;
-      font-size: 30rpx;
-      color: $uni-color-primary;
-      margin-bottom: 12rpx;
-    }
+		.title {
+			font-weight: 600;
+			font-size: 30rpx;
+			color: $uni-color-primary;
+			margin-bottom: 12rpx;
+		}
 
-    .address {
-      font-size: 26rpx;
-      color: #666666;
-      margin-bottom: 20rpx;
-    }
-  }
+		.address {
+			font-size: 26rpx;
+			color: #666666;
+			margin-bottom: 20rpx;
+		}
+	}
 
-  .info {
-    .line {
-      display: flex;
-      margin-bottom: 20rpx;
+	.info {
+		.line {
+			display: flex;
+			margin-bottom: 20rpx;
 
-      .label {
-        font-size: 30rpx;
-        color: #666666;
-        width: 150rpx;
-      }
+			.label {
+				font-size: 30rpx;
+				color: #666666;
+				width: 150rpx;
+			}
 
-      .value {
-        flex: 1;
-        font-size: 30rpx;
-        color: #222222;
-      }
-    }
-  }
+			.value {
+				flex: 1;
+				font-size: 30rpx;
+				color: #222222;
+			}
+		}
+	}
 
-  .separate {
-    width: 750rpx;
-    height: 2rpx;
-    margin: 30rpx -30rpx;
-    border: 1rpx solid #e5e5e5;
-  }
+	.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;
+	.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;
-    }
+		.last {
+			background: #e9f5f6;
+			width: 60rpx;
+			border-radius: 8rpx 0rpx 0rpx 8rpx;
+			border: 1rpx solid #dfdede;
+		}
 
-    .name {
-      width: 186rpx;
-      border: 1rpx solid #dfdede;
-    }
-  }
+		.name {
+			width: 186rpx;
+			border: 1rpx solid #dfdede;
+		}
+	}
 }
 </style>

--
Gitblit v1.9.3