From 05273ace3da665cb10c36ca0dac4413a8284302a Mon Sep 17 00:00:00 2001
From: qingyiay <2386314947@qq.com>
Date: 星期三, 17 五月 2023 18:10:36 +0800
Subject: [PATCH] 增加部分限制,增加新功能

---
 pages/driver-page/drvier-my/drvier-my.vue |  210 +++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 183 insertions(+), 27 deletions(-)

diff --git a/pages/driver-page/drvier-my/drvier-my.vue b/pages/driver-page/drvier-my/drvier-my.vue
index 430b999..bf10fb2 100644
--- a/pages/driver-page/drvier-my/drvier-my.vue
+++ b/pages/driver-page/drvier-my/drvier-my.vue
@@ -145,18 +145,50 @@
 			<u-popup :show="editDriverPopupShow" mode="bottom" @close="editDriverPopupClose" @open="editDriverPopupOpen" :closeable="true">
 				<combined-title title="淇敼涓汉淇℃伅" style="margin-left:20rpx"></combined-title>
 				<view class="editDriverPopup-container-box">
-					<u--form labelPosition="left" :model="editUserInfo" ref="form1">
-						<u-form-item labelWidth="20%" label="濮撳悕" ref="item1"><u--input v-model="editUserInfo.name" border="none" inputAlign="left"></u--input></u-form-item>
-						<u-form-item labelWidth="20%" label="韬唤璇佸彿" ref="item1"><u--input v-model="editUserInfo.idCard" border="none" inputAlign="left"></u--input></u-form-item>
-						<u-form-item labelWidth="20%" label="鎵嬫満鍙�" ref="item1"><u--input v-model="editUserInfo.phone" border="none" inputAlign="left"></u--input></u-form-item>
-						<u-form-item labelWidth="20%" label="杞︾墝鍙�" ref="item1"><u--input v-model="editUserInfo.carNo" border="none" inputAlign="left"></u--input></u-form-item>
-						<u-form-item labelWidth="20%" label="浣撻噸" ref="item1"><u--input v-model="editUserInfo.weight" border="none" inputAlign="left"></u--input></u-form-item>
-						<u-form-item labelWidth="20%" label="杞﹁酱鏁�" ref="item1"><u--input v-model="editUserInfo.axleNum" border="none" inputAlign="left"></u--input></u-form-item>
-						<u-form-item labelWidth="25%" label="杞﹁締鐓х墖" ref="item1">
-							<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple :maxCount="1" width="250" height="150"></u-upload>
+					<u--form labelPosition="left" :model="editUserInfo" ref="editRef">
+						<u-form-item labelWidth="20%" label="濮撳悕" prop="name" required>
+							<u--input v-model="editUserInfo.name" border="none" inputAlign="left"></u--input>
 						</u-form-item>
-						<u-form-item labelWidth="25%" label="琛岄┒璇佺収鐗�" ref="item1">
-							<u-upload :fileList="fileList2" @afterRead="afterRead" @delete="deletePic" name="2" multiple :maxCount="1" width="250" height="150"></u-upload>
+						<u-form-item labelWidth="20%" label="韬唤璇佸彿" prop="idCard" required>
+							<u--input v-model="editUserInfo.idCard" border="none" inputAlign="left"></u--input>
+						</u-form-item>
+						<u-form-item labelWidth="20%" label="鎵嬫満鍙�" prop="phone" required>
+							<u--input v-model="editUserInfo.phone" border="none" inputAlign="left"></u--input>
+						</u-form-item>
+						<u-form-item labelWidth="20%" label="杞︾墝鍙�" prop="carNo" required>
+							<u--input v-model="editUserInfo.carNo" border="none" inputAlign="left"></u--input>
+						</u-form-item>
+						<u-form-item labelWidth="20%" label="浣撻噸" prop="weight" required>
+							<u--input v-model="editUserInfo.weight" border="none" inputAlign="left" placeholder="浣撻噸浠g浣滀负鍗曚綅"></u--input>
+						</u-form-item>
+						<u-form-item labelWidth="20%" label="杞﹁酱鏁�" prop="axleNum" required>
+							<u--input v-model="editUserInfo.axleNum" border="none" inputAlign="left"></u--input>
+						</u-form-item>
+						<u-form-item labelWidth="25%" label="杞﹁締鐓х墖" @click="beforeRead" prop="carImg" required>
+							<u-upload
+								:fileList="fileList1"
+								@afterRead="afterRead"
+								@delete="deletePic"
+								name="1"
+								multiple
+								:maxCount="1"
+								width="250"
+								height="150"
+								:previewFullImage="true"
+							></u-upload>
+						</u-form-item>
+						<u-form-item labelWidth="25%" label="琛岄┒璇佺収鐗�" ref="item1" @click="beforeRead" prop="drivingImg" required>
+							<u-upload
+								:fileList="fileList2"
+								@afterRead="afterRead"
+								@delete="deletePic"
+								name="2"
+								multiple
+								:maxCount="1"
+								width="250"
+								height="150"
+								:previewFullImage="true"
+							></u-upload>
 						</u-form-item>
 					</u--form>
 					<u-button text="鎻愪氦" @click="updateUser" type="primary"></u-button>
@@ -172,6 +204,7 @@
 <script>
 import { customerId, userInfo, redirectLogin } from '@/utils/status';
 import { BaseUrl } from '@/api/publicInterface.js';
+import { mapMutations } from 'vuex';
 export default {
 	data() {
 		return {
@@ -191,6 +224,94 @@
 				weight: '',
 				userId: ''
 			},
+			rules: {
+				name: {
+					type: 'string',
+					required: true,
+					message: '璇峰~鍐欏鍚�',
+					trigger: ['blur', 'change']
+				},
+				idCard: [
+					{
+						type: 'string',
+						required: true,
+						message: '璇疯緭鍏ヨ韩浠借瘉鍙�',
+						trigger: ['blur', 'change']
+					},
+					{
+						pattern: /^([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]$/,
+						message: '韬唤璇佸彿鏍煎紡涓嶆纭�'
+					}
+				],
+				phone: [
+					{
+						required: true,
+						message: '姝ら」涓哄繀濉」',
+						// blur鍜宑hange浜嬩欢瑙﹀彂妫�楠�
+						trigger: ['blur', 'change']
+					},
+					{
+						min: 11,
+						max: 11,
+						message: '璇疯緭鍏ュ悎娉曟墜鏈哄彿'
+					},
+					{
+						validator: (rule, value, callback) => {
+							return uni.$u.test.mobile(value);
+						},
+						message: '鎵嬫満鍙风爜鏍煎紡涓嶆纭�',
+						trigger: ['change', 'blur']
+					}
+				],
+				weight: {
+					type: 'number',
+					required: true,
+					message: '璇峰~鍐欎綋閲�',
+					trigger: ['blur', 'change']
+				},
+				carNo: [
+					{
+						type: 'string',
+						required: true,
+						message: '璇疯緭鍏ヨ溅鐗屽彿',
+						trigger: ['blur', 'change']
+					},
+					{
+						transform(value) {
+							return String(value);
+						},
+						validator: (rule, value, callback) => {
+							return uni.$u.test.carNo(value);
+						},
+						message: '璇疯緭鍏ユ纭殑杞︾墝鍙�',
+						trigger: ['change', 'blur']
+					}
+				],
+				axleNum: [
+					{
+						transform(value) {
+							return Number(value);
+						},
+						validator: (rule, value, callback) => {
+							return value <= 10;
+						},
+						message: '璇疯緭鍏ユ纭殑杞﹁酱鏁�',
+						trigger: ['change', 'blur']
+					}
+				],
+				carImg: {
+					type: 'string',
+					required: true,
+					message: '璇蜂笂浼犺溅杈嗗浘鐗�',
+					trigger: ['blur', 'change']
+				},
+				drivingImg: {
+					type: 'string',
+					required: true,
+					message: '璇蜂笂浼犺椹惰瘉鐓х墖',
+					trigger: ['blur', 'change']
+				}
+			},
 			src: '',
 			fileList1: [],
 			fileList2: [],
@@ -209,7 +330,11 @@
 	onShow() {
 		// this.init();
 	},
+	onReady() {
+		this.$refs.editRef.setRules(this.rules);
+	},
 	methods: {
+		...mapMutations(['changeisUploadimg']),
 		init() {
 			this.getUserEntity();
 		},
@@ -220,6 +345,18 @@
 			this.$reqGet('getUserEntity').then(res => {
 				uni.hideLoading();
 				this.userInfo = res.data;
+				uni.setStorageSync('carImg', this.userInfo.carImg);
+				uni.setStorageSync('drivingImg', this.userInfo.drivingImg);
+				if (this.fileList1.length == 0) {
+					this.fileList1.push({
+						url: `${BaseUrl}${this.userInfo.carImg}`
+					});
+				}
+				if (this.fileList2.length == 0) {
+					this.fileList2.push({
+						url: `${BaseUrl}${this.userInfo.drivingImg}`
+					});
+				}
 				Object.keys(this.editUserInfo).map(item => {
 					if (res.data[item]) {
 						this.editUserInfo[item] = res.data[item];
@@ -243,8 +380,12 @@
 				this.previewImageShow = true;
 			});
 		},
+		beforeRead() {
+			this.changeisUploadimg(true);
+		},
 		// 鍒犻櫎
 		deletePic(event) {
+			this.changeisUploadimg(true);
 			this[`fileList${event.name}`].splice(event.index, 1);
 		},
 		// 鏂板鍥剧墖
@@ -267,7 +408,7 @@
 					1,
 					Object.assign(item, {
 						status: 'success',
-						message: '',
+						message: '涓婁紶鎴愬姛',
 						url: result
 					})
 				);
@@ -284,11 +425,14 @@
 					// 	user: 'test'
 					// },
 					success: res => {
-						resolve(JSON.parse(res.data).data.url);
 						if (num == 1) {
 							this.editUserInfo.carImg = JSON.parse(res.data).data.url;
+							uni.setStorageSync('carImg', JSON.parse(res.data).data.url);
+							resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
 						} else if (num == 2) {
 							this.editUserInfo.drivingImg = JSON.parse(res.data).data.url;
+							uni.setStorageSync('drivingImg', JSON.parse(res.data).data.url);
+							resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
 						}
 					}
 				});
@@ -314,20 +458,32 @@
 		},
 		// 淇敼鐢ㄦ埛淇℃伅
 		updateUser() {
-			this.$reqPost('updateUser', this.editUserInfo, 'json').then(res => {
-				console.log('鏇存柊鏁版嵁', res);
-				this.editDriverPopupShow = false;
-				if (res.code == 0) {
-					this.$u.toast('淇敼鎴愬姛');
-					this.init();
-				} else {
-					uni.showToast({
-						title: res.msg,
-						icon: 'none',
-						duration: 2000
+			this.editUserInfo = {
+				...this.editUserInfo,
+				carImg: uni.getStorageSync('carImg'),
+				drivingImg: uni.getStorageSync('drivingImg')
+			};
+			this.$refs.editRef
+				.validate()
+				.then(res => {
+					this.$reqPost('updateUser', this.editUserInfo, 'json').then(res => {
+						console.log('鏇存柊鏁版嵁', res);
+						this.editDriverPopupShow = false;
+						if (res.code == 0) {
+							this.$u.toast('淇敼鎴愬姛');
+							this.init();
+						} else {
+							uni.showToast({
+								title: res.msg,
+								icon: 'none',
+								duration: 2000
+							});
+						}
 					});
-				}
-			});
+				})
+				.catch(err => {
+					this.$u.toast('淇敼澶辫触');
+				});
 		},
 		logout() {
 			this.logoutShow = true;
@@ -533,7 +689,7 @@
 	.editDriverPopup-container {
 		.u-popup {
 			.u-transition {
-				height: 95%;
+				height: 75%;
 				.u-popup__content {
 					overflow: scroll !important;
 					.editDriverPopup-container-box {

--
Gitblit v1.9.1