qingyiay
2023-06-25 b9c8410f6d5c7efa7b7b2b374adb21649dd2f886
pages/register/register.vue
@@ -1,6 +1,5 @@
<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>
@@ -35,32 +34,62 @@
            <u-form-item prop="carNo" label="车牌号" labelWidth="20%" borderBottom v-if="radiovalue1 == '司机'" required>
               <u--input v-model="registerFormModel.carNo" placeholder="请输入内容" clearable></u--input>
            </u-form-item>
            <u-form-item prop="carImg" label="车辆照片" labelWidth="20%" borderBottom v-if="radiovalue1 == '司机'" required>
               <u-upload :fileList="fileList1" deletable @afterRead="afterRead" @delete="deletePic" name="1" 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="drivingImg" label="行驶证" labelWidth="20%" borderBottom v-if="radiovalue1 == '司机'" required>
               <u-upload :fileList="fileList2" deletable @afterRead="afterRead" @delete="deletePic" name="2" 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="请输入内容" clearable></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="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() {
   //   // 查看是否授权
@@ -77,12 +106,9 @@
   //     }
   //   })
   // },
   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);
      // })
@@ -95,6 +121,9 @@
   },
   data() {
      return {
         // 车牌号键盘控制
         carNumShow: false,
         keyValue: '',
         registerFormModel: {
            phone: '',
            password: '',
@@ -118,16 +147,22 @@
               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']
               },
@@ -135,6 +170,13 @@
                  min: 11,
                  max: 11,
                  message: '请输入合法手机号'
               },
               {
                  validator: (rule, value, callback) => {
                     return uni.$u.test.mobile(value);
                  },
                  message: '手机号码不正确',
                  trigger: ['change', 'blur']
               }
            ],
            password: [
@@ -167,6 +209,16 @@
                  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']
               }
            ],
            carImg: {
@@ -227,6 +279,7 @@
      }
   },
   methods: {
      ...mapMutations(['changeisUploadimg']),
      registerClick() {
         if (this.registerFormModel.password == this.registerFormModel.confirmPassword) {
            this.$refs.regesterFormRef
@@ -236,10 +289,9 @@
                  this.registerFormModel.username = this.registerFormModel.phone;
                  apiRegister(this.registerFormModel)
                     .then(res => {
                        console.log(res);
                        if (res.data.code == 0) {
                           uni.showToast({
                              title: '注册成功,即将进入登录!',
                              title: '注册成功,即将返回登录页',
                              icon: 'none',
                              duration: 1000
                           });
@@ -247,7 +299,7 @@
                              uni.redirectTo({ url: '/pages/login/login' });
                           }, 1000);
                        } else {
                           this.$u.toast(res.data.msg);
                           this.$u.toast(res.msg ? res.msg : '添加失败');
                        }
                     })
                     .catch(err => {
@@ -256,24 +308,15 @@
               })
               .catch(err => {
                  console.log('err', err);
                  uni.$u.toast('请规范输入内容');
                  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 == '' &&
@@ -281,7 +324,6 @@
            this.registerFormModel.carNo == '' &&
            this.registerFormModel.password == ''
         ) {
            console.log('变了');
            this.$refs.regesterFormRef.clearValidate();
            this.beforeChangeValue = e;
         }
@@ -292,13 +334,16 @@
         }
      },
      // 上传图片方法
      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;
@@ -317,7 +362,7 @@
               1,
               Object.assign(item, {
                  status: 'success',
                  message: '',
                  message: '上传成功',
                  url: result
               })
            );
@@ -330,15 +375,16 @@
               url: BaseUrl + '/admin/sys-file/uploadUnToken',
               filePath: url,
               name: 'file',
               // formData: {
               //    user: 'test'
               // },
               formData: {
                  // user: ''
               },
               success: res => {
                  resolve(JSON.parse(res.data).data.url);
                  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}`);
                  }
               }
            });