From 0eab6dcc163bec041d44bc27c9c89ef9c6ec988d Mon Sep 17 00:00:00 2001
From: yangan <yangan0921@163.com>
Date: 星期四, 26 九月 2024 17:17:39 +0800
Subject: [PATCH] feat:确认装卸bug提交

---
 pages/driver-page/drvier-my/certifiCate/certifiCate.vue |  419 +++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 287 insertions(+), 132 deletions(-)

diff --git a/pages/driver-page/drvier-my/certifiCate/certifiCate.vue b/pages/driver-page/drvier-my/certifiCate/certifiCate.vue
index 0003ecc..662c301 100644
--- a/pages/driver-page/drvier-my/certifiCate/certifiCate.vue
+++ b/pages/driver-page/drvier-my/certifiCate/certifiCate.vue
@@ -8,16 +8,16 @@
 			v-if="certificateData.length===0"></u-empty>
 			<view class="tran-type">
 				<view ><u-button type="primary"
-						@click="editTranClick"
+						@click="editTranClick(-1)"
 						shape="circle"
-						plain>娣诲姞杩愯緭璇�</u-button></view>
+						plain>娣诲姞閫氳璇�</u-button></view>
 			</view>
 		<view class="main"
 			v-if="certificateData.length!==0">
 			<view class="information-block"
 				v-for="item in certificateData"
 				:key="item.id">
-				<view class="detail-block">
+				<view class="detail-block" @click="editTranClick(item.status,item)">
 					<view class="line detail-reason">
 						<u--image :showLoading="true"
 							:src="item.certificateImg != null ? BaseUrl + item.certificateImg : ''"
@@ -40,7 +40,7 @@
 						鎶艰繍鍛橈細{{item.supercargoInfo?getUserName(item.supercargoInfo):'鏃�'}}
 					</view>
 					<view class="line detail-value">
-						{{item.startTime}}-{{item.expirationTime}}
+						{{item.startTime?item.startTime.slice(0,10):""}}-{{item.expirationTime?item.expirationTime.slice(0,10):""}}
 					</view>
 				</view>
 			</view>
@@ -55,14 +55,14 @@
 					height="400px"></u--image>
 			</u-popup>
 		</view>
-		<!-- 娣诲姞閬撹矾杩愯緭璇� -->
+		<!-- 娣诲姞鍓ф瘨閫氳璇� -->
 		<view class="editDriverPopup-container">
 			<u-popup :show="editTranShow"
 				mode="bottom"
 				@close="editTranClose"
 				@open="editTranOpen"
 				:closeable="true">
-				<combined-title title="杩愯緭璇�"
+				<combined-title title="閫氳璇�"
 					style="margin-left:20rpx"></combined-title>
 				<view class="editDriverPopup-container-box">
 					<u--form labelPosition="left"
@@ -70,7 +70,7 @@
 						:rule="sportRules"
 						ref="sportRef">
 						<u-form-item labelWidth="20%"
-							label="杩愯緭璇佸彿"
+							label="閫氳璇佸彿"
 							prop="certificateNo"
 							required>
 							<u--input v-model="tranSportForm.certificateNo"
@@ -90,7 +90,8 @@
 						<u-form-item labelWidth="20%"
 							label="浜у搧"
 							ref="item1" 
-							prop='productId'>
+							prop='productName'
+							required>
 							<u--input placeholder="璇疯緭鍏ヤ骇鍝�"
 								v-model="tranSportForm.productName"
 								class="input"
@@ -99,14 +100,15 @@
 						<u-form-item labelWidth="20%"
 							label="瀹㈡埛"
 							ref="item1" 
-							prop='productId'>
+							prop='customerName'
+							required>
 							<u--input placeholder="璇疯緭鍏ュ鎴�"
 								v-model="tranSportForm.customerName"
 								class="input"
 								type="text"></u--input>
 						</u-form-item>
 						<u-form-item prop="certificateImg"
-							label="杩愯緭璇�"
+							label="閫氳璇�"
 							labelWidth="20%"
 							borderBottom
 							required
@@ -124,16 +126,16 @@
 							</u-upload>
 						</u-form-item>
 						<u-form-item prop="startTime"
-							label="杩愯緭璇佸紑濮嬫椂闂�"
+							label="閫氳璇佸紑濮嬫椂闂�"
 							labelWidth="20%"
 							borderBottom>
-							<uni-datetime-picker v-model="tranSportForm.startTime" type="date"  />
+							<uni-datetime-picker v-model="tranSportForm.startTime" type="datetime"  />
 						</u-form-item>
 						<u-form-item prop="expirationTime"
-							label="杩愯緭璇佽繃鏈熸椂闂�"
+							label="閫氳璇佽繃鏈熸椂闂�"
 							labelWidth="20%"
 							borderBottom>
-							<uni-datetime-picker v-model="tranSportForm.expirationTime" type="date" :start="minDate" />
+							<uni-datetime-picker v-model="tranSportForm.expirationTime" type="datetime" :start="minDate" />
 						</u-form-item>
 						<view class="adddelete"> 
 							<u-button text="娣诲姞椹鹃┒鍛�"
@@ -194,6 +196,24 @@
 									border="none"
 									inputAlign="left"></u--input>
 							</u-form-item>
+							<u-form-item prop="certificateImg"
+								label="璧勮川璇佹槑"
+								labelWidth="20%"
+								borderBottom
+								required
+								@click="beforeRead">
+								<u-upload :fileList="item.fileList"
+									deletable
+									@afterRead="afterReads"
+									@delete="deletePics"
+									multiple
+									:name="index.toString()"
+									:maxCount="1"
+									width="250"
+									height="150"
+									:previewFullImage="true">
+								</u-upload>
+							</u-form-item>
 						</view>
 						
 						<u-form-item labelWidth="20%"
@@ -205,43 +225,10 @@
 						</u-form-item>
 					</u--form>
 					<view class="person-utils">
-						<u-button text="鎻愪氦閬撹矾杩愯緭璇�"
+						<u-button text="鎻愪氦鍓ф瘨閫氳璇�"
 							@click="updateRoad"
 							:disabled="upload"
 							type="primary"></u-button>
-					</view>
-				</view>
-			</u-popup>
-			
-			<u-popup :closeable='true'
-				:round="30"
-				mode='bottom'
-				:show="selfDeliverShow"
-				@close="selfDeliverClose"
-				@open="selfDeliverOpen">
-				<view class="name-list-section">
-					<view class="name-list_title">
-						閫夋嫨瀹㈡埛
-					</view>
-					<view class="name-list_container">
-						<u-empty mode="data"
-							icon="http://cdn.uviewui.com/uview/empty/data.png"
-							text="鏆傛棤鏁版嵁"
-							textSize="30"
-							iconSize="1000"
-							v-if="customerNameList.length===0"></u-empty>
-						<view class="name-list_container_item"
-							v-for="(item,index) in customerNameList" :key="index"
-							@click="selectCustomer(item)">
-							<view class="item-image">
-								<image src="https://mx.jzeg.cn:9096/appimg/image/banner/address.png"
-									mode="widthFix"
-									style="width: 18px;"></image>
-							</view>
-							<view class="item-customerName">
-								{{item.customerName}}
-							</view>
-						</view>
 					</view>
 				</view>
 			</u-popup>
@@ -257,7 +244,13 @@
 			return {
 				minDate: this.getToday(),
 				previewImageShow: false,
-				supercargoList:[],
+				supercargoList:[{
+					driverName:"",
+					driverIdcard:"",
+					driverPhone:"",
+					fileList:[]
+				}],
+				userInfo: {},
 				scoreDetailList: [],
 				editTranShow:false,
 				upload:false,
@@ -265,8 +258,6 @@
 				BaseUrl,
 				previewImageSrc: '',
 				certificateData:[],
-				userInfo: {},
-				customerNameList:[],
 				driverList:[{
 					driverName:"",
 					driverIdcard:""
@@ -277,24 +268,42 @@
 					customerId:""
 				},
 				sportRules:{
+					productName:{
+						type: 'string',
+						required: true,
+						message: '璇峰~鍐欎骇鍝佸悕绉�',
+						trigger: ['blur', 'change']
+					},
+					customerName:{
+						type: 'string',
+						required: true,
+						message: '璇峰~鍐欏鎴峰悕绉�',
+						trigger: ['blur', 'change']
+					},
 					certificateNo: {
 						type: 'string',
 						required: true,
-						message: '璇峰~鍐欒繍杈撹瘉鍙�',
+						message: '璇峰~鍐欓�氳璇佸彿',
 						trigger: ['blur', 'change']
 					},
-					expirationTime: {
+					expirationTime: [{
 						type: 'string',
 						required: true,
-						message: '璇烽�夋嫨杩愯緭璇佽繃鏈熸椂闂�',
+						message: '璇烽�夋嫨閫氳璇佽繃鏈熸椂闂�',
 						trigger: ['blur', 'change']
-					},
-					startTime:{
+					},{
+						pattern: /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/,
+						message: '璇烽�夋嫨寮�濮嬫椂闂�'
+					}],
+					startTime:[{
 						type: 'string',
 						required: true,
-						message: '璇烽�夋嫨杩愯緭璇佽繃鏈熸椂闂�',
+						message: '璇烽�夋嫨閫氳璇佸紑濮嬫椂闂�',
 						trigger: ['blur', 'change']
-					},
+					},{
+						pattern: /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/,
+						message: '璇烽�夋嫨寮�濮嬫椂闂�'
+					}],
 					carNo: [{
 							type: 'string',
 							required: true,
@@ -345,6 +354,10 @@
 				this.previewImageShow = false;
 			},
 			previewImageOpen() {},
+			deletePics(event) {
+				this.changeisUploadimg(true);
+				this.supercargoList[event.name].fileList.splice(event.index, 1);
+			},
 			// 鍒犻櫎
 			deletePic(event) {
 				this.changeisUploadimg(true);
@@ -355,7 +368,10 @@
 			  let year = now.getFullYear();
 			  let month = this.padStart(now.getMonth() + 1); // 鏈堜唤鏄粠0寮�濮嬬殑
 			  let day = this.padStart(now.getDate());
-			  return `${year}-${month}-${day}`;
+			  let hour = this.padStart(now.getHours());
+			  let minute = this.padStart(now.getMinutes());
+			  let second = this.padStart(now.getSeconds());
+			  return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
 			},
 			padStart(value) {
 			  return value.toString().padStart(2, '0');
@@ -374,9 +390,40 @@
 					}
 				});
 			},
-			editTranClick(){
-				this.getShipToList()
-				this.editTranShow = true;
+			editTranClick(e,data){
+				if(e==-1){
+					this.editTranShow = true;
+					this.tranSportForm={
+						carNo:"",
+						productId:"",
+						customerId:""
+					}
+					 this.driverList=[]
+					 this.supercargoList=[]
+					 this.fileList9=[]
+					 this.tranSportForm.carNo=this.userInfo.carNo
+					 this.driverList[0]={
+					 	driverName:this.userInfo.name,
+					 	driverIdcard:this.userInfo.idCard
+					 }
+					if(data){
+						this.tranSportForm=Object.assign({},this.tranSportForm,data)
+						if((!this.tranSportForm.supercargoInfo==''||null)||(!this.tranSportForm.highlyToxicImg==''||null) ){
+							this.supercargoList =this.tranSportForm.supercargoInfo.split(",").map((item,index)=>{
+								return {driverName:item.split("|")[0],driverIdcard:item.split("|")[1],driverPhone:item.split("|")[2],fileList:[{url:`${BaseUrl}${this.tranSportForm.highlyToxicImg.split(',')[index]}`}]}
+							})
+						}
+						this.driverList=this.tranSportForm.driverName.split(",").map((item,index)=>{
+							return {driverName:item,driverIdcard:this.tranSportForm.driverIdcard.split(",")[index]}
+						})
+						if (this.fileList9.length == 0 && this.tranSportForm.certificateImg) {
+							this.fileList9.push({
+								url: `${BaseUrl}${this.tranSportForm.certificateImg}`
+							});
+						}
+					}
+				}
+				
 			},
 			editTranClose(){
 				this.editTranShow = false;
@@ -386,21 +433,16 @@
 				this.$refs.sportRef
 					.validate()
 					.then(res => {
-						if (this.tranSportForm.productName == '' ) {
-							uni.showToast({
-								title: '璇烽�夋嫨浜у搧锛�',
-								icon: 'error',
-								duration: 2000
-							});
-						}else if(this.tranSportForm.customerName == ''){
-							uni.showToast({
-								title: '璇烽�夋嫨瀹㈡埛锛�',
-								icon: 'error',
-								duration: 2000
-							});
-						}
+						let submit=true
 						let idcardtext=/^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
-						if(this.driverList.length>0){
+						if (this.fileList9.length==0) {
+							uni.showToast({
+								title: '璇烽�夋嫨閫氳璇侊紒',
+								icon: 'error',
+								duration: 2000
+							});
+							submit=false
+						}else if(this.driverList.length>0){
 							this.driverList.forEach((item,index)=>{
 								if(!item.driverName){
 									uni.showToast({
@@ -408,19 +450,21 @@
 										icon: 'error',
 										duration: 2000
 									});
-								}
-								if(!item.driverIdcard){
+									submit=false
+								}else if(!item.driverIdcard){
 									uni.showToast({
 										title: `璇峰~鍐欓┚椹惰韩浠借瘉锛乣,
 										icon: 'error',
 										duration: 2000
 									});
+									submit=false
 								}else if(!idcardtext.test(item.driverIdcard)){
 									uni.showToast({
 										title: `璇锋楠岄┚椹跺憳韬唤璇侊紒`,
 										icon: 'error',
 										duration: 2000
 									});
+									submit=false
 								}
 							})
 						}
@@ -432,73 +476,190 @@
 										icon: 'error',
 										duration: 2000
 									});
-								}
-								if(!item.driverIdcard){
+									submit=false
+								}else if(!item.driverIdcard){
 									uni.showToast({
 										title: `璇峰~鍐欐娂杩愯韩浠借瘉锛乣,
 										icon: 'error',
 										duration: 2000
 									});
+									submit=false
 								}else if(!idcardtext.test(item.driverIdcard)){
 									uni.showToast({
 										title: `璇锋楠屾娂杩愯韩浠借瘉锛乣,
 										icon: 'error',
 										duration: 2000
 									});
-								}
-								if(!item.driverPhone){
+									submit=false
+								}else if(!item.driverPhone){
 									uni.showToast({
 										title: `璇峰~鍐欐娂杩愭墜鏈哄彿锛乣,
 										icon: 'error',
 										duration: 2000
 									});
+									submit=false
 								}else if( !/^1[23456789]\d{9}$/.test(item.driverPhone)){
 									uni.showToast({
 										title: `璇锋楠屾娂杩愭墜鏈哄彿锛乣,
 										icon: 'error',
 										duration: 2000
 									});
+									submit=false
+								}else if(item.fileList.length==0){
+									uni.showToast({
+										title: `璇蜂笂浼犺祫璐ㄨ瘉鏄庯紒`,
+										icon: 'error',
+										duration: 2000
+									});
+									submit=false
 								}
 							})
 						}
-						let driverName=""
-						let driverIdcard=""
-						let supercargoInfo=''
-						driverName = this.driverList.map((item, index) => {
-						        return item.driverName;
-						      }).join(",");
-						driverIdcard = this.driverList.map((item, index) => {
-								 return item.driverIdcard;
-							   }).join(",");
-						supercargoInfo = this.supercargoList.map((item, index) => {
-							 return item.driverName+ '|'+item.driverIdcard+"|"+item.driverPhone
-						   }).join(",");
-						   if(this.tranSportForm.startTime){
-						   	this.tranSportForm.startTime=this.tranSportForm.startTime+" 00:01"
+						   if(submit){
+							   let driverName=""
+							   let driverIdcard=""
+							   let supercargoInfo=''
+							   let highlyToxicImg=''
+							   driverName = this.driverList.map((item, index) => {
+							           return item.driverName;
+							         }).join(",");
+							   driverIdcard = this.driverList.map((item, index) => {
+							   		 return item.driverIdcard;
+							   	   }).join(",");
+							   supercargoInfo = this.supercargoList.map((item, index) => {
+							   	 return item.driverName+ '|'+item.driverIdcard+"|"+item.driverPhone
+							      }).join(",");
+								highlyToxicImg= this.supercargoList.map((item, index) => {
+									return item.fileList[0].url.replace(BaseUrl,'')
+							      }).join(",")
+								  if(this.tranSportForm.id){
+									this.$reqPut('putJcroadtransport',{
+										id:this.tranSportForm.id,
+										certificateNo:this.tranSportForm.certificateNo,
+										carNo:this.tranSportForm.carNo,
+										certificateImg:this.tranSportForm.certificateImg,
+										customerName:this.tranSportForm.customerName,
+										productName:this.tranSportForm.productName,
+										startTime:this.tranSportForm.startTime,
+										expirationTime:this.tranSportForm.expirationTime,
+										status:0,
+										customerId:this.tranSportForm.customerId,
+										productId:this.tranSportForm.productId,
+										userId:this.userInfo.userId,
+										driverName:driverName,
+										driverIdcard:driverIdcard,
+										supercargoInfo:supercargoInfo,
+										highlyToxicImg:highlyToxicImg
+									}, 'json').then(res => {
+										if (res.code == 0) {
+											this.editTranShow = false;
+											this.$u.toast('鎻愪氦鎴愬姛');
+											this.tranSportForm={
+												carNo:"",
+												productId:"",
+												customerId:""
+											}
+											this.driverList=[{
+												driverName:"",
+												driverIdcard:""
+											}]
+											this.supercargoList=[{
+												driverName:"",
+												driverIdcard:"",
+												driverPhone:"",
+												fileList:[]
+											}]
+											this.fileList9=[]
+											this.getData();
+										} else {
+											uni.showToast({
+												title: res.msg,
+												icon: 'none',
+												duration: 2000
+											});
+										}
+									})
+								  }else{
+									this.$reqPost('addJcroadtransport', {
+										userId:this.userInfo.userId,
+										...this.tranSportForm,
+										driverName:driverName,
+										driverIdcard:driverIdcard,
+										supercargoInfo:supercargoInfo,
+										highlyToxicImg:highlyToxicImg
+									}, 'json').then(res => {
+										if (res.code == 0) {
+											this.editTranShow = false;
+											this.$u.toast('鎻愪氦鎴愬姛');
+											this.tranSportForm={
+												carNo:"",
+												productId:"",
+												customerId:""
+											}
+											this.driverList=[{
+												driverName:"",
+												driverIdcard:""
+											}]
+											this.supercargoList=[{
+												driverName:"",
+												driverIdcard:"",
+												driverPhone:"",
+												fileList:[]
+											}]
+											this.fileList9=[]
+											this.getData();
+										} else {
+											uni.showToast({
+												title: res.msg,
+												icon: 'none',
+												duration: 2000
+											});
+										}
+									})
+								  }
 						   }
-						   if(this.tranSportForm.expirationTime){
-						   	this.tranSportForm.expirationTime=this.tranSportForm.expirationTime+" 23:55"
-						   }
-						this.$reqPost('addJcroadtransport', {
-							userId:this.userInfo.userId,
-							...this.tranSportForm,
-							driverName:driverName,
-							driverIdcard:driverIdcard,
-							supercargoInfo:supercargoInfo
-						}, 'json').then(res => {
-							if (res.code == 0) {
-								this.editTranShow = false;
-								this.$u.toast('鎻愪氦鎴愬姛');
-								this.getData();
-							} else {
-								uni.showToast({
-									title: res.msg,
-									icon: 'none',
-									duration: 2000
-								});
-							}
-						})
 					})
+			},
+			async afterReads(event) {
+				// 褰撹缃� mutiple 涓� true 鏃�, file 涓烘暟缁勬牸寮忥紝鍚﹀垯涓哄璞℃牸寮�
+				let lists = [].concat(event.file);
+				let fileListLen = this.supercargoList[event.name].fileList.length;
+				lists.map(item => {
+					this.supercargoList[event.name].fileList.push({
+						...item,
+						status: 'uploading',
+						message: '涓婁紶涓�'
+					});
+				});
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromises(lists[i].url, event.name);
+					let item = this.supercargoList[event.name].fileList[fileListLen];
+					this.supercargoList[event.name].fileList.splice(
+						fileListLen,
+						1,
+						Object.assign(item, {
+							status: 'success',
+							message: '涓婁紶鎴愬姛',
+							url: result
+						})
+					);
+					fileListLen++;
+				}
+			},
+			uploadFilePromises(url, num) {
+				return new Promise((resolve, reject) => {
+					let a = uni.uploadFile({
+						url: BaseUrl + '/admin/sys-file/uploadUnToken',
+						filePath: url,
+						name: 'file',
+						// formData: {
+						// 	user: 'test'
+						// },
+						success: res => {
+								resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
+						}
+					});
+				});
 			},
 			async afterRead(event) {
 				// 褰撹缃� mutiple 涓� true 鏃�, file 涓烘暟缁勬牸寮忥紝鍚﹀垯涓哄璞℃牸寮�
@@ -545,17 +706,6 @@
 					});
 				});
 			},
-			// 鑾峰彇瀹㈡埛
-			getShipToList() {
-				this.$reqGet('getShipToList')
-					.then(res => {
-						if (res.code == 0) {
-							this.customerNameList = res.data
-						}else {
-						this.$u.toast('鍔犺浇澶辫触')
-					}
-				})
-			},
 			getScoreDetail() {
 				uni.showLoading({
 					title: '鍔犺浇涓��'
@@ -569,7 +719,8 @@
 				this.supercargoList.push({
 					driverName:"",
 					driverIdcard:"",
-					driverPhone:""
+					driverPhone:"",
+					fileList:[]
 				})
 			},
 			addDriver(){
@@ -579,10 +730,14 @@
 				})
 			},
 			deleteSupercar(){
-				this.supercargoList.splice(this.supercargoList.length - 1, 1)
+				if(this.supercargoList.length>1){
+					this.supercargoList.splice(this.supercargoList.length - 1, 1)
+				}
 			},
 			deleteDriver(){
-				this.driverList.splice(this.driverList.length - 1, 1);
+				if(this.driverList.length>1){
+					this.driverList.splice(this.driverList.length - 1, 1);
+				}
 			},
 			getUserName(e){
 				let data= e.split(',').map(item=>{

--
Gitblit v1.9.1