From f3bd5baa8eb4eb7a896f7312a2e9a7c89a46cef5 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 27 八月 2024 09:18:29 +0800
Subject: [PATCH] ll

---
 h5/pages/driver/reserved.vue |  184 +++++++++++++++++++++++++++++++--------------
 1 files changed, 126 insertions(+), 58 deletions(-)

diff --git a/h5/pages/driver/reserved.vue b/h5/pages/driver/reserved.vue
index c201b32..813062c 100644
--- a/h5/pages/driver/reserved.vue
+++ b/h5/pages/driver/reserved.vue
@@ -5,9 +5,19 @@
 			<view class="line">
 				<view class="label">
 					<text>*</text>
+					<text>鍏ュ洯鍘熷洜</text>
+				</view>
+				<view class="value" @click="showReason = true">
+					<text class="mr6" :style="{ color: param.inReason ? '#000000' : '#999999' }">{{ param.inReason ? param.inReason : '璇烽�夋嫨' }}</text>
+					<u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
+				</view>
+			</view>
+			<view class="line">
+				<view class="label">
+					<text>*</text>
 					<text>鍚堝悓鍙�</text>
 				</view>
-				<view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勫悎鍚屽彿" v-model="param.receptMemberName" placeholder-style="color: #999999;" /></view>
+				<view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勫悎鍚屽彿" v-model="param.contractNum" placeholder-style="color: #999999;" /></view>
 			</view>
 			<!--  -->
 			<view class="line">
@@ -16,7 +26,7 @@
 					<text>鍒板満鏃堕棿</text>
 				</view>
 				<view class="value" @click="showDatetime = true">
-					<text class="mr6" :style="{ color: param.area ? '#000000' : '#999999' }">{{ param.area ? param.area : '璇烽�夋嫨' }}</text>
+					<text class="mr6" :style="{ color: param.arriveDate ? '#000000' : '#999999' }">{{ param.arriveDate ? param.arriveDate : '璇烽�夋嫨' }}</text>
 					<u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
 				</view>
 			</view>
@@ -27,8 +37,8 @@
 				</view>
 				<view class="value">
 					<view class="btns">
-						<view class="btn active">鏁存墭鐩�</view>
-						<view class="btn">浠剁儫</view>
+						<view @click="inTypeClick(0)" :class="{ active: param.inType == 0 }" class="btn">鏁存墭鐩�</view>
+						<view @click="inTypeClick(1)" :class="{ active: param.inType == 1 }" class="btn">浠剁儫</view>
 					</view>
 				</view>
 			</view>
@@ -38,7 +48,7 @@
 					<text>鎬昏繍杈撻噺</text>
 				</view>
 				<view class="value">
-					<input type="text" placeholder="璇疯緭鍏ユ�昏繍杈撻噺" v-model="param.receptMemberName" placeholder-style="color: #999999;" />
+					<input type="number" placeholder="璇疯緭鍏ユ�昏繍杈撻噺" v-model="param.totalNum" placeholder-style="color: #999999;" />
 					<text class="unit">涓囨敮</text>
 				</view>
 			</view>
@@ -47,8 +57,9 @@
 					<text>*</text>
 					<text>鍑嗚繍璇佺収鐗�</text>
 				</view>
-				<view class="value">
-					<view class="upload_wrap"><u-icon name="plus" size="20" color="#999999"></u-icon></view>
+				<view class="value" @click="handleUpload">
+					<image v-if="param.transportImgFull" class="upload_wrap" :src="param.transportImgFull" alt="">
+					<view v-else class="upload_wrap"><u-icon name="plus" size="20" color="#999999"></u-icon></view>
 				</view>
 			</view>
 			<view class="empty"></view>
@@ -58,14 +69,14 @@
 					<text>*</text>
 					<text>鍙告満濮撳悕</text>
 				</view>
-				<view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" v-model="param.receptMemberName" placeholder-style="color: #999999;" /></view>
+				<view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勭湡瀹炲鍚�" v-model="param.driverName" placeholder-style="color: #999999;" /></view>
 			</view>
 			<view class="line">
 				<view class="label">
 					<text>*</text>
 					<text>鎵嬫満鍙�</text>
 				</view>
-				<view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" v-model="param.receptMemberName" placeholder-style="color: #999999;" /></view>
+				<view class="value"><input type="number" placeholder="璇疯緭鍏ユ偍鐨勬墜鏈哄彿" v-model="param.driverPhone" placeholder-style="color: #999999;" /></view>
 			</view>
 			<!--  -->
 			<view class="line">
@@ -74,7 +85,7 @@
 					<text>杞﹀墠鐗岀収鍙�</text>
 				</view>
 				<view class="value" @click="openInput(1)">
-					<text :style="{ color: param.carNos ? '#000000' : '' }">{{ param.carNos ? param.carNos : '璇疯緭鍏ヨ溅鐗屽彿鐮�' }}</text>
+					<text :style="{ color: param.carCodeFront ? '#000000' : '#999999' }">{{ param.carCodeFront ? param.carCodeFront : '璇疯緭鍏ヨ溅鐗屽彿鐮�' }}</text>
 				</view>
 			</view>
 			<view class="line">
@@ -82,18 +93,19 @@
 					<text>*</text>
 					<text>杞﹀悗鐗岀収鍙�</text>
 				</view>
-				<view class="value" @click="openInput(1)">
-					<text :style="{ color: param.carNos ? '#000000' : '' }">{{ param.carNos ? param.carNos : '璇疯緭鍏ヨ溅鐗屽彿鐮�' }}</text>
+				<view class="value" @click="openInput(2)">
+					<text :style="{ color: param.carCodeBack	 ? '#000000' : '#999999' }">{{ param.carCodeBack	 ? param.carCodeBack	 : '璇疯緭鍏ヨ溅鐗屽彿鐮�' }}</text>
 				</view>
 			</view>
 			<view class="copy" @click="copy">澶嶅埗杞﹀墠鐗岀収鍙�</view>
 			<view class="perch"></view>
-			<view class="handle_sub">
+			<view class="handle_sub" @click="onSubmit">
 				鎻愪氦
 			</view>
-
-			<!--  -->
 		</view>
+		
+		<!--  -->
+		<u-picker :show="showReason" keyName="reason" :columns="reasonList" @confirm="reasonConfirm"></u-picker>
 		<u-datetime-picker
 			:show="showDatetime"
 			closeOnClickOverlay
@@ -109,74 +121,130 @@
 
 <script>
 import keyboardInput from '@/components/keyboard-input/keyboard-input.vue';
-import { uploadUrl } from '@/api';
+import { uploadUrl, driverCarApply, driverReasonList } from '@/api';
+import dayjs from 'dayjs'
 export default {
 	components: {
 		keyboardInput
 	},
 	data() {
 		return {
-			param: {},
+			param: {
+				inType: 0,
+				driverName: uni.getStorageSync('driverInfo').realname,
+				driverPhone: uni.getStorageSync('driverInfo').username,
+			},
+			reasonIndex: -1,
+			reasonList: [],
 			showDatetime: false,
+			showReason: false,
 
 			inputType: ''
 		};
 	},
+	created() {
+		this.initData()
+	},
 	methods: {
-		copy(){
-			this.param.carNos = this.param.carNos
-			uni.showToast({
-				title: '澶嶅埗鎴愬姛',
-				duration: 1000
-			});
-		},
-		handleUpload() {
-			uni.chooseImage({
-				success: chooseImageRes => {
-					uni.showLoading({ title: '涓婁紶涓�', mask: true });
-					for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
-						uni.uploadFile({
-							url: `${uploadUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
-							filePath: chooseImageRes.tempFilePaths[i],
-							name: 'file',
-							formData: {
-								folderCode: 'MEMBER_IMG'
-							},
-							success: uploadFileRes => {
-								console.log('uploadFileRes', uploadFileRes);
-								let res = JSON.parse(uploadFileRes.data);
-								if (type === 'faceImg') {
-									this.param.faceImg = res.data.halfPath;
-									this.param.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath;
-								} else {
-									this.param.imgurl = res.data.halfPath;
-									this.param.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath;
-								}
-							},
-							complete() {
-								if (i === chooseImageRes.tempFilePaths.length - 1) {
-									uni.hideLoading();
-								}
-							}
-						});
-					}
+		onSubmit() {
+			const param = { ...this.param }
+			if (!param.arriveDate) return this.showToast('璇烽�夋嫨鍒板満鏃堕棿')
+			if (!param.inType && param.inType != 0) return this.showToast('璇烽�夋嫨鍏ュ簱绫诲瀷')
+			if (!param.contractNum) return this.showToast('璇疯緭鍏ュ悎鍚屽彿')
+			if (!param.totalNum) return this.showToast('璇疯緭鍏ユ�昏繍杈撻噺')
+			if (!param.driverName) return this.showToast('璇疯緭鍏ュ徃鏈哄鍚�')
+			if (!param.driverPhone) return this.showToast('璇疯緭鍏ユ墜鏈哄彿')
+			if (!param.carCodeFront) return this.showToast('璇疯緭鍏ヨ溅鍓嶇墝鍙�')
+			if (!param.carCodeBack) return this.showToast('璇疯緭鍏ヨ溅鍚庣墝鍙�')
+			if (!param.transportImgFull) return this.showToast('璇蜂笂浼犲噯杩愯瘉鐓х墖')
+			param.arriveDate = param.arriveDate + ':00'
+			driverCarApply({...param}).then(res => {
+				if(res && res.code === 200){
+					uni.navigateBack()
 				}
-			});
+			})
 		},
-		setinDate(e) {},
+		initData(){
+			driverReasonList().then(res => {
+				this.reasonList = [res.data]
+			})
+		},
+		reasonConfirm(e) {
+			const reasonList = this.reasonList[0]
+			const index = e.indexs[0]
+			this.$set(this.param, 'inReason', reasonList[index].reason)
+			this.$set(this.param, 'reasonId', reasonList[index].id)
+			this.showReason = false
+		},
+		setinDate(e) {
+			this.$set(this.param, 'arriveDate', dayjs(e.value).format('YYYY-MM-DD HH:mm'))
+			this.showDatetime = false
+		},
+		inTypeClick(e) {
+			this.param.inType = e
+		},
 		openInput(type) {
 			this.inputType = type;
 			this.$refs.keyboard.open();
 		},
 		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();
 		},
+		copy(){
+			if(this.param.carCodeFront){
+				this.$set(this.param, 'carCodeBack', this.param.carCodeFront)
+				this.showToast('澶嶅埗鎴愬姛');
+			}
+			
+		},
+		handleUpload() {
+			let token = uni.getStorageSync('token') || ''
+			uni.chooseImage({
+			  count: 1,
+			  success: (chooseImageRes) => {
+			    uni.showLoading({ title: '涓婁紶涓�', mask: true })
+			    const tempFilePaths = chooseImageRes.tempFilePaths
+			    let imgs = tempFilePaths.map((value, index) => {
+			      return {
+			        name: 'file',
+			        uri: value
+			      }
+			    })
+			    uni.uploadFile({
+			      url: `${uploadUrl}`,
+			      files: imgs,
+			      name: 'file',
+			      formData: {
+			        folder: 'PLATFORM'
+			      },
+			      header: {
+			        Dm_user_token: token
+			      },
+			      success: (uploadFileRes) => {
+			        let res = JSON.parse(uploadFileRes.data)
+			        console.log('res', res.data)
+			        if (res.data && res.data.length > 0) {
+								this.$set(this.param, 'transportImg', res.data[0].imgaddr)
+								this.$set(this.param, 'transportImgFull', res.data[0].url)
+			        }
+			      },
+			      fail(err) {
+			        console.log('err', err)
+			      },
+			      complete() {
+			        uni.hideLoading()
+			      }
+			    })
+			    // }
+			  }
+			})
+		},
 		closeInput() {
 			this.$refs.keyboard.close();
 		}

--
Gitblit v1.9.3