From 20145e4c514b42a40ea7c9bb6c36ff0c9906bbd3 Mon Sep 17 00:00:00 2001 From: linxd <544554903@qq.com> Date: Wed, 9 Jul 2025 10:02:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E6=B3=A8=E5=86=8C=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=A0=B7=E5=BC=8F;=E4=BF=AE=E6=94=B9=E5=85=AC?= =?UTF-8?q?=E5=91=8A=E5=85=AC=E7=A4=BA=E9=A1=B5=E9=9D=A2=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/router.config.ts | 28 +- src/assets/img/fileIcon.png | Bin 0 -> 1540 bytes src/pages/announce/announce.less | 79 ++- src/pages/announce/announce.tsx | 18 +- src/pages/register/register.less | 71 ++- src/pages/register/supplier.tsx | 104 ++-- .../register/supplier/CommonFormSections.tsx | 20 +- src/pages/register/supplier/DomesticForm.tsx | 562 +++++++++++------- src/pages/register/supplier/ForeignForm.tsx | 49 +- 9 files changed, 564 insertions(+), 367 deletions(-) create mode 100644 src/assets/img/fileIcon.png diff --git a/config/router.config.ts b/config/router.config.ts index d50a84e..9ddb4d4 100644 --- a/config/router.config.ts +++ b/config/router.config.ts @@ -3,19 +3,6 @@ export default [ path: '/login', component: '@/pages/login/login', }, - { - path: '/register', - routes: [ - { - path: '/register/supplier', - component: '@/pages/register/supplier', - }, - { - path: '/register/expert', - component: '@/pages/register/expert', - } - ] - }, { path: '/', component: '@/layouts/Index', @@ -84,7 +71,20 @@ export default [ name: 'helpQuestion', path: '/help/helpQuestion', component: '@/pages/help/helpQuestion', - } + }, + { + path: '/register', + routes: [ + { + path: '/register/supplier', + component: '@/pages/register/supplier', + }, + { + path: '/register/expert', + component: '@/pages/register/expert', + } + ] + }, ] }, diff --git a/src/assets/img/fileIcon.png b/src/assets/img/fileIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..1295a348faa8963a342ca4e75926295fc22a97d4 GIT binary patch literal 1540 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!ZaB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#7M#1QqR!L zz|zP>N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7KMf<|~|UP^v> zu_jo#udkJ7UU5lcUUI6Zi>(sS0KLr26f0*}H&b&X6Gu}gOJ_qvHv>m=b7xm$7jq{A z0~0q3BNLcjm;B_?+|;}hnBEkGUMHM-K`9}(0BEyIYEfocYKmJ?ey#%8$5xrR-C}{$ zJgD9j+-|YNsaGH97=2K@BE>UI2$*<4On9mVa^UGcH4m8Bi-4*6pvdHh3=B+_o-U3d z6}R5pwf7NDlsNwJ+Jp%iO|c1CX9Ufpw(NT0A}urHNLj&B*^;TnCVUqTO1|<*_V!Uo z{BWU@b-mt&qaw_HVR6dcWh;G65?9p<{dc(ZeO>MCqmO^zzLh=uj{5oEcdE^8c(+Hb zoe{=hrpRBhl}oO3<;15xetP(E z=Cs`BH(0N)t6LR+o$1!GC?u zH|X4F%v-|Qz`(?zz$oCrz^DRZHLw6#EE5=jECwMUOTd8%$YSzf0J0b$ior^3)=R#6 zxLHfEd!MhL>-{6gkFT2OeYjV_amGA<^M+TmOn>d$VKBS1zu#=d&U*}3@6HxpKj(Nc zcYx%V1EV(MI8W zo=PQ2EWT;xR<-bakXqgE1CI{hbQR#Oejw@b?8SHXAK$0Fy;-(y%jd*!qd@h#| tlAQV`#BSNu>&sO6C1>pZrN5s=g5j9qZQBf&{9sVI?CI*~vd$@?2>@%KL$Lq= literal 0 HcmV?d00001 diff --git a/src/pages/announce/announce.less b/src/pages/announce/announce.less index 727258d..c5fd686 100644 --- a/src/pages/announce/announce.less +++ b/src/pages/announce/announce.less @@ -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; } - diff --git a/src/pages/announce/announce.tsx b/src/pages/announce/announce.tsx index 4b3a865..9a907a3 100644 --- a/src/pages/announce/announce.tsx +++ b/src/pages/announce/announce.tsx @@ -169,17 +169,25 @@ const AnnouncePage: React.FC = () => {
供应商服务
- -
    +
    下载中心
    +
    • - + + 公开招标操作手册 +
    • +
    • + + 公开招标操作手册 +
    • +
    • + 公开招标操作手册
    - +
    投标指引
    -
    +
    投标指引包含各采购方式系统的投标操作流程,及相关插件的安装操作手册,请各供应商先进行登录,后方可查看.
    diff --git a/src/pages/register/register.less b/src/pages/register/register.less index 18eaa11..8d93401 100644 --- a/src/pages/register/register.less +++ b/src/pages/register/register.less @@ -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; } -} \ No newline at end of file +} diff --git a/src/pages/register/supplier.tsx b/src/pages/register/supplier.tsx index 9c6ea55..3fc94f4 100644 --- a/src/pages/register/supplier.tsx +++ b/src/pages/register/supplier.tsx @@ -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 (
    -
    - - -
    - {intl.formatMessage({ id: 'register.supplier.title' })} -
    - - +
    + 注册banner +
    +
    + {/* fetchingQuestions */} +
    - - - {intl.formatMessage({ id: 'register.supplier.domestic' })} - {intl.formatMessage({ id: 'register.supplier.foreign' })} - + +
    + 请选择身份类型: + + + + {intl.formatMessage({ id: 'register.supplier.domestic' })} + + + + + {intl.formatMessage({ id: 'register.supplier.foreign' })} + + + +
    {supplierType === 'dvs' ? ( @@ -245,30 +249,34 @@ const SupplierRegister: React.FC = () => { 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' }), + ), + ), }, ]} > - - {intl.formatMessage({ id: 'register.supplier.agreement' })} - - +
    + + {intl.formatMessage({ id: 'register.supplier.agreement' })} + + +
    @@ -303,18 +311,12 @@ const SupplierRegister: React.FC = () => {

    {intl.formatMessage({ id: 'register.supplier.commitment.content.intro1' })}

    {intl.formatMessage({ id: 'register.supplier.commitment.content.intro2' })}

      -
    1. - {intl.formatMessage({ id: 'register.supplier.commitment.content.item1' })} -
    2. +
    3. {intl.formatMessage({ id: 'register.supplier.commitment.content.item1' })}
    4. {intl.formatMessage({ id: 'register.supplier.commitment.content.item2' })}
    5. -
    6. - {intl.formatMessage({ id: 'register.supplier.commitment.content.item3' })} -
    7. +
    8. {intl.formatMessage({ id: 'register.supplier.commitment.content.item3' })}
    9. {intl.formatMessage({ id: 'register.supplier.commitment.content.item4' })}
    10. {intl.formatMessage({ id: 'register.supplier.commitment.content.item5' })}
    11. -
    12. - {intl.formatMessage({ id: 'register.supplier.commitment.content.item6' })} -
    13. +
    14. {intl.formatMessage({ id: 'register.supplier.commitment.content.item6' })}
    15. {intl.formatMessage({ id: 'register.supplier.commitment.content.item7' })}
    16. {intl.formatMessage({ id: 'register.supplier.commitment.content.item8' })}
    diff --git a/src/pages/register/supplier/CommonFormSections.tsx b/src/pages/register/supplier/CommonFormSections.tsx index c6020e3..09e5d95 100644 --- a/src/pages/register/supplier/CommonFormSections.tsx +++ b/src/pages/register/supplier/CommonFormSections.tsx @@ -88,7 +88,7 @@ export const QualificationSection: React.FC = ({ form } getDict(); }, []); return ( - <> +
    {intl.formatMessage({ id: 'register.form.section.qualification' })}
    @@ -255,7 +255,7 @@ export const QualificationSection: React.FC = ({ form } )} - +
    ); }; @@ -276,7 +276,7 @@ export const InvoiceSection: React.FC = ({ form }) => { getDict(); }, []); return ( - <> +
    {intl.formatMessage({ id: 'register.form.section.invoice' })}
    @@ -360,7 +360,7 @@ export const InvoiceSection: React.FC = ({ form }) => { - +
    ); }; @@ -371,7 +371,7 @@ export const InvoiceSection: React.FC = ({ form }) => { export const BankAccountSection: React.FC = ({ form }) => { const intl = useIntl(); return ( - <> +
    {intl.formatMessage({ id: 'register.form.section.bankAccount' })}
    @@ -485,7 +485,7 @@ export const BankAccountSection: React.FC = ({ form }) )} - +
    ); }; @@ -503,7 +503,7 @@ export const SurveySection: React.FC = ({ form, surveyQuesti console.log('调查问卷数据:', surveyQuestions); return ( - <> +
    {intl.formatMessage({ id: 'register.form.section.survey' })}
    {intl.formatMessage({ id: 'register.survey.fillerInfo' })}:
    @@ -647,7 +647,7 @@ export const SurveySection: React.FC = ({ form, surveyQuesti
    )} - +
    ); }; @@ -657,7 +657,7 @@ export const SurveySection: React.FC = ({ form, surveyQuesti export const AttachmentSection: React.FC = ({ form }) => { const intl = useIntl(); return ( - <> +
    {intl.formatMessage({ id: 'register.form.section.commitment' })}
    @@ -816,6 +816,6 @@ export const AttachmentSection: React.FC = ({ form }) = - +
    ); }; diff --git a/src/pages/register/supplier/DomesticForm.tsx b/src/pages/register/supplier/DomesticForm.tsx index a48eb69..0765ecb 100644 --- a/src/pages/register/supplier/DomesticForm.tsx +++ b/src/pages/register/supplier/DomesticForm.tsx @@ -48,227 +48,357 @@ const DomesticForm: React.FC = ({ return ( <> -
    {intl.formatMessage({ id: 'register.form.section.basicInfo' })}
    +
    +
    + {intl.formatMessage({ id: 'register.form.section.basicInfo' })} +
    - {/* 营业执照附件和有效期 */} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -