From 82ed35c69394561eb24d37cee7edde1ab5ee8980 Mon Sep 17 00:00:00 2001
From: 董国庆 <364620639@qq.com>
Date: 星期二, 18 三月 2025 13:58:54 +0800
Subject: [PATCH] 校验修改

---
 management/src/pages/party/manage/components/addAndEdit.jsx |   62 +++++++++++++++++++++++++------
 1 files changed, 50 insertions(+), 12 deletions(-)

diff --git a/management/src/pages/party/manage/components/addAndEdit.jsx b/management/src/pages/party/manage/components/addAndEdit.jsx
index 69fa555..0f32a36 100644
--- a/management/src/pages/party/manage/components/addAndEdit.jsx
+++ b/management/src/pages/party/manage/components/addAndEdit.jsx
@@ -60,7 +60,7 @@
       })
     }
 
-   
+
     if (searchParams.get('id')) {
       getDetail(searchParams.get('id')).then(res => {
         setUserInfo(() => res.data)
@@ -137,27 +137,60 @@
   }
   const checkIdCard = (rule, value) => {
     const reg = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
-    if (!reg.test(value)) {
+    if ((!reg.test(value)) && value) {
       return Promise.reject('请输入正确的身份证号码');
     }
     return Promise.resolve();
   };
-  const checkPhone = (rule, value) => {
+  const checkPhone = async (rule, value) => {
     const reg = /^1(3\d|4[5-9]|5[0-35-9]|6[2567]|7[0-8]|8\d|9[0-35-9])\d{8}$/;
-    if (!reg.test(value)) {
+    if ((!reg.test(value)) && value) {
       return Promise.reject('请输入正确的手机号码');
     }
-    return Promise.resolve();
+    if (Object.keys(userInfo).length > 0 && userInfo.phone == value) {
+      return Promise.resolve()
+    }
+    const res = await verifyPhone({ phone:value })
+    if (res.data === true) {
+      return Promise.reject('该手机号已注册党员信息');
+    } else {
+      return Promise.resolve();
+    }
+
+    
   };
-  const checkPhoneUse = (e) => {
+  const checkPhoneUse = async (e) => {
     if (Object.keys(userInfo).length > 0 && userInfo.phone == e.target.value) {
       return Promise.resolve()
     }
-    verifyPhone({ phone: e.target.value }).then(res => {
-      if (res.code != 200) {
-        message.warning('该手机号已注册党员信息')
+    try {
+      const res = await verifyPhone({ phone: e.target.value })
+      if (res.data === false) {
+        form.setFields([
+          {
+            name: 'phone',
+            errors: ['该手机号已注册党员信息'],
+            // touched: true
+          }
+        ])
+      } else {
+        form.setFields([
+          {
+            name: 'phone',
+            errors: [],
+            touched: true
+          }
+        ])
       }
-    })
+    } catch (error) {
+      form.setFields([
+        {
+          name: 'phone',
+          errors: ['验证手机号失败,请重试'],
+          touched: true
+        }
+      ])
+    }
   }
 
 
@@ -178,9 +211,14 @@
                 </Form.Item>
                 <Form.Item
                   name="phone"
-                  label='联系电话' rules={[{ required: true, message: '请输入党员联系电话' }, { validator: checkPhone }]}
+                  label='联系电话'
+                  validateTrigger={['onBlur']}
+                  rules={[
+                    { required: true, message: '请输入党员联系电话' },
+                    { validator: checkPhone }
+                  ]}
                 >
-                  <Input disabled={searchParams.get('detail')} placeholder='请输入' maxLength={11} onBlur={checkPhoneUse} ></Input>
+                  <Input disabled={searchParams.get('detail')} placeholder='请输入' maxLength={11}></Input>
                 </Form.Item>
                 <Form.Item
                   name="idNumber"

--
Gitblit v1.7.1