| | |
| | | <view class="registerForm"> |
| | | <u--form :rules="rules" |
| | | :model="registerFormModel" |
| | | ref="regesterFormRef"> |
| | | <u-form-item labelWidth="20%" |
| | | ref="regesterFormRef" |
| | | :labelStyle="labelStyle"> |
| | | <u-form-item labelWidth="30%" |
| | | label="选择身份" |
| | | borderBottom |
| | | ref="roleRef" |
| | |
| | | required> |
| | | <u--input v-model="registerFormModel.name" |
| | | placeholder="请输入内容" |
| | | fontSize='40' |
| | | clearable></u--input> |
| | | </u-form-item> |
| | | <u-form-item prop="idCard" |
| | |
| | | required> |
| | | <u--input v-model="registerFormModel.idCard" |
| | | placeholder="请输入内容" |
| | | fontSize='40' |
| | | clearable></u--input> |
| | | </u-form-item> |
| | | <u-form-item prop="phone" |
| | |
| | | borderBottom |
| | | required> |
| | | <u--input v-model="registerFormModel.phone" |
| | | fontSize='40' |
| | | placeholder="请输入内容" |
| | | clearable></u--input> |
| | | </u-form-item> |
| | |
| | | required> |
| | | <u--input v-model="registerFormModel.password" |
| | | placeholder="请输入内容" |
| | | fontSize='40' |
| | | 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="30%" |
| | | borderBottom |
| | | required> |
| | | <u--input v-model="registerFormModel.confirmPassword" |
| | | placeholder="请输入内容" |
| | | fontSize='40' |
| | | password |
| | | clearable |
| | | @blur="jiaoYanPassword"></u--input> |
| | |
| | | required> |
| | | <u--input v-model="registerFormModel.carNo" |
| | | placeholder="请输入内容" |
| | | fontSize='40' |
| | | clearable></u--input> |
| | | </u-form-item> |
| | | <u-form-item labelWidth="20%" |
| | | <u-form-item labelWidth="30%" |
| | | label="车牌颜色" |
| | | borderBottom |
| | | v-if="radiovalue1 == '司机'" |
| | |
| | | width="250" |
| | | height="150" |
| | | :previewFullImage="true"> |
| | | <!-- <image src="https://cdn.uviewui.com/uview/demo/upload/positive.png" |
| | | mode="widthFix" style="width: 250px;height: 150px;"></image> --> |
| | | </u-upload> |
| | | </u-form-item> |
| | | <u-form-item prop="bodyofcarJpg" |
| | | label="车头、车尾、车身、照片" |
| | | labelWidth="20%" |
| | | borderBottom |
| | | v-if="radiovalue1 == '司机'" |
| | | required |
| | | @click="beforeRead"> |
| | | <u-upload :fileList="fileList3" |
| | | deletable |
| | | @afterRead="afterRead" |
| | | @delete="deletePic" |
| | | name="3" |
| | | multiple |
| | | :maxCount="3" |
| | | width="250" |
| | | height="150" |
| | | :previewFullImage="true"> |
| | | </u-upload> |
| | | </u-form-item> |
| | | <u-form-item prop="drivingImg" |
| | |
| | | width="250" |
| | | height="150" |
| | | :previewFullImage="true"> |
| | | <!-- <image src="https://cdn.uviewui.com/uview/demo/upload/positive.png" |
| | | mode="widthFix" style="width: 250px;height: 150px;"></image> --> |
| | | </u-upload> |
| | | </u-form-item> |
| | | <u-form-item label="推荐人账号" |
| | | labelWidth="25%" |
| | | labelWidth="30%" |
| | | borderBottom> |
| | | <u--input v-model="registerFormModel.tuiJianMa" |
| | | placeholder="请输入内容" |
| | | fontSize='40' |
| | | clearable></u--input> |
| | | </u-form-item> |
| | | </u--form> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { apiRegister } from '@/api/publicInterface.js'; |
| | | import { BaseUrl } from '@/api/publicInterface.js'; |
| | | import { apiRegister, BaseUrl } from '@/api/publicInterface.js'; |
| | | import { mapMutations } from 'vuex'; |
| | | export default { |
| | | // onLoad: function() { |
| | |
| | | // 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发 |
| | | onReady() { |
| | | this.$refs.regesterFormRef.setRules(this.rules); |
| | | // this.$refs.regesterFormRef.validate().then(res => {}).catch(err => { |
| | | // console.log(err); |
| | | // }) |
| | | }, |
| | | onLoad(params) { |
| | | if (params) { |
| | | this.registerFormModel.openId = params.code; |
| | | console.log('页面加载', this.registerFormModel.openId); |
| | | } |
| | | }, |
| | | 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( |
| | | /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、A-Za-z]+$/.test( |
| | | value |
| | | ) |
| | | ) { |
| | | this.level.push('low') |
| | | this.level.push('middle') |
| | | return callback('密码强度过低,请按下方密码规则输入') |
| | | } else if ( |
| | | /^[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、A-Za-z\d]+$/.test( |
| | | value |
| | | ) |
| | | ) { |
| | | this.level.push('low') |
| | | this.level.push('middle') |
| | | this.level.push('high') |
| | | } |
| | | return callback() |
| | | }; |
| | | return { |
| | | level:[], //密码强度数组 |
| | | labelStyle: { |
| | | fontSize: '36rpx' |
| | | }, |
| | | // 车牌号键盘控制 |
| | | carNumShow: false, |
| | | keyValue: '', |
| | |
| | | drivingImg: '', |
| | | tuiJianMa: '', |
| | | confirmPassword: '', |
| | | vehicleColour: '' |
| | | vehicleColour: '', |
| | | bodyofcarJpg: '' |
| | | }, |
| | | fileList1: [], |
| | | fileList2: [], |
| | | fileList3: [], |
| | | carBody: [], |
| | | rules: { |
| | | name: { |
| | | type: 'string', |
| | |
| | | ], |
| | | password: [{ |
| | | required: true, |
| | | message: '请设置初始密码', |
| | | message: '请设置密码', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | { |
| | | min: 6, |
| | | max: 12, |
| | | message: '长度在6-12个字符之间' |
| | | } |
| | | { |
| | | validator: checkPassword, |
| | | trigger: 'change' |
| | | } |
| | | ], |
| | | confirmPassword: [{ |
| | | required: true, |
| | | message: '请设置初始密码', |
| | | validator: validatePass, |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | { |
| | | min: 6, |
| | | max: 12, |
| | | message: '长度在6-12个字符之间' |
| | | } |
| | | ], |
| | | carNo: [{ |
| | |
| | | message: '请上传车辆图片', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | bodyofcarJpg: { |
| | | type: 'string', |
| | | required: true, |
| | | message: '请上传车辆图片', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | drivingImg: { |
| | | type: 'string', |
| | | required: true, |
| | |
| | | radiovalue1: '货代', |
| | | radiolist2: [{ |
| | | name: '黄色', |
| | | value: 'huangse' |
| | | value: '黄色' |
| | | }, |
| | | { |
| | | name: '绿色', |
| | | disabled: 'lvse' |
| | | name: '黄绿色', |
| | | value: '黄绿色' |
| | | }, |
| | | { |
| | | name: '蓝色', |
| | | value: '蓝色' |
| | | } |
| | | ], |
| | | radiovalue2: '黄色', |
| | | beforeChangeValue: '', |
| | | // 更换角色弹框 |
| | | editRoleModelShow: false, |
| | |
| | | } else if (num == 2) { |
| | | this.registerFormModel.drivingImg = JSON.parse(res.data).data.url; |
| | | resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`); |
| | | } else if (num == 3) { |
| | | let imageUrl = JSON.parse(res.data).data.url |
| | | this.carBody.push(imageUrl) |
| | | this.registerFormModel.bodyofcarJpg = this.carBody.join(',') |
| | | resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`); |
| | | } |
| | | } |
| | | }); |
| | |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | .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> |