From 983619ef25f84e095bcbf6f4996b0cb58210c73b Mon Sep 17 00:00:00 2001 From: 819527061@qq.com <123456> Date: 星期四, 08 八月 2024 18:25:24 +0800 Subject: [PATCH] 质检页面 --- pages/register/register.vue | 451 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 339 insertions(+), 112 deletions(-) diff --git a/pages/register/register.vue b/pages/register/register.vue index f298b23..2648e14 100644 --- a/pages/register/register.vue +++ b/pages/register/register.vue @@ -24,8 +24,29 @@ @change="radioChange"></u-radio> </u-radio-group> </u-form-item> + <u-form-item labelWidth="20%" + label="澶氳韩浠借瘉" + borderBottom + ref="roleRef" + required + v-if="radiovalue1 == '鍙告満'"> + <u-radio-group v-model="radiovalue2" + placement="row" + @change="groupChange" + size="30" + shape="circle" + iconSize="20"> + <u-radio labelSize="14px" + size="20px" + v-for="(item, index) in radiolist3" + :key="index" + :label="item.name" + :name="item.value" + @change="radioChange2"></u-radio> + </u-radio-group> + </u-form-item> <u-form-item prop="name" - label="濮撳悕" + :label="radiovalue1 == '鍙告満'?'濮撳悕':'鎵胯繍鍟嗗悕绉�'" labelWidth="20%" borderBottom required> @@ -33,21 +54,52 @@ placeholder="璇疯緭鍏ュ唴瀹�" clearable></u--input> </u-form-item> + <view style="margin:0 30vw" v-if="radiovalue2 == 1"> + <u-button text="澧炲姞" + type="primary" + @click="addData" + ></u-button> + </view> + <uni-table + border + id="table-box" + emptyText="鏆傛棤鏇村鏁版嵁" v-if="radiovalue2 == 1"> + <uni-tr> + <uni-th align="center" >韬唤璇佸彿</uni-th> + <uni-th align="center">鎿嶄綔</uni-th> + </uni-tr> + <uni-tr v-for="(subItem, index) in tablist" :key="index"> + <uni-td align="center"> + <u--input + placeholder="璇疯緭鍏ヨ韩浠借瘉鍙�" + v-model="subItem.idCard" + ></u--input> + </uni-td> + <uni-td align="right"> + <view> + <u-button text="鍒犻櫎" + type="primary" + @click="delData(index)"></u-button> + </view></uni-td> + </uni-tr> + </uni-table> <u-form-item prop="idCard" label="韬唤璇�" labelWidth="20%" borderBottom - required> + required + v-if="radiovalue2 == 0"> <u--input v-model="registerFormModel.idCard" placeholder="璇疯緭鍏ュ唴瀹�" clearable></u--input> </u-form-item> <u-form-item prop="cardImg1" - label="韬唤璇佹闈�" + :label="radiovalue1 == '鍙告満'?'韬唤璇佹闈�':'韬唤璇佹垨钀ヤ笟鎵х収鐓х墖'" labelWidth="20%" borderBottom required - @click="beforeRead"> + @click="beforeRead" + v-if="radiovalue2 == 0"> <u-upload :fileList="fileList5" deletable @afterRead="afterRead" @@ -61,11 +113,12 @@ </u-upload> </u-form-item> <u-form-item prop="cardImg2" - label="韬唤璇佸弽闈�" + :label="radiovalue1 == '鍙告満'?'韬唤璇佸弽闈�':'韬唤璇佹垨钀ヤ笟鎵х収鐓х墖'" labelWidth="20%" borderBottom required - @click="beforeRead"> + @click="beforeRead" + v-if="radiovalue2 == 0"> <u-upload :fileList="fileList6" deletable @afterRead="afterRead" @@ -81,8 +134,9 @@ <u-form-item prop="expirationTimeIdcard" label="韬唤璇佽繃鏈熸椂闂�" labelWidth="20%" - borderBottom> - <uni-datetime-picker v-model="registerFormModel.expirationTimeIdcard" type="datetime" :start="minDate" /> + borderBottom + v-if="radiovalue2 == 0"> + <uni-datetime-picker v-model="registerFormModel.expirationTimeIdcard" type="date" :start="minDate" /> </u-form-item> <u-form-item prop="phone" label="鎵嬫満鍙�" @@ -103,6 +157,21 @@ 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%" @@ -128,6 +197,7 @@ label="杞﹁締绫诲瀷" borderBottom ref="roleRef" + prop='carType' v-if="radiovalue1 == '鍙告満'"> <niceui-data-select-input v-model="registerFormModel.carType" :localdata="radiolist2" @@ -179,7 +249,7 @@ labelWidth="20%" borderBottom v-if="radiovalue1 == '鍙告満'"> - <uni-datetime-picker v-model="registerFormModel.expirationTimeDriving" type="datetime" :start="minDate" /> + <uni-datetime-picker v-model="registerFormModel.expirationTimeDriving" type="date" :start="minDate" /> </u-form-item> <u-form-item prop="driverImg" label="椹鹃┒璇�" @@ -205,14 +275,13 @@ labelWidth="20%" borderBottom v-if="radiovalue1 == '鍙告満'"> - <uni-datetime-picker v-model="registerFormModel.expirationTimeDriver" type="datetime" :start="minDate" /> + <uni-datetime-picker v-model="registerFormModel.expirationTimeDriver" type="date" :start="minDate" /> </u-form-item> <u-form-item prop="tradeQualificationImg" label="浠庝笟璧勬牸璇�" labelWidth="24%" borderBottom v-if="radiovalue1 == '鍙告満'" - required @click="beforeRead"> <u-upload :fileList="fileList4" deletable @@ -234,25 +303,11 @@ labelWidth="20%" borderBottom v-if="radiovalue1 == '鍙告満'"> - <uni-datetime-picker v-model="registerFormModel.expirationTimeTradequalification" type="datetime" :start="minDate" /> - </u-form-item> - <u-form-item label="鏄惁闈炵叅杞﹁締" - v-if="radiovalue1 == '鍙告満'" - labelWidth="30%" - borderBottom - prop="isNonCoal"> - <u-checkbox-group v-model="registerFormModel.isNonCoal" - placement="row" - size="40" - @change="isNonCoalChange"> - <u-checkbox name="鏄�" - label-size="30"> - </u-checkbox> - </u-checkbox-group> + <uni-datetime-picker v-model="registerFormModel.expirationTimeTradequalification" type="date" :start="minDate" /> </u-form-item> <u-form-item labelWidth="20%" v-if="radiovalue1 == '鍙告満'" - label="杞﹁締绫诲瀷" + label="鐜繚绫诲瀷" borderBottom prop="countryNumberCar"> <u-radio-group v-model="registerFormModel.countryNumberCar" @@ -301,7 +356,84 @@ } }, data() { + const validatePass = (rule, value, callback) => { + if (this.registerFormModel.confirmPassword !== "") { + if (value !== this.registerFormModel.password) { + callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!")); + } else { + callback(); + } + } else { + callback(); + } + }; + 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 { + tablist:[{idCard:""},{idCard:""}], + level:[], //瀵嗙爜寮哄害鏁扮粍 minDate: this.getToday(), // 杞︾墝鍙烽敭鐩樻帶鍒� carNumShow: false, @@ -321,10 +453,8 @@ confirmPassword: '', tradeQualificationImg: '', driverImg: '', - isNonCoal: [], - isCoalCar: 1, //鏄惁涓虹叅鐐溅杈�(鍙告満浣跨敤瀛楁) 1 鏄� 2 涓嶆槸 - countryNumberCar: 0, //杞﹁締绫诲瀷;鍥戒簲 1锛屽浗鍏� 2 - carType:0 + countryNumberCar: 2, //鐜繚绫诲瀷;鍥戒簲 1锛屽浗鍏� 2 + carType:null, }, fileList1: [], fileList2: [], @@ -348,12 +478,22 @@ expirationTimeTradequalification: { required: false, }, - name: { + name: [{ type: 'string', required: true, message: '璇峰~鍐欏鍚�', trigger: ['blur', 'change'] - }, + },{ + pattern: /^[\u4e00-\u9fa5]{1,6}$/, //闄愬埗闀垮害鏈�澶氫负 6 浣� + message: '濮撳悕鍙兘鏄腑鏂�', + trigger: ['blur', 'change'] + }], + carType:[{ + type: 'number', + required: true, + message: '璇烽�夋嫨杞﹁締绫诲瀷', + trigger: ['blur', 'change'] + }], idCard: [{ type: 'string', required: true, @@ -386,27 +526,19 @@ } ], password: [{ - required: true, - message: '璇疯缃垵濮嬪瘑鐮�', - trigger: ['blur', 'change'] - }, - { - min: 6, - max: 12, - message: '闀垮害鍦�6-12涓瓧绗︿箣闂�' - } - ], + required: true, + message: '璇疯缃垵濮嬪瘑鐮�', + trigger: ['blur', 'change'] + }, + { + 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, @@ -481,6 +613,17 @@ value:4 } ], + radiolist3: [{ + name: '鍚�', + disabled: false, + value:0 + }, + { + name: '鏄�', + disabled: false, + value:1 + } + ], countryNumberCarList: [{ name: 1, label: '鍥戒簲', @@ -495,6 +638,7 @@ } ], radiovalue1: '鍙告満', + radiovalue2:0, beforeChangeValue: '', // 鏇存崲瑙掕壊寮规 editRoleModelShow: false, @@ -517,6 +661,7 @@ } switch (newV) { case '璐т唬': + this.radiovalue2 = 0; this.registerFormModel.type = 2; break; case '鍙告満': @@ -527,6 +672,9 @@ } return; }, + radiovalue2(newV){ + + } }, methods: { ...mapMutations(['changeisUploadimg']), @@ -535,74 +683,107 @@ let year = now.getFullYear(); let month = this.padStart(now.getMonth() + 1); // 鏈堜唤鏄粠0寮�濮嬬殑 let day = this.padStart(now.getDate()); - let hour = this.padStart(now.getHours()); - let minute = this.padStart(now.getMinutes()); - let second = this.padStart(now.getSeconds()); - console.log(`${year}-${month}-${day} ${hour}:${minute}:${second}`) - return `${year}-${month}-${day} ${hour}:${minute}:${second}`; + return `${year}-${month}-${day}`; }, padStart(value) { return value.toString().padStart(2, '0'); }, productcarTypeChange(e){ - console.log(this.registerFormModel.carType,this.radiolist2.find(v => v.value === e).value) this.registerFormModel.carType = this.radiolist2.find(v => v.value === e).value }, registerClick() { - if (this.registerFormModel.password == this.registerFormModel.confirmPassword) { - if(this.registerFormModel.carType==3&&!this.registerFormModel.tradeQualificationImg||this.registerFormModel.carType==4&&!this.registerFormModel.tradeQualificationImg){ + if(this.registerFormModel.carType==3&&!this.registerFormModel.tradeQualificationImg||this.registerFormModel.carType==4&&!this.registerFormModel.tradeQualificationImg){ + uni.showToast({ + title: '璇蜂笂浼犱粠涓氳祫鏍艰瘉锛�', + icon: 'error', + duration: 2000 + }); + }else{ + this.$refs.regesterFormRef + .validate() + .then(res => { + this.registerClickloading = true; + this.registerFormModel.username = this.registerFormModel.phone; + if(this.radiovalue2 == 0){ + this.registerFormModel.idCardImg = this.registerFormModel.cardImg1+","+this.registerFormModel.cardImg2; + }else{ + this.registerFormModel.expirationTimeIdcard=null + } + if(this.registerFormModel.expirationTimeDriver){ + this.registerFormModel.expirationTimeDriver=this.registerFormModel.expirationTimeDriver.slice(0,16) + } + if(this.registerFormModel.expirationTimeDriving){ + this.registerFormModel.expirationTimeDriving=this.registerFormModel.expirationTimeDriving.slice(0,16) + } + if(this.registerFormModel.expirationTimeIdcard){ + this.registerFormModel.expirationTimeIdcard=this.registerFormModel.expirationTimeIdcard.slice(0,16) + } + if(this.registerFormModel.expirationTimeTradequalification){ + this.registerFormModel.expirationTimeTradequalification=this.registerFormModel.expirationTimeTradequalification.slice(0,16) + } + let idcardtext=/^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/ + let submit=true + if(this.radiovalue2 == 1){ + const uniqueSampleTypeIds = new Set(this.tablist.map(item => item.idCard)); + const hasDuplicateSampleTypeId = this.tablist.length !== uniqueSampleTypeIds.size; + this.tablist.map(item=>{ + if(!item.idCard){ + uni.showToast({ + title: `璇峰~鍐欒韩浠借瘉锛乣, + icon: 'error', + duration: 2000 + }); + submit=false + }else if(!idcardtext.test(item.idCard)){ + uni.showToast({ + title: `璇锋楠岃韩浠借瘉锛乣, + icon: 'error', + duration: 2000 + }); + submit=false + } + }) + if(hasDuplicateSampleTypeId){ uni.showToast({ - title: '璇蜂笂浼犱粠涓氳祫鏍艰瘉锛�', + title: `韬唤璇佷笉鑳介噸澶嶏紒`, icon: 'error', duration: 2000 }); - }else{ - this.$refs.regesterFormRef - .validate() - .then(res => { - this.registerClickloading = true; - this.registerFormModel.username = this.registerFormModel.phone; - this.registerFormModel.idCardImg = this.registerFormModel.cardImg1+","+this.registerFormModel.cardImg2; - if(this.registerFormModel.expirationTimeDriver){ - this.registerFormModel.expirationTimeDriver=this.registerFormModel.expirationTimeDriver.slice(0,16) - } - if(this.registerFormModel.expirationTimeDriving){ - this.registerFormModel.expirationTimeDriving=this.registerFormModel.expirationTimeDriving.slice(0,16) - } - if(this.registerFormModel.expirationTimeIdcard){ - this.registerFormModel.expirationTimeIdcard=this.registerFormModel.expirationTimeIdcard.slice(0,16) - } - if(this.registerFormModel.expirationTimeTradequalification){ - this.registerFormModel.expirationTimeTradequalification=this.registerFormModel.expirationTimeTradequalification.slice(0,16) - } - this.$reqPost('registerDriver', this.registerFormModel, 'json') - .then(res => { - this.registerClickloading = false; - if (res.code == 0) { - uni.showToast({ - title: '娉ㄥ唽鎴愬姛,鍗冲皢杩斿洖鐧诲綍椤�', - icon: 'none', - duration: 1000 - }); - setTimeout(() => { - uni.redirectTo({ url: '/pages/login/login' }); - }, 1000); - } else { - this.$u.toast(res.msg ? res.msg : '娣诲姞澶辫触'); - } - }) - .catch(err => { - console.log('閿欒', err); - }); - }) - .catch(err => { - console.log('err', err); - this.$u.toast('璇疯鑼冭緭鍏ュ唴瀹�'); - }); - } - } else { - this.$u.toast('涓ゆ瀵嗙爜涓嶄竴鑷�'); + submit=false + } + if(submit){ + this.registerFormModel.idCard=this.tablist.map(item=>{ + return item.idCard + }).join(',') + } } + if(submit){ + this.$reqPost('registerDriver', this.registerFormModel, 'json') + .then(res => { + this.registerClickloading = false; + if (res.code == 0) { + uni.showToast({ + title: '娉ㄥ唽鎴愬姛,鍗冲皢杩斿洖鐧诲綍椤�', + icon: 'none', + duration: 1000 + }); + setTimeout(() => { + uni.redirectTo({ url: '/pages/login/login' }); + }, 1000); + } else { + this.$u.toast(res.msg ? res.msg : '娣诲姞澶辫触'); + } + }) + .catch(err => { + console.log('閿欒', err); + }); + } + }) + .catch(err => { + console.log('err', err); + this.$u.toast('璇疯鑼冭緭鍏ュ唴瀹�'); + }); + } }, // 鍗曢�夋浜嬩欢 groupChange(e) {}, @@ -616,6 +797,16 @@ ) { this.$refs.regesterFormRef.clearValidate(); this.beforeChangeValue = e; + } + }, + radioChange2(e) { + }, + addData(){ + this.tablist.push({idCard:""}) + }, + delData(e){ + if(this.tablist.length>2){ + this.tablist.splice(e,1) } }, jiaoYanPassword() { @@ -712,9 +903,6 @@ this.$nextTick(() => { this.editRoleModelShow = false; }); - }, - isNonCoalChange() { - this.registerFormModel.isCoalCar = this.registerFormModel.isNonCoal.length !== 0 ? 1 : 2 } } }; @@ -753,4 +941,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