From 9056f6899810c839334fc2dddd06e90ced6e6a81 Mon Sep 17 00:00:00 2001 From: linxd <544554903@qq.com> Date: Mon, 16 Jun 2025 21:36:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E5=91=8A=E5=85=AC=E7=A4=BA=E5=8F=8A?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/SpaceBlock/SpaceBlock.less | 7 - src/components/SpaceBlock/SpaceBlock.tsx | 7 - src/global.less | 4 +- src/pages/announce/announce.less | 207 ++++++++++++ src/pages/announce/announce.tsx | 368 +++++++++++++++++++++- src/pages/announce/announceInfo.less | 144 +++++++++ src/pages/announce/announceInfo.tsx | 184 ++++++++++- src/pages/index/index.tsx | 5 +- 8 files changed, 901 insertions(+), 25 deletions(-) delete mode 100644 src/components/SpaceBlock/SpaceBlock.less delete mode 100644 src/components/SpaceBlock/SpaceBlock.tsx create mode 100644 src/pages/announce/announce.less create mode 100644 src/pages/announce/announceInfo.less diff --git a/src/components/SpaceBlock/SpaceBlock.less b/src/components/SpaceBlock/SpaceBlock.less deleted file mode 100644 index e164270..0000000 --- a/src/components/SpaceBlock/SpaceBlock.less +++ /dev/null @@ -1,7 +0,0 @@ -@import '../../baseStyle.less'; -.spaceBlock { - height: 10px; - margin: 0 -15px; - margin-top: 20px; - background: rgba(@gray, 0.3); -} diff --git a/src/components/SpaceBlock/SpaceBlock.tsx b/src/components/SpaceBlock/SpaceBlock.tsx deleted file mode 100644 index 28ba7c6..0000000 --- a/src/components/SpaceBlock/SpaceBlock.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; -import './SpaceBlock.less'; -const SpaceBlock: React.FC = () => { - return
; -}; - -export default SpaceBlock; diff --git a/src/global.less b/src/global.less index 249efaa..bade143 100644 --- a/src/global.less +++ b/src/global.less @@ -15,8 +15,8 @@ body, .layout-content-main { width: @width; margin: 0 auto; - background: #fff; - padding: 15px; + // background: #fff; + // padding: 15px; } } .colorWeak { diff --git a/src/pages/announce/announce.less b/src/pages/announce/announce.less new file mode 100644 index 0000000..27b29fe --- /dev/null +++ b/src/pages/announce/announce.less @@ -0,0 +1,207 @@ +.announcePage { + // padding: 20px; + // background-color: #f5f5f5; +} + +.searchSection { + background-color: #fff; + padding: 20px; + // border-radius: 4px; + margin-bottom: 20px; + // box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); +} + +.searchRow { + margin-bottom: 20px; + display: flex; + align-items: center; +} + +.searchLabel { + font-size: 14px; + font-weight: 500; + color: #333; + margin-right: 20px; + min-width: 70px; +} + +.filterRow { + margin-bottom: 15px; + display: flex; + align-items: flex-start; +} + +.filterLabel { + font-size: 14px; + font-weight: 500; + color: #333; + margin-right: 20px; + min-width: 70px; + padding-top: 5px; +} + +.filterOptions { + flex: 1; +} + +.locationSelector { + display: flex; + flex-direction: column; +} + +.provinceSelector { + margin-top: 10px; + width: 100%; + + .provinceRow { + margin-bottom: 8px; + display: flex; + flex-wrap: wrap; + } +} + +/* 覆盖antd样式 */ +:global { + .ant-radio-button-wrapper { + margin-right: 5px; + margin-bottom: 8px; + border-radius: 0; + height: 32px; + line-height: 30px; + min-width: 60px; + text-align: center; + padding: 0 10px; + } + + .ant-radio-button-wrapper:first-child { + border-radius: 0; + } + + .ant-radio-button-wrapper:last-child { + border-radius: 0; + } + + .ant-radio-button-wrapper-checked { + background-color: rgb(0, 79, 142); + border-color: rgb(0, 79, 142); + color: #fff; + &:hover { + background-color: rgb(0, 79, 142); + border-color: rgb(0, 79, 142); + color: #fff; + } + } + + .ant-btn-primary { + background-color: rgb(0, 79, 142); + border-color: rgb(0, 79, 142); + border-radius: 0; + &:hover, &:focus { + background-color: rgba(0, 79, 142, 0.8); + border-color: rgba(0, 79, 142, 0.8); + } + } + + .ant-select-selector { + border-radius: 0 !important; + } + + .ant-input { + border-radius: 0; + } + + .ant-input-affix-wrapper { + border-radius: 0; + } + + .ant-list-pagination { + margin-top: 20px; + text-align: center; + } + + .ant-pagination-item { + border-radius: 0; + + &-active { + border-color: rgb(0, 79, 142); + + a { + color: rgb(0, 79, 142); + } + } + } + + .ant-pagination-item-link { + border-radius: 0; + } + + .ant-pagination-options { + .ant-select-selector { + border-radius: 0; + } + } + + .ant-tag { + margin-right: 0; + border-radius: 2px; + } +} + +.announceList { + background-color: #fff; + padding: 10px; +} + +.listItem { + padding: 16px 10px; + border-bottom: 1px solid #f0f0f0; + + &:hover { + background-color: #f9f9f9; + } +} + +.itemContent { + width: 100%; +} + +.itemHeader { + display: flex; + align-items: center; + margin-bottom: 10px; +} + +.typeTag { + margin-right: 10px; + min-width: 90px; + text-align: center; +} + +.itemTitle { + font-size: 16px; + font-weight: 500; + color: #333; + flex: 1; + + &:hover { + color: rgb(0, 79, 142); + cursor: pointer; + } +} + +.itemFooter { + display: flex; + justify-content: space-between; + color: #666; + font-size: 14px; +} + +.company { + flex: 1; +} + +.date { + min-width: 180px; + text-align: right; +} + diff --git a/src/pages/announce/announce.tsx b/src/pages/announce/announce.tsx index 2688954..90f51ad 100644 --- a/src/pages/announce/announce.tsx +++ b/src/pages/announce/announce.tsx @@ -1,5 +1,369 @@ -import React from 'react'; +import React, { useState } from 'react'; +import { Input, Button, Select, Radio, DatePicker, List, Tag } from 'antd'; +import { SearchOutlined } from '@ant-design/icons'; +import { history } from 'umi'; +import styles from './announce.less'; + +const { Option } = Select; +const { RangePicker } = DatePicker; + +// 模拟公告数据 +const mockAnnounceData = [ + { + id: '1', + type: '招标采购公告', + title: '中远海运集团2023年度办公设备采购项目招标公告', + company: '中远海运集团有限公司', + publishDate: '2023-06-15', + }, + { + id: '2', + type: '中标结果公示', + title: '中远海运物流有限公司信息系统建设项目中标结果公示', + company: '中远海运物流有限公司', + publishDate: '2023-06-10', + }, + { + id: '3', + type: '采购需求公示', + title: '中远海运集装箱运输有限公司集装箱采购需求公示', + company: '中远海运集装箱运输有限公司', + publishDate: '2023-06-08', + }, + { + id: '4', + type: '变更公告', + title: '关于"中远海运能源运输股份有限公司船舶维修项目"的变更公告', + company: '中远海运能源运输股份有限公司', + publishDate: '2023-06-05', + }, + { + id: '5', + type: '招标采购公告', + title: '中远海运重工有限公司船舶设备采购项目招标公告', + company: '中远海运重工有限公司', + publishDate: '2023-06-01', + }, +]; + const AnnouncePage: React.FC = () => { - return <>announcePage>; + // 状态管理 + const [searchKeyword, setSearchKeyword] = useState一、项目基本情况
+1. 项目名称:中远海运集团2023年度办公设备采购项目
+2. 采购需求:台式电脑300台、笔记本电脑150台、打印机50台、投影仪10台等办公设备
+3. 项目预算:人民币800万元
+4. 最高限价:人民币800万元
+5. 采购方式:公开招标
+6. 交付地点:中远海运集团总部及各分支机构
+7. 交付期限:合同签订后45个工作日内
+8. 本项目是否接受联合体投标:否
+ +二、申请人的资格要求
+1. 满足《中华人民共和国政府采购法》第二十二条规定;
+2. 落实政府采购政策需满足的资格要求:本项目支持小微企业,监狱企业,残疾人福利性单位发展等政府采购政策。
+3. 本项目的特定资格要求:
+(1)投标人须具有电子产品销售相关资质;
+(2)投标人须提供所投产品的厂家授权;
+(3)投标人须具有近三年同类项目业绩不少于3个。
+ +三、获取招标文件
+1. 时间:2023年6月15日至2023年6月22日,每天9:00至17:00(北京时间,法定节假日除外)
+2. 地点:中远海运集团采购中心官网
+3. 方式:网上下载
+4. 售价:免费
+ +四、提交投标文件截止时间、开标时间和地点
+1. 提交投标文件截止时间:2023年7月6日14:30(北京时间)
+2. 开标时间:2023年7月6日15:00(北京时间)
+3. 地点:中远海运集团总部1号会议室
+ +五、公告期限
+自本公告发布之日起5个工作日。
+ +六、其他补充事宜
+1. 本项目需要落实的政府采购政策:节能环保、中小微企业扶持、促进残疾人就业等。
+2. 投标保证金:人民币10万元。
+ +七、对本次招标提出询问,请按以下方式联系
+1. 采购人信息
+名称:中远海运集团有限公司
+地址:上海市东大名路xxx号
+联系方式:021-xxxxxxxx
+2. 采购代理机构信息
+名称:上海xxx招标代理有限公司
+地址:上海市浦东新区xxx路xx号
+联系方式:021-xxxxxxxx
+3. 项目联系方式
+项目联系人:张先生
+电话:021-xxxxxxxx
+ `, + attachments: [ + { name: '招标文件.pdf', url: '/files/招标文件.pdf', type: 'pdf' }, + { name: '投标须知.docx', url: '/files/投标须知.docx', type: 'word' }, + { name: '技术需求说明.xlsx', url: '/files/技术需求说明.xlsx', type: 'excel' } + ] +}; + const AnnounceInfo: React.FC = () => { const location = useLocation(); - const id = new URLSearchParams(location.search).get("id") - return <>AnnounceInfo -------- {id}>; + const id = new URLSearchParams(location.search).get("id"); + const [announceDetail, setAnnounceDetail] = useState客服1: 400-300-9989