From 2532353e2b4a256fba0fa93a768b389ccb631ee2 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期四, 30 十一月 2023 16:11:43 +0800
Subject: [PATCH] 新增

---
 src/layout/components/Register/index.vue |   30 +++++++++++++++++++++++++++---
 src/api/login.js                         |   24 ++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/src/api/login.js b/src/api/login.js
index 85e37b4..0aa798c 100644
--- a/src/api/login.js
+++ b/src/api/login.js
@@ -82,4 +82,28 @@
     params: path,
     timeout: 20000
   })
+}
+
+// 校验用户名
+export function checkUserName(data) {
+  return request({
+    url: '/system/user/checkUserNameUnique',
+    headers: {
+      isToken: false
+    },
+    method: 'post',
+    data: data
+  })
+}
+
+// 校验手机号
+export function checkPhone(data) {
+  return request({
+    url: '/system/user/checkPhoneUnique',
+    headers: {
+      isToken: false
+    },
+    method: 'post',
+    data: data
+  })
 }
\ No newline at end of file
diff --git a/src/layout/components/Register/index.vue b/src/layout/components/Register/index.vue
index 9732e21..696298d 100644
--- a/src/layout/components/Register/index.vue
+++ b/src/layout/components/Register/index.vue
@@ -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: "请再次确认密码" },

--
Gitblit v1.9.2