更改注册页面样式;修改公告公示页面样式
This commit is contained in:
@ -3,19 +3,6 @@ export default [
|
|||||||
path: '/login',
|
path: '/login',
|
||||||
component: '@/pages/login/login',
|
component: '@/pages/login/login',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: '/register',
|
|
||||||
routes: [
|
|
||||||
{
|
|
||||||
path: '/register/supplier',
|
|
||||||
component: '@/pages/register/supplier',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/register/expert',
|
|
||||||
component: '@/pages/register/expert',
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: '/',
|
path: '/',
|
||||||
component: '@/layouts/Index',
|
component: '@/layouts/Index',
|
||||||
@ -84,7 +71,20 @@ export default [
|
|||||||
name: 'helpQuestion',
|
name: 'helpQuestion',
|
||||||
path: '/help/helpQuestion',
|
path: '/help/helpQuestion',
|
||||||
component: '@/pages/help/helpQuestion',
|
component: '@/pages/help/helpQuestion',
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
path: '/register',
|
||||||
|
routes: [
|
||||||
|
{
|
||||||
|
path: '/register/supplier',
|
||||||
|
component: '@/pages/register/supplier',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/register/expert',
|
||||||
|
component: '@/pages/register/expert',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
BIN
src/assets/img/fileIcon.png
Normal file
BIN
src/assets/img/fileIcon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
@ -63,14 +63,14 @@
|
|||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.announceContainer{
|
.announceContainer {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
.banner{
|
.banner {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 300px;
|
height: 300px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
.search{
|
.search {
|
||||||
border: 1px solid rgba(@main-text-color-2, 0.1);
|
border: 1px solid rgba(@main-text-color-2, 0.1);
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
@ -87,9 +87,9 @@
|
|||||||
min-width: 60px;
|
min-width: 60px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
border-left-width:1px;
|
border-left-width: 1px;
|
||||||
background: rgb(244, 244, 245);
|
background: rgb(244, 244, 245);
|
||||||
&:before{
|
&:before {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -117,7 +117,8 @@
|
|||||||
background-color: rgb(0, 79, 142);
|
background-color: rgb(0, 79, 142);
|
||||||
border-color: rgb(0, 79, 142);
|
border-color: rgb(0, 79, 142);
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
&:hover, &:focus {
|
&:hover,
|
||||||
|
&:focus {
|
||||||
background-color: rgba(0, 79, 142, 0.8);
|
background-color: rgba(0, 79, 142, 0.8);
|
||||||
border-color: rgba(0, 79, 142, 0.8);
|
border-color: rgba(0, 79, 142, 0.8);
|
||||||
}
|
}
|
||||||
@ -172,21 +173,62 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
gap: 20px;
|
gap: 20px;
|
||||||
}
|
}
|
||||||
.supplierService{
|
.supplierService {
|
||||||
border: 1px solid rgba(@main-text-color-2, 0.1);
|
border: 1px solid rgba(@main-text-color-2, 0.1);
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
margin-top: 12px;
|
margin-top: 12px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
.supplierServiceTitle{
|
.supplierServiceTitle {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
.downloadCenterBtn {
|
||||||
|
margin: 10px auto;
|
||||||
|
width: 150px;
|
||||||
|
color: #fff;
|
||||||
|
// #54d0d7 #0195a2 渐变
|
||||||
|
background: linear-gradient(to bottom, #54d0d7, #0195a2);
|
||||||
|
text-align: center;
|
||||||
|
padding: 5px 0;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.downloadCenterBtn2 {
|
||||||
|
background: linear-gradient(to bottom, #005faf, #004f8f);
|
||||||
|
}
|
||||||
|
.downloadCenterDesc {
|
||||||
|
background-color: #ededed;
|
||||||
|
padding: 15px;
|
||||||
|
// border-radius: 5px;
|
||||||
|
// margin-top: 10px;
|
||||||
|
// font-size: 12px;
|
||||||
|
// color: #666;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.downloadCenterList {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
margin-top: 20px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
li {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
line-height: 26px;
|
||||||
|
&:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
width: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.listItem {
|
.listItem {
|
||||||
// border-bottom: 1px solid #f0f0f0;
|
// border-bottom: 1px solid #f0f0f0;
|
||||||
}
|
}
|
||||||
.ant-list-item{
|
.ant-list-item {
|
||||||
border-bottom: none !important;
|
border-bottom: none !important;
|
||||||
}
|
}
|
||||||
.itemContent {
|
.itemContent {
|
||||||
@ -202,14 +244,14 @@
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
}
|
}
|
||||||
.itemInfo{
|
.itemInfo {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
.itemCompany{
|
.itemCompany {
|
||||||
color: @main-text-color-1;
|
color: @main-text-color-1;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
.itemDate{
|
.itemDate {
|
||||||
color: @main-text-color-2;
|
color: @main-text-color-2;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
@ -219,13 +261,13 @@
|
|||||||
min-width: 90px;
|
min-width: 90px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.itemLastTime{
|
.itemLastTime {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
.itemLastTimeNum{
|
.itemLastTimeNum {
|
||||||
color: @main-text-color-1;
|
color: @main-text-color-1;
|
||||||
background-color: @main-danger-color;
|
background-color: @main-danger-color;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
@ -234,7 +276,7 @@
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
.itemLastTimeBtn{
|
.itemLastTimeBtn {
|
||||||
background: rgba(@main-danger-color, 0.1);
|
background: rgba(@main-danger-color, 0.1);
|
||||||
border: 1px solid rgba(@main-danger-color, 0.5);
|
border: 1px solid rgba(@main-danger-color, 0.5);
|
||||||
color: @main-danger-color;
|
color: @main-danger-color;
|
||||||
@ -260,15 +302,15 @@
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
border-top: 1px solid rgba(@main-text-color-2, 0.1);
|
border-top: 1px solid rgba(@main-text-color-2, 0.1);
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
.itemFooterLeft{
|
.itemFooterLeft {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
}
|
}
|
||||||
.itemFooterRight{
|
.itemFooterRight {
|
||||||
min-width: 180px;
|
min-width: 180px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
.itemFooterRightBtn{
|
.itemFooterRightBtn {
|
||||||
color: @main-color;
|
color: @main-color;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
@ -282,4 +324,3 @@
|
|||||||
min-width: 180px;
|
min-width: 180px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,17 +169,25 @@ const AnnouncePage: React.FC = () => {
|
|||||||
<div className={styles.supplierService}>
|
<div className={styles.supplierService}>
|
||||||
<div className={styles.supplierServiceTitle}>供应商服务</div>
|
<div className={styles.supplierServiceTitle}>供应商服务</div>
|
||||||
<img src="" alt="" />
|
<img src="" alt="" />
|
||||||
<Button className={styles.downloadCenter}>下载中心</Button>
|
<div className={styles.downloadCenterBtn}>下载中心</div>
|
||||||
<ul>
|
<ul className={styles.downloadCenterList}>
|
||||||
<li>
|
<li>
|
||||||
<i></i>
|
<img src={require('@/assets/img/fileIcon.png')} alt="" />
|
||||||
|
<span>公开招标操作手册</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<img src={require('@/assets/img/fileIcon.png')} alt="" />
|
||||||
|
<span>公开招标操作手册</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<img src={require('@/assets/img/fileIcon.png')} alt="" />
|
||||||
<span>公开招标操作手册</span>
|
<span>公开招标操作手册</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<Button>投标指引</Button>
|
<div className={styles.downloadCenterBtn + ' ' + styles.downloadCenterBtn2}>投标指引</div>
|
||||||
|
|
||||||
<div>
|
<div className={styles.downloadCenterDesc}>
|
||||||
投标指引包含各采购方式系统的投标操作流程,及相关插件的安装操作手册,请各供应商先进行登录,后方可查看.
|
投标指引包含各采购方式系统的投标操作流程,及相关插件的安装操作手册,请各供应商先进行登录,后方可查看.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,31 +2,49 @@
|
|||||||
|
|
||||||
// 注册页面整体布局
|
// 注册页面整体布局
|
||||||
.register-page {
|
.register-page {
|
||||||
display: flex;
|
background: #fff;
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
min-height: 100vh;
|
|
||||||
background: #f0f2f5;
|
|
||||||
background-image: url('~@/assets/img/loginBg.jpg');
|
|
||||||
background-size: cover;
|
|
||||||
background-position: center;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
.register-banner{
|
||||||
|
width: 100%;
|
||||||
|
height: 400px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
img{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.register-radio-item{
|
||||||
|
border: 1px solid #d9d9d9;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 5px 0;
|
||||||
|
min-width: 150px;
|
||||||
|
text-align: center;
|
||||||
|
margin-right: 10px;
|
||||||
|
&.active{
|
||||||
|
border-color: @main-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.border-box{
|
||||||
|
border: 1px solid #d9d9d9;
|
||||||
|
padding: 20px 50px;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 注册容器
|
// 注册容器
|
||||||
.register-container {
|
.register-container {
|
||||||
width: 600px;
|
// width: 600px;
|
||||||
padding: 30px;
|
padding: 30px;
|
||||||
background: rgba(255, 255, 255, 0.95);
|
// background: rgba(255, 255, 255, 0.95);
|
||||||
border-radius: 8px;
|
// border-radius: 8px;
|
||||||
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
// box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
|
||||||
position: relative;
|
position: relative;
|
||||||
margin: 40px 0;
|
// margin: 40px 0;
|
||||||
&.large-width{
|
// &.large-width{
|
||||||
width: 80%;
|
// width: 80%;
|
||||||
position: absolute;
|
// position: absolute;
|
||||||
top: 3%;
|
// top: 3%;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// 标题样式
|
// 标题样式
|
||||||
@ -62,9 +80,12 @@
|
|||||||
.form-section-title {
|
.form-section-title {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin: 20px 0 16px 0;
|
// margin: 0 0 20px 40px;
|
||||||
padding-left: 12px;
|
// margin-left: 0px;
|
||||||
border-left: 4px solid #1890ff;
|
margin-bottom: 20px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
border-bottom: 1px solid #e5e5e5;
|
||||||
|
// border-left: 4px solid #1890ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.questionnaire-header,
|
.questionnaire-header,
|
||||||
@ -109,10 +130,10 @@
|
|||||||
|
|
||||||
|
|
||||||
.register-form{
|
.register-form{
|
||||||
height: 75vh;
|
// height: 75vh;
|
||||||
overflow-x: hidden;
|
// overflow-x: hidden;
|
||||||
overflow-y: auto;
|
// overflow-y: auto;
|
||||||
.ant-form-item-label-fix{
|
.ant-form-item-label-fix{
|
||||||
padding-left: 30px !important;
|
padding-left: 30px !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,7 +65,9 @@ const SupplierRegister: React.FC = () => {
|
|||||||
form
|
form
|
||||||
.validateFields(['contactPhone'])
|
.validateFields(['contactPhone'])
|
||||||
.then((values) => {
|
.then((values) => {
|
||||||
message.success(intl.formatMessage({ id: 'register.captcha.sent' }, { phone: values.contactPhone }));
|
message.success(
|
||||||
|
intl.formatMessage({ id: 'register.captcha.sent' }, { phone: values.contactPhone }),
|
||||||
|
);
|
||||||
let count = 60;
|
let count = 60;
|
||||||
setCountdown(count);
|
setCountdown(count);
|
||||||
|
|
||||||
@ -188,39 +190,41 @@ const SupplierRegister: React.FC = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="register-page ">
|
<div className="register-page ">
|
||||||
<div className="register-container large-width">
|
<div className="register-banner">
|
||||||
<div className="back-home">
|
<img src={require('@/assets/img/banner.jpg')} alt="注册banner" />
|
||||||
<a onClick={() => history.push('/index')}>
|
</div>
|
||||||
<HomeOutlined /> {intl.formatMessage({ id: 'login.back.home' })}
|
<div className="layout-content-main">
|
||||||
</a>
|
{/* fetchingQuestions */}
|
||||||
</div>
|
<Spin spinning={false}>
|
||||||
|
|
||||||
<div className="register-title">
|
|
||||||
{intl.formatMessage({ id: 'register.supplier.title' })}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<Spin spinning={fetchingQuestions}>
|
|
||||||
<Form
|
<Form
|
||||||
form={form}
|
form={form}
|
||||||
name="supplier_register"
|
name="supplier_register"
|
||||||
className="register-form"
|
className="register-form"
|
||||||
onFinish={onFinish}
|
onFinish={onFinish}
|
||||||
onFinishFailed={onFinishFailed}
|
onFinishFailed={onFinishFailed}
|
||||||
layout="horizontal"
|
layout="vertical"
|
||||||
labelAlign="right"
|
|
||||||
size="large"
|
size="large"
|
||||||
labelCol={{ span: 7 }}
|
|
||||||
wrapperCol={{ span: 17 }}
|
|
||||||
>
|
>
|
||||||
<Form.Item label={intl.formatMessage({ id: 'register.supplier.identityType' })} labelCol={{ span: 2 }} wrapperCol={{ span: 19 }}>
|
<Form.Item>
|
||||||
<Radio.Group
|
<div style={{ textAlign: 'center' }}>
|
||||||
onChange={handleSupplierTypeChange}
|
<span style={{ marginRight: 10 }}>请选择身份类型:</span>
|
||||||
buttonStyle="solid"
|
<Radio.Group
|
||||||
value={supplierType}
|
onChange={handleSupplierTypeChange}
|
||||||
>
|
buttonStyle="solid"
|
||||||
<Radio.Button value="dvs">{intl.formatMessage({ id: 'register.supplier.domestic' })}</Radio.Button>
|
value={supplierType}
|
||||||
<Radio.Button value="ovs">{intl.formatMessage({ id: 'register.supplier.foreign' })}</Radio.Button>
|
>
|
||||||
</Radio.Group>
|
<span className={`register-radio-item ${supplierType === 'dvs' ? 'active' : ''}`}>
|
||||||
|
<Radio value="dvs">
|
||||||
|
{intl.formatMessage({ id: 'register.supplier.domestic' })}
|
||||||
|
</Radio>
|
||||||
|
</span>
|
||||||
|
<span className={`register-radio-item ${supplierType === 'ovs' ? 'active' : ''}`}>
|
||||||
|
<Radio value="ovs">
|
||||||
|
{intl.formatMessage({ id: 'register.supplier.foreign' })}
|
||||||
|
</Radio>
|
||||||
|
</span>
|
||||||
|
</Radio.Group>
|
||||||
|
</div>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
{supplierType === 'dvs' ? (
|
{supplierType === 'dvs' ? (
|
||||||
@ -245,30 +249,34 @@ const SupplierRegister: React.FC = () => {
|
|||||||
<Form.Item
|
<Form.Item
|
||||||
name="agreement"
|
name="agreement"
|
||||||
valuePropName="checked"
|
valuePropName="checked"
|
||||||
labelCol={{ span: 2 }}
|
|
||||||
wrapperCol={{ span: 19 }}
|
|
||||||
rules={[
|
rules={[
|
||||||
{
|
{
|
||||||
validator: (_, value) =>
|
validator: (_, value) =>
|
||||||
value
|
value
|
||||||
? Promise.resolve()
|
? Promise.resolve()
|
||||||
: Promise.reject(new Error(intl.formatMessage({ id: 'register.supplier.agreement.required' }))),
|
: Promise.reject(
|
||||||
|
new Error(
|
||||||
|
intl.formatMessage({ id: 'register.supplier.agreement.required' }),
|
||||||
|
),
|
||||||
|
),
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
<Checkbox>
|
<div style={{ textAlign: 'center' }}>
|
||||||
{intl.formatMessage({ id: 'register.supplier.agreement' })}
|
<Checkbox>
|
||||||
<Button
|
{intl.formatMessage({ id: 'register.supplier.agreement' })}
|
||||||
type="link"
|
<Button
|
||||||
onClick={(e) => {
|
type="link"
|
||||||
e.preventDefault();
|
onClick={(e) => {
|
||||||
e.stopPropagation();
|
e.preventDefault();
|
||||||
setModalVisible(true);
|
e.stopPropagation();
|
||||||
}}
|
setModalVisible(true);
|
||||||
>
|
}}
|
||||||
{intl.formatMessage({ id: 'register.supplier.commitment' })}
|
>
|
||||||
</Button>
|
{intl.formatMessage({ id: 'register.supplier.commitment' })}
|
||||||
</Checkbox>
|
</Button>
|
||||||
|
</Checkbox>
|
||||||
|
</div>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item wrapperCol={{ span: 24 }}>
|
<Form.Item wrapperCol={{ span: 24 }}>
|
||||||
<div style={{ textAlign: 'center' }}>
|
<div style={{ textAlign: 'center' }}>
|
||||||
@ -303,18 +311,12 @@ const SupplierRegister: React.FC = () => {
|
|||||||
<p>{intl.formatMessage({ id: 'register.supplier.commitment.content.intro1' })}</p>
|
<p>{intl.formatMessage({ id: 'register.supplier.commitment.content.intro1' })}</p>
|
||||||
<p>{intl.formatMessage({ id: 'register.supplier.commitment.content.intro2' })}</p>
|
<p>{intl.formatMessage({ id: 'register.supplier.commitment.content.intro2' })}</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item1' })}</li>
|
||||||
{intl.formatMessage({ id: 'register.supplier.commitment.content.item1' })}
|
|
||||||
</li>
|
|
||||||
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item2' })}</li>
|
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item2' })}</li>
|
||||||
<li>
|
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item3' })}</li>
|
||||||
{intl.formatMessage({ id: 'register.supplier.commitment.content.item3' })}
|
|
||||||
</li>
|
|
||||||
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item4' })}</li>
|
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item4' })}</li>
|
||||||
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item5' })}</li>
|
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item5' })}</li>
|
||||||
<li>
|
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item6' })}</li>
|
||||||
{intl.formatMessage({ id: 'register.supplier.commitment.content.item6' })}
|
|
||||||
</li>
|
|
||||||
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item7' })}</li>
|
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item7' })}</li>
|
||||||
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item8' })}</li>
|
<li>{intl.formatMessage({ id: 'register.supplier.commitment.content.item8' })}</li>
|
||||||
</ol>
|
</ol>
|
||||||
|
@ -88,7 +88,7 @@ export const QualificationSection: React.FC<CommonFormSectionsProps> = ({ form }
|
|||||||
getDict();
|
getDict();
|
||||||
}, []);
|
}, []);
|
||||||
return (
|
return (
|
||||||
<>
|
<div className="border-box">
|
||||||
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.qualification' })}</div>
|
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.qualification' })}</div>
|
||||||
|
|
||||||
<Form.List name="coscoSupplierQualifications">
|
<Form.List name="coscoSupplierQualifications">
|
||||||
@ -255,7 +255,7 @@ export const QualificationSection: React.FC<CommonFormSectionsProps> = ({ form }
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</Form.List>
|
</Form.List>
|
||||||
</>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -276,7 +276,7 @@ export const InvoiceSection: React.FC<CommonFormSectionsProps> = ({ form }) => {
|
|||||||
getDict();
|
getDict();
|
||||||
}, []);
|
}, []);
|
||||||
return (
|
return (
|
||||||
<>
|
<div className="border-box">
|
||||||
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.invoice' })}</div>
|
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.invoice' })}</div>
|
||||||
|
|
||||||
<Row gutter={24}>
|
<Row gutter={24}>
|
||||||
@ -360,7 +360,7 @@ export const InvoiceSection: React.FC<CommonFormSectionsProps> = ({ form }) => {
|
|||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
</>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -371,7 +371,7 @@ export const InvoiceSection: React.FC<CommonFormSectionsProps> = ({ form }) => {
|
|||||||
export const BankAccountSection: React.FC<CommonFormSectionsProps> = ({ form }) => {
|
export const BankAccountSection: React.FC<CommonFormSectionsProps> = ({ form }) => {
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
return (
|
return (
|
||||||
<>
|
<div className="border-box">
|
||||||
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.bankAccount' })}</div>
|
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.bankAccount' })}</div>
|
||||||
|
|
||||||
<Form.List name="coscoSupplierBank">
|
<Form.List name="coscoSupplierBank">
|
||||||
@ -485,7 +485,7 @@ export const BankAccountSection: React.FC<CommonFormSectionsProps> = ({ form })
|
|||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
</Form.List>
|
</Form.List>
|
||||||
</>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -503,7 +503,7 @@ export const SurveySection: React.FC<SurveySectionProps> = ({ form, surveyQuesti
|
|||||||
console.log('调查问卷数据:', surveyQuestions);
|
console.log('调查问卷数据:', surveyQuestions);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<div className="border-box">
|
||||||
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.survey' })}</div>
|
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.survey' })}</div>
|
||||||
|
|
||||||
<div className="questionnaire-header">{intl.formatMessage({ id: 'register.survey.fillerInfo' })}:</div>
|
<div className="questionnaire-header">{intl.formatMessage({ id: 'register.survey.fillerInfo' })}:</div>
|
||||||
@ -647,7 +647,7 @@ export const SurveySection: React.FC<SurveySectionProps> = ({ form, surveyQuesti
|
|||||||
<Empty description={intl.formatMessage({ id: 'register.survey.noData' })} image={Empty.PRESENTED_IMAGE_SIMPLE} />
|
<Empty description={intl.formatMessage({ id: 'register.survey.noData' })} image={Empty.PRESENTED_IMAGE_SIMPLE} />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -657,7 +657,7 @@ export const SurveySection: React.FC<SurveySectionProps> = ({ form, surveyQuesti
|
|||||||
export const AttachmentSection: React.FC<CommonFormSectionsProps> = ({ form }) => {
|
export const AttachmentSection: React.FC<CommonFormSectionsProps> = ({ form }) => {
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
return (
|
return (
|
||||||
<>
|
<div className="border-box">
|
||||||
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.commitment' })}</div>
|
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.commitment' })}</div>
|
||||||
<Row gutter={24}>
|
<Row gutter={24}>
|
||||||
<Col span={12}>
|
<Col span={12}>
|
||||||
@ -816,6 +816,6 @@ export const AttachmentSection: React.FC<CommonFormSectionsProps> = ({ form }) =
|
|||||||
</Form.List>
|
</Form.List>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
</>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@ -48,227 +48,357 @@ const DomesticForm: React.FC<DomesticFormProps> = ({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.basicInfo' })}</div>
|
<div className="border-box">
|
||||||
|
<div className="form-section-title">
|
||||||
|
{intl.formatMessage({ id: 'register.form.section.basicInfo' })}
|
||||||
|
</div>
|
||||||
|
|
||||||
{/* 营业执照附件和有效期 */}
|
{/* 营业执照附件和有效期 */}
|
||||||
<Row gutter={24}>
|
<Row gutter={40}>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'enterpriseType']}
|
name={['coscoSupplierBase', 'enterpriseType']}
|
||||||
label={intl.formatMessage({ id: 'register.domestic.enterpriseType' })}
|
label={intl.formatMessage({ id: 'register.domestic.enterpriseType' })}
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.domestic.enterpriseType.required' }) }]}
|
rules={[
|
||||||
valuePropName="value"
|
{
|
||||||
>
|
required: true,
|
||||||
<Select placeholder={intl.formatMessage({ id: 'register.domestic.enterpriseType.placeholder' })}>
|
message: intl.formatMessage({ id: 'register.domestic.enterpriseType.required' }),
|
||||||
{entTypeList.map((item) => (
|
},
|
||||||
<Option key={item.code} value={item.code}>
|
]}
|
||||||
{item.dicName}
|
valuePropName="value"
|
||||||
</Option>
|
>
|
||||||
))}
|
<Select
|
||||||
</Select>
|
placeholder={intl.formatMessage({
|
||||||
</Form.Item>
|
id: 'register.domestic.enterpriseType.placeholder',
|
||||||
</Col>
|
})}
|
||||||
<Col span={8}>
|
>
|
||||||
<Form.Item
|
{entTypeList.map((item) => (
|
||||||
name={['coscoSupplierBase', 'licenceAccessory']}
|
<Option key={item.code} value={item.code}>
|
||||||
label={intl.formatMessage({ id: 'register.domestic.licenceAccessory' })}
|
{item.dicName}
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.domestic.licenceAccessory.required' }) }]}
|
</Option>
|
||||||
valuePropName="value"
|
))}
|
||||||
>
|
</Select>
|
||||||
<FileUpload
|
</Form.Item>
|
||||||
maxSize={10}
|
</Col>
|
||||||
allowedTypes={['pdf', 'jpg', 'jpeg', 'png']}
|
<Col span={12}></Col>
|
||||||
maxCount={1}
|
<Col span={12}>
|
||||||
buttonText={intl.formatMessage({ id: 'register.form.upload' })}
|
<Form.Item
|
||||||
tip={intl.formatMessage({ id: 'register.domestic.licenceAccessory.tip' })}
|
name={['coscoSupplierBase', 'licenceAccessory']}
|
||||||
/>
|
label={intl.formatMessage({ id: 'register.domestic.licenceAccessory' })}
|
||||||
</Form.Item>
|
rules={[
|
||||||
</Col>
|
{
|
||||||
<Col span={8}>
|
required: true,
|
||||||
<Form.Item
|
message: intl.formatMessage({
|
||||||
name={['coscoSupplierBase', 'licenceDate']}
|
id: 'register.domestic.licenceAccessory.required',
|
||||||
label={intl.formatMessage({ id: 'register.domestic.licenceDate' })}
|
}),
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.domestic.licenceDate.required' }) }]}
|
},
|
||||||
>
|
]}
|
||||||
<DatePicker placeholder={intl.formatMessage({ id: 'register.form.date.placeholder' })} style={{ width: '100%' }} format="YYYY-MM-DD" />
|
valuePropName="value"
|
||||||
</Form.Item>
|
>
|
||||||
</Col>
|
<FileUpload
|
||||||
<Col span={8}>
|
maxSize={10}
|
||||||
<Form.Item
|
allowedTypes={['pdf', 'jpg', 'jpeg', 'png']}
|
||||||
name={['coscoSupplierBase', 'name']}
|
maxCount={1}
|
||||||
label={intl.formatMessage({ id: 'register.domestic.companyName' })}
|
buttonText={intl.formatMessage({ id: 'register.form.upload' })}
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.domestic.companyName.required' }) }]}
|
tip={intl.formatMessage({ id: 'register.domestic.licenceAccessory.tip' })}
|
||||||
>
|
/>
|
||||||
<Input placeholder={intl.formatMessage({ id: 'register.domestic.companyName.placeholder' })} />
|
</Form.Item>
|
||||||
</Form.Item>
|
</Col>
|
||||||
</Col>
|
<Col span={12}>
|
||||||
<Col span={8}>
|
<Form.Item
|
||||||
<Form.Item
|
name={['coscoSupplierBase', 'licenceDate']}
|
||||||
name={['coscoSupplierBase', 'nameEn']}
|
label={intl.formatMessage({ id: 'register.domestic.licenceDate' })}
|
||||||
label={intl.formatMessage({ id: 'register.domestic.companyNameEn' })}
|
rules={[
|
||||||
rules={[{ required: false, message: intl.formatMessage({ id: 'register.domestic.companyNameEn.required' }) }]}
|
{
|
||||||
>
|
required: true,
|
||||||
<Input placeholder={intl.formatMessage({ id: 'register.domestic.companyNameEn.placeholder' })} />
|
message: intl.formatMessage({ id: 'register.domestic.licenceDate.required' }),
|
||||||
</Form.Item>
|
},
|
||||||
</Col>
|
]}
|
||||||
<Col span={8}>
|
>
|
||||||
<Form.Item
|
<DatePicker
|
||||||
name={['coscoSupplierBase', 'socialCreditCode']}
|
placeholder={intl.formatMessage({ id: 'register.form.date.placeholder' })}
|
||||||
label={intl.formatMessage({ id: 'register.domestic.socialCreditCode' })}
|
style={{ width: '100%' }}
|
||||||
rules={[
|
format="YYYY-MM-DD"
|
||||||
{ required: true, message: intl.formatMessage({ id: 'register.domestic.socialCreditCode.required' }) },
|
/>
|
||||||
{ pattern: /^[0-9A-HJ-NPQRTUWXY]{18}$/, message: intl.formatMessage({ id: 'register.domestic.socialCreditCode.pattern' }) },
|
</Form.Item>
|
||||||
]}
|
</Col>
|
||||||
>
|
<Col span={12}>
|
||||||
<Input placeholder={intl.formatMessage({ id: 'register.domestic.socialCreditCode.placeholder' })} />
|
<Form.Item
|
||||||
</Form.Item>
|
name={['coscoSupplierBase', 'name']}
|
||||||
</Col>
|
label={intl.formatMessage({ id: 'register.domestic.companyName' })}
|
||||||
<Col span={24} className="ant-form-item-label-fix">
|
rules={[
|
||||||
<Form.Item
|
{
|
||||||
name={['coscoSupplierBase', 'range']}
|
required: true,
|
||||||
label={intl.formatMessage({ id: 'register.domestic.businessScope' })}
|
message: intl.formatMessage({ id: 'register.domestic.companyName.required' }),
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.domestic.businessScope.required' }) }]}
|
},
|
||||||
labelCol={{ span: 2 }}
|
]}
|
||||||
wrapperCol={{ span: 22 }}
|
>
|
||||||
>
|
<Input
|
||||||
<TextArea
|
placeholder={intl.formatMessage({
|
||||||
placeholder={intl.formatMessage({ id: 'register.domestic.businessScope.placeholder' })}
|
id: 'register.domestic.companyName.placeholder',
|
||||||
rows={2}
|
})}
|
||||||
maxLength={200}
|
/>
|
||||||
showCount
|
</Form.Item>
|
||||||
style={{ resize: 'none' }}
|
</Col>
|
||||||
/>
|
<Col span={12}>
|
||||||
</Form.Item>
|
<Form.Item
|
||||||
</Col>
|
name={['coscoSupplierBase', 'nameEn']}
|
||||||
<Col span={24} className="ant-form-item-label-fix">
|
label={intl.formatMessage({ id: 'register.domestic.companyNameEn' })}
|
||||||
<Form.Item
|
rules={[
|
||||||
labelCol={{ span: 2 }}
|
{
|
||||||
wrapperCol={{ span: 22 }}
|
required: false,
|
||||||
name={['coscoSupplierBase', 'regAddress']}
|
message: intl.formatMessage({ id: 'register.domestic.companyNameEn.required' }),
|
||||||
label={intl.formatMessage({ id: 'register.domestic.regAddress' })}
|
},
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.domestic.regAddress.required' }) }]}
|
]}
|
||||||
>
|
>
|
||||||
<Input prefix={<EnvironmentOutlined />} placeholder={intl.formatMessage({ id: 'register.domestic.regAddress.placeholder' })} />
|
<Input
|
||||||
</Form.Item>
|
placeholder={intl.formatMessage({
|
||||||
</Col>
|
id: 'register.domestic.companyNameEn.placeholder',
|
||||||
<Col span={24} className="ant-form-item-label-fix">
|
})}
|
||||||
<Form.Item
|
/>
|
||||||
name={['coscoSupplierBase', 'workAddress']}
|
</Form.Item>
|
||||||
label={intl.formatMessage({ id: 'register.domestic.workAddress' })}
|
</Col>
|
||||||
labelCol={{ span: 2 }}
|
<Col span={12}>
|
||||||
wrapperCol={{ span: 22 }}
|
<Form.Item
|
||||||
>
|
name={['coscoSupplierBase', 'socialCreditCode']}
|
||||||
<Input
|
label={intl.formatMessage({ id: 'register.domestic.socialCreditCode' })}
|
||||||
prefix={<EnvironmentOutlined />}
|
rules={[
|
||||||
placeholder={intl.formatMessage({ id: 'register.domestic.workAddress.placeholder' })}
|
{
|
||||||
/>
|
required: true,
|
||||||
</Form.Item>
|
message: intl.formatMessage({
|
||||||
</Col>
|
id: 'register.domestic.socialCreditCode.required',
|
||||||
<Col span={24} className="ant-form-item-label-fix">
|
}),
|
||||||
<Form.Item
|
},
|
||||||
name={['coscoSupplierBase', 'parentCompanyInvestor']}
|
{
|
||||||
label={intl.formatMessage({ id: 'register.domestic.parentCompany' })}
|
pattern: /^[0-9A-HJ-NPQRTUWXY]{18}$/,
|
||||||
labelCol={{ span: 2 }}
|
message: intl.formatMessage({ id: 'register.domestic.socialCreditCode.pattern' }),
|
||||||
wrapperCol={{ span: 22 }}
|
},
|
||||||
>
|
]}
|
||||||
<Input placeholder={intl.formatMessage({ id: 'register.domestic.parentCompany.placeholder' })} />
|
>
|
||||||
</Form.Item>
|
<Input
|
||||||
</Col>
|
placeholder={intl.formatMessage({
|
||||||
|
id: 'register.domestic.socialCreditCode.placeholder',
|
||||||
|
})}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col span={12}>
|
||||||
|
<Form.Item
|
||||||
|
name={['coscoSupplierBase', 'range']}
|
||||||
|
label={intl.formatMessage({ id: 'register.domestic.businessScope' })}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: intl.formatMessage({ id: 'register.domestic.businessScope.required' }),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
placeholder={intl.formatMessage({
|
||||||
|
id: 'register.domestic.businessScope.placeholder',
|
||||||
|
})}
|
||||||
|
maxLength={200}
|
||||||
|
showCount
|
||||||
|
style={{ resize: 'none' }}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col span={12}>
|
||||||
|
<Form.Item
|
||||||
|
name={['coscoSupplierBase', 'regAddress']}
|
||||||
|
label={intl.formatMessage({ id: 'register.domestic.regAddress' })}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: intl.formatMessage({ id: 'register.domestic.regAddress.required' }),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
prefix={<EnvironmentOutlined />}
|
||||||
|
placeholder={intl.formatMessage({ id: 'register.domestic.regAddress.placeholder' })}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col span={12}>
|
||||||
|
<Form.Item
|
||||||
|
name={['coscoSupplierBase', 'workAddress']}
|
||||||
|
label={intl.formatMessage({ id: 'register.domestic.workAddress' })}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
prefix={<EnvironmentOutlined />}
|
||||||
|
placeholder={intl.formatMessage({
|
||||||
|
id: 'register.domestic.workAddress.placeholder',
|
||||||
|
})}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col span={12}>
|
||||||
|
<Form.Item
|
||||||
|
name={['coscoSupplierBase', 'parentCompanyInvestor']}
|
||||||
|
label={intl.formatMessage({ id: 'register.domestic.parentCompany' })}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
placeholder={intl.formatMessage({
|
||||||
|
id: 'register.domestic.parentCompany.placeholder',
|
||||||
|
})}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'legalPerson']}
|
name={['coscoSupplierBase', 'legalPerson']}
|
||||||
label={intl.formatMessage({ id: 'register.domestic.legalPerson' })}
|
label={intl.formatMessage({ id: 'register.domestic.legalPerson' })}
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.domestic.legalPerson.required' }) }]}
|
rules={[
|
||||||
>
|
{
|
||||||
<Input placeholder={intl.formatMessage({ id: 'register.domestic.legalPerson.placeholder' })} />
|
required: true,
|
||||||
</Form.Item>
|
message: intl.formatMessage({ id: 'register.domestic.legalPerson.required' }),
|
||||||
</Col>
|
},
|
||||||
<Col span={8}>
|
]}
|
||||||
<Form.Item
|
>
|
||||||
name={['coscoSupplierBase', 'idCard']}
|
<Input
|
||||||
label={intl.formatMessage({ id: 'register.domestic.idCard' })}
|
placeholder={intl.formatMessage({
|
||||||
>
|
id: 'register.domestic.legalPerson.placeholder',
|
||||||
<Input placeholder={intl.formatMessage({ id: 'register.domestic.idCard.placeholder' })} />
|
})}
|
||||||
</Form.Item>
|
/>
|
||||||
</Col>
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
<Col span={12}>
|
||||||
|
<Form.Item
|
||||||
|
name={['coscoSupplierBase', 'idCard']}
|
||||||
|
label={intl.formatMessage({ id: 'register.domestic.idCard' })}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
placeholder={intl.formatMessage({ id: 'register.domestic.idCard.placeholder' })}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'capital']}
|
name={['coscoSupplierBase', 'capital']}
|
||||||
label={intl.formatMessage({ id: 'register.domestic.capital' })}
|
label={intl.formatMessage({ id: 'register.domestic.capital' })}
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.domestic.capital.required' }) }]}
|
rules={[
|
||||||
>
|
{
|
||||||
<Input type="number" placeholder={intl.formatMessage({ id: 'register.domestic.capital.placeholder' })} addonBefore="人民币" addonAfter="万元" />
|
required: true,
|
||||||
</Form.Item>
|
message: intl.formatMessage({ id: 'register.domestic.capital.required' }),
|
||||||
</Col>
|
},
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
type="number"
|
||||||
|
placeholder={intl.formatMessage({ id: 'register.domestic.capital.placeholder' })}
|
||||||
|
addonBefore="人民币"
|
||||||
|
addonAfter="万元"
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'contactsName']}
|
name={['coscoSupplierBase', 'contactsName']}
|
||||||
label={intl.formatMessage({ id: 'register.domestic.contactsName' })}
|
label={intl.formatMessage({ id: 'register.domestic.contactsName' })}
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.domestic.contactsName.required' }) }]}
|
rules={[
|
||||||
>
|
{
|
||||||
<Input placeholder={intl.formatMessage({ id: 'register.domestic.contactsName.placeholder' })} />
|
required: true,
|
||||||
</Form.Item>
|
message: intl.formatMessage({ id: 'register.domestic.contactsName.required' }),
|
||||||
</Col>
|
},
|
||||||
<Col span={8}>
|
]}
|
||||||
<Form.Item
|
>
|
||||||
name={['coscoSupplierBase', 'contactsPhone']}
|
<Input
|
||||||
label={intl.formatMessage({ id: 'register.domestic.contactsPhone' })}
|
placeholder={intl.formatMessage({
|
||||||
rules={[
|
id: 'register.domestic.contactsName.placeholder',
|
||||||
{ required: true, message: intl.formatMessage({ id: 'register.domestic.contactsPhone.required' }) },
|
})}
|
||||||
{ pattern: /^1[3-9]\d{9}$/, message: intl.formatMessage({ id: 'register.domestic.contactsPhone.pattern' }) },
|
/>
|
||||||
]}
|
</Form.Item>
|
||||||
>
|
</Col>
|
||||||
<Input prefix={<MobileOutlined />} placeholder={intl.formatMessage({ id: 'register.domestic.contactsPhone.placeholder' })} />
|
<Col span={12}>
|
||||||
</Form.Item>
|
<Form.Item
|
||||||
</Col>
|
name={['coscoSupplierBase', 'contactsPhone']}
|
||||||
<Col span={8}>
|
label={intl.formatMessage({ id: 'register.domestic.contactsPhone' })}
|
||||||
<Form.Item
|
rules={[
|
||||||
name="captcha"
|
{
|
||||||
label={intl.formatMessage({ id: 'register.captcha.label' })}
|
required: true,
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.captcha.required' }) }]}
|
message: intl.formatMessage({ id: 'register.domestic.contactsPhone.required' }),
|
||||||
>
|
},
|
||||||
<Row gutter={8}>
|
{
|
||||||
<Col span={14}>
|
pattern: /^1[3-9]\d{9}$/,
|
||||||
<Input placeholder={intl.formatMessage({ id: 'register.captcha.placeholder' })} />
|
message: intl.formatMessage({ id: 'register.domestic.contactsPhone.pattern' }),
|
||||||
</Col>
|
},
|
||||||
<Col span={10}>
|
]}
|
||||||
<Button
|
extra="该手机号用于后续联系和召回密码"
|
||||||
type="primary"
|
>
|
||||||
style={{ marginTop: 0 }}
|
<Input
|
||||||
disabled={countdown > 0}
|
prefix={<MobileOutlined />}
|
||||||
onClick={handleGetCaptcha}
|
placeholder={intl.formatMessage({
|
||||||
>
|
id: 'register.domestic.contactsPhone.placeholder',
|
||||||
{countdown > 0 ? `${countdown}s` : intl.formatMessage({ id: 'register.captcha.get' })}
|
})}
|
||||||
</Button>
|
/>
|
||||||
</Col>
|
</Form.Item>
|
||||||
</Row>
|
</Col>
|
||||||
</Form.Item>
|
<Col span={12}>
|
||||||
</Col>
|
<Form.Item
|
||||||
|
name="captcha"
|
||||||
|
label={intl.formatMessage({ id: 'register.captcha.label' })}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: intl.formatMessage({ id: 'register.captcha.required' }),
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
placeholder={intl.formatMessage({ id: 'register.captcha.placeholder' })}
|
||||||
|
addonAfter={
|
||||||
|
<Button
|
||||||
|
type="link"
|
||||||
|
size="small"
|
||||||
|
// style={{ marginTop: 0 }}
|
||||||
|
disabled={countdown > 0}
|
||||||
|
onClick={handleGetCaptcha}
|
||||||
|
>
|
||||||
|
{countdown > 0
|
||||||
|
? `${countdown}s`
|
||||||
|
: intl.formatMessage({ id: 'register.captcha.get' })}
|
||||||
|
</Button>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'contactsEmail']}
|
name={['coscoSupplierBase', 'contactsEmail']}
|
||||||
label={intl.formatMessage({ id: 'register.domestic.contactsEmail' })}
|
label={intl.formatMessage({ id: 'register.domestic.contactsEmail' })}
|
||||||
rules={[
|
rules={[
|
||||||
{ type: 'email', message: intl.formatMessage({ id: 'register.email.invalid' }) },
|
{ type: 'email', message: intl.formatMessage({ id: 'register.email.invalid' }) },
|
||||||
{ required: true, message: intl.formatMessage({ id: 'register.domestic.contactsEmail.required' }) },
|
{
|
||||||
]}
|
required: true,
|
||||||
>
|
message: intl.formatMessage({ id: 'register.domestic.contactsEmail.required' }),
|
||||||
<Input prefix={<MailOutlined />} placeholder={intl.formatMessage({ id: 'register.domestic.contactsEmail.placeholder' })} />
|
},
|
||||||
</Form.Item>
|
]}
|
||||||
</Col>
|
>
|
||||||
<Col span={8}>
|
<Input
|
||||||
<Form.Item
|
prefix={<MailOutlined />}
|
||||||
name={['coscoSupplierBase', 'telephone']}
|
placeholder={intl.formatMessage({
|
||||||
label={intl.formatMessage({ id: 'register.domestic.telephone' })}
|
id: 'register.domestic.contactsEmail.placeholder',
|
||||||
>
|
})}
|
||||||
<Input placeholder={intl.formatMessage({ id: 'register.domestic.telephone.placeholder' })} />
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
<Col span={12}>
|
||||||
|
<Form.Item
|
||||||
|
name={['coscoSupplierBase', 'telephone']}
|
||||||
|
label={intl.formatMessage({ id: 'register.domestic.telephone' })}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
placeholder={intl.formatMessage({ id: 'register.domestic.telephone.placeholder' })}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
</div>
|
||||||
|
|
||||||
{/* 使用通用表单组件 */}
|
{/* 使用通用表单组件 */}
|
||||||
<QualificationSection form={form} />
|
<QualificationSection form={form} />
|
||||||
|
@ -44,11 +44,12 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
<div className='border-box'>
|
||||||
{/* 境外企业特有的基本信息部分 */}
|
{/* 境外企业特有的基本信息部分 */}
|
||||||
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.basicInfo' })}</div>
|
<div className="form-section-title">{intl.formatMessage({ id: 'register.form.section.basicInfo' })}</div>
|
||||||
|
|
||||||
<Row gutter={24}>
|
<Row gutter={40}>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'name']}
|
name={['coscoSupplierBase', 'name']}
|
||||||
label={intl.formatMessage({ id: 'register.foreign.companyName' })}
|
label={intl.formatMessage({ id: 'register.foreign.companyName' })}
|
||||||
@ -57,7 +58,7 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
<Input placeholder={intl.formatMessage({ id: 'register.foreign.companyName.placeholder' })} />
|
<Input placeholder={intl.formatMessage({ id: 'register.foreign.companyName.placeholder' })} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'nameEn']}
|
name={['coscoSupplierBase', 'nameEn']}
|
||||||
label={intl.formatMessage({ id: 'register.foreign.companyNameEn' })}
|
label={intl.formatMessage({ id: 'register.foreign.companyNameEn' })}
|
||||||
@ -66,7 +67,7 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
<Input placeholder={intl.formatMessage({ id: 'register.foreign.companyNameEn.placeholder' })} />
|
<Input placeholder={intl.formatMessage({ id: 'register.foreign.companyNameEn.placeholder' })} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="country"
|
name="country"
|
||||||
label={intl.formatMessage({ id: 'register.foreign.country' })}
|
label={intl.formatMessage({ id: 'register.foreign.country' })}
|
||||||
@ -86,7 +87,7 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
</Select>
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'vat']}
|
name={['coscoSupplierBase', 'vat']}
|
||||||
label={intl.formatMessage({ id: 'register.foreign.vat' })}
|
label={intl.formatMessage({ id: 'register.foreign.vat' })}
|
||||||
@ -95,33 +96,28 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
<Input placeholder={intl.formatMessage({ id: 'register.foreign.vat.placeholder' })} />
|
<Input placeholder={intl.formatMessage({ id: 'register.foreign.vat.placeholder' })} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={24} className="ant-form-item-label-fix">
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'workAddress']}
|
name={['coscoSupplierBase', 'workAddress']}
|
||||||
label={intl.formatMessage({ id: 'register.foreign.workAddress' })}
|
label={intl.formatMessage({ id: 'register.foreign.workAddress' })}
|
||||||
labelCol={{ span: 2 }}
|
|
||||||
wrapperCol={{ span: 22 }}
|
|
||||||
>
|
>
|
||||||
<Input prefix={<EnvironmentOutlined />} placeholder={intl.formatMessage({ id: 'register.foreign.workAddress.placeholder' })} />
|
<Input prefix={<EnvironmentOutlined />} placeholder={intl.formatMessage({ id: 'register.foreign.workAddress.placeholder' })} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={24} className="ant-form-item-label-fix">
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'range']}
|
name={['coscoSupplierBase', 'range']}
|
||||||
label={intl.formatMessage({ id: 'register.foreign.businessScope' })}
|
label={intl.formatMessage({ id: 'register.foreign.businessScope' })}
|
||||||
labelCol={{ span: 2 }}
|
|
||||||
wrapperCol={{ span: 22 }}
|
|
||||||
rules={[{ required: true, message: intl.formatMessage({ id: 'register.foreign.businessScope.required' }) }]}
|
rules={[{ required: true, message: intl.formatMessage({ id: 'register.foreign.businessScope.required' }) }]}
|
||||||
>
|
>
|
||||||
<TextArea
|
<Input
|
||||||
placeholder={intl.formatMessage({ id: 'register.foreign.businessScope.placeholder' })}
|
placeholder={intl.formatMessage({ id: 'register.foreign.businessScope.placeholder' })}
|
||||||
rows={2}
|
|
||||||
maxLength={200}
|
maxLength={200}
|
||||||
showCount
|
showCount
|
||||||
/>
|
/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'parentCompanyInvestor']}
|
name={['coscoSupplierBase', 'parentCompanyInvestor']}
|
||||||
label={intl.formatMessage({ id: 'register.foreign.parentCompany' })}
|
label={intl.formatMessage({ id: 'register.foreign.parentCompany' })}
|
||||||
@ -129,7 +125,7 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
<Input placeholder={intl.formatMessage({ id: 'register.foreign.parentCompany.placeholder' })} />
|
<Input placeholder={intl.formatMessage({ id: 'register.foreign.parentCompany.placeholder' })} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'legalPerson']}
|
name={['coscoSupplierBase', 'legalPerson']}
|
||||||
label={intl.formatMessage({ id: 'register.foreign.legalPerson' })}
|
label={intl.formatMessage({ id: 'register.foreign.legalPerson' })}
|
||||||
@ -138,7 +134,7 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
<Input placeholder={intl.formatMessage({ id: 'register.foreign.legalPerson.placeholder' })} />
|
<Input placeholder={intl.formatMessage({ id: 'register.foreign.legalPerson.placeholder' })} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item label={intl.formatMessage({ id: 'register.foreign.capital' })} required style={{ marginBottom: 0 }}>
|
<Form.Item label={intl.formatMessage({ id: 'register.foreign.capital' })} required style={{ marginBottom: 0 }}>
|
||||||
<Input.Group compact style={{ display: 'flex' }}>
|
<Input.Group compact style={{ display: 'flex' }}>
|
||||||
<Form.Item name="currency" noStyle initialValue="USD">
|
<Form.Item name="currency" noStyle initialValue="USD">
|
||||||
@ -164,7 +160,7 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
</Input.Group>
|
</Input.Group>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'contactsName']}
|
name={['coscoSupplierBase', 'contactsName']}
|
||||||
label={intl.formatMessage({ id: 'register.foreign.contactsName' })}
|
label={intl.formatMessage({ id: 'register.foreign.contactsName' })}
|
||||||
@ -173,7 +169,7 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
<Input placeholder={intl.formatMessage({ id: 'register.foreign.contactsName.placeholder' })} />
|
<Input placeholder={intl.formatMessage({ id: 'register.foreign.contactsName.placeholder' })} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'contactsEmail']}
|
name={['coscoSupplierBase', 'contactsEmail']}
|
||||||
label={intl.formatMessage({ id: 'register.foreign.contactsEmail' })}
|
label={intl.formatMessage({ id: 'register.foreign.contactsEmail' })}
|
||||||
@ -181,7 +177,7 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
{ type: 'email', message: intl.formatMessage({ id: 'register.email.invalid' }) },
|
{ type: 'email', message: intl.formatMessage({ id: 'register.email.invalid' }) },
|
||||||
{ required: true, message: intl.formatMessage({ id: 'register.foreign.contactsEmail.required' }) },
|
{ required: true, message: intl.formatMessage({ id: 'register.foreign.contactsEmail.required' }) },
|
||||||
]}
|
]}
|
||||||
|
extra={intl.formatMessage({ id: 'register.foreign.contactsEmail.extra' })}
|
||||||
>
|
>
|
||||||
<Input prefix={<MailOutlined />} placeholder={intl.formatMessage({ id: 'register.foreign.contactsEmail.placeholder' })} addonAfter={
|
<Input prefix={<MailOutlined />} placeholder={intl.formatMessage({ id: 'register.foreign.contactsEmail.placeholder' })} addonAfter={
|
||||||
<Button
|
<Button
|
||||||
@ -195,20 +191,19 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
} />
|
} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name="verificationCode"
|
name="verificationCode"
|
||||||
label={intl.formatMessage({ id: 'register.captcha.label' })}
|
label="验证码"
|
||||||
rules={[
|
rules={[
|
||||||
{ required: true, message: intl.formatMessage({ id: 'register.captcha.required' }) },
|
{ required: true, message: "请输入验证码" },
|
||||||
{ pattern: /^\d{6}$/, message: intl.formatMessage({ id: 'register.captcha.pattern' }) },
|
{ pattern: /^\d{6}$/, message: "请输入6位验证码" },
|
||||||
]}
|
]}
|
||||||
extra={intl.formatMessage({ id: 'register.foreign.contactsEmail.extra' })}
|
|
||||||
>
|
>
|
||||||
<Input placeholder={intl.formatMessage({ id: 'register.captcha.placeholder' })} />
|
<Input placeholder="请输入验证码" />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
<Col span={8}>
|
<Col span={12}>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
name={['coscoSupplierBase', 'contactsPhone']}
|
name={['coscoSupplierBase', 'contactsPhone']}
|
||||||
label={intl.formatMessage({ id: 'register.foreign.contactsPhone' })}
|
label={intl.formatMessage({ id: 'register.foreign.contactsPhone' })}
|
||||||
@ -223,7 +218,7 @@ const ForeignForm: React.FC<ForeignFormProps> = ({
|
|||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
|
</div>
|
||||||
{/* 使用通用表单组件 */}
|
{/* 使用通用表单组件 */}
|
||||||
<QualificationSection form={form} />
|
<QualificationSection form={form} />
|
||||||
<InvoiceSection form={form} />
|
<InvoiceSection form={form} />
|
||||||
|
Reference in New Issue
Block a user