From 90b8628eb8232c2615e6e7bddf76e882cdbd10ca Mon Sep 17 00:00:00 2001 From: linxd <544554903@qq.com> Date: Fri, 18 Jul 2025 10:34:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(register):=20=E6=B7=BB=E5=8A=A0=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E5=90=8E=E9=87=8D=E5=AE=9A=E5=90=91=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 从URL参数获取redirect值并在注册成功后跳转 --- src/pages/register/supplier.tsx | 79 ++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 35 deletions(-) diff --git a/src/pages/register/supplier.tsx b/src/pages/register/supplier.tsx index a7570c7..f1c4891 100644 --- a/src/pages/register/supplier.tsx +++ b/src/pages/register/supplier.tsx @@ -1,6 +1,6 @@ // 供应商注册 -import React, { useState, useEffect } from 'react'; -import { useIntl, history } from 'umi'; +import React, { useState, useEffect, useRef } from 'react'; +import { useIntl, history, useLocation } from 'umi'; import { Form, Button, message, Radio, Checkbox, Modal, Spin } from 'antd'; import { HomeOutlined } from '@ant-design/icons'; import DomesticForm from './supplier/DomesticForm'; @@ -25,12 +25,17 @@ const SupplierRegister: React.FC = (props) => { const [modalVisible, setModalVisible] = useState(false); const [surveyQuestions, setSurveyQuestions] = useState([]); const [fetchingQuestions, setFetchingQuestions] = useState(false); - + const location = useLocation(); + const redirectRef = useRef(''); // 获取问卷列表 useEffect(() => { + const searchParams = new URLSearchParams(location.search); + const redirect = searchParams.get('redirect'); // 获取 redirect 参数 + if (redirect) { + redirectRef.current = redirect; + } //供应商带录入 if (supplierWithInput) { - } const fetchQuestions = async () => { setFetchingQuestions(true); @@ -85,17 +90,19 @@ const SupplierRegister: React.FC = (props) => { values.coscoSupplierBase = values.coscoSupplierBase || {}; values.coscoSupplierBase.supplierType = supplierType; - if(supplierType === 'pe') { + if (supplierType === 'pe') { values.coscoSupplierBase.personName = values.coscoSupplierBase.name; values.coscoSupplierBase.personPhone = values.coscoSupplierBase.contactPhone; - values.coscoSupplierSurveyAttachments = [{ - attachmentsType: "accessory", - fileName: values.attachments.file.response.fileName, - fileType: values.attachments.file.response.fileType, - fileSize: values.attachments.file.response.fileSize, - filePath: values.attachments.file.response.filePath, - fileUrl: values.attachments.file.response.filePath, - }] + values.coscoSupplierSurveyAttachments = [ + { + attachmentsType: 'accessory', + fileName: values.attachments.file.response.fileName, + fileType: values.attachments.file.response.fileType, + fileSize: values.attachments.file.response.fileSize, + filePath: values.attachments.file.response.filePath, + fileUrl: values.attachments.file.response.filePath, + }, + ]; } console.log('供应商注册信息:', values); // 直接调用API supplierWithInput === true 供应商注册代录 否则 注册 accessory @@ -103,6 +110,10 @@ const SupplierRegister: React.FC = (props) => { const response = await (supplierWithInput ? addAgent(values) : coscoSupplierBaseAdd(values)); if (response.success) { + if (redirectRef.current) { + window.location.href = redirectRef.current; + return; + } if (!supplierWithInput) { message.success('注册成功,请登录'); history.push('/login'); @@ -143,7 +154,6 @@ const SupplierRegister: React.FC = (props) => { )} -
= (props) => { wrapperCol={{ span: 17 }} > - + 境内企业/机构 境外企业 - {supplierWithInput && ( - 个人 - )} + {supplierWithInput && 个人} - {supplierType === 'dvs' ? ( = (props) => { ]} >
- - 我已阅读并同意 - - + + 我已阅读并同意 + +
)} - -