zhouwenxuan
2023-12-01 3451f5695d6fb65eeac2f4eedd9bf8cdd16a6d79
src/layout/components/Register/index.vue
@@ -179,12 +179,12 @@
          </el-col>
          <el-col :span="8">
            <el-form-item prop="agency.business" label="申请的法定安全评价业务范围">
              <el-select v-model="registerForm.agency.business" placeholder="请选择业务范围" size="large" style="width: 100%">
              <el-select v-model="registerForm.agency.business" placeholder="请选择业务范围" multiple size="large" style="width: 100%">
                <el-option
                    v-for="item in state.busList"
                    :key="item.id"
                    :label="item.label"
                    :value="item.label"
                    :value="item.id"
                />
              </el-select>
            </el-form-item>
@@ -288,7 +288,7 @@
<script setup>
import {ref, watch, defineExpose, onMounted, reactive} from "vue"
import {ElMessage, ElMessageBox} from "element-plus"
import { register,delPic,getDict } from "@/api/login"
import { register,delPic,getDict,checkUserName, checkPhone } from "@/api/login"
import { getRegionTree } from "@/api/area"
import { getToken } from "@/utils/auth";
import {verifyPhone, verifyUsername, verifyPwd} from "../../../utils/validate";
@@ -364,6 +364,24 @@
  }
}
const validateUserPhone = (rule, value, callback)=>{
  if(value === ''){
    callback(new Error('请输入手机号'))
  }else{
    if(!verifyPhone(value)){
      callback(new Error('手机号格式有误'))
    }else{
      checkPhone({phone:value}).then((res)=>{
        if(res == false){
          callback(new Error('该手机号已被绑定用户,请更换其他手机号'))
        }else{
          callback()
        }
      })
    }
  }
}
const validateUsername = (rule, value, callback)=>{
  if(value === ''){
    callback(new Error('请输入登录时用户名'))
@@ -371,7 +389,13 @@
    if(!verifyUsername(value)){
      callback(new Error('用户名须使用字母+数字,长度在5-16之间'))
    }else{
      callback()
      checkUserName({username:value}).then((res)=>{
        if(res == false){
          callback(new Error('用户名已被占用,请更换其他用户名'))
        }else{
          callback()
        }
      })
    }
  }
}
@@ -408,7 +432,7 @@
  "agency.business": [{required: true, trigger: "blur", message: "请选择申请的法定安全评价业务范围"}],
  "agency.reportPath": [{required: true, trigger: "blur", message: "请上传加盖公章的《机构信息上报表》"}],
  username: [{ required: true, trigger: "blur", validator: validateUsername }],
  phone: [{ required: true, trigger: "blur", validator: validatePhone }],
  phone: [{ required: true, trigger: "blur", validator: validateUserPhone }],
  password: [{ required: true, trigger: "blur", validator: validatePwd }],
  confirmPassword: [
    { required: true, trigger: "blur", message: "请再次确认密码" },
@@ -516,6 +540,7 @@
      loading.value = true;
      const {confirmPassword, ...data} = registerForm.value
      data.password = Base64.encode(data.password)
      data.agency.business = data.agency.business.join(',')
      delete data.agency.area
      register(data).then(res => {
        if(res.code == 200){