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 | 407 +++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 277 insertions(+), 130 deletions(-) diff --git a/pages/driver-page/drvier-my/certifiCate/certifiCate.vue b/pages/driver-page/drvier-my/certifiCate/certifiCate.vue index b057da5..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> @@ -260,8 +247,10 @@ supercargoList:[{ driverName:"", driverIdcard:"", - driverPhone:"" + driverPhone:"", + fileList:[] }], + userInfo: {}, scoreDetailList: [], editTranShow:false, upload:false, @@ -269,8 +258,6 @@ BaseUrl, previewImageSrc: '', certificateData:[], - userInfo: {}, - customerNameList:[], driverList:[{ driverName:"", driverIdcard:"" @@ -281,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, @@ -349,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); @@ -359,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'); @@ -378,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; @@ -390,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({ @@ -412,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 } }) } @@ -436,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 涓烘暟缁勬牸寮忥紝鍚﹀垯涓哄璞℃牸寮� @@ -549,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: '鍔犺浇涓��' @@ -573,7 +719,8 @@ this.supercargoList.push({ driverName:"", driverIdcard:"", - driverPhone:"" + driverPhone:"", + fileList:[] }) }, addDriver(){ -- Gitblit v1.9.1