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