wk
2024-11-04 6c20f43ff1cb24758b11fbe29488804e418c4e42
pages/register/register.vue
@@ -1,386 +1,981 @@
<template>
   <view class="register">
      <view class="registerForm">
         <u--form :rules="rules" :model="registerFormModel" ref="regesterFormRef">
            <u-form-item labelWidth="20%" label="选择身份" borderBottom ref="roleRef" required>
               <u-radio-group v-model="radiovalue1" placement="row" @change="groupChange" size="30" shape="circle" iconSize="20">
                  <u-radio
                     labelSize="14px"
         <u--form :rules="rules"
            :model="registerFormModel"
            ref="regesterFormRef">
            <!-- <u-form-item labelWidth="35%"
               label="选择身份"
               borderBottom
               ref="roleRef"
               required>
               <u-radio-group v-model="radiovalue1"
                  placement="row"
                  @change="groupChange"
                  size="30"
                  shape="circle"
                  iconSize="20">
                  <u-radio labelSize="14px"
                     size="20px"
                     :customStyle="{ marginBottom: '8px' }"
                     v-for="(item, index) in radiolist1"
                     :key="index"
                     :label="item.name"
                     :name="item.name"
                     @change="radioChange"
                  ></u-radio>
                     @change="radioChange"></u-radio>
               </u-radio-group>
            </u-form-item> -->
            <u-form-item prop="name"
               :label="radiovalue1 == '司机'?'姓名':'承运商名称'"
               labelWidth="35%"
               borderBottom
               required>
               <u--input v-model="registerFormModel.name"
                  placeholder="请输入内容"
                  clearable></u--input>
            </u-form-item>
            <u-form-item prop="idCard"
               :label="radiovalue1 == '司机'?'身份证':'证件号'"
               labelWidth="35%"
               borderBottom
               required>
               <u--input v-model="registerFormModel.idCard"
                  placeholder="请输入内容"
                  clearable></u--input>
            </u-form-item>
            <u-form-item prop="cardImg1"
               :label="radiovalue1 == '司机'?'身份证正面':'身份证或营业执照照片'"
               labelWidth="35%"
               borderBottom
               required
               @click="beforeRead"
               v-if="radiovalue1 == '承运商'">
               <u-upload :fileList="fileList5"
                  deletable
                  @afterRead="afterRead"
                  @delete="deletePic"
                  name="5"
                  multiple
                  :maxCount="1"
                  width="250"
                  height="150"
                  :previewFullImage="true">
               </u-upload>
            </u-form-item>
            <u-form-item prop="phone"
               label="手机号"
               labelWidth="35%"
               borderBottom
               required>
               <u--input v-model="registerFormModel.phone"
                  placeholder="请输入内容"
                  clearable></u--input>
            </u-form-item>
            <u-form-item prop="password"
               label="密码"
               labelWidth="35%"
               borderBottom
               required>
               <u--input v-model="registerFormModel.password"
                  placeholder="请输入内容"
                  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="35%"
               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="35%"
               borderBottom
               v-if="radiovalue1 == '司机'"
               required>
               <xm-cell special label="车牌号" :value="registerFormModel.carNo" @show="showKeyboard('xmKeyboard')"></xm-cell>
               <xm-keyboard-v2 ref="xmKeyboard" @confirm="(v) => registerFormModel.carNo = v"></xm-keyboard-v2>
            </u-form-item>
            <u-form-item labelWidth="35%"
               label="车辆类型"
               borderBottom
               ref="roleRef"
               prop='carType'
               v-if="radiovalue1 == '司机'">
               <niceui-data-select-input v-model="registerFormModel.carType"
                  :localdata="radiolist2"
                  label="车辆类型选择"
                  placeholder="请选择车辆类型"
                  @change="productcarTypeChange"
                  ></niceui-data-select-input>
            </u-form-item>
            <u-form-item prop="carImg"
               label="车辆照片"
               labelWidth="35%"
               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">
               </u-upload>
            </u-form-item>
            <u-form-item prop="drivingImg"
               label="行驶证车头"
               labelWidth="35%"
               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">
               </u-upload>
            </u-form-item>
            <u-form-item prop="driverImgCw"
               label="行驶证车尾"
               labelWidth="35%"
               borderBottom
               v-if="radiovalue1 == '司机'"
               required
               @click="beforeRead">
               <u-upload :fileList="fileList7"
                  deletable
                  @afterRead="afterRead"
                  @delete="deletePic"
                  name="7"
                  multiple
                  :maxCount="1"
                  width="250"
                  height="150"
                  :previewFullImage="true">
               </u-upload>
            </u-form-item>
            <u-form-item prop="expirationTimeDriving"
               label="证件过期时间"
               labelWidth="35%"
               borderBottom
               v-if="radiovalue1 == '司机'">
               <uni-datetime-picker v-model="registerFormModel.expirationTimeDriving" type="date"  :start="minDate" />
            </u-form-item>
            <u-form-item prop="driverImg"
               label="驾驶证"
               labelWidth="35%"
               borderBottom
               v-if="radiovalue1 == '司机'"
               required
               @click="beforeRead">
               <u-upload :fileList="fileList3"
                  deletable
                  @afterRead="afterRead"
                  @delete="deletePic"
                  name="3"
                  multiple
                  :maxCount="1"
                  width="250"
                  height="150"
                  :previewFullImage="true">
               </u-upload>
            </u-form-item>
            <u-form-item prop="expirationTimeDriver"
               label="证件过期时间"
               labelWidth="35%"
               borderBottom
               v-if="radiovalue1 == '司机'">
               <uni-datetime-picker v-model="registerFormModel.expirationTimeDriver" type="date"  :start="minDate" />
            </u-form-item>
            <u-form-item prop="roadTransportImg"
               label="道路运输证车头"
               labelWidth="35%"
               borderBottom
               v-if="radiovalue1 == '司机'"
               required
               @click="beforeRead">
               <u-upload :fileList="fileList6"
                  deletable
                  @afterRead="afterRead"
                  @delete="deletePic"
                  name="6"
                  multiple
                  :maxCount="1"
                  width="250"
                  height="150"
                  :previewFullImage="true">
               </u-upload>
            </u-form-item>
            <u-form-item prop="roadTransportImgCw"
               label="道路运输证车尾"
               labelWidth="35%"
               borderBottom
               v-if="radiovalue1 == '司机'"
               required
               @click="beforeRead">
               <u-upload :fileList="fileList8"
                  deletable
                  @afterRead="afterRead"
                  @delete="deletePic"
                  name="8"
                  multiple
                  :maxCount="1"
                  width="250"
                  height="150"
                  :previewFullImage="true">
               </u-upload>
            </u-form-item>
            <u-form-item prop="expirationTimeRoadtransport"
               label="证件过期时间"
               labelWidth="35%"
               borderBottom
               v-if="radiovalue1 == '司机'">
               <uni-datetime-picker v-model="registerFormModel.expirationTimeRoadtransport" type="date"  :start="minDate" />
            </u-form-item>
            <u-form-item prop="tradeQualificationImg"
               label="从业资格证"
               labelWidth="35%"
               borderBottom
               v-if="radiovalue1 == '司机'"
               @click="beforeRead">
               <u-upload :fileList="fileList4"
                  deletable
                  @afterRead="afterRead"
                  @delete="deletePic"
                  name="4"
                  multiple
                  :maxCount="1"
                  width="250"
                  height="150"
                  :previewFullImage="true">
               </u-upload>
               <span style="color:red">
                  凡是运输有毒化学物品的车辆必须上传从业资格证并填写从业资格证有效时间
               </span>
            </u-form-item>
            <u-form-item prop="tradeQualificationImgYyy"
               label="从业资格证押运员"
               labelWidth="35%"
               borderBottom
               v-if="radiovalue1 == '司机'"
               @click="beforeRead">
               <u-upload :fileList="fileList9"
                  deletable
                  @afterRead="afterRead"
                  @delete="deletePic"
                  name="9"
                  multiple
                  :maxCount="1"
                  width="250"
                  height="150"
                  :previewFullImage="true">
               </u-upload>
            </u-form-item>
            <u-form-item prop="expirationTimeTradequalification"
               label="证件过期时间"
               labelWidth="35%"
               borderBottom
               v-if="radiovalue1 == '司机'">
               <uni-datetime-picker v-model="registerFormModel.expirationTimeTradequalification" type="date"  :start="minDate" />
            </u-form-item>
            <u-form-item labelWidth="35%"
               v-if="radiovalue1 == '司机'"
               label="排放类型"
               borderBottom
               prop="countryNumberCar">
               <u-radio-group v-model="registerFormModel.countryNumberCar"
                  placement="row"
                  size="30"
                  shape="circle"
                  iconSize="20">
                  <u-radio labelSize="14px"
                     size="20px"
                     v-for="(item, index) in countryNumberCarList"
                     :key="index"
                     :label="item.label"
                     :name="item.name"></u-radio>
               </u-radio-group>
            </u-form-item>
            <u-form-item prop="name" label="姓名" labelWidth="20%" borderBottom required>
               <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="请输入内容" clearable></u--input>
            </u-form-item>
            <u-form-item prop="phone" label="手机号" labelWidth="20%" borderBottom required>
               <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="请输入内容" 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="请输入内容" 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">
                  <!-- <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">
                  <!-- <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>
      </view>
      <view class="roleModel">
         <u-modal :show="editRoleModelShow" :title="title" :content="content" :showCancelButton="true" @confirm="roleConfirm" @cancel="roleCancel"></u-modal>
         <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="registerBtn"><u-button text="注册"
            type="primary"
            @click="registerClick"
            :loading="registerClickloading"></u-button></view>
   </view>
</template>
<script>
import { apiRegister } from '@/api/publicInterface.js';
import { BaseUrl } from '@/api/publicInterface.js';
export default {
   // onLoad: function() {
   //   // 查看是否授权
   //   wx.getSetting({
   //     success (res){
   //       if (res.authSetting['scope.userInfo']) {
   //         // 已经授权,可以直接调用 getUserInfo 获取头像昵称
   //         wx.getUserInfo({
   //           success: function(res) {
   //             console.log('res.userInfo',res.userInfo)
   //           }
   //         })
   //       }
   //     }
   //   })
   // },
   // 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
   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() {
      return {
         registerFormModel: {
            phone: '',
            password: '',
            name: '',
            username: '',
            openId: '',
            type: 2,
            idCard: '',
            carNo: '',
            carImg: '',
            drivingImg: '',
            tuiJianMa: '',
            confirmPassword: ''
         },
         fileList1: [],
         fileList2: [],
         rules: {
            name: {
               type: 'string',
               required: true,
               message: '请填写姓名',
               trigger: ['blur', 'change']
   import { apiRegister } from '@/api/publicInterface.js';
   import { BaseUrl } from '@/api/publicInterface.js';
   import { mapMutations } from 'vuex';
   export default {
      // 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
      onReady() {
         this.$refs.regesterFormRef.setRules(this.rules);
      },
      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 {
            radiovalue1: '司机',
            beforeChangeValue: '',
            tablist:[{idCard:""},{idCard:""}],
            level:[],  //密码强度数组
            minDate: this.getToday(),
            // 车牌号键盘控制
            carNumShow: false,
            keyValue: '',
            registerFormModel: {
               phone: '',
               password: '',
               name: '',
               username: '',
               openId: '',
               type: 3,
               idCard: '',
               carNo: '',
               carImg: '',
               drivingImg: '',
               tuiJianMa: '',
               confirmPassword: '',
               tradeQualificationImg: '',
               roadTransportImg:"",
               driverImgCw:'',
               roadTransportImgCw:"",
               tradeQualificationImgYyy:"",
               expirationTimeRoadtransport:"",
               driverImg: '',
               countryNumberCar: 2, //排放类型;国五 1,国六 2
               carType:null,
            },
            idCard: {
               type: 'string',
               required: true,
               message: '请输入身份证号',
               trigger: ['blur', 'change']
            },
            phone: [
               {
                  required: true,
                  message: '此为必填字段',
                  // blur和change事件触发检验
                  trigger: ['blur', 'change']
            fileList1: [],
            fileList2: [],
            fileList3: [],
            fileList4: [],
            fileList5: [],
            fileList6: [],
            fileList7: [],
            fileList8: [],
            fileList9: [],
            rules: {
               countryNumberCar: {
                  required: false,
               },
               {
                  min: 11,
                  max: 11,
                  message: '请输入合法手机号'
               }
            ],
            password: [
               {
                  required: true,
                  message: '请设置初始密码',
                  trigger: ['blur', 'change']
               expirationTimeDriving: {
                  required: false,
               },
               {
                  min: 6,
                  max: 12,
                  message: '长度在6-12个字符之间'
               }
            ],
            confirmPassword: [
               {
                  required: true,
                  message: '请设置初始密码',
                  trigger: ['blur', 'change']
               expirationTimeDriver: {
                  required: false,
               },
               {
                  min: 6,
                  max: 12,
                  message: '长度在6-12个字符之间'
               }
            ],
            carNo: [
               {
               expirationTimeTradequalification: {
                  required: false,
               },
               name:[{
                  type: 'string',
                  required: true,
                  message: '请输入车牌号',
                  message: this.getname,
                  trigger: ['blur', 'change']
                  },{
                     pattern: /^[\u4e00-\u9fa5]+$/, //限制长度最多为 6 位
                     message: this.getnames,
                     trigger: ['blur', 'change']
                  }],
                  carType:[{
                     type: 'number',
                     required: true,
                     message: '请选择车辆类型',
                     trigger: ['blur', 'change']
                  }],
               idCard: [{
                     type: 'string',
                     required: true,
                     message: this.getidcard,
                     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: this.getidcards,
                     trigger: ['blur', 'change']
                  }
               ],
               phone: [{
                     required: true,
                     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: [{
            required: true,
            message: '请设置初始密码',
            trigger: ['blur', 'change']
          },
            {
              validator: checkPassword,
              trigger: 'change'
            }],
               confirmPassword: [{
            required: true,
            validator: validatePass,
            trigger: "blur"
          }],
               carNo: [{
                     type: 'string',
                     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']
                  }
               ],
               cardImg1:{
                  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']
               },
               driverImgCw:{
                  type: 'string',
                  required: true,
                  message: '请上传行驶证车尾照片',
                  trigger: ['blur', 'change']
               },
               driverImg: {
                  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: [{
                  name: '司机',
                  disabled: false
               },
               {
                  name: '承运商',
                  disabled: false
               }
            ],
            radiolist2: [{
                  text: '普通运输车',
                  value:1
               },
               {
                  text: '集装箱平板车',
                  value:2
               },
               {
                  text: '槽车',
                  value:3
               }
            ],
            countryNumberCarList: [{
                  name: 1,
                  label: '国五',
               },
               {
                  name: 2,
                  label: '国六',
               },
               {
                  name: 3,
                  label: '新能源',
               }
            ],
            // 更换角色弹框
            editRoleModelShow: false,
            title: '提示',
            content: '当前填入信息,切换角色后,即清除,是否切换?',
            wxcode: '',
            openid: '',
            registerClickloading: false,
         };
      },
      watch: {
         radiovalue1(newV) {
            if (this.registerFormModel.name || this.registerFormModel.idCard || this.registerFormModel.phone || this
               .registerFormModel.carNo || this.registerFormModel.password) {
               if (this.editRoleModelShow == true) {
                  this.editRoleModelShow = false;
               } else {
                  this.editRoleModelShow = true;
               }
            }
            switch (newV) {
               case '承运商':
                  this.registerFormModel.type = 2;
                  break;
               case '司机':
                  this.registerFormModel.type = 3;
                  break;
               default:
                  break;
            }
            return;
         },
      },
      methods: {
         ...mapMutations(['changeisUploadimg']),
         showKeyboard(ref){
            this.$refs[ref].toShow(this.registerFormModel.carNo)
         },
         getToday() {
           let now = new Date();
           let year = now.getFullYear();
           let month = this.padStart(now.getMonth() + 1); // 月份是从0开始的
           let day = this.padStart(now.getDate());
           return `${year}-${month}-${day}`;
         },
         getname(){
            let that=this
            if(that.radiovalue1=='司机'){
               return '姓名不能为空'
            }else{
               return '承运商名称不能为空'
            }
         },
         // 基本案列数据
         radiolist1: [
            {
               name: '货代',
               disabled: false
            },
            {
               name: '司机',
               disabled: false
         getnames(){
            let that=this
            if(that.radiovalue1=='司机'){
               return '姓名只能是中文'
            }else{
               return '承运商名称只能是中文'
            }
         ],
         // u-radio-group的v-model绑定的值如果设置为某个radio的name,就会被默认选中
         radiovalue1: '货代',
         beforeChangeValue: '',
         // 更换角色弹框
         editRoleModelShow: false,
         title: '提示',
         content: '当前填入信息,切换角色后,即清除,是否切换?',
         wxcode: '',
         openid: ''
      };
   },
   watch: {
      radiovalue1(newV) {
         if (this.registerFormModel.name || this.registerFormModel.idCard || this.registerFormModel.phone || this.registerFormModel.carNo || this.registerFormModel.password) {
            if (this.editRoleModelShow == true) {
               this.editRoleModelShow = false;
            } else {
               this.editRoleModelShow = true;
         },
         getidcard(){
            let that=this
            if(that.radiovalue1=='司机'){
               return '请输入身份证号'
            }else{
               return '请输入证件号'
            }
         }
         switch (newV) {
            case '货代':
               this.registerFormModel.type = 2;
               break;
            case '司机':
               this.registerFormModel.type = 3;
               break;
            default:
               break;
         }
         return;
      }
   },
   methods: {
      registerClick() {
         if (this.registerFormModel.password == this.registerFormModel.confirmPassword) {
            this.$refs.regesterFormRef
               .validate()
         },
         getidcards(){
            let that=this
            if(that.radiovalue1=='司机'){
               return '身份证号格式不正确'
            }else{
               return '证件号格式不正确'
            }
         },
         padStart(value) {
           return value.toString().padStart(2, '0');
         },
         productcarTypeChange(e){
            this.registerFormModel.carType = this.radiolist2.find(v => v.value === e).value
         },
         registerClick() {
        if(this.registerFormModel.carType==3&&!this.registerFormModel.tradeQualificationImg){
          uni.showToast({
            title: '请上传从业资格证!',
            icon: 'error',
            duration: 2000
          });
        }else if(this.registerFormModel.carType==3&&!this.registerFormModel.tradeQualificationImgYyy){
          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.radiovalue1 == '承运商'){
               this.registerFormModel.idCardImg = this.registerFormModel.cardImg1
            }
                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.expirationTimeTradequalification){
                  this.registerFormModel.expirationTimeTradequalification=this.registerFormModel.expirationTimeTradequalification.slice(0,16)
                }
            this.$reqPost('registerDriver', this.registerFormModel, 'json')
               .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.data.data?res.data.data:'添加失败');
                        }
                     })
                     .catch(err => {
                        console.log('错误', err);
                     });
                 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', err);
                  uni.$u.toast('请规范输入内容');
                 console.log('错误', err);
               });
         } else {
            this.$u.toast('两次密码不一致');
         }
      },
      // 单选框事件
      groupChange(e) {
         console.log('单选框小组', e);
      },
      radioChange(e) {
         console.log('单选框', e);
         if (
            this.registerFormModel.name == '' &&
            this.registerFormModel.idCard == '' &&
            this.registerFormModel.phone == '' &&
            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('两次密码不一致');
         }
      },
      // 上传图片方法
      // 删除图片
      deletePic(event) {
         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;
         lists.map(item => {
            this[`fileList${event.name}`].push({
               ...item,
               status: 'uploading',
               message: '上传中'
              })
              .catch(err => {
                console.log('err', err);
                this.$u.toast('请规范输入内容');
              });
        }
         },
         // 单选框事件
         groupChange(e) {},
         radioChange(e) {
            if (
               this.registerFormModel.name == '' &&
               this.registerFormModel.idCard == '' &&
               this.registerFormModel.phone == '' &&
               this.registerFormModel.carNo == '' &&
               this.registerFormModel.password == ''
            ) {
               this.$refs.regesterFormRef.clearValidate();
               this.beforeChangeValue = e;
            }
         },
         addData(){
            this.tablist.push({idCard:""})
         },
         delData(e){
            if(this.tablist.length>2){
               this.tablist.splice(e,1)
            }
         },
         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) {
            // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
            let lists = [].concat(event.file);
            let fileListLen = this[`fileList${event.name}`].length;
            lists.map(item => {
               this[`fileList${event.name}`].push({
                  ...item,
                  status: 'uploading',
                  message: '上传中'
               });
            });
         });
         for (let i = 0; i < lists.length; i++) {
            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: '',
                  url: result
               })
            );
            fileListLen++;
         }
      },
      uploadFilePromise(url, num) {
         return new Promise((resolve, reject) => {
            let a = uni.uploadFile({
               url: BaseUrl + '/admin/sys-file/uploadUnToken',
               filePath: url,
               name: 'file',
               // formData: {
               //    user: 'test'
               // },
               success: res => {
                  resolve(JSON.parse(res.data).data.url);
                  if (num == 1) {
                     this.registerFormModel.carImg = JSON.parse(res.data).data.url;
                  } else if (num == 2) {
                     this.registerFormModel.drivingImg = JSON.parse(res.data).data.url;
            for (let i = 0; i < lists.length; i++) {
               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: '上传成功',
                     url: result
                  })
               );
               fileListLen++;
            }
         },
         uploadFilePromise(url, num) {
            return new Promise((resolve, reject) => {
               let a = uni.uploadFile({
                  url: BaseUrl + '/admin/sys-file/uploadUnToken',
                  filePath: url,
                  name: 'file',
                  success: res => {
                     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}`);
                     } else if (num == 3) {
                        this.registerFormModel.driverImg = JSON.parse(res.data).data
                           .url;
                        resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                     } else if (num == 4) {
                        this.registerFormModel.tradeQualificationImg = JSON.parse(res.data)
                           .data.url;
                        resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                     }else if(num==5){
                        this.registerFormModel.cardImg1 = JSON.parse(res.data)
                           .data.url;
                        resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                     }else if(num==6){
                        this.registerFormModel.roadTransportImg = JSON.parse(res.data)
                           .data.url;
                        resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                     }else if(num==7){
                        this.registerFormModel.driverImgCw = JSON.parse(res.data)
                           .data.url;
                        resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                     }else if(num==8){
                        this.registerFormModel.roadTransportImgCw = JSON.parse(res.data)
                           .data.url;
                        resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                     }else if(num==9){
                        this.registerFormModel.tradeQualificationImgYyy = JSON.parse(res.data)
                           .data.url;
                        resolve(`${BaseUrl}${JSON.parse(res.data).data.url}`);
                     }
                  }
               });
            });
         },
         // 更换角色弹出框
         roleConfirm() {
            console.log('遍历对象', Object.keys(this.registerFormModel));
            Object.keys(this.registerFormModel).forEach(item => {
               if (item !== 'type') {
                  if (this.registerFormModel[item]) this.registerFormModel[item] = '';
               }
            });
         });
      },
      // 更换角色弹出框
      roleConfirm() {
         console.log('遍历对象', Object.keys(this.registerFormModel));
         Object.keys(this.registerFormModel).forEach(item => {
            if (item !== 'type') {
               if (this.registerFormModel[item]) this.registerFormModel[item] = '';
            }
         });
         /**
          * @resetFields 不管用时候用上边的代替
          */
         this.$refs.regesterFormRef.resetFields();
         this.editRoleModelShow = false;
      },
      roleCancel() {
         this.radiovalue1 = this.beforeChangeValue;
         this.$nextTick(() => {
            /**
             * @resetFields 不管用时候用上边的代替
             */
            this.$refs.regesterFormRef.resetFields();
            this.editRoleModelShow = false;
         });
         },
         roleCancel() {
            this.radiovalue1 = this.beforeChangeValue;
            this.$nextTick(() => {
               this.editRoleModelShow = false;
            });
         }
      }
   }
};
   };
</script>
<style lang="scss" scoped>
::v-deep.register {
   width: 94%;
   padding: 0 0 vww(20) 0;
   margin: 0 auto;
   .registerForm {
<style lang="scss"
   scoped>
   ::v-deep.register {
      width: 94%;
      padding: 0 0 vww(20) 0;
      margin: 0 auto;
      font-size: 16px !important;
      .u-form {
         .u-radio {
            width: 33%;
      .registerForm {
         width: 94%;
         margin: 0 auto;
         font-size: 16px !important;
         .u-form {
            .u-radio {
               width: 35%;
            }
         }
      }
      .registerBtn {
         width: 94%;
         margin: vww(50) auto 0;
      }
      .utils {
         line-height: vww(30);
         text-align: center;
         text:nth-of-type(1) {
            margin-right: vww(10);
         }
      }
   }
   .registerBtn {
      width: 94%;
      margin: vww(50) auto 0;
   }
   .utils {
      line-height: vww(30);
      text-align: center;
      text:nth-of-type(1) {
         margin-right: vww(10);
      }
   }
}
  .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>