From fc4c8b7e4f9d926a43903389afb21d5a09208f8e Mon Sep 17 00:00:00 2001 From: yangan <yangan0921@163.com> Date: 星期四, 13 二月 2025 16:41:30 +0800 Subject: [PATCH] feat:承运单位改为非必填样式 --- pages/register/register.vue | 471 ++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 402 insertions(+), 69 deletions(-) diff --git a/pages/register/register.vue b/pages/register/register.vue index 7fd5b29..f65c092 100644 --- a/pages/register/register.vue +++ b/pages/register/register.vue @@ -4,7 +4,7 @@ <u--form :rules="rules" :model="registerFormModel" ref="regesterFormRef"> - <u-form-item labelWidth="20%" + <u-form-item labelWidth="22%" label="閫夋嫨韬唤" borderBottom ref="roleRef" @@ -26,7 +26,7 @@ </u-form-item> <u-form-item prop="name" label="濮撳悕" - labelWidth="20%" + labelWidth="22%" borderBottom required> <u--input v-model="registerFormModel.name" @@ -35,7 +35,7 @@ </u-form-item> <u-form-item prop="idCard" label="韬唤璇�" - labelWidth="20%" + labelWidth="22%" borderBottom required> <u--input v-model="registerFormModel.idCard" @@ -44,7 +44,7 @@ </u-form-item> <u-form-item prop="phone" label="鎵嬫満鍙�" - labelWidth="20%" + labelWidth="22%" borderBottom required> <u--input v-model="registerFormModel.phone" @@ -53,7 +53,7 @@ </u-form-item> <u-form-item prop="password" label="瀵嗙爜" - labelWidth="20%" + labelWidth="22%" borderBottom required> <u--input v-model="registerFormModel.password" @@ -61,20 +61,34 @@ password clearable></u--input> </u-form-item> + <view class="intensity"> + <view class="psdText">瀵嗙爜寮哄害</view> + <view + class="line" + :class="[level.includes('low') ? 'low' : '']"></view> + <view + class="line" + :class="[level.includes('middle') ? 'middle' : '']"></view> + <view + class="line" + :class="[level.includes('high') ? 'high' : '']"></view> + <div class="warningtext"> + 瀵嗙爜搴旂敱8-16浣嶆暟瀛椼�佸瓧姣嶃�佺鍙风粍鎴愩�傝涓嶈浣跨敤瀹规槗琚寽鍒扮殑瀵嗙爜 + </div> + </view> <u-form-item prop="confirmPassword" label="纭瀵嗙爜" - labelWidth="20%" + labelWidth="22%" borderBottom required> <u--input v-model="registerFormModel.confirmPassword" placeholder="璇疯緭鍏ュ唴瀹�" password - clearable - @blur="jiaoYanPassword"></u--input> + clearable></u--input> </u-form-item> <u-form-item prop="carNo" label="杞︾墝鍙�" - labelWidth="20%" + labelWidth="22%" borderBottom v-if="radiovalue1 == '鍙告満'" required> @@ -82,9 +96,99 @@ placeholder="璇疯緭鍏ュ唴瀹�" clearable></u--input> </u-form-item> + <u-form-item prop="truckLength" + label="杞﹂暱" + labelWidth="22%" + borderBottom + v-if="radiovalue1 == '鍙告満'" + required> + <u--input v-model="registerFormModel.truckLength" + @change="inputchange($event,1)" + placeholder="璇疯緭鍏ュ唴瀹�" + clearable></u--input> + </u-form-item> + <u-form-item prop="truckWidth" + label="杞﹀" + labelWidth="22%" + borderBottom + v-if="radiovalue1 == '鍙告満'" + required> + <u--input v-model="registerFormModel.truckWidth" + placeholder="璇疯緭鍏ュ唴瀹�" + @change="inputchange($event,2)" + clearable></u--input> + </u-form-item> + <u-form-item prop="truckHeight" + label="杞﹂珮" + labelWidth="22%" + borderBottom + v-if="radiovalue1 == '鍙告満'" + required> + <u--input v-model="registerFormModel.truckHeight" + placeholder="璇疯緭鍏ュ唴瀹�" + @change="inputchange($event,3)" + clearable></u--input> + </u-form-item> + <u-form-item prop="totalLoad" + label="杞﹁揣鎬婚噸" + labelWidth="22%" + borderBottom + v-if="radiovalue1 == '鍙告満'" + required> + <u--input v-model="registerFormModel.totalLoad" + @change="inputchange($event,5)" + placeholder="璇疯緭鍏ュ唴瀹�" + clearable></u--input><span style="position: absolute;right: 120rpx;line-height: 40px">鍚�</span> + </u-form-item> + <u-form-item prop="maximumPayload" + label="鏈�澶ц浇閲�" + labelWidth="22%" + borderBottom + v-if="radiovalue1 == '鍙告満'" + required> + <u--input v-model="registerFormModel.maximumPayload" + @change="inputchange($event,4)" + placeholder="璇疯緭鍏ュ唴瀹�" + clearable></u--input><span style="position: absolute;right: 120rpx;line-height: 40px">鍚�</span> + </u-form-item> + + <u-form-item prop="axleNum" + label="杞﹁酱鏁�" + labelWidth="22%" + borderBottom + v-if="radiovalue1 == '鍙告満'" + required> + <u--input v-model="registerFormModel.axleNum" + @change="inputchange($event,6)" + placeholder="璇疯緭鍏ュ唴瀹�" + clearable></u--input> + </u-form-item> + + <u-form-item prop="certification" + label="浠庝笟璧勬牸璇佸彿" + labelWidth="22%" + borderBottom + v-if="radiovalue1 == '鍙告満'" + required> + <u--input v-model="registerFormModel.certification" + placeholder="璇疯緭鍏ュ唴瀹�" + clearable></u--input> + </u-form-item> + + <u-form-item prop="freightCompany" + label="鎵胯繍鍗曚綅" + labelWidth="22%" + borderBottom + v-if="radiovalue1 == '鍙告満'" + > + <u--input v-model="registerFormModel.freightCompany" + placeholder="璇疯緭鍏ュ唴瀹�" + clearable></u--input> + </u-form-item> + <u-form-item prop="carImg" label="杞﹁締鐓х墖" - labelWidth="20%" + labelWidth="22%" borderBottom v-if="radiovalue1 == '鍙告満'" required @@ -103,7 +207,7 @@ </u-form-item> <u-form-item prop="drivingImg" label="琛岄┒璇�" - labelWidth="20%" + labelWidth="22%" borderBottom v-if="radiovalue1 == '鍙告満'" required @@ -190,7 +294,7 @@ </u-checkbox> </u-checkbox-group> </u-form-item> - <u-form-item labelWidth="20%" + <u-form-item labelWidth="22%" v-if="radiovalue1 == '鍙告満'" label="杞﹁締绫诲瀷" borderBottom @@ -241,7 +345,105 @@ } }, data() { + const validatePass = (rule, value, callback) => { + if (this.registerFormModel.confirmPassword !== "") { + if (value !== this.registerFormModel.password) { + callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!")); + } else { + callback(); + } + } else { + callback(); + } + }; + //楠岃瘉鏈�澶ф�婚噸涓嶈兘瓒呰繃杞﹁揣杞介噸 + const maxVstotalFun1 = (rule, value, callback) =>{ + console.log('瑙﹀彂',this.registerFormModel.maximumPayload ,this.registerFormModel.totalLoad,this.registerFormModel.maximumPayload <= this.registerFormModel.totalLoad) + if(!value || !this.registerFormModel.maximumPayload)callback() + if(Number(value) >= Number(this.registerFormModel.maximumPayload)){ + callback() + }else{ + callback(new Error("杞﹁揣鎬婚噸涓嶈兘灏忎簬鏈�澶ц浇閲�")) + } + + } + + const maxVstotalFun2 = (rule, value, callback) =>{ + console.log('瑙﹀彂',this.registerFormModel.maximumPayload ,this.registerFormModel.totalLoad,this.registerFormModel.maximumPayload <= this.registerFormModel.totalLoad) + if(!value || !this.registerFormModel.totalLoad)callback() + if(Number(value) <= Number(this.registerFormModel.totalLoad)){ + callback() + }else{ + callback(new Error("鏈�澶ц浇閲嶄笉鑳借秴杩囪溅璐ф�婚噸")) + } + + } + const checkPassword = (rule, value, callback) => { + // let roles = this.$store.getters.roles;//褰撳墠鐢ㄦ埛瑙掕壊id + // let passL = 8; + // if (roles.concat(1)){ + // passL = 10 + // } + let passL = 8; + this.level = [] + if(!value) { + return callback('瀵嗙爜涓嶈兘涓虹┖') + } + if(value.length < passL) { + return callback(`瀵嗙爜涓嶈兘灏戜簬${passL}浣峘) + } + if(value.length > 16) { + return callback('瀵嗙爜涓嶈兘澶т簬16浣�') + } + //鏍¢獙鏄暟瀛� + const regex1 = /^\d+$/ + // 鏍¢獙瀛楁瘝 + const regex2 = /^[A-Za-z]+$/ + // 鏍¢獙绗﹀彿 + const regex3 = + /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]路~锛丂#锟�%鈥︹��&*锛堬級鈥斺�擻-+={}|銆娿�嬶紵锛氣�溾�濄�愩�戙�侊紱鈥�'锛屻�傘�乚+$/; + if(regex1.test(value)) { + this.level.push('low') + return callback('瀵嗙爜寮哄害杩囦綆') + }else if(regex2.test(value)) { + this.level.push('low') + return callback('瀵嗙爜寮哄害杩囦綆') + }else if(regex3.test(value)) { + this.level.push('low') + return callback('瀵嗙爜寮哄害杩囦綆') + }else if(/^[A-Za-z\d]+$/.test(value)) { + this.level.push('low') + this.level.push('middle') + return callback('瀵嗙爜寮哄害杩囦綆') + }else if( + /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]路~锛丂#锟�%鈥︹��&*锛堬級鈥斺�擻-+={}|銆娿�嬶紵锛氣�溾�濄�愩�戙�侊紱鈥�'锛屻�傘�乗d]+$/.test( + value + ) + ) { + this.level.push('low') + this.level.push('middle') + return callback('瀵嗙爜寮哄害杩囦綆') + }else if( + /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]路~锛丂#锟�%鈥︹��&*锛堬級鈥斺�擻-+={}|銆娿�嬶紵锛氣�溾�濄�愩�戙�侊紱鈥�'锛屻�傘�丄-Za-z]+$/.test( + value + ) + ) { + this.level.push('low') + this.level.push('middle') + return callback('瀵嗙爜寮哄害杩囦綆') + } else if ( + /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]路~锛丂#锟�%鈥︹��&*锛堬級鈥斺�擻-+={}|銆娿�嬶紵锛氣�溾�濄�愩�戙�侊紱鈥�'锛屻�傘�丄-Za-z\d]+$/.test( + value + ) + ) { + this.level.push('low') + this.level.push('middle') + this.level.push('high') + } + return callback() + }; return { + level:[], //瀵嗙爜寮哄害鏁扮粍 // 杞︾墝鍙烽敭鐩樻帶鍒� carNumShow: false, keyValue: '', @@ -254,6 +456,11 @@ type: 3, idCard: '', carNo: '', + truckLength:null, + truckWidth:null, + truckHeight:null, + maximumPayload:null, + totalLoad:null, carImg: '', drivingImg: '', tuiJianMa: '', @@ -263,7 +470,11 @@ isNonCoal: [], isCoalCar: 1, //鏄惁涓虹叅鐐溅杈�(鍙告満浣跨敤瀛楁) 1 鏄� 2 涓嶆槸 inventoryImg: '', - countryNumberCar: 0, //杞﹁締绫诲瀷;鍥戒簲 1锛屽浗鍏� 2 + countryNumberCar: 0, //杞﹁締绫诲瀷;鍥戒簲 1锛屽浗鍏� 2, + certification:'', + freightCompany:'', + axleNum:"", + }, fileList1: [], fileList2: [], @@ -320,23 +531,16 @@ message: '璇疯缃垵濮嬪瘑鐮�', trigger: ['blur', 'change'] }, - { - min: 6, - max: 12, - message: '闀垮害鍦�6-12涓瓧绗︿箣闂�' - } + { + validator: checkPassword, + trigger: 'change' + } ], confirmPassword: [{ - required: true, - message: '璇疯缃垵濮嬪瘑鐮�', - trigger: ['blur', 'change'] - }, - { - min: 6, - max: 12, - message: '闀垮害鍦�6-12涓瓧绗︿箣闂�' - } - ], + required: true, + validator: validatePass, + trigger: "blur" + }], carNo: [{ type: 'string', required: true, @@ -378,6 +582,56 @@ message: '璇蜂笂浼犱粠涓氳祫鏍艰瘉鐓х墖', trigger: ['blur', 'change'] }, + truckLength: { + type: 'number', + required: true, + message: '璇疯緭鍏ヨ溅闀�', + trigger: ['blur', 'change'] + }, + truckWidth: { + type: 'number', + required: true, + message: '璇疯緭鍏ヨ溅瀹�', + trigger: ['blur', 'change'] + }, + truckHeight: { + type: 'number', + required: true, + message: '璇疯緭鍏ヨ溅楂�', + trigger: ['blur', 'change'] + }, + maximumPayload: { + type: 'number', + required: true, + // message: '璇疯緭鍏ユ渶澶ц浇閲�', + validator: maxVstotalFun2, + trigger: ['blur', 'change'] + }, + totalLoad:{ + type: 'number', + required: true, + // message: '璇疯緭鍏ヨ溅璐ф�婚噸', + validator: maxVstotalFun1, + trigger: ['blur', 'change'] + }, + axleNum:{ + type: 'number', + required: false, + message: '璇疯緭鍏ヨ溅杞存暟', + trigger: ['blur', 'change'] + }, + freightCompany:{ + type: 'string', + required: false, + message: '璇疯緭鍏ユ壙杩愬崟浣�', + trigger: ['blur', 'change'] + }, + certification:{ + type: 'string', + required: false, + message: '璇疯緭鍏ヤ粠涓氳祫鏍艰瘉鍙�', + trigger: ['blur', 'change'] + }, }, radiolist1: [{ name: '鍙告満', @@ -415,7 +669,9 @@ watch: { radiovalue1(newV) { if (this.registerFormModel.name || this.registerFormModel.idCard || this.registerFormModel.phone || this - .registerFormModel.carNo || this.registerFormModel.password) { + .registerFormModel.carNo || this.registerFormModel.password || this.registerFormModel.truckLength + || this.registerFormModel.truckWidth || this.registerFormModel.truckHeight || this.registerFormModel.maximumPayload + ||this.registerFormModel.totalLoad ) { if (this.editRoleModelShow == true) { this.editRoleModelShow = false; } else { @@ -437,41 +693,79 @@ }, methods: { ...mapMutations(['changeisUploadimg']), - registerClick() { - if (this.registerFormModel.password == this.registerFormModel.confirmPassword) { - this.$refs.regesterFormRef - .validate() - .then(res => { - console.log(this.registerFormModel); - this.registerClickloading = true; - this.registerFormModel.username = this.registerFormModel.phone; - apiRegister(this.registerFormModel) - .then(res => { - this.registerClickloading = false; - if (res.data.code == 0) { - uni.showToast({ - title: '娉ㄥ唽鎴愬姛,鍗冲皢杩斿洖鐧诲綍椤�', - icon: 'none', - duration: 1000 - }); - setTimeout(() => { - uni.redirectTo({ url: '/pages/login/login' }); - }, 1000); - } else { - this.$u.toast(res.data.msg ? res.data.msg : '娣诲姞澶辫触'); - } - }) - .catch(err => { - console.log('閿欒', err); - }); + inputchange(e, num) { + const inputType =/[^\d.]/g + switch (num) { + case 1: + this.$nextTick(() => { + this.registerFormModel.truckLength = e.replace(inputType, ''); }) - .catch(err => { - console.log('err', err); - this.$u.toast('璇疯鑼冭緭鍏ュ唴瀹�'); - }); - } else { - this.$u.toast('涓ゆ瀵嗙爜涓嶄竴鑷�'); + break; + case 2: + this.$nextTick(() => { + this.registerFormModel.truckWidth = e.replace(inputType, ''); + }) + break; + case 3: + this.$nextTick(() => { + this.registerFormModel.truckHeight = e.replace(inputType, ''); + }) + break; + case 4: + this.$nextTick(() => { + this.registerFormModel.maximumPayload = e.replace(inputType, ''); + }) + break; + case 5: + this.$nextTick(() => { + this.registerFormModel.totalLoad = e.replace(inputType, ''); + }) + + break; + case 6: + this.$nextTick(() => { + this.registerFormModel.axleNum = e.replace(inputType, ''); + }) } + }, + registerClick() { + this.$refs.regesterFormRef + .validate() + .then(res => { + if(this.radiovalue1 === '鍙告満' && this.registerFormModel.totalLoad<=this.registerFormModel.maximumPayload){ + uni.showToast({ + title: '杞﹁揣鎬婚噸闇�瑕佸ぇ浜庢渶澶ц浇閲�', + icon: 'none', + duration: 2000 + }); + }else{ + this.registerClickloading = true; + this.registerFormModel.username = this.registerFormModel.phone; + apiRegister(this.registerFormModel) + .then(res => { + this.registerClickloading = false; + if (res.data.code == 0) { + uni.showToast({ + title: '娉ㄥ唽鎴愬姛,鍗冲皢杩斿洖鐧诲綍椤�', + icon: 'none', + duration: 1000 + }); + setTimeout(() => { + uni.redirectTo({ url: '/pages/login/login' }); + }, 1000); + } else { + this.$u.toast(res.data.msg ? res.data.msg : '娣诲姞澶辫触'); + } + }) + .catch(err => { + console.log('閿欒', err); + }); + } + }) + .catch(err => { + console.log('err', err); + this.$u.toast('璇疯鑼冭緭鍏ュ唴瀹�'); + }); }, // 鍗曢�夋浜嬩欢 groupChange(e) {}, @@ -481,15 +775,15 @@ this.registerFormModel.idCard == '' && this.registerFormModel.phone == '' && this.registerFormModel.carNo == '' && - this.registerFormModel.password == '' + this.registerFormModel.password == '' && + this.registerFormModel.truckLength == '' && + this.registerFormModel.truckWidth == '' && + this.registerFormModel.truckHeight == '' && + this.registerFormModel.maximumPayload == '' && + this.registerFormModel.totalLoad == '' ) { this.$refs.regesterFormRef.clearValidate(); this.beforeChangeValue = e; - } - }, - jiaoYanPassword() { - if (this.registerFormModel.password != this.registerFormModel.confirmPassword) { - this.$u.toast('涓ゆ瀵嗙爜涓嶄竴鑷�'); } }, // 涓婁紶鍥剧墖鏂规硶 @@ -618,4 +912,43 @@ } } } -</style> \ No newline at end of file + .intensity { + width: 100%; + margin-top: 10rpx; + .psdText { + font-size: 14px; + margin-right: 10px; + } + + .line { + display: inline-block; + width: 70rpx; + height: 8rpx; + background: #d8d8d8; + border-radius: 6rpx; + margin-right: 16rpx; + + &.low { + background: #f4664a; + } + + &.middle { + background: #ffb700; + } + + &.high { + background: #2cbb79; + } + } + + .level { + margin: 0 32rpx 0 16rpx; + } + + .warningtext { + color: #5a5a5a; + font-size: 24rpx; + margin-top: 10rpx; + } + } +</style> -- Gitblit v1.9.1