| | |
| | | <template> |
| | | <view class="register"> |
| | | <!-- <home-species title="注册"></home-species> --> |
| | | <view class="registerForm"> |
| | | <u--form :rules="rules" :model="registerFormModel" ref="regesterFormRef"> |
| | | <u-form-item labelWidth="20%" label="选择身份" borderBottom ref="roleRef" required> |
| | |
| | | </u-radio-group> |
| | | </u-form-item> |
| | | <u-form-item prop="name" label="姓名" labelWidth="20%" borderBottom required> |
| | | <u--input v-model="registerFormModel.name" placeholder="请输入内容"></u--input> |
| | | <u--input v-model="registerFormModel.name" placeholder="请输入内容" clearable></u--input> |
| | | </u-form-item> |
| | | <u-form-item prop="idCard" label="身份证" labelWidth="20%" borderBottom required> |
| | | <u--input v-model="registerFormModel.idCard" placeholder="请输入内容"></u--input> |
| | | <u--input v-model="registerFormModel.idCard" placeholder="请输入内容" clearable></u--input> |
| | | </u-form-item> |
| | | <u-form-item prop="phone" label="手机号" labelWidth="20%" borderBottom required> |
| | | <u--input v-model="registerFormModel.phone" placeholder="请输入内容"></u--input> |
| | | <u--input v-model="registerFormModel.phone" placeholder="请输入内容" clearable></u--input> |
| | | </u-form-item> |
| | | <u-form-item prop="password" label="密码" labelWidth="20%" borderBottom required> |
| | | <u--input v-model="registerFormModel.password" placeholder="请输入内容"></u--input> |
| | | <u--input v-model="registerFormModel.password" placeholder="请输入内容" password clearable></u--input> |
| | | </u-form-item> |
| | | <u-form-item prop="confirmPassword" label="确认密码" labelWidth="20%" borderBottom required> |
| | | <u--input v-model="registerFormModel.confirmPassword" placeholder="请输入内容" password clearable @blur="jiaoYanPassword"></u--input> |
| | | </u-form-item> |
| | | <u-form-item prop="carNo" label="车牌号" labelWidth="20%" borderBottom v-if="radiovalue1 == '司机'" required> |
| | | <u--input v-model="registerFormModel.carNo" placeholder="请输入内容"></u--input> |
| | | <u--input v-model="registerFormModel.carNo" placeholder="请输入内容" clearable></u--input> |
| | | </u-form-item> |
| | | <u-form-item prop="carPhoto" label="车辆照片" labelWidth="20%" borderBottom v-if="radiovalue1 == '司机'" required> |
| | | <u-upload :fileList="fileList6" @afterRead="afterRead" @delete="deletePic" name="6" multiple :maxCount="1" width="250" height="150"> |
| | | <u-form-item prop="carImg" label="车辆照片" labelWidth="20%" borderBottom v-if="radiovalue1 == '司机'" required @click="beforeRead"> |
| | | <u-upload |
| | | :fileList="fileList1" |
| | | deletable |
| | | @afterRead="afterRead" |
| | | @delete="deletePic" |
| | | name="1" |
| | | multiple |
| | | :maxCount="1" |
| | | 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="drivingLicense" label="行驶证" labelWidth="20%" borderBottom v-if="radiovalue1 == '司机'" required> |
| | | <u-upload :fileList="fileList5" @afterRead="afterRead" @delete="deletePic" name="5" multiple :maxCount="1" width="250" height="150"> |
| | | <u-form-item prop="drivingImg" label="行驶证" labelWidth="20%" borderBottom v-if="radiovalue1 == '司机'" required @click="beforeRead"> |
| | | <u-upload |
| | | :fileList="fileList2" |
| | | deletable |
| | | @afterRead="afterRead" |
| | | @delete="deletePic" |
| | | name="2" |
| | | multiple |
| | | :maxCount="1" |
| | | 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%" borderBottom ><u--input v-model="registerFormModel.tuiJianMa" placeholder="请输入内容"></u--input></u-form-item> |
| | | <u-form-item label="推荐人账号" labelWidth="25%" borderBottom> |
| | | <u--input v-model="registerFormModel.tuiJianMa" placeholder="请输入内容" clearable></u--input> |
| | | </u-form-item> |
| | | </u--form> |
| | | </view> |
| | | <view class="roleModel"> |
| | | <u-modal :show="editRoleModelShow" :title="title" :content="content" :showCancelButton="true" @confirm="roleConfirm" @cancel="roleCancel"></u-modal> |
| | | </view> |
| | | <view class="registerBtn"><u-button text="注册" type="primary" @click="registerClick"></u-button></view> |
| | | |
| | | <!-- <view class="utils"> |
| | | <text @click="callingIn">打电话</text> |
| | | <!-- 图片预览弹出框 --> |
| | | <!-- <view class="previewImage-container"> |
| | | <u-popup :show="previewImageShow" mode="center" @close="previewImageClose" @open="previewImageOpen"> |
| | | <u--image :src="previewImageSrc != null ? BaseUrl + previewImageSrc : ''" width="400px" height="400px"></u--image> |
| | | </u-popup> |
| | | </view> --> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | // import HomeSpecies from '@/components/home-species/HomeSpecies.vue'; |
| | | import { apiRegister } from '@/api/publicInterface.js'; |
| | | import { BaseUrl } from '@/api/publicInterface.js'; |
| | | import { mapMutations } from 'vuex'; |
| | | export default { |
| | | // onLoad: function() { |
| | | // // 查看是否授权 |
| | |
| | | // } |
| | | // }) |
| | | // }, |
| | | components: { |
| | | // HomeSpecies |
| | | }, |
| | | // 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发 |
| | | onReady() { |
| | | // this.$refs.regesterFormRef.setRules(this.rules); |
| | | this.$refs.regesterFormRef.setRules(this.rules); |
| | | // this.$refs.regesterFormRef.validate().then(res => {}).catch(err => { |
| | | // console.log(err); |
| | | // }) |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | // 车牌号键盘控制 |
| | | carNumShow: false, |
| | | keyValue: '', |
| | | registerFormModel: { |
| | | phone: '', |
| | | password: '', |
| | | name: '', |
| | | username:'', |
| | | username: '', |
| | | openId: '', |
| | | type: 2, |
| | | idCard: '', |
| | | carNo: '', |
| | | carImg: '', |
| | | drivingImg: '', |
| | | tuiJianMa: '' |
| | | tuiJianMa: '', |
| | | confirmPassword: '' |
| | | }, |
| | | fileList1: [], |
| | | fileList2: [], |
| | | rules: { |
| | | name: { |
| | | type: 'string', |
| | |
| | | message: '请填写姓名', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | idCard: { |
| | | 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: '此为必填字段', |
| | | message: '此项为必填项', |
| | | // blur和change事件触发检验 |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | |
| | | min: 11, |
| | | max: 11, |
| | | message: '请输入合法手机号' |
| | | }, |
| | | { |
| | | validator: (rule, value, callback) => { |
| | | return uni.$u.test.mobile(value); |
| | | }, |
| | | message: '手机号码不正确', |
| | | trigger: ['change', 'blur'] |
| | | } |
| | | ], |
| | | password: [ |
| | |
| | | }, |
| | | { |
| | | min: 6, |
| | | max: 8, |
| | | message: '长度在6-8个字符之间' |
| | | max: 12, |
| | | message: '长度在6-12个字符之间' |
| | | } |
| | | ], |
| | | confirmPassword: [ |
| | | { |
| | | required: true, |
| | | message: '请设置初始密码', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | { |
| | | min: 6, |
| | | max: 12, |
| | | message: '长度在6-12个字符之间' |
| | | } |
| | | ], |
| | | carNo: [ |
| | |
| | | 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'] |
| | | } |
| | | ], |
| | | // carPhoto: { |
| | | // type: 'string', |
| | | // required: true, |
| | | // message: '请上传车辆图片', |
| | | // trigger: ['blur', 'change'] |
| | | // }, |
| | | // drivingLicense: { |
| | | // type: 'string', |
| | | // required: true, |
| | | // message: '请上传行驶证照片', |
| | | // trigger: ['blur', 'change'] |
| | | // } |
| | | carImg: { |
| | | type: 'string', |
| | | required: true, |
| | | message: '请上传车辆图片', |
| | | trigger: ['blur', 'change'] |
| | | }, |
| | | drivingImg: { |
| | | type: 'string', |
| | | required: true, |
| | | message: '请上传行驶证照片', |
| | | trigger: ['blur', 'change'] |
| | | } |
| | | }, |
| | | // 基本案列数据 |
| | | radiolist1: [ |
| | |
| | | // u-radio-group的v-model绑定的值如果设置为某个radio的name,就会被默认选中 |
| | | radiovalue1: '货代', |
| | | beforeChangeValue: '', |
| | | fileList5: [], |
| | | fileList6: [], |
| | | // 更换角色弹框 |
| | | editRoleModelShow: false, |
| | | title: '提示', |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | ...mapMutations(['changeisUploadimg']), |
| | | registerClick() { |
| | | this.$refs.regesterFormRef |
| | | .validate() |
| | | .then(res => { |
| | | console.log(this.registerFormModel); |
| | | this.registerFormModel.username = this.registerFormModel.name |
| | | apiRegister(this.registerFormModel) |
| | | .then(res => { |
| | | console.log(res); |
| | | 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) |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | console.log('错误', err); |
| | | }); |
| | | }) |
| | | .catch(err => { |
| | | console.log('err', err); |
| | | uni.$u.toast('效验失败'); |
| | | }); |
| | | if (this.registerFormModel.password == this.registerFormModel.confirmPassword) { |
| | | this.$refs.regesterFormRef |
| | | .validate() |
| | | .then(res => { |
| | | console.log(this.registerFormModel); |
| | | this.registerFormModel.username = this.registerFormModel.phone; |
| | | apiRegister(this.registerFormModel) |
| | | .then(res => { |
| | | 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.msg ? res.msg : '添加失败'); |
| | | } |
| | | }) |
| | | .catch(err => { |
| | | console.log('错误', err); |
| | | }); |
| | | }) |
| | | .catch(err => { |
| | | console.log('err', err); |
| | | this.$u.toast('请规范输入内容'); |
| | | }); |
| | | } else { |
| | | this.$u.toast('两次密码不一致'); |
| | | } |
| | | }, |
| | | // 音视频通话 |
| | | // callingIn() { |
| | | // uni.navigateTo({ |
| | | // url: '/pages/calling-index/calling-index' |
| | | // }); |
| | | // }, |
| | | // 单选框事件 |
| | | groupChange(e) { |
| | | console.log('单选框小组', e); |
| | | }, |
| | | groupChange(e) {}, |
| | | radioChange(e) { |
| | | console.log('单选框', e); |
| | | if ( |
| | | this.registerFormModel.name == '' && |
| | | this.registerFormModel.idCard == '' && |
| | |
| | | this.registerFormModel.carNo == '' && |
| | | this.registerFormModel.password == '' |
| | | ) { |
| | | console.log('变了'); |
| | | this.$refs.regesterFormRef.clearValidate(); |
| | | this.beforeChangeValue = e; |
| | | } |
| | | }, |
| | | jiaoYanPassword() { |
| | | if (this.registerFormModel.password != this.registerFormModel.confirmPassword) { |
| | | this.$u.toast('两次密码不一致'); |
| | | } |
| | | }, |
| | | // 上传图片方法 |
| | | beforeRead() { |
| | | this.changeisUploadimg(true); |
| | | }, |
| | | // 删除图片 |
| | | deletePic(event) { |
| | | this.changeisUploadimg(true); |
| | | this[`fileList${event.name}`].splice(event.index, 1); |
| | | }, |
| | | // 新增图片 |
| | | async afterRead(event) { |
| | | console.log('event', event); |
| | | // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式 |
| | | let lists = [].concat(event.file); |
| | | let fileListLen = this[`fileList${event.name}`].length; |
| | |
| | | }); |
| | | }); |
| | | for (let i = 0; i < lists.length; i++) { |
| | | const result = await this.uploadFilePromise(lists[i].url); |
| | | const result = await this.uploadFilePromise(lists[i].url, event.name); |
| | | let item = this[`fileList${event.name}`][fileListLen]; |
| | | this[`fileList${event.name}`].splice( |
| | | fileListLen, |
| | | 1, |
| | | Object.assign(item, { |
| | | status: 'success', |
| | | message: '', |
| | | message: '上传成功', |
| | | url: result |
| | | }) |
| | | ); |
| | | fileListLen++; |
| | | } |
| | | }, |
| | | uploadFilePromise(url) { |
| | | uploadFilePromise(url, num) { |
| | | return new Promise((resolve, reject) => { |
| | | let a = uni.uploadFile({ |
| | | url: 'http://192.168.2.21:7001/upload', // 仅为示例,非真实的接口地址 |
| | | url: BaseUrl + '/admin/sys-file/uploadUnToken', |
| | | filePath: url, |
| | | name: 'file', |
| | | formData: { |
| | | user: 'test' |
| | | // user: '' |
| | | }, |
| | | success: res => { |
| | | setTimeout(() => { |
| | | resolve(res.data.data); |
| | | }, 1000); |
| | | if (num == 1) { |
| | | this.registerFormModel.carImg = JSON.parse(res.data).data.url; |
| | | resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`); |
| | | } else if (num == 2) { |
| | | this.registerFormModel.drivingImg = JSON.parse(res.data).data.url; |
| | | resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`); |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | |
| | | * @resetFields 不管用时候用上边的代替 |
| | | */ |
| | | this.$refs.regesterFormRef.resetFields(); |
| | | |
| | | this.editRoleModelShow = false; |
| | | }, |
| | | roleCancel() { |
| | |
| | | this.$nextTick(() => { |
| | | this.editRoleModelShow = false; |
| | | }); |
| | | // switch (this.radiovalue1) { |
| | | // case '客户': |
| | | // this.radiovalue1 = ''; |
| | | // break; |
| | | // case '货代': |
| | | // this.radiovalue1 = '司机'; |
| | | // break; |
| | | // case '司机': |
| | | // this.radiovalue1 = '货代'; |
| | | // break; |
| | | // } |
| | | } |
| | | } |
| | | }; |