zhongtianhaoyuan пре 3 година
родитељ
комит
70c46e13dd

+ 2 - 1
config/index.js

@@ -1,6 +1,7 @@
 const dev = {
 	// baseUrlNew: 'https://apitest.eliangeyun.com',
-	baseUrlNew: 'http://192.168.110.9:8099',
+	// baseUrlNew: 'http://192.168.110.9:8099',
+	baseUrlNew: 'http://192.168.110.82:8999',
 	// baseUrlNew: 'http://192.168.1.119:8999',
 	h5Appid: 'wxb66b599f7f61b46f',
 	debug: false

BIN
nativeplugins/DCloud-RichAlert/android/uniplugin_richalert.aar


BIN
nativeplugins/DCloud-RichAlert/ios/libUniPluginRichAlert.a


+ 31 - 0
nativeplugins/DCloud-RichAlert/package.json

@@ -0,0 +1,31 @@
+{
+	"name": "RichAlert",
+	"id": "DCloud-RichAlert",
+	"version": "0.1.3",
+	"description": "示例插件",
+	"_dp_type":"nativeplugin",
+	"_dp_nativeplugin":{
+		"ios": {
+			"plugins": [
+				{
+					"type": "module",
+					"name": "DCloud-RichAlert",
+					"class": "DCRichAlertModule"
+				}
+			],
+			"integrateType": "library",
+			"deploymentTarget": "8.0"
+		},
+		"android": {
+			"plugins": [
+				{
+					"type": "module",
+					"name": "DCloud-RichAlert",
+					"class": "uni.dcloud.io.uniplugin_richalert.RichAlertWXModule"
+				}
+			],
+			"integrateType": "aar",
+			"minSdkVersion" : 16
+		}
+	}
+}

BIN
nativeplugins/DCloud-RichAlert_0.1.3.zip


+ 8 - 1
pages.json

@@ -473,7 +473,14 @@
 				"enablePullDownRefresh": false
 			}
 
-		}, {
+		},
+		{
+			"path": "pages/order/bankCard",
+			"style": {
+				"navigationBarTitleText": "选择银行卡",
+				"enablePullDownRefresh": false
+			}
+		},{
 			"path": "pages/goodSource/jb",
 			"style": {
 				"navigationBarTitleText": "举报",

+ 57 - 14
pages/mine/driverCertification.vue

@@ -27,7 +27,8 @@
 				</view>
 				<view class="flex row noborder">
 					<view class="left-text">联系电话</view>
-					<u--input placeholder="请输入联系电话" inputAlign='left' border="none" v-model="dataDetails.driverPhone" maxlength="11">
+					<u--input placeholder="请输入联系电话" inputAlign='left' border="none" v-model="dataDetails.driverPhone"
+						maxlength="11">
 					</u--input>
 				</view>
 				<view class="flex row noborder" v-if="dataDetails.driverPhone!=userInfo.phone">
@@ -121,11 +122,11 @@
 								></image>
 						</view> -->
 
-						<!-- <image class="preview-img" :src="item.addressUrl" v-if='item.addressUrl'></image> -->
-					<!--</view>
+				<!-- <image class="preview-img" :src="item.addressUrl" v-if='item.addressUrl'></image> -->
+				<!--</view>
 				</view> -->
 			</view>
-		<!-- 	<view  v-if="isFirstAuthentication" @click="addCarNumber(dataDetails.hyDriverCarInfoList)" class="add-car">
+			<!-- 	<view  v-if="isFirstAuthentication" @click="addCarNumber(dataDetails.hyDriverCarInfoList)" class="add-car">
 				<u-icon class="icon" name="plus-circle-fill" color="#2979ff" size="28"></u-icon>
 				<view class="car-text">
 					添加车辆
@@ -182,6 +183,7 @@
 					@confirm="confirmValidityPeriod" @change="changeHandler">
 				</u-picker>
 			</view>
+			<view class="" style="color: red;font-size: 26rpx;margin-top: 20rpx;">*收款人须为司机本人</view>
 			<view class="content3 flex s-row" v-for="(item,index) in dataDetails.hyDriverPayeeInfoList" :key='index'>
 				<view class="flex">
 					银行卡-{{index+1}}
@@ -383,7 +385,8 @@
 				action: this.$helper.ossUploadUrl,
 				// maxSize: 50 * 1024 * 1024, //限制文件大小 50M
 				// isAdd: true,
-				imagesrc: null
+				imagesrc: null,
+				payCheck: true
 			};
 		},
 		onLoad() {
@@ -692,7 +695,7 @@
 						sourceType: this.$helper.chooseImage.sourceType,
 						success: function(res) {
 							console.log(JSON.stringify(res.tempFilePaths));
-							uploadImage('image',res.tempFilePaths[0], 'appData/',
+							uploadImage('image', res.tempFilePaths[0], 'appData/',
 								result => {
 									// 上传成功回调函数
 									console.log('图片地址', result)
@@ -706,6 +709,18 @@
 														personImg: result,
 													}).then(res => {
 													_this.dataDetails.numberCard = res.data.recPersonNo
+													if (res.data.recPerson) {
+														_this.dataDetails.driverName = res.data
+															.recPerson
+
+														for (let i = 0; i < _this.dataDetails
+															.hyDriverPayeeInfoList.length; i++
+															) { //收款人需与司机本人一致
+															_this.dataDetails.hyDriverPayeeInfoList[i]
+																.payeeName = res.data.recPerson
+														}
+													}
+
 												})
 												.catch(res => {
 													uni.$u.toast(res.message);
@@ -723,7 +738,8 @@
 														bankImg: result,
 													}).then(res => {
 													console.log(res)
-													_this.dataDetails.hyDriverPayeeInfoList[_this.index]
+													_this.dataDetails.hyDriverPayeeInfoList[_this
+															.index]
 														.payeeAddressUrl = result
 													if (res.data.bankNo) {
 														_this.dataDetails.hyDriverPayeeInfoList[_this
@@ -835,7 +851,7 @@
 					bankCard: '',
 					bankDeposit: '',
 					bankDepositBranch: '',
-					payeeName: ''
+					payeeName: this.dataDetails.driverName ? this.dataDetails.driverName : ""
 				})
 			},
 			delBankNumber(val, index) {
@@ -855,9 +871,35 @@
 			},
 			next(val) {
 				if (this.validate()) return
-				uni.$u.route('/pages/mine/driverCertificationNext', {
-					data: JSON.stringify(this.dataDetails),
-				});
+				for (let i = 0; i < this.dataDetails.hyDriverPayeeInfoList.length; i++) {
+					if (this.dataDetails.hyDriverPayeeInfoList[i].payeeName != this.dataDetails.driverName) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "收款人需与司机本人一致!",
+						})
+						return
+					} else {
+						// 银行卡验证
+						this.$request.baseRequest('get', '/driverPayeeInfo/bankCradShibie', {
+							name: this.dataDetails.hyDriverPayeeInfoList[i].payeeName,
+							idCard: this.dataDetails.numberCard,
+							accountNo: this.dataDetails.hyDriverPayeeInfoList[i].bankCard
+						}).then(
+							res => {
+								if (res.data.distinguishNum != "01") { //不等于01 证明银行卡验证不通过
+									this.payCheck = false //验证开关
+									uni.$u.toast(res.data.distinguish);
+								}
+							})
+					}
+
+				}
+				if (this.payCheck) {
+					uni.$u.route('/pages/mine/driverCertificationNext', {
+						data: JSON.stringify(this.dataDetails),
+					});
+				}
+
 			},
 			validate() {
 				// true 为校验不通过
@@ -1231,8 +1273,10 @@
 	}
 
 	.preview-card-img {
-		/deep/uni-image>div, uni-image>img {
-		    // transform: scale(1.5) rotate(-90deg);
+
+		/deep/uni-image>div,
+		uni-image>img {
+			// transform: scale(1.5) rotate(-90deg);
 		}
 	}
 
@@ -1244,5 +1288,4 @@
 		height: 80rpx;
 		z-index: 9;
 	}
-
 </style>

+ 85 - 1
pages/mine/driverCertificationNext.vue

@@ -36,11 +36,22 @@
 					<image class="" :src="dataDetails.driverLicenseBackPage" mode="aspectFit"></image>
 				</view>
 				<view class="flex row flex-space-between">
-					<view class="left-text">驾驶证有效截止日期</view>
+					<view class="left-text">驾驶证有效期</view>
 					<view class="" @click="selectValidityPeriod(0)">
 						{{dataDetails.driverLicenseValidityDate?dataDetails.driverLicenseValidityDate:'选择有效截止日期>'}}
 					</view>
 				</view>
+				<view class="flex row noborder">
+					<view class="left-text">准驾车型</view>
+					<view class="" @click="driveType">
+						{{dataDetails.quasiDrivingVehicle?dataDetails.quasiDrivingVehicle:'选择准驾车型>'}}
+					</view>
+				</view>
+				<view class="flex row noborder">
+					<view class="left-text">驾驶证发证机关</view>
+					<u--input placeholder="请输入驾驶证发证机关" inputAlign='left' border="none" v-model="dataDetails.lssuingAuthority" >
+					</u--input>
+				</view>
 <!--
 				<view class="title">上传行驶证主页</view>
 				<view @click="uploadImg(3)" class="picture picture3" v-if="!dataDetails.drivingLicenseHomePage">
@@ -145,6 +156,11 @@
 						{{dataDetails.qualificationCertificateValidityDate?dataDetails.qualificationCertificateValidityDate:'选择有效期>'}}
 					</view>
 				</view>
+				<view class="flex row noborder">
+					<view class="left-text">从业资格证号</view>
+					<u--input placeholder="请输入从业资格证号" inputAlign='left' border="none" v-model="dataDetails.qualificationCertificateNumber">
+					</u--input>
+				</view>
 <!--
 				<view class="title">道路运输证</view>
 				<view @click="uploadImg(8)" class="picture picture8" v-if="!dataDetails.operationCertificate">
@@ -227,6 +243,9 @@
 			<u-picker :show="isShowValidity" ref="uPicker" :columns="validityPeriod" @confirm="confirmValidityPeriod"
 				:closeOnClickOverlay='true' @close='isShowValidity=false' @cancel='isShowValidity=false'>
 			</u-picker>
+			<u-picker :show="isShowDrive" ref="uPicker" :columns="driveList" @confirm="confirmDriveType"
+				:closeOnClickOverlay='true' @close='isShowDrive=false' @cancel='isShowDrive=false'>
+			</u-picker>
 		</view>
 
 	</view>
@@ -244,6 +263,8 @@
 				ValidityPeriodType: '',
 				validityPeriod: [],
 				isShowValidity: false,
+				isShowDrive:false,
+				driveList:[["A2","B2"]],
 				uploadType: '',
 				isShowimgType: false,
 				dataDetails: {},
@@ -338,6 +359,13 @@
 				this.ValidityPeriodType = type
 				this.isShowValidity = true
 			},
+			driveType(){
+				this.isShowDrive = true
+			},
+			confirmDriveType(e){
+				this.dataDetails.quasiDrivingVehicle = e.value[0]
+				this.isShowDrive = false
+			},
 			// 上传图片
 			imgTypeSelect(val) {
 				console.log(val)
@@ -355,6 +383,23 @@
 									switch (_this.uploadType) {
 										case 1:
 											_this.dataDetails.driverLicenseHomePage = result
+											_this.$request.baseRequest('get',
+													'/driverInfo/api/driverLicenseShibie', {
+														image: result
+													}).then(res => {
+													if (res.data) {
+														let date = res.data.driverEndDate.substr(0,4)+"-"+res.data.driverEndDate.substr(4,2)+"-"+res.data.driverEndDate.substr(6,2)
+														_this.dataDetails.driverLicenseValidityDate = date	
+														if(res.data.allowCar == 'A2' || res.data.allowCar == 'B2'){
+															_this.dataDetails.quasiDrivingVehicle = res.data.allowCar
+														}
+														_this.dataDetails.lssuingAuthority = res.data.issuingAuthority
+														_this.$forceUpdate()
+													}
+												})
+												.catch(res => {
+													uni.$u.toast(res.message);
+												});
 											break;
 										case 2:
 											_this.dataDetails.driverLicenseBackPage = result
@@ -373,6 +418,23 @@
 											break;
 										case 7:
 											_this.dataDetails.qualificationCertificate = result
+											_this.$request.baseRequest('get',
+													'/driverInfo/api/qualificationLicenseShibie', {
+														image: result
+													}).then(res => {
+													if (res.data.qualificationCertificate) {
+														_this.dataDetails.qualificationCertificateValidityDate = res.data.qualificationCertificate
+														// _this.dataDetails.driverLicenseValidityDate =
+														// 	res.data.driverEndDate
+													}
+													if(res.data.qualificationCertificateNum){
+														_this.dataDetails.qualificationCertificateNumber = res.data.qualificationCertificateNum
+													}
+													_this.$forceUpdate()
+												})
+												.catch(res => {
+													uni.$u.toast(res.message);
+												});
 											break;
 										case 8:
 											_this.dataDetails.operationCertificate = result
@@ -418,6 +480,20 @@
 					})
 					return true
 				}
+				if (uni.$u.test.isEmpty(this.dataDetails.quasiDrivingVehicle)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "准驾车型不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataDetails.lssuingAuthority)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "驾驶证发证机关不能为空!",
+					})
+					return true
+				}
 				// if (uni.$u.test.isEmpty(this.dataDetails.drivingLicenseHomePage)) {
 				// 	this.$refs.uToast.show({
 				// 		type: 'error',
@@ -499,6 +575,14 @@
 					})
 					return true
 				}
+				
+				if (uni.$u.test.isEmpty(this.dataDetails.qualificationCertificateNumber)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "从业资格证号不能为空!",
+					})
+					return true
+				}
 				// if (uni.$u.test.isEmpty(this.dataDetails.operationCertificate)) {
 				// 	this.$refs.uToast.show({
 				// 		type: 'error',

+ 70 - 10
pages/mine/editDriverCertificationNext.vue

@@ -36,12 +36,23 @@
 					<image class="" :src="dataDetails.driverLicenseBackPage" mode="aspectFit"></image>
 				</view>
 				<view class="flex row">
-					<view class="left-text">驾驶证有效截止日期</view>
+					<view class="left-text">驾驶证有效期</view>
 					<view class="" @click="selectValidityPeriod(0)">
 						{{dataDetails.driverLicenseValidityDate?dataDetails.driverLicenseValidityDate:'选择有效截止日期>'}}
 					</view>
 				</view>
-<!--
+				<view class="flex row noborder">
+					<view class="left-text">准驾车型</view>
+					<view class="" @click="driveType">
+						{{dataDetails.quasiDrivingVehicle?dataDetails.quasiDrivingVehicle:'选择准驾车型>'}}
+					</view>
+				</view>
+				<view class="flex row noborder">
+					<view class="left-text">驾驶证发证机关</view>
+					<u--input placeholder="请输入驾驶证发证机关" inputAlign='left' border="none" v-model="dataDetails.lssuingAuthority" >
+					</u--input>
+				</view>
+				<!--
 				<view class="title">上传行驶证主页</view>
 				<view @click="uploadImg(3)" class="picture picture3" v-if="!dataDetails.drivingLicenseHomePage">
 					<image class="xj-image" src="@/static/images/mine/ic_shanchuan@2x.png"></image>
@@ -146,6 +157,11 @@
 						{{dataDetails.qualificationCertificateValidityDate?dataDetails.qualificationCertificateValidityDate:'选择有效期>'}}
 					</view>
 				</view>
+				<view class="flex row noborder">
+					<view class="left-text">从业资格证号</view>
+					<u--input placeholder="请输入从业资格证号" inputAlign='left' border="none" v-model="dataDetails.qualificationCertificateNumber">
+					</u--input>
+				</view>
 				<!--
 
 				<view class="title">道路运输证</view>
@@ -206,7 +222,8 @@
 				-->
 				<view class="flex row">
 					<view class="left-text">通讯地址</view>
-					<u--input placeholder="输入通讯地址" inputAlign='left' border="none" v-model="dataDetails.postalAddress"></u--input>
+					<u--input placeholder="输入通讯地址" inputAlign='left' border="none" v-model="dataDetails.postalAddress">
+					</u--input>
 				</view>
 			</view>
 			<view class="flex service align-center">
@@ -229,6 +246,9 @@
 			<u-picker :show="isShowValidity" ref="uPicker" :columns="validityPeriod" @confirm="confirmValidityPeriod"
 				:closeOnClickOverlay='true' @close='isShowValidity=false' @cancel='isShowValidity=false'>
 			</u-picker>
+			<u-picker :show="isShowDrive" ref="uPicker" :columns="driveList" @confirm="confirmDriveType"
+				:closeOnClickOverlay='true' @close='isShowDrive=false' @cancel='isShowDrive=false'>
+			</u-picker>
 		</view>
 		<!-- <u-modal :show="isShowAlert" :title="" :content='修改认证信息需要重新登录!' :closeOnClickOverlay='true' :showCancelButton='true' confirmColor='#22C572'  @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal> -->
 	</view>
@@ -247,6 +267,8 @@
 				ValidityPeriodType: '',
 				validityPeriod: [],
 				isShowValidity: false,
+				isShowDrive:false,
+				driveList:[["A2","B2"]],
 				uploadType: '',
 				isShowimgType: false,
 				dataDetails: {},
@@ -344,27 +366,49 @@
 				this.ValidityPeriodType = type
 				this.isShowValidity = true
 			},
+			driveType(){
+				this.isShowDrive = true
+			},
+			confirmDriveType(e){
+				this.dataDetails.quasiDrivingVehicle = e.value[0]
+				this.isShowDrive = false
+			},
 			// 上传图片
 			imgTypeSelect(val) {
-				console.log(val)
-				console.log(this.uploadType)
 				if (val.name == '相册') {
 					uni.chooseImage({
 						count: 1,
 						sourceType: this.$helper.chooseImage.sourceType,
 						success: function(res) {
 							console.log(JSON.stringify(res.tempFilePaths));
-							uploadImage('image',res.tempFilePaths[0], 'appData/',
+							uploadImage('image', res.tempFilePaths[0], 'appData/',
 								result => {
-									debugger
 									// 上传成功回调函数
 									console.log('图片地址-----', result)
 									switch (_this.uploadType) {
 										case 1:
 											_this.dataDetails.driverLicenseHomePage = result
+											_this.$request.baseRequest('get',
+													'/driverInfo/api/driverLicenseShibie', {
+														image: result
+													}).then(res => {
+													if (res.data) {
+														let date = res.data.driverEndDate.substr(0,4)+"-"+res.data.driverEndDate.substr(4,2)+"-"+res.data.driverEndDate.substr(6,2)
+														_this.dataDetails.driverLicenseValidityDate = date	
+													if(res.data.allowCar == 'A2' || res.data.allowCar == 'B2'){
+														_this.dataDetails.quasiDrivingVehicle =  res.data.allowCar
+													}
+													_this.dataDetails.lssuingAuthority = res.data.issuingAuthority
+													_this.$forceUpdate()
+													}
+												})
+												.catch(res => {
+													uni.$u.toast(res.message);
+												});
 											break;
 										case 2:
 											_this.dataDetails.driverLicenseBackPage = result
+
 											break;
 										case 3:
 											_this.dataDetails.drivingLicenseHomePage = result
@@ -380,6 +424,23 @@
 											break;
 										case 7:
 											_this.dataDetails.qualificationCertificate = result
+											_this.$request.baseRequest('get',
+													'/driverInfo/api/qualificationLicenseShibie', {
+														image: result
+													}).then(res => {
+													if (res.data.qualificationCertificate) {
+														_this.dataDetails.qualificationCertificateValidityDate = res.data.qualificationCertificate
+														// _this.dataDetails.driverLicenseValidityDate =
+														// 	res.data.driverEndDate
+													}
+													if(res.data.qualificationCertificateNum){
+														_this.dataDetails.qualificationCertificateNumber = res.data.qualificationCertificateNum
+													}
+													_this.$forceUpdate()
+												})
+												.catch(res => {
+													uni.$u.toast(res.message);
+												});
 											break;
 										case 8:
 											_this.dataDetails.operationCertificate = result
@@ -398,10 +459,9 @@
 				}
 
 			},
-			uploadImg(type) {debugger
+			uploadImg(type) {
 				this.uploadType = type
 				this.isShowimgType = true
-
 			},
 			validate() {
 				// true 为校验不通过
@@ -581,7 +641,7 @@
 									})
 								}
 							})
-						}else{
+						} else {
 							uni.$u.toast(res.message);
 						}
 					})

+ 1 - 1
pages/mine/index.vue

@@ -277,7 +277,7 @@
 			goDetailPage(src, type) {
 				if (!this.hasLogin) {
 					this.isShowAlert = true;
-				} else {debugger
+				} else {
 					if (type == 1 && this.statusVal == '已认证'||this.statusVal == '证件已过期'||this.statusVal == '身份认证未通过') {
 						console.log(type)
 						src = '/pages/mine/editDriverCertification'

+ 42 - 20
pages/mine/manageBankCards/addBankCard.vue

@@ -56,6 +56,7 @@
 			<u-picker :show="isShowBank" :columns="columns" :closeOnClickOverlay='true' @close='zhBankClose'
 				@cancel='zhBankClose' @confirm='confirmBank'></u-picker>
 			</u-picker>
+			<view class="" style="color: red;font-size: 26rpx;margin-top: 20rpx;">*收款人须为司机本人</view>
 		</view>
 
 		<u-toast ref="uToast"></u-toast>
@@ -195,7 +196,7 @@
 						sourceType: this.$helper.chooseImage.sourceType,
 						success: function(res) {
 							console.log(JSON.stringify(res.tempFilePaths));
-							uploadImage('image',res.tempFilePaths[0], 'appData/',
+							uploadImage('image', res.tempFilePaths[0], 'appData/',
 								result => {
 									// 上传成功
 									console.log('图片地址', result)
@@ -288,28 +289,48 @@
 				// 	.catch(res => {
 				// 		uni.$u.toast(res.message);
 				// 	});
-				return
-
-				this.$request.baseRequest('post', '/driverPayeeInfo/api/addInfo', this.dataDetails).then(
+				if(this.dataDetails.payeeName != uni.getStorageSync("firstAuthentication").numberCard){
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "收款人须为司机本人!",
+					})
+					return
+				}else{
+					this.$request.baseRequest('get', '/driverPayeeInfo/bankCradShibie', {
+						name: this.dataDetails.payeeName,
+						idCard: uni.getStorageSync("firstAuthentication").numberCard,
+						accountNo: this.dataDetails.bankCard
+					}).then(
 						res => {
-							if (res.code == '200') {
-								let params = {
-									type: 'success',
-									message: "提交成功",
-								}
-								this.$refs.uToast.show({
-									...params
-								})
-								uni.$u.route('/pages/mine/manageBankCards/index');
-
-							} else {
-								uni.$u.toast(res.message);
+							if(res.data.distinguishNum == "01"){
+								this.$request.baseRequest('post', '/driverPayeeInfo/api/addInfo', this.dataDetails).then(
+										res => {
+											if (res.code == '200') {
+												let params = {
+													type: 'success',
+													message: "提交成功",
+												}
+												this.$refs.uToast.show({
+													...params
+												})
+												uni.$u.route('/pages/mine/manageBankCards/index');
+								
+											} else {
+												uni.$u.toast(res.message);
+											}
+								
+										})
+									.catch(res => {
+										uni.$u.toast(res.message);
+									});
+							}else{
+								uni.$u.toast(res.data.distinguish);
 							}
-
 						})
-					.catch(res => {
-						uni.$u.toast(res.message);
-					});
+				}
+				
+
+				
 
 			},
 		},
@@ -324,6 +345,7 @@
 
 	.content {
 		padding: 20rpx;
+		padding-bottom: 50rpx;
 	}
 
 	.content3 {

+ 651 - 124
pages/mine/manageVehicles/addVehicle.vue

@@ -2,79 +2,13 @@
 <template>
 	<view class="content">
 		<view class="flex s-row container">
-			<view class="flex row">
-				<view class="left left-text">车牌号</view>
-				<view class="right flex">
-					<input class="car-uumber" v-model='dataDetails.carNumber' @click.stop="handleShowKeyboard(index)"
-						:disabled="true" placeholder="输入车牌号" name="input"></input>
-
-				</view>
-			</view>
-			<view class="flex row">
-				<view class="left-text">车牌颜色</view>
-				<view class="color" @click="selectNoColor">{{dataDetails.carNumberColour}}</view>
-				<view>></view>
-				<u-picker :show="carColor" :columns="colorColumns" :closeOnClickOverlay='true' @close='colorClose'
-					@cancel='colorClose' @confirm='confirmColor' @change="changeCarModel"></u-picker>
-			</view>
 			<view class="flex row">
 				<view class="left-text">车型</view>
-				<view class="color" @click="selectCarModel">{{dataDetails.carType}}</view>
+				<view class="color" @click="selectCarModel">{{dataDetails.carCategory}} {{dataDetails.carType}}</view>
 				<view>></view>
 				<u-picker :show="carModel" :columns="carModelColumns" :closeOnClickOverlay='true' @close='carModelClose'
 					@cancel='carModelClose' @confirm='confirmCarModel' @change="changeCarModel"></u-picker>
 			</view>
-			<view class="flex row">
-				<view class="left-text">车辆所属车主</view>
-				<u--input placeholder="输入车主姓名" inputAlign='left' border="none" v-model="dataDetails.owner">
-				</u--input>
-			</view>
-			<view class="flex row">
-				<view class="left-text">总质量(千克)</view>
-				<u--input placeholder="输入总质量" inputAlign='left' border="none" v-model="dataDetails.carTotalWeight">
-				</u--input>
-			</view>
-			<view class="flex row">
-				<view class="left-text">核定载质量(千克)</view>
-				<u--input placeholder="输入核定载质量" inputAlign='left' border="none" v-model="dataDetails.carApprovedWeight">
-				</u--input>
-			</view>
-			<view class="flex row noborder">
-				<view class="left-text">外廓尺寸</view>
-			</view>
-			<view class="flex row noborder input-ckg">
-				<view class="input-positon">
-					<u--input class="input" placeholder="长" inputAlign='left' border="none"
-						v-model="dataDetails.carLong">
-					</u--input>
-					<view class="position-right">
-						mm
-					</view>
-				</view>
-				<view class="star">*</view>
-				<view class="input-positon">
-					<u--input placeholder="宽" inputAlign='left' border="none" v-model="dataDetails.carWidth">
-					</u--input>
-					<view class="position-right">
-						mm
-					</view>
-				</view>
-				<view class="star">*</view>
-				<view class="input-positon">
-					<u--input placeholder="高" inputAlign='left' border="none" v-model="dataDetails.carHeight">
-					</u--input>
-					<view class="position-right">
-						mm
-					</view>
-				</view>
-			</view>
-
-			<view class="flex row noborder s-row">
-				<view class="left-text" style="width: 100%;">人车合影(车头车牌号可见)</view>
-				<u-upload class="uview-upload" :fileList="fileList1" @afterRead="afterRead($event)" @delete="deletePic"
-					name="1" multiple :maxCount="1"></u-upload>
-			</view>
-			<view class="level1-title">证件信息</view>
 			<view class="title">道路运输证</view>
 			<view @click="uploadImg(8)" class="picture picture8" v-if="!dataDetails.operationCertificate">
 				<image class="xj-image" src="@/static/images/mine/ic_shanchuan@2x.png"></image>
@@ -127,10 +61,12 @@
 					{{dataDetails.trailerOperationCertificateValidityDate?dataDetails.trailerOperationCertificateValidityDate:'选择有效期>'}}
 				</view>
 			</view>
-			<view class="title">上传行驶证主页</view>
+			<view class="title" v-if="sign == '挂车'">牵引车行驶证主页</view>
+			<view class="title" v-if="sign == '非挂车'">行驶证主页</view>
 			<view @click="uploadImg(3)" class="picture picture3" v-if="!dataDetails.drivingLicenseHomePage">
 				<image class="xj-image" src="@/static/images/mine/ic_shanchuan@2x.png"></image>
-				<view class="text">上传行驶证主页</view>
+				<view class="text" v-if="sign == '挂车'">上传牵引车行驶证主页</view>
+				<view class="text" v-else>上传行驶证主页</view>
 			</view>
 			<view v-if="dataDetails.drivingLicenseHomePage" @click.stop="uploadImg(1)" class="preview-card-img picture">
 				<view @click.stop="delCard(1)">
@@ -139,10 +75,12 @@
 				</view>
 				<image class="" :src="dataDetails.drivingLicenseHomePage" mode="aspectFit"></image>
 			</view>
-			<view class="title">上传行驶证副页</view>
+			<view class="title" v-if="sign == '挂车'">牵引车行驶证副页</view>
+			<view class="title" v-if="sign == '非挂车'">行驶证副页</view>
 			<view @click="uploadImg(4)" class="picture picture4" v-if="!dataDetails.drivingLicenseBackPage">
 				<image class="xj-image" src="@/static/images/mine/ic_shanchuan@2x.png"></image>
-				<view class="text">上传行驶证副页</view>
+				<view class="text" v-if="sign == '挂车'">上传牵引车行驶证副页</view>
+				<view class="text" v-else>上传行驶证副页</view>
 			</view>
 			<view v-if="dataDetails.drivingLicenseBackPage" @click.stop="uploadImg(1)" class="preview-card-img picture">
 				<view @click.stop="delCard(1)">
@@ -157,6 +95,18 @@
 					v-model="dataDetails.drivingLicenseNumber">
 				</u--input>
 			</view>
+			<view class="flex row flex-space-between">
+				<view class="left-text">注册日期</view>
+				<view class="" @click="selectValidityPeriod(6)">
+					{{dataDetails.drivingLicenseRegistrationDate?dataDetails.drivingLicenseRegistrationDate:'选择注册日期>'}}
+				</view>
+			</view>
+			<view class="flex row flex-space-between">
+				<view class="left-text">发证日期</view>
+				<view class="" @click="selectValidityPeriod(7)">
+					{{dataDetails.drivingLicenseIssueDate?dataDetails.drivingLicenseIssueDate:'选择发证日期>'}}
+				</view>
+			</view>
 
 			<view class="flex row flex-space-between">
 				<view class="left-text">行驶证有效期</view>
@@ -164,6 +114,23 @@
 					{{dataDetails.drivingLicenseValidityDate?dataDetails.drivingLicenseValidityDate:'选择有效截止日期>'}}
 				</view>
 			</view>
+			<view class="flex row flex-space-between">
+				<view class="left-text">使用性质</view>
+				<u--input placeholder="输入使用性质" inputAlign='right' border="none" v-model="dataDetails.useNature"
+					disabled>
+				</u--input>
+			</view>
+			<view class="flex row flex-space-between">
+				<view class="left-text">发证机关</view>
+				<u--input placeholder="输入发证机关" inputAlign='right' border="none" maxlength="25" v-model="dataDetails.lssuingAuthority">
+				</u--input>
+			</view>
+			<view class="flex row noborder">
+				<view class="left-text">车辆能源类型</view>
+				<view class="" @click="driveType">
+					{{dataDetails.energyType?dataDetails.energyType:'选择车辆能源类型>'}}
+				</view>
+			</view>
 
 
 			<view class="" v-if="sign == '挂车'">
@@ -196,12 +163,24 @@
 					<image class="" :src="dataDetails.trailerLicenseBackPage" mode="aspectFit"></image>
 				</view>
 			</view>
-			<view class="flex row">
+			<view class="flex row" v-if="sign == '挂车'">
 				<view class="left-text">挂车行驶证档案编号</view>
 				<u--input placeholder="输入挂车行驶证档案编号" inputAlign='right' border="none"
 					v-model="dataDetails.trailerLicenseNumber">
 				</u--input>
 			</view>
+			<view class="flex row flex-space-between" v-if="sign == '挂车'">
+				<view class="left-text">注册日期</view>
+				<view class="" @click="selectValidityPeriod(8)">
+					{{dataDetails.trailerLicenseRegistrationDate?dataDetails.trailerLicenseRegistrationDate:'选择注册日期>'}}
+				</view>
+			</view> 
+			<view class="flex row flex-space-between" v-if="sign == '挂车'">
+				<view class="left-text">发证日期</view>
+				<view class="" @click="selectValidityPeriod(9)">
+					{{dataDetails.trailerLicenseIssueDate?dataDetails.trailerLicenseIssueDate:'选择发证日期>'}}
+				</view>
+			</view>
 
 			<view class="flex row flex-space-between" v-if="sign == '挂车'">
 				<view class="left-text">挂车行驶证有效期</view>
@@ -209,10 +188,171 @@
 					{{dataDetails.trailerLicenseValidityDate?dataDetails.trailerLicenseValidityDate:'选择有效截止日期>'}}
 				</view>
 			</view>
+			<view class="flex row flex-space-between" v-if="sign == '挂车'">
+				<view class="left-text">使用性质</view>
+				<u--input placeholder="输入使用性质" inputAlign='right' border="none" v-model="dataDetails.guaUseNature"
+					disabled>
+				</u--input>
+			</view>
+			<view class="flex row flex-space-between" v-if="sign == '挂车'">
+				<view class="left-text">发证机关</view>
+				<u--input placeholder="输入发证机关" inputAlign='right' border="none" maxlength="25"
+					v-model="dataDetails.guaLssuingAuthority">
+				</u--input>
+			</view>
+			<!-- 牵引车 -->
+			<view class="flex row" v-if="sign == '挂车'">
+				<view class="left left-text">牵引车车牌号</view>
+				<view class="right flex">
+					<input class="car-uumber" v-model='dataDetails.carNumber' @click.stop="handleShowKeyboard(index)"
+						:disabled="true" placeholder="输入牵引车车牌号" name="input"></input>
+				</view>
+			</view>
+			<view class="flex row" v-if="sign == '非挂车'">
+				<view class="left left-text">车牌号</view>
+				<view class="right flex">
+					<input class="car-uumber" v-model='dataDetails.carNumber' @click.stop="handleShowKeyboard(index)"
+						:disabled="true" placeholder="输入车牌号" name="input"></input>
+				</view>
+			</view>
+			<view class="flex row">
+				<view class="left-text">车牌颜色</view>
+				<view class="color" @click="selectNoColor">{{dataDetails.carNumberColour}}</view>
+				<view>></view>
+				<u-picker :show="carColor" :columns="colorColumns" :closeOnClickOverlay='true' @close='colorClose'
+					@cancel='colorClose' @confirm='confirmColor' @change="changeCarModel"></u-picker>
+			</view>
+
+			<view class="flex row">
+				<view class="left-text">车辆所属车主</view>
+				<u--input placeholder="输入车主姓名" inputAlign='left' border="none" v-model="dataDetails.owner">
+				</u--input>
+			</view>
+			<view class="flex row" v-if="sign == '非挂车'">
+				<view class="left-text">总质量(千克)</view>
+				<u--input placeholder="输入总质量" inputAlign='left' border="none" v-model="dataDetails.carTotalWeight">
+				</u--input>
+			</view>
+			<view class="flex row" v-if="sign == '挂车'">
+				<view class="left-text">整备质量(千克)</view>
+				<u--input placeholder="输入整备质量" inputAlign='left' border="none" v-model="dataDetails.servicingWeight">
+				</u--input>
+			</view>
+			<view class="flex row noborder" v-if="sign == '挂车'">
+				<view class="left-text">牵引车外廓尺寸(毫米)</view>
+			</view>
+			<view class="flex row noborder" v-if="sign == '非挂车'">
+				<view class="left-text">外廓尺寸(毫米)</view>
+			</view>
+			<view class="flex row noborder input-ckg">
+				<view class="input-positon">
+					<u--input class="input" placeholder="长" inputAlign='left' border="none"
+						v-model="dataDetails.carLong">
+					</u--input>
+					<view class="position-right">
+						mm
+					</view>
+				</view>
+				<view class="star">*</view>
+				<view class="input-positon">
+					<u--input placeholder="宽" inputAlign='left' border="none" v-model="dataDetails.carWidth">
+					</u--input>
+					<view class="position-right">
+						mm
+					</view>
+				</view>
+				<view class="star">*</view>
+				<view class="input-positon">
+					<u--input placeholder="高" inputAlign='left' border="none" v-model="dataDetails.carHeight">
+					</u--input>
+					<view class="position-right">
+						mm
+					</view>
+				</view>
+			</view>
+
+			<view class="flex row noborder s-row">
+				<view class="left-text" style="width: 100%;" v-if="sign == '挂车'">上传人和牵引车合影(牵引车牌号可见)</view>
+				<view class="left-text" style="width: 100%;" v-if="sign == '非挂车'">上传人车合影(车头车牌号可见)</view>
+				<u-upload class="uview-upload" :fileList="fileList1" @afterRead="afterRead($event,'1')"
+					@delete="deletePic" name="1" multiple :maxCount="1"></u-upload>
+			</view>
+
+			<!-- 挂车 -->
+			<view v-if="sign == '挂车'">
+
+
+				<view class="flex row">
+					<view class="left left-text">挂车车牌号</view>
+					<view class="right flex">
+						<input class="car-uumber" v-model='dataDetails.guaCarNumber'
+							@click.stop="handleShowKeyboard1(index)" :disabled="true" placeholder="输入挂车牌号"
+							name="input"></input>
+					</view>
+				</view>
+
+				<view class="flex row">
+					<view class="left-text">车辆所属车主</view>
+					<u--input placeholder="输入车主姓名" inputAlign='left' border="none" v-model="dataDetails.guaOwner">
+					</u--input>
+				</view>
+				<view class="flex row">
+					<view class="left-text">整备质量(千克)</view>
+					<u--input placeholder="输入整备质量" inputAlign='left' border="none"
+						v-model="dataDetails.guaServicingWeight">
+					</u--input>
+				</view>
+				<view class="flex row">
+					<view class="left-text">核定载质量(千克)</view>
+					<u--input placeholder="输入核定载质量" inputAlign='left' border="none"
+						v-model="dataDetails.guaCarApprovedWeight">
+					</u--input>
+				</view>
+				<view class="flex row noborder">
+					<view class="left-text">挂车外廓尺寸(毫米)</view>
+				</view>
+				<view class="flex row noborder input-ckg">
+					<view class="input-positon">
+						<u--input class="input" placeholder="长" inputAlign='left' border="none"
+							v-model="dataDetails.guaCarLong">
+						</u--input>
+						<view class="position-right">
+							mm
+						</view>
+					</view>
+					<view class="star">*</view>
+					<view class="input-positon">
+						<u--input placeholder="宽" inputAlign='left' border="none" v-model="dataDetails.guaCarWidth">
+						</u--input>
+						<view class="position-right">
+							mm
+						</view>
+					</view>
+					<view class="star">*</view>
+					<view class="input-positon">
+						<u--input placeholder="高" inputAlign='left' border="none" v-model="dataDetails.guaCarHeight">
+						</u--input>
+						<view class="position-right">
+							mm
+						</view>
+					</view>
+				</view>
+				<view class="flex row noborder s-row">
+					<view class="left-text" style="width: 100%;">上传人和挂车合影(挂车车牌号可见)</view>
+					<u-upload class="uview-upload" :fileList="fileList2" @afterRead="afterRead1($event,'2')"
+						@delete="deletePic" name="2" multiple :maxCount="1"></u-upload>
+				</view>
+				<view class="" @click="asd">
+					测试
+				</view>
+			</view>
+			<!-- <view class="level1-title">证件信息</view> -->
 		</view>
 		<view class="submit-btn" @click="submit">提交</view>
 		<master-keyboard ref="keyboard" keyboardtype="car" :show="keyShow" :randomNumber="true" :newCar="false"
 			:defaultValue="carNumber" @keyboardClick="handleClick"></master-keyboard>
+		<master-keyboard ref="keyboard1" keyboardtype="car" :show="keyShow1" :randomNumber="true" :newCar="false"
+			:defaultValue="carNumber1" @keyboardClick="handleClick1"></master-keyboard>
 		<u-toast ref="uToast"></u-toast>
 		<u-action-sheet :actions="$helper.imgTypeList" :title="$helper.imgType" :show="isShowimgType"
 			@select="imgTypeSelect" :closeOnClickOverlay="true" :closeOnClickAction="true" @close="isShowimgType=false">
@@ -220,6 +360,9 @@
 		<u-picker :show="isShowValidity" ref="uPicker" :columns="validityPeriod" @confirm="confirmValidityPeriod"
 			:closeOnClickOverlay='true' @close='isShowValidity=false' @cancel='isShowValidity=false'>
 		</u-picker>
+		<u-picker :show="isShowCarType" ref="uPicker" :columns="carTypeList" @confirm="confirmCarType"
+			:closeOnClickOverlay='true' @close='isShowCarType=false' @cancel='isShowCarType=false'>
+		</u-picker>
 	</view>
 </template>
 
@@ -235,20 +378,28 @@
 			return {
 				index: '',
 				keyShow: false,
+				keyShow1: false,
 				carNumber: '',
+				carNumber1: "",
 				dataDetails: {
-					driverId: '',
-					carNumber: '',
+					// driverId: '',
+					// carNumber: '',
 					carNumberColour: '黄色',
-					carType: '挂车 高栏',
-					carTotalWeight: '',
-					carApprovedWeight: '',
-					carLong: '',
-					carWidth: '',
-					carHeight: '',
-					addressUrl: ''
+					carCategory: '挂车',
+					carType: '高栏',
+					useNature: "营业特种车",
+					guaUseNature: "营运挂车",
+					energyType:"汽油",
+					// carTotalWeight: '',
+					// carApprovedWeight: '',
+					// carLong: '',
+					// carWidth: '',
+					// carHeight: '',
+					// addressUrl: ''
 
 				},
+				carTypeList:[["汽油","柴油","油电混合","纯电动","插电式混合动力","增程式"]],
+				isShowCarType:false,
 				carModelColumns: [
 					['挂车', '非挂车'],
 					['高栏', '集装箱', '自卸车']
@@ -263,6 +414,7 @@
 				carColor: false,
 				carModel: false,
 				fileList1: [],
+				fileList2: [],
 				ValidityPeriodType: "",
 				validityPeriod: [],
 				isShowValidity: false,
@@ -281,36 +433,71 @@
 			this.validityPeriod = this.$helper.makeValidityPeriod()
 		},
 		methods: {
+			asd() {
+				this.$request.baseRequest('get', '/orderInfo/selectRouterPath').then(res => {
+					if (res.code == '200') {}
+				})
+			},
+			driveType(){
+				this.isShowCarType = true
+			},
+			confirmCarType(e){
+				this.dataDetails.energyType = e.value[0]
+				this.isShowCarType = false
+			},
+			//挂车牌号弹出键盘
+			handleShowKeyboard1(index) {
+				if (this.dataDetails.guaCarNumber == '') {
+					this.carNumber1 = ''
+				} else {
+					this.carNumber1 = this.dataDetails.guaCarNumber
+				}
+				if (this.$refs.keyboard1.open) {
+					this.$refs.keyboard1.open(false) //true 键盘显示 false 键盘隐藏
+				} else {
+					this.$refs.keyboard1[0].open(false)
+				}
+				this.index = index
+				if (this.$refs.keyboard1.open) {
+					this.$refs.keyboard1.open(true) //true 键盘显示 false 键盘隐藏
+				} else {
+					this.$refs.keyboard1[0].open(true)
+				}
+			},
+			handleClick1(e) {
+				this.carNumber1 = e.value
+				this.dataDetails.guaCarNumber = e.value //键盘输入值
+			},
 			delCard(type) {
-			switch (type) {
-				case 1:
-					_this.dataDetails.driverLicenseHomePage = ""
-					break;
-				case 2:
-					_this.dataDetails.driverLicenseBackPage = ""
-					break;
-				case 3:
-					_this.dataDetails.drivingLicenseHomePage = ""
-					break;
-				case 4:
-					_this.dataDetails.drivingLicenseBackPage = ""
-					break;
-				case 5:
-					_this.dataDetails.trailerLicenseHomePage = ""
-					break;
-				case 6:
-					_this.dataDetails.trailerLicenseBackPage = ""
-					break;
-				case 7:
-					_this.dataDetails.qualificationCertificate = ""
-					break;
-				case 8:
-					_this.dataDetails.operationCertificate = ""
-					break;
-				case 9:
-					_this.dataDetails.trailerOperationCertificate = ""
-					break;
-			}
+				switch (type) {
+					case 1:
+						_this.dataDetails.driverLicenseHomePage = ""
+						break;
+					case 2:
+						_this.dataDetails.driverLicenseBackPage = ""
+						break;
+					case 3:
+						_this.dataDetails.drivingLicenseHomePage = ""
+						break;
+					case 4:
+						_this.dataDetails.drivingLicenseBackPage = ""
+						break;
+					case 5:
+						_this.dataDetails.trailerLicenseHomePage = ""
+						break;
+					case 6:
+						_this.dataDetails.trailerLicenseBackPage = ""
+						break;
+					case 7:
+						_this.dataDetails.qualificationCertificate = ""
+						break;
+					case 8:
+						_this.dataDetails.operationCertificate = ""
+						break;
+					case 9:
+						_this.dataDetails.trailerOperationCertificate = ""
+						break;
+				}
 			},
 			uploadImg(type) {
 				this.uploadType = type
@@ -343,24 +530,199 @@
 											break;
 										case 3:
 											_this.dataDetails.drivingLicenseHomePage = result
+											_this.$request.baseRequest('get',
+													'/driverCarInfo/api/driveringLicenseShibie', {
+														image: result,
+														flag: 1
+													}).then(res => {
+													if (res.data) {
+														_this.dataDetails.carNumber = res.data
+															.carNum //车牌号
+														_this.dataDetails.owner = res.data
+															.owner //车辆所有人
+														_this.$forceUpdate()
+													}
+												})
+												.catch(res => {
+													uni.$u.toast(res.message);
+												});
 											break;
 										case 4:
 											_this.dataDetails.drivingLicenseBackPage = result
+
+											_this.$request.baseRequest('get',
+													'/driverCarInfo/api/driveringLicenseShibie', {
+														image: result,
+														flag: 2
+													}).then(res => {
+													if (res.data) {
+														if (res.data.issuingAuthority) { //行驶证发证机关
+															_this.dataDetails.lssuingAuthority = res
+																.data.issuingAuthority
+														}
+														if (res.data
+															.licenseRegistrationDate) { //行驶证注册日期
+															_this.dataDetails
+																.drivingLicenseRegistrationDate = res
+																.data.licenseRegistrationDate
+														}
+														if (res.data.licenseIssueDate) { //行驶证发证日期
+															_this.dataDetails.drivingLicenseIssueDate =
+																res.data.licenseIssueDate
+														}
+														_this.dataDetails.drivingLicenseValidityDate =
+															res.data.driveringEndDate //行驶证有效期
+														_this.dataDetails.drivingLicenseNumber = res
+															.data.driveringNum //行驶证档案编号
+														if (_this.sign == "非挂车") {
+															if (res.data.servicingMass && res.data
+																.servicingMass.indexOf("kg") != -1) {
+																res.data.servicingMass = res.data
+																	.servicingMass.slice(0, res.data
+																		.servicingMass.length - 2)
+															}
+															_this.dataDetails.carTotalWeight = res.data
+																.servicingMass //总质量
+														}
+														if(res.data.approvedLoadMass.indexOf("kg") != -1){
+															res.data.approvedLoadMass = res.data.approvedLoadMass.slice(0, res.data.approvedLoadMass.length - 2)
+														}
+														_this.dataDetails.carApprovedWeight = res.data
+															.approvedLoadMass //核定载质量
+														if (res.data.size && res.data.size.indexOf(
+																"mm") != -1) {
+															res.data.size = res.data.size.slice(0, res
+																.data.size.length - 2);
+														}
+
+														_this.dataDetails.carLong = res.data.size
+															.split("X")[0] //车长
+														_this.dataDetails.carWidth = res.data.size
+															.split("X")[1] //车宽
+														_this.dataDetails.carHeight = res.data.size
+															.split("X")[2] //车高
+														_this.$forceUpdate()
+													}
+												})
+												.catch(res => {
+													uni.$u.toast(res.message);
+												});
 											break;
-										case 5:
+										case 5: //挂车行驶证
 											_this.dataDetails.trailerLicenseHomePage = result
+											_this.$request.baseRequest('get',
+													'/driverCarInfo/api/driveringLicenseShibie', {
+														image: result,
+														flag: 1
+													}).then(res => {
+													if (res.data.issuingAuthority) { //行驶证发证机关
+														_this.dataDetails.guaLssuingAuthority = res
+															.data.issuingAuthority
+													}
+													if (res.data.licenseRegistrationDate) { //行驶证注册日期
+														_this.dataDetails
+															.trailerLicenseRegistrationDate = res.data
+															.licenseRegistrationDate
+													}
+													if (res.data.licenseIssueDate) { //行驶证发证日期
+														_this.dataDetails.trailerLicenseIssueDate = res
+															.data.licenseIssueDate
+													}
+													if (res.data) {
+														_this.dataDetails.guaCarNumber = res.data
+															.carNum //车牌号
+														_this.dataDetails.guaOwner = res.data
+															.owner //车辆所有人
+														_this.$forceUpdate()
+													}
+												})
+												.catch(res => {
+													uni.$u.toast(res.message);
+												});
 											break;
 										case 6:
 											_this.dataDetails.trailerLicenseBackPage = result
+											_this.$request.baseRequest('get',
+													'/driverCarInfo/api/driveringLicenseShibie', {
+														image: result,
+														flag: 2
+													}).then(res => {
+													if (res.data) {
+														_this.dataDetails.trailerLicenseValidityDate =
+															res.data.driveringEndDate //挂车行驶证有效期
+														_this.dataDetails.trailerLicenseNumber = res
+															.data.driveringNum //挂车行驶证档案编号
+														if (res.data.servicingMass && res.data
+															.servicingMass.indexOf("kg") != -1) {
+															res.data.servicingMass = res.data
+																.servicingMass.slice(0, res.data
+																	.servicingMass.length - 2)
+														}
+														if(res.data.approvedLoadMass.indexOf("kg") != -1){
+															res.data.approvedLoadMass = res.data.approvedLoadMass.slice(0, res.data.approvedLoadMass.length - 2)
+														}
+														_this.dataDetails.guaServicingWeight = res.data.servicingMass //总质量
+														_this.dataDetails.guaCarApprovedWeight = res.data.approvedLoadMass //核定载质量
+														if (res.data.size && res.data.size.indexOf(
+																"mm") != -1) {
+															res.data.size = res.data.size.slice(0, res
+																.data.size.length - 2);
+														}
+														_this.dataDetails.guaCarLong = res.data.size
+															.split("X")[0] //车长
+														_this.dataDetails.guaCarWidth = res.data.size
+															.split("X")[1] //车宽
+														_this.dataDetails.guaCarHeight = res.data.size
+															.split("X")[2] //车高
+														_this.$forceUpdate()
+													}
+												})
+												.catch(res => {
+													uni.$u.toast(res.message);
+												});
 											break;
 										case 7:
 											_this.dataDetails.qualificationCertificate = result
 											break;
 										case 8:
 											_this.dataDetails.operationCertificate = result
+											_this.$request.baseRequest('get',
+													'/driverCarInfo/api/tranLicenseShibie', {
+														image: result
+													}).then(res => {
+													if (res.data) {
+														_this.dataDetails.operationCertificateNumber =
+															res.data.tranNumber
+														_this.dataDetails
+															.operationCertificateValidityDate = res
+															.data.tranEndDate
+														_this.$forceUpdate()
+													}
+
+												})
+												.catch(res => {
+													uni.$u.toast(res.message);
+												});
 											break;
 										case 9:
 											_this.dataDetails.trailerOperationCertificate = result
+											_this.$request.baseRequest('get',
+													'/driverCarInfo/api/tranLicenseShibie', {
+														image: result
+													}).then(res => {
+													if (res.data) {
+														_this.dataDetails
+															.trailerOperationCertificateNumber = res
+															.data.tranNumber
+														_this.dataDetails
+															.trailerOperationCertificateValidityDate =
+															res.data.tranEndDate
+														_this.$forceUpdate()
+													}
+												})
+												.catch(res => {
+													uni.$u.toast(res.message);
+												});
 											break;
 									}
 									_this.$forceUpdate()
@@ -396,6 +758,21 @@
 					case 5:
 						this.dataDetails.trailerOperationCertificateValidityDate = e.value[0] + '-' + e.value[1] + '-' + e
 							.value[2]
+					case 6: //行驶证注册日期
+						this.dataDetails.drivingLicenseRegistrationDate = e.value[0] + '-' + e.value[1] + '-' + e
+							.value[2]
+						break
+					case 7: //行驶证发证日期
+						this.dataDetails.drivingLicenseIssueDate = e.value[0] + '-' + e.value[1] + '-' + e
+							.value[2]
+						break
+					case 8: //挂车行驶证注册日期
+						this.dataDetails.trailerLicenseRegistrationDate = e.value[0] + '-' + e.value[1] + '-' + e
+							.value[2]
+						break
+					case 9: //挂车行驶证发证日期
+						this.dataDetails.trailerLicenseIssueDate = e.value[0] + '-' + e.value[1] + '-' + e
+							.value[2]
 						break
 				}
 				this.isShowValidity = false
@@ -418,7 +795,7 @@
 				this[`fileList${event.name}`].splice(event.index, 1)
 			},
 			// 新增图片
-			async afterRead(event) {
+			async afterRead(event, num) {
 				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
 				let lists = [].concat(event.file)
 				let fileListLen = this[`fileList${event.name}`].length
@@ -430,7 +807,7 @@
 					})
 				})
 				for (let i = 0; i < lists.length; i++) {
-					const result = await this.uploadFilePromise(lists[i].url)
+					const result = await this.uploadFilePromise(lists[i].url, num)
 					let item = this[`fileList${event.name}`][fileListLen]
 					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
 						status: 'success',
@@ -440,18 +817,52 @@
 					fileListLen++
 				}
 			},
-			uploadFilePromise(url) {
+			// 新增图片
+			async afterRead1(event, num) {
+				console.log(event)
+				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url, num)
+					let item = this[`fileList${event.name}`][fileListLen]
+					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					}))
+					fileListLen++
+				}
+			},
+			uploadFilePromise(url, num) {
 				uploadImage('image', url, 'appData/',
 					result => {
 						// 上传成功回调函数
 						console.log('图片地址', result)
-						if (!this.dataDetails.addressUrl) {
-							this.dataDetails.addressUrl = result
-						} else {
-							this.dataDetails.addressUrl = this.dataDetails.addressUrl + ',' + result
+
+						if (num == 1) {
+							if (!this.dataDetails.addressUrl) {
+								this.dataDetails.addressUrl = result
+							} else {
+								this.dataDetails.addressUrl = this.dataDetails.addressUrl + ',' + result
+							}
+						} else if (num == 2) {
+							if (!this.dataDetails.guaAddressUrl) {
+								this.dataDetails.guaAddressUrl = result
+							} else {
+								this.dataDetails.guaAddressUrl = this.dataDetails.guaAddressUrl + ',' + result
+							}
 						}
 
 
+
 					}
 				)
 			},
@@ -474,11 +885,13 @@
 					this.$refs.keyboard[0].open(true)
 				}
 			},
+
 			//车牌号弹出键盘
 			handleClick(e) {
 				this.carNumber = e.value
 				this.dataDetails.carNumber = e.value //键盘输入值
 			},
+
 			confirmColor(val) {
 				this.dataDetails.carNumberColour = val.value[0]
 				this.carColor = false
@@ -490,8 +903,16 @@
 				this.carColor = true
 			},
 			confirmCarModel(val) {
+				if (val.value[0] == '挂车') {
+					this.dataDetails.useNature = "营业特种车"
+					this.dataDetails.guaUseNature = "营运挂车"
+				} else if (val.value[0] == '非挂车') {
+					this.dataDetails.useNature = "营运货车"
+				}
 				this.sign = val.value[0]
-				this.dataDetails.carType = val.value[0] + ' ' + val.value[1]
+				// this.dataDetails.carType = val.value[0] + ' ' + val.value[1]
+				this.dataDetails.carCategory = val.value[0]
+				this.dataDetails.carType = val.value[1]
 				this.carModel = false
 			},
 			carModelClose() {
@@ -526,17 +947,25 @@
 					})
 					return true
 				}
-				if (uni.$u.test.isEmpty(this.dataDetails.carTotalWeight)) {
+				if (uni.$u.test.isEmpty(this.dataDetails.carTotalWeight) && this.sign == '非挂车') {
 					this.$refs.uToast.show({
 						type: 'error',
 						message: "总质量不能为空!",
 					})
 					return true
 				}
-				if (uni.$u.test.isEmpty(this.dataDetails.carApprovedWeight)) {
+				
+				if (uni.$u.test.isEmpty(this.dataDetails.servicingWeight) && this.sign == '挂车') {
 					this.$refs.uToast.show({
 						type: 'error',
-						message: "核定载质量不能为空!",
+						message: "整备质量不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataDetails.owner)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "车辆所属车主不能为空!",
 					})
 					return true
 				}
@@ -569,7 +998,7 @@
 					})
 					return true
 				}
-				if(this.sign == '挂车'){
+				if (this.sign == '挂车') {
 					if (uni.$u.test.isEmpty(this.dataDetails.trailerOperationCertificate)) {
 						this.$refs.uToast.show({
 							type: 'error',
@@ -613,6 +1042,20 @@
 					})
 					return true
 				}
+				if (uni.$u.test.isEmpty(this.dataDetails.drivingLicenseRegistrationDate)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "行驶证注册日期不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataDetails.drivingLicenseIssueDate)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "行驶证发证日期不能为空!",
+					})
+					return true
+				}
 				if (uni.$u.test.isEmpty(this.dataDetails.drivingLicenseValidityDate)) {
 					this.$refs.uToast.show({
 						type: 'error',
@@ -620,7 +1063,21 @@
 					})
 					return true
 				}
-				
+				if (uni.$u.test.isEmpty(this.dataDetails.lssuingAuthority)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "行驶证发证机关不能为空!",
+					})
+					return true
+				}
+				if (uni.$u.test.isEmpty(this.dataDetails.energyType)) {
+					this.$refs.uToast.show({
+						type: 'error',
+						message: "能源类型不能为空!",
+					})
+					return true
+				}
+
 				if (this.sign == '挂车') {
 					if (uni.$u.test.isEmpty(this.dataDetails.trailerLicenseHomePage)) {
 						this.$refs.uToast.show({
@@ -643,6 +1100,63 @@
 						})
 						return true
 					}
+					if (uni.$u.test.isEmpty(this.dataDetails.guaCarNumber)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "挂车车牌号不能为空!",
+						})
+						return true
+					}
+					if (uni.$u.test.isEmpty(this.dataDetails.guaOwner)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "车辆所属车主不能为空!",
+						})
+						return true
+					}    
+					if (uni.$u.test.isEmpty(this.dataDetails.guaServicingWeight)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "挂车整备质量不能为空!",
+						})
+						return true
+					}
+					if (uni.$u.test.isEmpty(this.dataDetails.guaCarApprovedWeight)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "挂车核定载质量不能为空!",
+						})
+						return true
+					} 
+					if (uni.$u.test.isEmpty(this.dataDetails.guaCarLong) || uni.$u.test.isEmpty(this.dataDetails.guaCarWidth) || uni.$u.test.isEmpty(this.dataDetails.guaCarHeight)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "挂车外廓尺寸不能为空!",
+						})
+						return true
+					}
+					// if (this.dataDetails.fileList2.length == 0) {
+					// 	this.$refs.uToast.show({
+					// 		type: 'error',
+					// 		message: "人和挂车合影不能为空!",
+					// 	})
+					// 	return true
+					// }
+					
+					if (uni.$u.test.isEmpty(this.dataDetails.trailerLicenseRegistrationDate)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "挂车行驶证注册日期不能为空!",
+						})
+						return true
+					}
+					if (uni.$u.test.isEmpty(this.dataDetails.trailerLicenseIssueDate)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "挂车行驶证发证日期不能为空!!",
+						})
+						return true
+					}
 					if (uni.$u.test.isEmpty(this.dataDetails.trailerLicenseValidityDate)) {
 						this.$refs.uToast.show({
 							type: 'error',
@@ -650,6 +1164,13 @@
 						})
 						return true
 					}
+					if (uni.$u.test.isEmpty(this.dataDetails.guaLssuingAuthority)) {
+						this.$refs.uToast.show({
+							type: 'error',
+							message: "挂车行驶证发证机关不能为空!",
+						})
+						return true
+					}
 				}
 				return false
 			},
@@ -657,6 +1178,12 @@
 				this.dataDetails.driverId = uni.getStorageSync("firstAuthentication").id
 				// 校验
 				if (this.validate()) return
+				if (!this.dataDetails.carApprovedWeight) {
+					delete this.dataDetails.carApprovedWeight
+				}
+				if(this.dataDetails.carCategory == "非挂车"){
+					delete this.dataDetails.guaUseNature
+				}
 				this.$request.baseRequest('post', '/driverCarInfo/api/addInfo', this.dataDetails).then(res => {
 						if (res.code == '200') {
 							this.$refs.uToast.show({

Разлика између датотеке није приказан због своје велике величине
+ 813 - 143
pages/mine/manageVehicles/editVehicle.vue


+ 324 - 0
pages/order/bankCard.vue

@@ -0,0 +1,324 @@
+<template>
+	<view class="content">
+		<view class="top-title flex flex-space-between">
+			<!-- <view class="left flex">
+				<view class="text1">我的卡</view>
+				<view class="text2">(共{{bankList?bankList.length:0}}张)</view>
+			</view> -->
+
+			<view @click="addBankCard" class="add-bankcard flex">
+				<view class="car-text">添加银行卡</view>
+				<u-icon class="icon" name="plus-circle-fill" color="#2979ff" size="24"></u-icon>
+			</view>
+
+		</view>
+		<view class="card-list" v-for="(item,index) in bankList" :key='index' >
+			<view class="card-list-item" :style='{"background-image":"url("+item.cardColor+")"}' @click="bankOk(item)">
+				<view class="flex flex-end number carNumber">{{item.bankCard}}</view>
+				<view class="flex align-center">
+					<!-- @/static/images/mine/bank/gflogo.png -->
+					<image class="img left" :src="item.imgLogo" mode='widthFix'>
+					</image>
+					<view class="right">
+						<view class="text1">{{item.bankDeposit}}</view>
+						<view class="text2">收款人:{{item.payeeName}}</view>
+					</view>
+				</view>
+			</view>
+
+			<!-- <view class="flex flex-space-between row2 align-center">
+				<view class="flex align-center">
+					<radio :checked="item.defaultFlag==1" @click='radioChange(item)' />
+					<view class="default-card">设为默认收款账户</view>
+				</view>
+				<view>
+					<u-icon name="trash" size="24" @click="del(item,index)"></u-icon>
+				</view>
+			</view> -->
+		</view>
+		<!-- <view @click="addBankCard">添加银行卡</view> -->
+		 <u-modal :show="isShowAlert" :title="alertTitle" :closeOnClickOverlay='true' :showCancelButton='true' confirmColor='#2772FB'  @confirm="confirmClick" @close="cancelClick" @cancel="cancelClick"></u-modal>
+		<u-toast ref="uToast"></u-toast>
+	</view>
+</template>
+
+<script>
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				bankList: [],
+				obj:{},
+				index:null,
+				isShowAlert:false,
+				alertTitle:'确认删除该银行卡?'
+			};
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		onLoad() {
+			if (!this.hasLogin) {
+				uni.$u.route('/pages/public/login');
+			}
+			this.init();
+			
+		},
+		methods: {
+			bankOk(item){//设置收款账户
+				let obj = {
+					 bankCard : item.bankNo,
+					 bankDeposit:item.bankDeposit,
+					 bankDepositBranch :item.bankDepositBranch,
+					 payeeName :item.payeeName
+				}
+				uni.setStorageSync("payInfo",obj)
+				uni.navigateBack({
+					delta:1
+				})
+			},
+			confirmClick(){
+				this.isShowAlert = false
+				this.$request.baseRequest('post', '/driverPayeeInfo/api/deleteDriverPayee', {
+						id: this.obj.id
+					}).then(res => {
+						if (res.code == '200') {
+							this.$refs.uToast.show({
+								type: 'success',
+								message: "删除成功!",
+							})
+							this.bankList.splice(this.index, 1)
+						}
+				
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			cancelClick(){
+				this.isShowAlert = false
+			},
+			radioChange(val) {
+				for (let i = 0; i < this.bankList.length; i++) {
+					if (val.id == this.bankList[i].id) {
+						this.bankList[i].defaultFlag = 1
+						this.$request.baseRequest('post', '/driverPayeeInfo/api/setDefault', val).then(res => {
+								if (res.code == '200') {
+									// this.bankList = res.data
+									this.$refs.uToast.show({
+										type: 'success',
+										message: "设置成功!",
+									})
+								} else {
+									uni.$u.toast(res.message);
+								}
+
+							})
+							.catch(res => {
+								uni.$u.toast(res.message);
+							});
+
+					} else {
+						this.bankList[i].defaultFlag = 0
+					}
+				}
+			},
+			number(value){
+			  if(value&&value.length>8) {
+			    let reg = /^(\d{4})(\d*)(\d{4})$/;
+			    let str = value.replace(reg, (a, b, c, d)=> {
+			      return b + c.replace(/\d/g, "*") + d;
+			    });
+			    return str
+			  }else {
+			    return value
+			  }
+			},
+			init() {
+				this.$request.baseRequest('post', '/driverPayeeInfo/selectDriverPayee', {
+						driverId: this.userInfo.driverId,
+					}).then(res => {
+						if (res.code == '200') {
+							this.bankList = res.data
+							for (let i = 0; i < this.bankList.length; i++) {
+								let _obj = this.bankList[i]
+								_obj.bankNo = this.bankList[i].bankCard
+								_obj.bankCard = this.number(_obj.bankCard)
+								switch (_obj.bankDeposit) {
+									case "建设银行":
+										this.bankList[i].imgLogo = "../../../static/images/mine/bank/jiansheogo.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/jh.png"
+										break
+									case "招商银行":
+										this.bankList[i].imgLogo =
+											"../../../static/images/mine/bank/zhaoshang.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/zsbg.png"
+										break
+									case "中国银行":
+										this.bankList[i].imgLogo = "../../../static/images/mine/bank/zhongyin.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/zsbg.png"
+										break
+									case "邮政银行":
+										this.bankList[i].imgLogo =
+											"../../../static/images/mine/bank/youzhenglogo.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/nh.png"
+										break
+									case "交通银行":
+										this.bankList[i].imgLogo =
+											"../../../static/images/mine/bank/jiaotognlogo.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/jh.png"
+										break
+									case "工商银行":
+										this.bankList[i].imgLogo = "../../../static/images/mine/bank/gslogo.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/zsbg.png"
+										break
+									case "农业银行":
+										this.bankList[i].imgLogo = "../../../static/images/mine/bank/nongyelogo.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/nh.png"
+										break
+									case "民生银行":
+										this.bankList[i].imgLogo =
+											"../../../static/images/mine/bank/minshenglogo.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/nh.png"
+										break
+									case "中信银行":
+										this.bankList[i].imgLogo =
+											"../../../static/images/mine/bank/zhongxinlogo.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/zsbg.png"
+										break
+									case "广发银行":
+										this.bankList[i].imgLogo = "../../../static/images/mine/bank/gflogo.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/zsbg.png"
+										break
+									case "华夏银行":
+										this.bankList[i].imgLogo = "../../../static/images/mine/bank/huaxia.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/zsbg.png"
+										break
+									case "兴业银行":
+										this.bankList[i].imgLogo = "../../../static/images/mine/bank/xingye.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/jh.png"
+										break
+									default:
+										this.bankList[i].imgLogo = "../../../static/images/mine/bank/qitalogo.png"
+										this.bankList[i].cardColor = "../../../static/images/mine/bank/qt.png"
+										break
+								}
+							}
+							this.$forceUpdate()
+						} else {
+							uni.$u.toast(res.message);
+						}
+
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			addBankCard() {
+				uni.$u.route('/pages/mine/manageBankCards/addBankCard');
+			},
+			edit() {
+				uni.$u.route('/pages/mine/manageBankCards/editBankCard');
+				let params = {
+					type: 'success',
+					message: "修改成功",
+					iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
+				}
+				this.$refs.uToast.show({
+					...params
+				})
+			},
+			del(val, index) {
+				this.obj = val
+				this.index = index
+				this.isShowAlert = true
+		
+			}
+		},
+
+	}
+</script>
+
+<style lang="scss">
+	.content {
+		background: white;
+		padding: 20rpx;
+	}
+
+	.top-title {
+		margin: 0 0 20rpx 0;
+
+		.left {
+			.text1 {
+				font-size: 29rpx;
+				color: #1F1F1F;
+				font-weight: 700;
+			}
+
+			.text2 {
+				font-size: 29rpx;
+				color: #999999;
+			}
+		}
+	}
+
+	.card-list {
+		padding: 0 20rpx;
+
+		.number {
+			color: white;
+		}
+	}
+
+	.add-bankcard {
+		background: #EEF4FF;
+		color: #2772FB;
+		font-weight: 700;
+		font-size: 26rpx;
+		align-items: center;
+		padding: 4rpx 10rpx 4rpx 20rpx;
+		border-radius: 30rpx;
+
+	}
+
+	.card-list-item {
+		// background: url(../../../static/images/mine/bank/zsbg.png) center no-repeat;
+		background-size: cover;
+		padding: 60rpx 43rpx 100rpx 43rpx;
+		border-radius: 20rpx;
+		.carNumber{
+			margin-bottom: 20rpx;
+		}
+
+		.img {
+			width: 80rpx;
+			height: 80rpx;
+			margin-right: 20rpx;
+		}
+
+		.right {
+			.text1 {
+				font-size: 36rpx;
+				font-weight: 700;
+				color: #FFFFFF;
+			}
+
+			.text2 {
+				// font-size: 24rpx;
+				color: #FFFFFF;
+				margin-top: 10rpx;
+			}
+		}
+	}
+
+	.row2 {
+		margin: 20rpx 0;
+	}
+
+	.default-card {
+		// font-size: 28rpx;
+		color: #333333;
+	}
+</style>

+ 57 - 26
pages/order/confirmLoading.vue

@@ -38,38 +38,40 @@
 				<view class="">货名</view>
 				<view class="">{{detailData.goodsName}}</view>
 			</view>
-			<view class='row-between'>
+			<!-- <view class='row-between'>
 				<view class="">运费</view>
 				<view class="">{{detailData.freight}}{{detailData.illingMethod==0?'元/吨':'元/车'}}</view>
-			</view>
-
+			</view>-->
 		</view>
 		<view class="content2">
 			<view class="level2-title">装车信息</view>
 			<view class='row-between'>
 				<view class="">车牌号</view>
-				{{detailData.carrierInfo.carNo}}
+				{{detailData.carNo?detailData.carNo:"来自合同"}}
 				<!-- <input class="car-uumber input" v-model='detailData.carrierInfo.carNo'
 					:disabled="true" placeholder="输入车牌号" name="input" disabled="true"></input> -->
 			</view>
-			<view class='row-between' @click="selectDate">
+			<view class='row-between'>
 				<view class="">装车日期</view>
 				<view class="date-style">
-					{{detailData.carrierInfo.loadingDate?detailData.carrierInfo.loadingDate:'选择装车日期'}}
+					{{detailData.loadingDate?detailData.loadingDate:'来自合同'}}
 				</view>
 			</view>
 			<view class='row-between'>
-				<view class="">运费总额(元)</view>
-				{{detailData.freightInfo.freight}}
+				<view class="">装车净重(吨)</view>
+				{{detailData.weight ? detailData.weight:"来自合同"}}
+			</view>
+			<view class='row-between'>
+				<view class="">预计运费(元)</view>
+				{{detailData.freight ? detailData.freight:"来自合同"}}
 			<!-- 	<view class=""><input class="input" type="text" value="" v-model="detailData.carrierInfo.freight"
 						placeholder="请输入运费"></view> -->
 			</view>
 			<view class='row-between'>
 				<view class="">定位</view>
-				<view class="flex align-center">{{detailData.carrierInfo.sendCity}} {{detailData.carrierInfo.sendArea}}
+				<view class="flex align-center">{{detailData.carrierInfo?detailData.carrierInfo.sendCity:""}} {{detailData.carrierInfo?detailData.carrierInfo.sendArea:""}}
 					<view class="sx-style" @click.stop="getLngLat()">刷新</view>
 				</view>
-
 			</view>
 			<view class='s-flex'>
 				<view class="" style="margin:20rpx 0;">上传装车照片</view>
@@ -112,7 +114,7 @@
 				sourceType: ['camera'],
 				detailData: {
 					carrierInfo: {},
-
+					loadingDate:{}
 				},
 				action: this.$helper.ossUploadUrl,
 				maxSize: 50 * 1024 * 1024, //限制文件大小 50M
@@ -127,19 +129,37 @@
 		},
 		onLoad(options) {
 			that = this
-			// debugger
 			// #ifdef APP-PLUS
 			this.getLngLat();
 			// #endif
 			console.log(options)
 			this.id = JSON.parse(decodeURIComponent(options.obj)).id
 			this.getInfo()
-			// this.detailData = options;
+			// this.detailData = JSON.parse(options.obj) ;
+			// console.log(this.detailData)
 			// CYHT20220317000001
-
-
 		},
 		methods: {
+			//确认装车提交成功后,开启实时定位,
+			// 调接口5分钟一次发送轨迹,[
+			// 	{latitude: 39.997761, longitude: 116.478935},
+			// 	{latitude: 39.997825, longitude: 116.478939},
+			// 	{latitude: 39.998549, longitude: 116.478912},
+			// 	{latitude: 39.998555, longitude: 116.478998},
+			// 	{latitude: 39.998566, longitude: 116.479282},
+			// 	{latitude: 39.998528, longitude: 116.479658},
+			// 	{latitude: 39.998453, longitude: 116.480151},
+			// 	{latitude: 39.998302, longitude: 116.480784},
+			// 	{latitude: 39.998184, longitude: 116.481149},
+			// 	{latitude: 39.997997, longitude: 116.481573},
+			// 	{latitude: 39.997846, longitude: 116.481863},
+			// 	{latitude: 39.997718, longitude: 116.482072},
+			// 	{latitude: 39.997718, longitude: 116.482362},
+			// 	{latitude: 39.998935, longitude: 116.483633},
+			// 	{latitude: 39.998968, longitude: 116.48367},
+			// 	{latitude: 39.999861, longitude: 116.484648}
+			// ]
+			// a(){},
 			toSignContract(){
 				uni.$u.route('/pages/order/signContract', {
 					obj: JSON.stringify(this.detailData),
@@ -151,7 +171,6 @@
 			confirmDate(e) {
 				this.detailData.carrierInfo.loadingDate = e[0]
 				this.showDate = false
-				console.log(e);
 			},
 			getInfo() {
 				this.$request.baseRequest('get', '/orderInfo/getOrderInfo', {
@@ -159,6 +178,17 @@
 				}).then(res => {
 					if (res.code == 200) {
 						this.detailData = res.data
+						this.$request.baseRequest('get', '/carrierInfo/getHyCarrierInfo', {
+							orderId: this.detailData.id,
+						}).then(res => {
+							if(res.data){
+								this.detailData.carNo =  res.data.carNo
+								this.detailData.loadingDate =res.data.loadingDate
+								this.detailData.weight =res.data. loadingWeight
+								this.detailData.freight = res.data.estimatedFreight
+							}
+						})
+						
 						// this.detailData.contractNo = ''
 						// this.detailData.id = this.detailData.carrierId
 						// this.detailData.carrierInfo.loadingDate = ''
@@ -180,6 +210,7 @@
 					}
 
 				})
+				
 			},
 			//车牌号弹出键盘
 			handleShowKeyboard() {
@@ -209,7 +240,6 @@
 					title: '获取定位中',
 					mask: true
 				})
-				console.log(123)
 				this.$helper.fUN_AmapLocation.start({
 						intervalTime: 1000 * 3,
 						isReport: false,
@@ -221,8 +251,7 @@
 							this.detailData.carrierInfo.loadingAreaLongitude = res.longitude;
 							this.detailData.carrierInfo.loadingAreaLatitude = res.latitude;
 							this.detailData.carrierInfo.sendCity = this.$helper.filterUrban(res.city)
-							this.detailData.carrierInfo.sendArea = this.$helper.filterArea(res
-								.district);
+							this.detailData.carrierInfo.sendArea = this.$helper.filterArea(res.district);
 							console.log(this.detailData.carrierInfo.sendCity)
 							console.log(this.detailData.carrierInfo.sendArea)
 							this.$forceUpdate()
@@ -306,7 +335,7 @@
 				this[`fileList${event.name}`].splice(event.index, 1)
 			},
 			// 新增图片
-			async afterRead(event) {debugger
+			async afterRead(event) {
 				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
 				let lists = [].concat(event.file)
 				let fileListLen = this[`fileList${event.name}`].length
@@ -357,6 +386,7 @@
 				}
 				this.isShowAlert = true
 				this.detailData.statusFlag = type
+				console.log(15456)
 				// this.$refs.uToast.show({
 				// 	...params,
 				// 	complete() {
@@ -367,24 +397,25 @@
 				// })
 			},
 			validate() {
-				if (uni.$u.test.isEmpty(this.detailData.carrierInfo.carNo)) {
+				// uni.$u.test.isEmpty(this.detailData.carrierInfo.carNo
+				if (uni.$u.test.isEmpty(this.detailData.carNo)) {
 					this.$refs.uToast.show({
 						type: 'error',
 						message: "车牌号不能为空!",
 					})
 					return true
 				}
-				if (uni.$u.test.isEmpty(this.detailData.carrierInfo.loadingDate)) {
+				if (uni.$u.test.isEmpty(this.detailData.loadingDate)) {
 					this.$refs.uToast.show({
 						type: 'error',
 						message: "装车日期不能为空!",
 					})
 					return true
 				}
-				if (uni.$u.test.isEmpty(this.detailData.freightInfo.freight)) {
+				if (uni.$u.test.isEmpty(this.detailData.freight)) {
 					this.$refs.uToast.show({
 						type: 'error',
-						message: "运费总额不能为空!",
+						message: "预计运费不能为空!",
 					})
 					return true
 				}
@@ -411,7 +442,6 @@
 				// }
 			},
 			confirmClick() {
-				
 				this.isShowAlert = false
 				 if(this.validate()) return 
 				//1暂存
@@ -421,11 +451,12 @@
 					delete this.detailData.carrierInfo.sendCity;
 					delete this.detailData.carrierInfo.sendArea;
 				}
+				this.detailData.carrierInfo = {}
+				
 				this.detailData.carrierInfo.statusFlag = this.detailData.statusFlag
 				this.detailData.carrierInfo.loadingImg = this.imgList.toString()
 				this.$request.baseRequest('post', '/carrierInfo/loadingAdd', this.detailData.carrierInfo).then(res => {
 						if (res.code == 200) {
-							// debugger
 							let _title = ''
 							if (this.detailData.statusFlag == 1) {
 								_title = '暂存成功!'

+ 2 - 2
pages/order/index.vue

@@ -1,4 +1,4 @@
-<!-- 货源 -->
+<!-- 订单 -->
 <template>
 	<view class="content">
 		<view class="fixed1"></view>
@@ -96,7 +96,7 @@
 							<view class="car"
 								v-if="good.orderStatus=='待货主确认'||good.orderStatus=='未装车'||good.orderStatus=='待货主确认装车'||good.orderStatus=='货主驳回装车信息'||good.orderStatus=='已终止'">
 								<!-- {{good.billingMethod==0?good.freightInfo.freight?good.freightInfo.freight:good.freight:good.freightCar}}{{good.billingMethod==0?'元/吨':'元/车'}} -->
-								{{good.freightInfo.freight?good.freightInfo.freight:good.freight}}{{good.illingMethod==0?'元/吨':'元/车'}}
+								{{good.freightInfo?good.freightInfo.freight:good.freight}}{{good.illingMethod==0?'元/吨':'元/车'}}
 							</view>
 							<!-- 货主装车确认后卸车确认前运费 -->
 							<view class="car"

+ 71 - 21
pages/order/signContract.vue

@@ -37,6 +37,12 @@
 				<view class="gray">距离</view>
 				<view class="">约{{dataDetails.distance}}公里</view>
 			</view>
+			<view class='row-between'>
+				<!-- 后加 -->
+				<view class="gray">服务费(元)</view>
+				<view class="">{{dataDetails.serviceCharge}}</view>
+			</view>
+
 
 			<view class="title">
 				完善信息
@@ -67,14 +73,14 @@
 			<view class='row-between'>
 				<view class="gray">挂车号(选填)</view>
 				<view class="flex">
-					<u--input placeholder="请输入挂车号" border="none" v-model="dataDetails.weight" inputAlign='right'
-						clearable></u--input>
+					<u--input placeholder="请输入挂车号" border="none" disabled v-model="dataDetails.trailerNumber"
+						inputAlign='right' clearable></u--input>
 				</view>
 			</view>
 			<view class='row-between'>
 				<view class="gray">装车净重</view>
 				<view class="flex">
-					<u--input placeholder="请输入装车净重" border="none" v-model="dataDetails.trailerNumber" inputAlign='right'
+					<u--input placeholder="请输入装车净重" border="none" v-model="dataDetails.weight" inputAlign='right'
 						clearable></u--input>
 				</view>
 			</view>
@@ -83,8 +89,9 @@
 				<view class="">
 					<view @click="dateShow">{{dataDetails.startDates?dataDetails.startDates:'请选择运输开始日期'}}
 					</view>
-					
-						<u-calendar :show="startShow" mode="single" @confirm="startDate" @close="startShow= false"></u-calendar>
+
+					<u-calendar :show="startShow" mode="single" @confirm="startDate" @close="startShow= false">
+					</u-calendar>
 				</view>
 			</view>
 			<view class='row-between'>
@@ -100,24 +107,33 @@
 			<view class='row-between'>
 				<view class="gray">联络人姓名</view>
 				<view class="">
-					<u--input placeholder="请输入联络人姓名" border="none" v-model="dataDetails.contactPersonName"
-						inputAlign='right' clearable></u--input>
+					<u--input placeholder="请输入联络人姓名" border="none" v-model="dataDetails.driverName" inputAlign='right'
+						clearable></u--input>
 				</view>
 			</view>
 			<view class='row-between'>
 				<view class="gray">联络人电话</view>
 				<view class="">
 					<u--input placeholder="请输入联络人电话" border="none" type="number" maxlength="11"
-						v-model="dataDetails.contactPersonPhone" inputAlign='right' clearable></u--input>
+						v-model="dataDetails.driverPhone" inputAlign='right' clearable></u--input>
 				</view>
 			</view>
 			<view class='row-between'>
 				<view class="gray">装车后预付款</view>
 				<view class="">
-					<u--input placeholder="请输入装车后预付款" border="none" v-model="dataDetails.advanceCharge"
+					<u--input placeholder="请输入装车后预付款" v-if="dataDetails.freightAdvance == 1" border="none"
+						v-model="dataDetails.loadingAdvancePayment" inputAlign='right' clearable disabled></u--input>
+					<u--input placeholder="请输入装车后预付款" v-else border="none" v-model="dataDetails.loadingAdvancePayment"
 						inputAlign='right' clearable></u--input>
 				</view>
 			</view>
+			<view class='row-between'>
+				<view class="gray">收款账户</view>
+				<view class="" @click="collection">
+					{{dataDetails.bankDeposit?dataDetails.bankDeposit:"请选择收款账户"}}
+					{{dataDetails.bankCard?dataDetails.bankCard.substring(dataDetails.bankCard.length - 4):""}}
+				</view>
+			</view>
 
 		</view>
 		<view class="wrapper content3">
@@ -168,6 +184,7 @@
 			return {
 				showCarList: false,
 				carList: [],
+				carlistCopy: [],
 				keyShow: false,
 				carNumber: '',
 				isScaleStart: false,
@@ -184,7 +201,10 @@
 				lineColor: '#1A1A1A', // 颜色
 				lineSize: 5, // 笔记倍数
 				value: true,
-				dataDetails: {},
+				dataDetails: {
+					carrierInfo: {},
+					serviceCharge:'50'
+				},
 				radiolist1: [{
 						name: '平台垫付运费',
 						disabled: false
@@ -203,13 +223,31 @@
 		computed: {
 			...mapState(['hasLogin', 'userInfo', 'firstAuthentication']),
 		},
+		onShow() {
+			let payInfo = uni.getStorageSync("payInfo")
+			if (payInfo) {
+				this.dataDetails.bankCard = payInfo.bankCard
+				this.dataDetails.bankDeposit = payInfo.bankDeposit
+				this.dataDetails.bankDepositBranch = payInfo.bankDepositBranch
+				this.dataDetails.payeeName = payInfo.payeeName
+			} else {
+				this.$request.baseRequest('get', '/driverPayeeInfo/getDriverPayee', {
+					commonId: that.firstAuthentication.commonId
+				}).then(res => {
+					this.dataDetails.bankCard = res.data.bankCard
+					this.dataDetails.bankDeposit = res.data.bankDeposit
+					this.dataDetails.bankDepositBranch = res.data.bankDepositBranch
+					this.dataDetails.payeeName = res.data.payeeName
+				})
+			}
+		},
 		onLoad(options) {
 			this.carList = []
 			that = this
-			console.log(JSON.parse(options.obj))
 			// this.dataDetails = JSON.parse(options.obj)
 			this.dataDetails = JSON.parse(decodeURIComponent(options.obj))
-			this.dataDetails.advanceFreightService = '平台垫付运费'
+			// this.dataDetails.advanceFreightService = '平台垫付运费'
+			this.dataDetails.carrierInfo = {}
 			this.ctx = uni.createCanvasContext("handWriting");
 			this.$nextTick(() => {
 				uni.createSelectorQuery().select('.handCenter').boundingClientRect(rect => {
@@ -236,6 +274,7 @@
 									_list.push(res.data[i].carNumber)
 								}
 							}
+							that.carlistCopy = res.data
 							that.carList = [_list]
 						}
 					} else {
@@ -248,8 +287,17 @@
 				});
 		},
 		methods: {
+			collection() {
+				uni.$u.route('/pages/order/bankCard');
+			},
 			confirmBtn(e) {
 				this.dataDetails.carrierInfo.carNo = e.value[0]
+				for (let i = 0; i < this.carlistCopy.length; i++) {
+					if (e.value[0] == this.carlistCopy[i].carNumber) {
+
+						this.dataDetails.trailerNumber = this.carlistCopy[i].guaCarNumber
+					}
+				}
 				this.showCarList = false
 			},
 			selectTypeClose() {
@@ -327,45 +375,46 @@
 					})
 					return
 				}
-				if (uni.$u.test.isEmpty(that.dataDetails.contactPersonName)) {
+				if (uni.$u.test.isEmpty(that.dataDetails.driverName)) {
 					that.$refs.uToast.show({
 						type: 'error',
 						message: "联络人姓名不能为空!",
 					})
 					return
 				}
-				if (uni.$u.test.isEmpty(that.dataDetails.contactPersonPhone)) {
+				if (uni.$u.test.isEmpty(that.dataDetails.driverPhone)) {
 					that.$refs.uToast.show({
 						type: 'error',
 						message: "联络人电话不能为空!",
 					})
 					return
 				}
-				if (uni.$u.test.isEmpty(that.dataDetails.advanceCharge)) {
+				if (uni.$u.test.isEmpty(that.dataDetails.loadingAdvancePayment)) {
 					that.$refs.uToast.show({
 						type: 'error',
 						message: "装车后预付款不能为空!",
 					})
 					return
 				}
-				console.log(that.dataDetails)
 				let _obj = {}
 				_obj.trailerNumber = that.dataDetails.trailerNumber
 				_obj.startDates = that.dataDetails.startDates
 				_obj.endDates = that.dataDetails.endDates
-				_obj.contactPersonName = that.dataDetails.contactPersonName
-				_obj.contactPersonPhone = that.dataDetails.contactPersonPhone
-				_obj.freight = that.dataDetails.freight
-				_obj.advanceCharge = that.dataDetails.advanceCharge
+
+				_obj.contactPersonName = that.dataDetails.driverName
+				_obj.contactPersonPhone = that.dataDetails.driverPhone
+				_obj.freightCars = that.dataDetails.freight
+				// _obj.advanceCharge = that.dataDetails.advanceCharge
 				_obj.id = that.dataDetails.id
 				_obj.carNumber = that.dataDetails.carrierInfo.carNo
+				_obj.weight = that.dataDetails.weight
+				_obj.loadingAdvancePayment = that.dataDetails.loadingAdvancePayment
 				_obj.typeFlag = 2
 				uni.canvasToTempFilePath({
 					canvasId: 'handWriting',
 					fileType: 'png',
 					quality: 1, //图片质量
 					success(res) {
-						console.log(res.tempFilePath, 'canvas生成图片地址');
 						uploadImage('image', res.tempFilePath, 'appData/',
 							result => {
 								// 上传成功
@@ -397,6 +446,7 @@
 													type: 'success',
 													message: "提交成功",
 													complete() {
+														uni.removeStorageSync("payInfo") //如果要有银行卡缓存就删除
 														uni.$u.route('/pages/order/confirmLoading', {
 															obj: JSON.stringify(that
 																.dataDetails),

Неке датотеке нису приказане због велике количине промена