|
@@ -1,7 +1,20 @@
|
|
|
import HttpClient from '@/components/HttpUtil';
|
|
|
-import { loanApiIntegration, queryApiLoan, queryEgressApiEndpoint } from '@/services/op-admin/gateway/egress';
|
|
|
+import {
|
|
|
+ loanApiIntegration,
|
|
|
+ queryApiLoan,
|
|
|
+ queryEgressApiEndpoint,
|
|
|
+} from '@/services/op-admin/gateway/egress';
|
|
|
import { queryMerchant } from '@/services/op-admin/gateway/merchant';
|
|
|
-import { FooterToolbar, PageContainer, ProCard, ProForm, ProFormInstance, ProFormSelect, ProFormTextArea, StepsForm } from '@ant-design/pro-components';
|
|
|
+import {
|
|
|
+ FooterToolbar,
|
|
|
+ PageContainer,
|
|
|
+ ProCard,
|
|
|
+ ProForm,
|
|
|
+ ProFormInstance,
|
|
|
+ ProFormSelect,
|
|
|
+ ProFormTextArea,
|
|
|
+ StepsForm,
|
|
|
+} from '@ant-design/pro-components';
|
|
|
import { useLocation } from '@umijs/max';
|
|
|
import { Button, message, Popconfirm, Spin } from 'antd';
|
|
|
import React, { useRef, useState } from 'react';
|
|
@@ -22,104 +35,108 @@ const LoanIntegration: React.FC = () => {
|
|
|
/** 页面loading */
|
|
|
const [pageLoading, setPageLoading] = useState<boolean>(false);
|
|
|
/** 撞库通道集成方式 */
|
|
|
- const [ciEndpointIntegrationMode, setCiEndpointIntegrationMode] = useState('customize')
|
|
|
+ const [ciEndpointIntegrationMode, setCiEndpointIntegrationMode] = useState('customize');
|
|
|
/** 注册通道集成方式 */
|
|
|
- const [apyEndpointIntegrationMode, setApyEndpointIntegrationMode] = useState('customize')
|
|
|
+ const [apyEndpointIntegrationMode, setApyEndpointIntegrationMode] = useState('customize');
|
|
|
/** 撞库通道ID */
|
|
|
- const [checkintoEndpointId, setCheckintoEndpointId] = useState<string>('')
|
|
|
+ const [checkintoEndpointId, setCheckintoEndpointId] = useState<string>('');
|
|
|
/** 申请注册ID */
|
|
|
- const [applyEndpointId, setApplyintoEndpointId] = useState<string>('')
|
|
|
+ const [applyEndpointId, setApplyintoEndpointId] = useState<string>('');
|
|
|
/** 查询撞库通道 */
|
|
|
const handleQueryCheckintoEndpoint = () => {
|
|
|
return queryEgressApiEndpoint({
|
|
|
endpointCode: 'checkinto',
|
|
|
- apiId: (location.state as { id: string, from: string }).id
|
|
|
- }).then((resp) => {
|
|
|
- if (resp.data && resp.data.length > 0) {
|
|
|
- let integrationMode = resp.data[0].integrationMode;
|
|
|
- setCiEndpointIntegrationMode(integrationMode)
|
|
|
- setCheckintoEndpointId(resp.data[0].id)
|
|
|
- if (integrationMode === 'guide') {
|
|
|
- return {
|
|
|
- ...resp.data[0],
|
|
|
- ...JSON.parse(resp.data[0].requestConfig)
|
|
|
+ apiId: (location.state as { id: string; from: string }).id,
|
|
|
+ })
|
|
|
+ .then((resp) => {
|
|
|
+ if (resp.data && resp.data.length > 0) {
|
|
|
+ let integrationMode = resp.data[0].integrationMode;
|
|
|
+ setCiEndpointIntegrationMode(integrationMode);
|
|
|
+ setCheckintoEndpointId(resp.data[0].id);
|
|
|
+ if (integrationMode === 'guide') {
|
|
|
+ return {
|
|
|
+ ...resp.data[0],
|
|
|
+ ...JSON.parse(resp.data[0].requestConfig),
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ return {
|
|
|
+ ...resp.data[0],
|
|
|
+ ...resp.data[0].requestConfig,
|
|
|
+ };
|
|
|
}
|
|
|
} else {
|
|
|
+ //默认值
|
|
|
+ setCiEndpointIntegrationMode('customize');
|
|
|
return {
|
|
|
- ...resp.data[0],
|
|
|
- ...resp.data[0].requestConfig
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- //默认值
|
|
|
- setCiEndpointIntegrationMode('customize');
|
|
|
- return {
|
|
|
- integrationMode: 'customize'
|
|
|
+ integrationMode: 'customize',
|
|
|
+ };
|
|
|
}
|
|
|
- }
|
|
|
- }).catch();
|
|
|
- }
|
|
|
+ })
|
|
|
+ .catch();
|
|
|
+ };
|
|
|
|
|
|
/** 查询申请通道 */
|
|
|
const handleQueryApplyEndpoint = () => {
|
|
|
return queryEgressApiEndpoint({
|
|
|
endpointCode: 'apply',
|
|
|
- apiId: (location.state as { id: string, from: string }).id
|
|
|
- }).then((resp) => {
|
|
|
- if (resp.data && resp.data.length > 0) {
|
|
|
- let integrationMode = resp.data[0].integrationMode;
|
|
|
- setApyEndpointIntegrationMode(resp.data[0].integrationMode)
|
|
|
- setApplyintoEndpointId(resp.data[0].id)
|
|
|
- if (integrationMode === 'guide') {
|
|
|
- return {
|
|
|
- ...resp.data[0],
|
|
|
- ...JSON.parse(resp.data[0].requestConfig)
|
|
|
+ apiId: (location.state as { id: string; from: string }).id,
|
|
|
+ })
|
|
|
+ .then((resp) => {
|
|
|
+ if (resp.data && resp.data.length > 0) {
|
|
|
+ let integrationMode = resp.data[0].integrationMode;
|
|
|
+ setApyEndpointIntegrationMode(resp.data[0].integrationMode);
|
|
|
+ setApplyintoEndpointId(resp.data[0].id);
|
|
|
+ if (integrationMode === 'guide') {
|
|
|
+ return {
|
|
|
+ ...resp.data[0],
|
|
|
+ ...JSON.parse(resp.data[0].requestConfig),
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ return {
|
|
|
+ ...resp.data[0],
|
|
|
+ ...resp.data[0].requestConfig,
|
|
|
+ };
|
|
|
}
|
|
|
} else {
|
|
|
+ setApyEndpointIntegrationMode('customize');
|
|
|
return {
|
|
|
- ...resp.data[0],
|
|
|
- ...resp.data[0].requestConfig
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- setApyEndpointIntegrationMode('customize');
|
|
|
- return {
|
|
|
- integrationMode: 'customize'
|
|
|
+ integrationMode: 'customize',
|
|
|
+ };
|
|
|
}
|
|
|
- }
|
|
|
- }).catch();
|
|
|
- }
|
|
|
+ })
|
|
|
+ .catch();
|
|
|
+ };
|
|
|
|
|
|
/** 查询助贷API */
|
|
|
const handleQueryApiLoan = () => {
|
|
|
- return queryApiLoan({ apiId: (location.state as { id: string, from: string }).id }).then(
|
|
|
- (resp) => {
|
|
|
+ return queryApiLoan({ apiId: (location.state as { id: string; from: string }).id })
|
|
|
+ .then((resp) => {
|
|
|
if (resp.data) {
|
|
|
return resp.data;
|
|
|
}
|
|
|
- return {}
|
|
|
- }
|
|
|
- ).catch();
|
|
|
- }
|
|
|
+ return {};
|
|
|
+ })
|
|
|
+ .catch();
|
|
|
+ };
|
|
|
|
|
|
/** 处理查询商户信息 */
|
|
|
const handleQueryMerchant = () => {
|
|
|
- return queryMerchant().then((resp) => {
|
|
|
- if (resp.success) {
|
|
|
- return resp.data
|
|
|
- }
|
|
|
- message.error('查询商户信息失败!')
|
|
|
- }).catch(
|
|
|
- (err) => {
|
|
|
- console.log(err)
|
|
|
- }
|
|
|
- )
|
|
|
- }
|
|
|
+ return queryMerchant()
|
|
|
+ .then((resp) => {
|
|
|
+ if (resp.success) {
|
|
|
+ return resp.data;
|
|
|
+ }
|
|
|
+ message.error('查询商户信息失败!');
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.log(err);
|
|
|
+ });
|
|
|
+ };
|
|
|
|
|
|
/** 处理通道formData */
|
|
|
const handleEndpointFormData = (endpointId: string, formData: any) => {
|
|
|
- const locationStateData = location.state as { id: string, from: string };
|
|
|
- let requestConfigStr = "";
|
|
|
+ const locationStateData = location.state as { id: string; from: string };
|
|
|
+ let requestConfigStr = '';
|
|
|
if (formData.integrationMode === 'guide') {
|
|
|
const requestConfigJson = {
|
|
|
url: formData.url,
|
|
@@ -128,7 +145,7 @@ const LoanIntegration: React.FC = () => {
|
|
|
path: formData.path,
|
|
|
query: formData.query,
|
|
|
body: formData.body,
|
|
|
- }
|
|
|
+ };
|
|
|
requestConfigStr = JSON.stringify(requestConfigJson);
|
|
|
} else {
|
|
|
requestConfigStr = formData.requestConfig;
|
|
@@ -140,7 +157,7 @@ const LoanIntegration: React.FC = () => {
|
|
|
requestConfig: requestConfigStr,
|
|
|
responseConfig: formData.responseConfig,
|
|
|
};
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
return (
|
|
|
<PageContainer
|
|
@@ -148,38 +165,37 @@ const LoanIntegration: React.FC = () => {
|
|
|
title: '',
|
|
|
}}
|
|
|
>
|
|
|
- <Spin spinning={pageLoading} >
|
|
|
+ <Spin spinning={pageLoading}>
|
|
|
<ProForm
|
|
|
formRef={mainFormRef}
|
|
|
- name='mainForm'
|
|
|
+ name="mainForm"
|
|
|
submitter={{
|
|
|
render: () => {
|
|
|
- return (
|
|
|
- <div></div>
|
|
|
- );
|
|
|
+ return <div></div>;
|
|
|
},
|
|
|
}}
|
|
|
request={handleQueryApiLoan}
|
|
|
>
|
|
|
<ProCard>
|
|
|
- <ProForm.Group >
|
|
|
+ <ProForm.Group>
|
|
|
<ProFormSelect
|
|
|
width="md"
|
|
|
name="merchantId"
|
|
|
label="商户名称"
|
|
|
placeholder="请选择商户名称"
|
|
|
request={handleQueryMerchant}
|
|
|
- fieldProps={
|
|
|
- {
|
|
|
- fieldNames: {
|
|
|
- label: 'merchantName',
|
|
|
- value: 'id'
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ fieldProps={{
|
|
|
+ fieldNames: {
|
|
|
+ label: 'merchantName',
|
|
|
+ value: 'id',
|
|
|
+ },
|
|
|
+ }}
|
|
|
required
|
|
|
/>
|
|
|
- <ProFormSelect width="md" name="integrationSystem" label="集成系统"
|
|
|
+ <ProFormSelect
|
|
|
+ width="md"
|
|
|
+ name="integrationSystem"
|
|
|
+ label="集成系统"
|
|
|
valueEnum={{
|
|
|
1: '我方通用API',
|
|
|
2: '合作方CRM',
|
|
@@ -218,33 +234,27 @@ const LoanIntegration: React.FC = () => {
|
|
|
</ProForm>
|
|
|
<ProCard style={{ marginTop: '10px' }}>
|
|
|
<StepsForm
|
|
|
- formProps={
|
|
|
- {
|
|
|
- initialValues: {
|
|
|
- contentType: 'raw'
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ formProps={{
|
|
|
+ initialValues: {
|
|
|
+ contentType: 'raw',
|
|
|
+ },
|
|
|
+ }}
|
|
|
submitter={{
|
|
|
render: (props) => {
|
|
|
if (props.step === 0) {
|
|
|
return (
|
|
|
- <FooterToolbar >
|
|
|
+ <FooterToolbar>
|
|
|
<Popconfirm
|
|
|
title="确认返回列表页?"
|
|
|
okText="确定"
|
|
|
cancelText="取消"
|
|
|
onConfirm={() => {
|
|
|
- history.push(
|
|
|
- {
|
|
|
- pathname: (location.state as { id: string, from: string }).from,
|
|
|
- },
|
|
|
- )
|
|
|
+ history.push({
|
|
|
+ pathname: (location.state as { id: string; from: string }).from,
|
|
|
+ });
|
|
|
}}
|
|
|
>
|
|
|
- <Button>
|
|
|
- 返回
|
|
|
- </Button>
|
|
|
+ <Button>返回</Button>
|
|
|
</Popconfirm>
|
|
|
<Button type="primary" onClick={() => props.onSubmit?.()}>
|
|
|
下一步
|
|
@@ -254,7 +264,7 @@ const LoanIntegration: React.FC = () => {
|
|
|
}
|
|
|
|
|
|
return (
|
|
|
- <FooterToolbar >
|
|
|
+ <FooterToolbar>
|
|
|
<Button key="gotoOne" onClick={() => props.onPre?.()}>
|
|
|
上一步
|
|
|
</Button>
|
|
@@ -264,10 +274,7 @@ const LoanIntegration: React.FC = () => {
|
|
|
cancelText="取消"
|
|
|
onConfirm={() => props.onSubmit?.()}
|
|
|
>
|
|
|
- <Button
|
|
|
- type="primary"
|
|
|
- key="submit"
|
|
|
- >
|
|
|
+ <Button type="primary" key="submit">
|
|
|
提交
|
|
|
</Button>
|
|
|
</Popconfirm>
|
|
@@ -286,14 +293,16 @@ const LoanIntegration: React.FC = () => {
|
|
|
return true;
|
|
|
}}
|
|
|
>
|
|
|
- <ProCard title='通道配置' bordered >
|
|
|
- <ProFormSelect<string> name="integrationMode" placeholder="请选择配置方式"
|
|
|
+ <ProCard title="通道配置" bordered>
|
|
|
+ <ProFormSelect<string>
|
|
|
+ name="integrationMode"
|
|
|
+ placeholder="请选择配置方式"
|
|
|
valueEnum={{
|
|
|
customize: '自定义代码方式',
|
|
|
guide: '向导配置方式',
|
|
|
}}
|
|
|
- label='集成方式'
|
|
|
- width='sm'
|
|
|
+ label="集成方式"
|
|
|
+ width="sm"
|
|
|
rules={[
|
|
|
{
|
|
|
required: true,
|
|
@@ -301,44 +310,52 @@ const LoanIntegration: React.FC = () => {
|
|
|
},
|
|
|
]}
|
|
|
onChange={(value) => {
|
|
|
- setCiEndpointIntegrationMode(value)
|
|
|
+ setCiEndpointIntegrationMode(value);
|
|
|
}}
|
|
|
/>
|
|
|
</ProCard>
|
|
|
- <ProCard title='请求配置' bordered style={{ marginTop: '5px' }}>
|
|
|
- {ciEndpointIntegrationMode === "customize" ? <div style={{ width: '85vw' }}>
|
|
|
- <ProFormTextArea
|
|
|
- label="请求配置参数"
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请填写请求配置参数',
|
|
|
- },
|
|
|
- ]}
|
|
|
- name="requestConfig"
|
|
|
- fieldProps={{
|
|
|
- rows: 8,
|
|
|
- }}
|
|
|
- />
|
|
|
- </div> : <HttpClient />}
|
|
|
- </ProCard>
|
|
|
- <ProCard title='响应配置' bordered style={{ marginTop: '5px' }}>
|
|
|
- <div style={{ width: '85vw' }}>
|
|
|
- <ProFormTextArea
|
|
|
- label="响应配置参数"
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请填写响应配置参数',
|
|
|
- },
|
|
|
- ]}
|
|
|
- name="responseConfig"
|
|
|
- fieldProps={{
|
|
|
- rows: 8,
|
|
|
- }}
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <ProCard title="请求配置" bordered style={{ marginTop: '5px' }}>
|
|
|
+ {ciEndpointIntegrationMode === 'customize' ? (
|
|
|
+ <div style={{ width: '85vw' }}>
|
|
|
+ <ProFormTextArea
|
|
|
+ label="请求配置参数"
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请填写请求配置参数',
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ name="requestConfig"
|
|
|
+ fieldProps={{
|
|
|
+ rows: 8,
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ ) : (
|
|
|
+ <HttpClient />
|
|
|
+ )}
|
|
|
</ProCard>
|
|
|
+ {ciEndpointIntegrationMode === 'customize' ? (
|
|
|
+ <div />
|
|
|
+ ) : (
|
|
|
+ <ProCard title="响应配置" bordered style={{ marginTop: '5px' }}>
|
|
|
+ <div style={{ width: '85vw' }}>
|
|
|
+ <ProFormTextArea
|
|
|
+ label="响应配置参数"
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请填写响应配置参数',
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ name="responseConfig"
|
|
|
+ fieldProps={{
|
|
|
+ rows: 8,
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </ProCard>
|
|
|
+ )}
|
|
|
</StepsForm.StepForm>
|
|
|
|
|
|
{/* 分界线 */}
|
|
@@ -350,44 +367,44 @@ const LoanIntegration: React.FC = () => {
|
|
|
request={handleQueryApplyEndpoint}
|
|
|
grid
|
|
|
onFinish={async (formData) => {
|
|
|
- setPageLoading(true)
|
|
|
- let locationStateData = location.state as { id: string, from: string };
|
|
|
+ setPageLoading(true);
|
|
|
+ let locationStateData = location.state as { id: string; from: string };
|
|
|
let applyFormData = handleEndpointFormData(applyEndpointId, formData);
|
|
|
loanApiIntegration({
|
|
|
apiId: locationStateData.id,
|
|
|
apiLoanInfo: mainFormRef.current?.getFieldFormatValueObject?.() as ApiLoan,
|
|
|
checkinto: checkIntoFormData,
|
|
|
apply: applyFormData,
|
|
|
- }).then((resp) => {
|
|
|
- if (resp.success) {
|
|
|
- let toPathname = '/ui/egress/endpoint';
|
|
|
- if (locationStateData.from === 'api') {
|
|
|
- toPathname = '/ui/egress/api';
|
|
|
- }
|
|
|
- message.success('创建成功!')
|
|
|
- history.push(
|
|
|
- {
|
|
|
+ })
|
|
|
+ .then((resp) => {
|
|
|
+ if (resp.success) {
|
|
|
+ let toPathname = '/ui/egress/endpoint';
|
|
|
+ if (locationStateData.from === 'api') {
|
|
|
+ toPathname = '/ui/egress/api';
|
|
|
+ }
|
|
|
+ message.success('创建成功!');
|
|
|
+ history.push({
|
|
|
pathname: toPathname,
|
|
|
- },
|
|
|
- )
|
|
|
- }
|
|
|
- }).catch(
|
|
|
- (err) => {
|
|
|
- setPageLoading(false)
|
|
|
- console.log(err)
|
|
|
- }
|
|
|
- )
|
|
|
+ });
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ setPageLoading(false);
|
|
|
+ console.log(err);
|
|
|
+ });
|
|
|
return false;
|
|
|
}}
|
|
|
>
|
|
|
- <ProCard title='通道配置' bordered>
|
|
|
- <ProFormSelect<string> name="integrationMode" placeholder="请选择配置方式"
|
|
|
+ <ProCard title="通道配置" bordered>
|
|
|
+ <ProFormSelect<string>
|
|
|
+ name="integrationMode"
|
|
|
+ placeholder="请选择配置方式"
|
|
|
valueEnum={{
|
|
|
customize: '自定义代码方式',
|
|
|
guide: '向导配置方式',
|
|
|
}}
|
|
|
- label='集成方式'
|
|
|
- width='sm'
|
|
|
+ label="集成方式"
|
|
|
+ width="sm"
|
|
|
rules={[
|
|
|
{
|
|
|
required: true,
|
|
@@ -395,50 +412,57 @@ const LoanIntegration: React.FC = () => {
|
|
|
},
|
|
|
]}
|
|
|
onChange={(value) => {
|
|
|
- setApyEndpointIntegrationMode(value)
|
|
|
+ setApyEndpointIntegrationMode(value);
|
|
|
}}
|
|
|
/>
|
|
|
</ProCard>
|
|
|
- <ProCard title='请求配置' bordered style={{ marginTop: '5px' }}>
|
|
|
- {apyEndpointIntegrationMode === "customize" ? <div style={{ width: '85vw' }}>
|
|
|
- <ProFormTextArea
|
|
|
- label="请求配置参数"
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请填写请求配置参数',
|
|
|
- },
|
|
|
- ]}
|
|
|
- name="requestConfig"
|
|
|
- fieldProps={{
|
|
|
- rows: 8,
|
|
|
- }}
|
|
|
- />
|
|
|
- </div> : <HttpClient />}
|
|
|
-
|
|
|
- </ProCard>
|
|
|
- <ProCard title='响应配置' bordered style={{ marginTop: '5px' }}>
|
|
|
- <div style={{ width: '85vw' }}>
|
|
|
- <ProFormTextArea
|
|
|
- label="响应配置参数"
|
|
|
- rules={[
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: '请填写响应配置参数',
|
|
|
- },
|
|
|
- ]}
|
|
|
- name="responseConfig"
|
|
|
- fieldProps={{
|
|
|
- rows: 8,
|
|
|
- }}
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <ProCard title="请求配置" bordered style={{ marginTop: '5px' }}>
|
|
|
+ {apyEndpointIntegrationMode === 'customize' ? (
|
|
|
+ <div style={{ width: '85vw' }}>
|
|
|
+ <ProFormTextArea
|
|
|
+ label="请求配置参数"
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请填写请求配置参数',
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ name="requestConfig"
|
|
|
+ fieldProps={{
|
|
|
+ rows: 8,
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ ) : (
|
|
|
+ <HttpClient />
|
|
|
+ )}
|
|
|
</ProCard>
|
|
|
+ {ciEndpointIntegrationMode === 'customize' ? (
|
|
|
+ <div />
|
|
|
+ ) : (
|
|
|
+ <ProCard title="响应配置" bordered style={{ marginTop: '5px' }}>
|
|
|
+ <div style={{ width: '85vw' }}>
|
|
|
+ <ProFormTextArea
|
|
|
+ label="响应配置参数"
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请填写响应配置参数',
|
|
|
+ },
|
|
|
+ ]}
|
|
|
+ name="responseConfig"
|
|
|
+ fieldProps={{
|
|
|
+ rows: 8,
|
|
|
+ }}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </ProCard>
|
|
|
+ )}
|
|
|
</StepsForm.StepForm>
|
|
|
</StepsForm>
|
|
|
</ProCard>
|
|
|
</Spin>
|
|
|
- </PageContainer >
|
|
|
+ </PageContainer>
|
|
|
);
|
|
|
-}
|
|
|
-export default LoanIntegration;
|
|
|
+};
|
|
|
+export default LoanIntegration;
|