From 86ff7f2f2696658a312e918135817695917fb729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=99=AF=E5=AD=A6?= <5412262+sun_jing_xue@user.noreply.gitee.com> Date: Mon, 28 Jul 2025 13:14:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E9=AA=8C=E8=AF=81=E7=A0=81?= =?UTF-8?q?=E4=B8=8E=E8=B4=A6=E5=8F=B7=E5=BC=B9=E5=87=BA=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/register/supplier.tsx | 95 ++++++++++++++----- src/pages/register/supplier/DomesticForm.tsx | 2 +- src/pages/register/supplier/ForeignForm.tsx | 10 +- .../admission/SupplierEntryReview/index.tsx | 2 +- .../admissionReviewManagement/index.tsx | 2 +- .../workbenches/components/ChangePassword.tsx | 14 ++- .../supplier/backend/workbenches/services.ts | 14 ++- .../personQualifiedSupplierQuery/index.tsx | 6 +- src/servers/api/register.ts | 33 +++++-- 9 files changed, 131 insertions(+), 47 deletions(-) diff --git a/src/pages/register/supplier.tsx b/src/pages/register/supplier.tsx index 6b11da9..9dabcdf 100644 --- a/src/pages/register/supplier.tsx +++ b/src/pages/register/supplier.tsx @@ -6,7 +6,7 @@ import { HomeOutlined } from '@ant-design/icons'; import DomesticForm from './supplier/DomesticForm'; import ForeignForm from './supplier/ForeignForm'; import Person from './supplier/Person'; -import { addAgent, coscoSupplierBaseAdd, fetchSurveyQuestions } from '@/servers/api/register'; +import { addAgent, coscoSupplierBaseAdd, fetchSurveyQuestions, sendPhoneCode, sendEmailCode } from '@/servers/api/register'; import './register.less'; interface supplierWithInputProps { @@ -57,27 +57,56 @@ const SupplierRegister: React.FC = (props) => { fetchQuestions(); }, []); - // 获取短信验证码 + //倒计时 + useEffect(() => { + if (countdown === 0) return; + const timer = setInterval(() => { + setCountdown(c => { + if (c === 1) { + clearInterval(timer); + return 0; + } + return c - 1; + }); + }, 1000); + return () => clearInterval(timer); + }, [countdown]); + + // 获取短信与邮箱验证码 const handleGetCaptcha = () => { form - .validateFields(['contactPhone']) + .validateFields([['coscoSupplierBase']]) .then((values) => { - message.success(`验证码已发送至 ${values.contactPhone}`); - let count = 60; - setCountdown(count); - - const timer = setInterval(() => { - count--; - setCountdown(count); - if (count === 0) { - clearInterval(timer); + const supplierType = values.coscoSupplierBase?.supplierType; + const contactsPhone = values.coscoSupplierBase?.contactsPhone; + const contactsEmail = values.coscoSupplierBase?.contactsEmail; + const phonePattern = /^1[3-9]\d{9}$/; + const emailPattern = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/; + + if (contactsPhone && phonePattern.test(contactsPhone) && supplierType === 'dvs') { + // 发送手机验证码 + sendPhoneCode(contactsPhone); + message.success(`验证码已发送至 ${contactsPhone}`); + setCountdown(60); + } else if (contactsEmail && emailPattern.test(contactsEmail) && supplierType === 'ovs' ) { + // 发送邮箱验证码 + sendEmailCode(contactsEmail); + message.success(`验证码已发送至 ${contactsEmail}`); + setCountdown(60); + } else { + if (supplierType === 'dvs') { + message.error('请输入正确的手机号'); + } else if (supplierType === 'ovs') { + message.error('请输入正确的邮箱'); } - }, 1000); + } }) - .catch((errorInfo) => { - message.error('请先输入正确的手机号'); + .catch(() => { + message.error('请输入正确的信息'); }); }; + + const onFinishFailed = (errorInfo: any) => { console.log('Failed:', errorInfo); @@ -114,19 +143,35 @@ const SupplierRegister: React.FC = (props) => { window.location.href = redirectRef.current; return; } + if (!supplierWithInput) { - message.success('注册成功,请登录'); - history.push('/login'); + Modal.success({ + title: '注册成功,请登录', + content: ( +
+
账号信息:{response.data}
+
+ ), + onOk: () => { + // 确认后跳转 + history.push('/login'); + }, + }); } else { - message.success(`${exitId ? '修改成功' : '注册成功'}`); - onOk?.(); + Modal.success({ + title: exitId ? '修改成功' : '注册成功', + content: ( +
+
账号信息:{response.data}
+
+ ), + onOk: () => { + onOk?.(); + }, + }); } - } else { - message.error(response.message || '注册失败,请重试'); - } + } } catch (error) { - console.error('注册出错:', error); - message.error('注册失败,请稍后重试'); } finally { setLoading(false); } @@ -260,7 +305,7 @@ const SupplierRegister: React.FC = (props) => { okText="我知道了" cancelButtonProps={{ style: { display: 'none' } }} destroyOnClose - // maskClosable={false} + // maskClosable={false} >

尊敬的用户:

diff --git a/src/pages/register/supplier/DomesticForm.tsx b/src/pages/register/supplier/DomesticForm.tsx index e74d977..30d19b3 100644 --- a/src/pages/register/supplier/DomesticForm.tsx +++ b/src/pages/register/supplier/DomesticForm.tsx @@ -298,7 +298,7 @@ const DomesticForm: React.FC = ({ diff --git a/src/pages/register/supplier/ForeignForm.tsx b/src/pages/register/supplier/ForeignForm.tsx index 906f67a..e4546c7 100644 --- a/src/pages/register/supplier/ForeignForm.tsx +++ b/src/pages/register/supplier/ForeignForm.tsx @@ -102,7 +102,8 @@ const ForeignForm: React.FC = ({ - + @@ -289,7 +290,7 @@ const ForeignForm: React.FC = ({ = ({ */} - - + + {/* diff --git a/src/pages/supplier/admission/SupplierEntryReview/index.tsx b/src/pages/supplier/admission/SupplierEntryReview/index.tsx index f557562..6f40a3a 100644 --- a/src/pages/supplier/admission/SupplierEntryReview/index.tsx +++ b/src/pages/supplier/admission/SupplierEntryReview/index.tsx @@ -149,7 +149,7 @@ const SupplierEntryReview: React.FC = () => { render: (value: { item: string }[] = []) => { if (!value || value.length === 0) return '-'; if (value.length === 1) { - return {value[0].item}; + return {value[0]}; } // 多于1条 const allNames = value.map(item => item).join('、'); diff --git a/src/pages/supplier/admission/admissionReviewManagement/index.tsx b/src/pages/supplier/admission/admissionReviewManagement/index.tsx index d8baa52..5381510 100644 --- a/src/pages/supplier/admission/admissionReviewManagement/index.tsx +++ b/src/pages/supplier/admission/admissionReviewManagement/index.tsx @@ -120,7 +120,7 @@ const CooperateEnterprise: React.FC = () => { render: (value: { item: string }[] = []) => { if (!value || value.length === 0) return '-'; if (value.length === 1) { - return {value[0].item}; + return {value[0]}; } // 多于1条 const allNames = value.map(item => item).join('、'); diff --git a/src/pages/supplier/backend/workbenches/components/ChangePassword.tsx b/src/pages/supplier/backend/workbenches/components/ChangePassword.tsx index dfde55d..c46749b 100644 --- a/src/pages/supplier/backend/workbenches/components/ChangePassword.tsx +++ b/src/pages/supplier/backend/workbenches/components/ChangePassword.tsx @@ -1,7 +1,8 @@ import React from 'react'; import { Form, Input, Button, message } from 'antd'; import { useIntl } from 'umi'; - +import { supplierUserPwd } from '../services' + const ChangePassword: React.FC = () => { const intl = useIntl(); const [form] = Form.useForm(); @@ -12,9 +13,14 @@ const ChangePassword: React.FC = () => { return; } // 模拟提交 - console.log('修改密码请求参数:', values); - message.success(intl.formatMessage({ id: 'page.changePassword.success' })); - form.resetFields(); + supplierUserPwd({ password: values.newPassword }).then((res) => { + const { code } = res; + if(code == 200) { + message.success(intl.formatMessage({ id: 'page.changePassword.success' })); + form.resetFields(); + } + }) + }; return ( diff --git a/src/pages/supplier/backend/workbenches/services.ts b/src/pages/supplier/backend/workbenches/services.ts index 9debc89..d313236 100644 --- a/src/pages/supplier/backend/workbenches/services.ts +++ b/src/pages/supplier/backend/workbenches/services.ts @@ -8,4 +8,16 @@ export async function getUserInfo() { method: 'GET' }); } - \ No newline at end of file + +/** + * 修改密码 + */ +interface supplierUser { + password: string; +} +export async function supplierUserPwd(data: supplierUser) { + return request('/user/supplierUserPwd', { + method: 'POST', + data + }); +} diff --git a/src/pages/supplier/informationRetrieval/personQualifiedSupplierQuery/index.tsx b/src/pages/supplier/informationRetrieval/personQualifiedSupplierQuery/index.tsx index d1977fd..8ab85db 100644 --- a/src/pages/supplier/informationRetrieval/personQualifiedSupplierQuery/index.tsx +++ b/src/pages/supplier/informationRetrieval/personQualifiedSupplierQuery/index.tsx @@ -177,8 +177,8 @@ const PersonQualifiedSupplierQuery: React.FC = ({ dispatch }) => { }, { title: '身份证号', dataIndex: 'idCard', key: 'idCard', align: 'center', ellipsis: true }, { title: '联系电话', dataIndex: 'personPhone', key: 'personPhone', align: 'center', ellipsis: true }, - { title: '准入单位', dataIndex: 'orgName', key: 'orgName', align: 'center' }, - { title: '创建部门', dataIndex: 'deptName', key: 'deptName', align: 'center' }, + { title: '准入单位', dataIndex: 'orgName', key: 'orgName', align: 'center', width: 120, ellipsis: true }, + { title: '创建人', dataIndex: 'createName', key: 'createName', align: 'center', width: 120, ellipsis: true }, { title: '创建时间', dataIndex: 'createTime', key: 'createTime', align: 'center', ellipsis: true }, { title: '操作', @@ -225,7 +225,7 @@ const PersonQualifiedSupplierQuery: React.FC = ({ dispatch }) => {