采购公告 我要投标
|
| 基本信息 |
| 项目名称: | 市本级电子政务外网统一互联网出口建设项目 |
| 项目编号: | E4313002613D11484 | 项目所属区域: | 市辖区 |
| 采购人: | 娄底市数据局(娄底市行政审批服务局) | 保证金: | 0元 |
| 多标: |
|
| 内容 |
市本级电子政务外网统一互联网出口建设项目招标公告 娄底市数据局的市本级电子政务外网统一互联网出口建设项目进行公开招标采购,现邀请合格投标人参加投标。 一、采购项目基本信息1、采购项目名称:市本级电子政务外网统一互联网出口建设项目 2、政府采购计划编号:娄财采计〔2026〕0132 3、委托代理编号:LDZC-2026GK72 4、采购项目预算:4124791.61 元 ? 支持预付款,预付比例: 50 % 5、本项目对应的中小企业划分标准所属行业: 工业 6、评标方法:□最低价法 ? 综合评分法 7、合同定价方式: ? 固定总价 □固定单价 □成本补偿 □绩效激励 8、合同履行期限:90日历日。 9、本项目分阶段要求投标人提供以下保证: □投标保证金:采购项目预算的 / %; □履约保证金: 合同金额的 / % ; □预付款保证金:预付款的 / %; □ 质量保证金:合同金额的 / %; 二、采购人的采购需求
包号
| 项目名称
| 简要技术要求
| 数量
| 标的预算 (元)
| 最高限价(元)
| 节能产品
| 进口产品
| 1
| 市本级电子政务外网统一互联网出口建设项目
| 本次采购包含网络系统与安全系统设备购置、信息系统集成及安全生产、运营商链路资源建设期租赁、网络及安全服务等。具体详见采购需求。
| 1批
| 4124791.61
| 4124791.61
| □
| □
| 说明: 1.节能产品实行强制采购的,需提供国家认证机构出具的、处于有效期内的节能产品证书。 2.同意购买进口产品的,不限制满足采购需求的国内产品参与投标。(采购进口产品:否。) 三、采购项目需落实的政府采购政策 :1、优先采购:节能产品、环境标志产品享受加分或价格折扣。 2、支持中小企业:本项目非专门面向中小企业采购,对所有产品生产商为小微企业的报价进行评审优惠。 四、投标人的资格要求 :1、投标人的基本资格条件:投标人必须是在中华人民共和国境内注册登记的法人、其他组织或者自然人,且应当符合《政府采购法》第二十二条第一款的规定。 2、落实政府采购政策需满足的资格要求: □专门面向:□中小企业、□小微企业、 □监狱企业、 □福利性单位。 □强制分包:大型企业应将采购份额的 / %分包给中小企业。 采购项目的特定资格条件:无。 4、单位负责人为同一人或者存在直接控股、管理关系的不同投标人,不得参加同一合同项下的政府采购活动。 5、为本采购项目提供整体设计、规范编制或者项目管理、监理、检测等服务的,不得再参加此项目的其他采购活动。 6、列入失信被执行人、重大税收违法失信主体名单、政府采购严重违法失信行为记录名单的,拒绝其参与政府采购活动。 7、联合体投标。本次招标 不接受 (接受或不接受)联合体投标。 五、获取招标文件的时间、期限、地点及方式有意参加投标者,于发布公告之日起至投标截止时间止,在(http://ldggzy.hnloudi.gov.cn/)网上获取招标文件。 ? 本项目实行电子交易,有意参加投标者,在(http://ldggzy.hnloudi.gov.cn/)获取电子版招标文件。 □本项目进行资格预审,招标文件将向所有通过资格预审的供应商提供。 六、投标截止时间、开标时间及地点1、提交投标文件的截止时间:2026年9月 29 日 15:30(北京时间) 2、提交投标文件地点:娄底市公共资源交易网(http://ldggzy.hnloudi.gov.cn/)。 3、开标时间:2026年 9 月 29 日 15:30(北京时间) 4、开标地点:娄底市公共资源交易中心(详见四楼电子显示屏) 5、解密截止时间:2026年 9 月 29 日 16:00(北京时间) 七、公告期限1、本招标公告在中国湖南政府采购网(www.ccgp-hunan.gov.cn)发布。公告期限从本招标公告发布之日起5个工作日。 2、在其他媒体发布的招标公告,公告内容以本招标公告指定媒体发布的公告为准;公告期限自本招标公告指定媒体最先发布公告之日起算。 八、询问及质疑1、投标人对政府采购活动事项如有疑问的,可以向采购人、采购代理机构提出询问。采购人、采购代理机构将在3个工作日内作出答复。 2、投标人对电子交易平台办理CA证书、操作等如有疑问,请咨询电子交易平台服务机构。 3、潜在投标人认为招标文件或招标公告使自己的合法权益受到损害的,可以在收到招标文件之日或招标公告期限届满之日起7个工作日内,按《湖南省财政厅关于印发<政府采购质疑答复和投诉处理操作规程>的通知》(湘财购〔2024〕67号)规定,以纸质书面形式向采购人、采购代理机构提出质疑。 九、投标说明1、本公告选项:? 表示选择,□表示未选择。 2、投标人参与政府采购活动,无需向采购人、代理机构、交易平台缴纳任何费用。 十、采购项目联系人姓名和电话1、联系人姓名:邓先生 2、电话: 0738-8227321 十 一、采购人、采购代理机构的名称、地址和联系方法1、采购人信息 (1)名称:娄底市数据局 (2)地址:娄底市娄星区湘中大道环府路勤政街36号 (3) 联系人:邓先生 (4)电话: 0738-8227321 2、采购代理机构信息 (1)名 称:娄底市政府采购中心 (2)地 址:娄底市娄星区勤政街36号 (3) 联系人:肖女士 (4)电 话:0738-6371181 3、电子交易平台服务机构信息 (1)名称:金润方舟科技股份有限公司 (2)电话:400-926-9966 (3)客服QQ:2159511823
|
| 发表日期: | 2026-09-08 |
| 附件: | [已固化]-市本级电子政务外网统一互联网出口建设项目(_招标).gef (定稿)市本级电子政务外网统一互联网出口建设项目招标文件.docx
|
打 印
二、补充(变更、暂停、终止)公告
| 1市本级电子政务外网统一互联网出口建设项目更正公告 |
| 公告类型: | 资格预审公告 | 项目所属区域: | 市辖区 |
| 交易大类: | 政府采购 | 交易小类: | 货物类 |
| 内容 |
一、项目基本情况 (一)采购项目名称:市本级电子政务外网统一互联网出口建设项目 (二)政府采购计划编号:娄财采计〔2026〕0132 (三)委托代理编号:LDZC-2026GK72 (四)采购方式:公开招标 (五)首次公告日期:2026年9月8 日 (六)首次公告日期:2026年9月11 日 二、更正内容 (一)更正事项: □采购公告 ?采购文件 □采购结果 (二)更正内容: 1、商务部分评审标准表中 “产品实力”:
评标标准
| 产品实力 (65分)
| 所投本项目核心产品(互联网出口防火墙)制造商: 1、具备中国软件评测中心颁发的“数据安全服务能力评定资格证书“ - 数据安全评估 二级或一级证书的,计10分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。 2、具备ISO/IEC27701隐私信息管理体系认证证书的,计8分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。 3、在国家信息安全漏洞共享平台(CNVD)官网公布的企业单位原创积分排名中,累计获得5500分及以上(包含5500分),计8分。 注:提供证明资料在国家信息安全漏洞共享平台(CNVD)官网的截图及查询链接,并加盖投标人公章,否则不计分。
| 所投流量探针产品制造商: 具备国家级认可的原创漏洞挖掘与漏洞情报报送能力,最近三年(2022-2024年)每获得一项国家信息安全漏洞共享平台(CNVD)年度“信息报送突出贡献单位”或“原创漏洞发现突出贡献单位”荣誉的计2分,同一年度同时获得两项荣誉的计5分,最高计15分。 注:提供证明资料在国家信息安全漏洞共享平台(CNVD)发布的近三年年度(2022—2024年度)官网的截图及查询链接,并加盖投标人公章,否则不计分。
| 所投多链路负载均衡设备: 1、具备公安部计算机信息系统安全产品质量监督检验中心颁发的《网络安全专用产品安全检测证书》的,证书中产品名称必须包含“负载均衡”字样,的计6分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。 2、具备售后五星级服务认证证书的,认证产品名须为“应用交付或负载均衡”,计6分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。
| 所投“终端一体化管理系统”设备: 1、制造商参与过公安部GA/T1105-2013《信息安全技术终端接入控制产品安全技术要求》标准制定,计6分,未提供不计分。 注:提相关证明材料并加盖投标人公章,否则不计分。 2、产品具备公安部颁发的《网络安全专用产品安全检测证书》(终端接入控制三级),计3分,未提供不计分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。 3、产品具备《中国国家信息安全产品认证证书》,计3分,未提供不计分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。
| 更正为:
评标标准
| 产品实力 (65分)
| 所投本项目核心产品(互联网出口防火墙): 1、产品具备《网络关键设备和网络安全专用产品安全认证证书》或《网络安全专用产品安全检测证书》的,计10分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。 2、制造商具备ISO/IEC27701隐私信息管理体系认证证书的,计8分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。 3、制造商在国家信息安全漏洞共享平台(CNVD)官网公布的企业单位原创积分排名中,累计获得积分排名在第1至5名的计8分、在第6至10名的计4分,其他不计分。 注:提供证明资料在国家信息安全漏洞共享平台(CNVD)官网的截图及查询链接,并加盖投标人公章,否则不计分。
| 所投流量探针产品制造商: 具备国家级认可的原创漏洞挖掘与漏洞情报报送能力,最近三年(2022-2024年)每获得一项国家信息安全漏洞共享平台(CNVD)年度“信息报送突出贡献单位”或“原创漏洞发现突出贡献单位”荣誉的计2分,同一年度同时获得两项荣誉的计5分,最高计15分。 注:提供证明资料在国家信息安全漏洞共享平台(CNVD)发布的近三年年度(2022—2024年度)官网的截图及查询链接,并加盖投标人公章,否则不计分。
| 所投多链路负载均衡设备: 1、具备《网络关键设备和网络安全专用产品安全认证证书》或《网络安全专用产品安全检测证书》的,计6分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。 2、制造商具备商品售后服务评价认证证书的,计6分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。
| 所投“终端一体化管理系统”设备: 1、制造商参与过与本产品相关的国内行业标准或国家标准制定的,计6分。 注:提相关证明材料并加盖投标人公章,否则不计分。 2、产品具备《网络关键设备和网络安全专用产品安全认证证书》或《网络安全专用产品安全检测证书》的,计6分,未提供不计分。 注:提供有效期内证书原件扫描件、查询链接及截图,并加盖投标人公章,否则不计分。
| 2、第二节 技术、商务要求\ 二、采购产品清单及技术参数要求中如下条款:
序号
| 品目名称
| 单位
| 数量
| 技术/服务要求
| 1
| 互联网出口防火墙
| 台
| 2
| 1.国产操作系统,国产CPU,标准机架式设备,冗余电源,≥4T硬盘,≥2个USB接口,≥1个串口,≥2个管理口,≥4个千兆光口,≥8个万兆光口,≥2个扩展插槽。(配置8个万兆多模光模块) 2.网络层吞吐量≥100G,应用层吞吐量≥65G,最大并发连接数≥2500万,新建连接数≥80万。 3.支持防火墙、VPN、应用识别、入侵防御、URL过滤、防病毒、基础DDoS防护等功能。 4.▲支持防火墙策略模拟测算功能,针对防火墙策略,支持基于源安全区、目的安全区、源地址、目的地址、源端口、目的端口、协议等,模拟流量报文的处理计算,获得策略的命中信息,并可对命中的策略信息进行编辑,实现防火墙策略命中情况的仿真模拟测算。 5.支持基于域名的防火墙策略,一条策略中最多支持同时配置128个域名(支持IPV6),支持通配符格式的域名如*.test.com,最多支持10级域名且层级可配置,系统内置国内外大模型域名站点模板,提供功能截图证明并加盖投标人公章。 6.▲支持对基于HTTP、FTP、POP3、SMTP、IMAP协议的多线程下载行为,以及有密码的压缩包进行下载限制。 7.★所投产品提供 三年原厂维保,三年防火墙、入侵防御、防病毒、URL特征库升级授权。
| 3
| 多链路负载均衡设备
| 台
| 2
| 1.国产操作系统,国产CPU,标准机架式设备,冗余电源,≥8个万兆光口,≥2个扩展插槽。(配置8个万兆多模光模块)。 2.L4吞吐量≥100G,L7吞吐量≥75G。 3.支持三大运营商链路智能调度、健康检查、故障秒级切换、智能选路等功能。 4.支持无需登录web或cli,通过前面板即可直观看到设备管理口IP、序列号、HA状态、CPU占用率、内存占用率、总吞吐量、四层总新建连接数、四层总连接数、故障节点数、日期和时间等设备信息。 5.服务池支持轮询,精确轮询,严格加权轮询,服务加权轮询,无状态加权每包轮询,节点最少连接,最快响应,最小带宽,随机等负载均衡算法,提供功能截图证明并加盖投标人公章。 6.★所投产品提供三年原厂维保服务。
| 8
| 终端一体化管理系统
| 台
| 1
| 1.国产操作系统,国产CPU,标准机架式设备,冗余电源,≥6个千兆电口。 2.本次提供授权≥10000个 3.功能:集成终端准入控制、病毒查杀、 4.实现终端全生命周期安全管控; 5.支持运维模式、正常模式和紧急模式等之间的灵活切换。实施模式下仅推送认证或客户端安装提示,用户关闭后可正常网络访问。正常模式下违规终端将被执行阻断等管理策略。紧急模式下所有设备均可正常访问业务,准入系统处于透明状态存在。 6.支持基于多厂商Virtual Gateway的VLAN隔离技术,能实现对接入终端达到接入层交换机端口级准入管理,实现无客户端下端口级准入控制,并提供强制web引导入网页面,具备流程化入网控制效果。 7.为满足多类终端的准入控制需求,同时减少成本投入,需要一个管理平台可以同时对Windows电脑、国产化电脑、MacOS电脑、苹果手机、安卓手机进行安全检查: 8.1)具有Windows系统(XP,Win7,Win8,Win10,win11)、Mac OS、Linux、iOS、Android等系统专属客户端,支持认证引导和准入管理; 9.2)适配信创终端,支持包括但不限于飞腾、鲲鹏、海思等CPU架构,操作系统支持但不限于中标麒麟、银河麒麟、统信UOS等,投标供应商需提供产品功能截图及承诺函,并加盖投标人公章。 10.★所投产品提供三年原厂维保服务。
| 更正为:
序号
| 品目名称
| 单位
| 数量
| 技术/服务要求
| 1
| 互联网出口防火墙
| 台
| 2
| 1.国产操作系统,国产CPU,标准机架式设备,冗余电源,≥4T硬盘,≥2个USB接口,≥1个串口,≥2个管理口,≥4个千兆光口,≥8个万兆光口,≥2个扩展插槽。(配置8个万兆多模光模块) 2.网络层吞吐量≥100G,应用层吞吐量≥65G,最大并发连接数≥2500万,新建连接数≥80万。 3.支持防火墙、VPN、应用识别、入侵防御、URL过滤、防病毒、基础DDoS防护等功能。 4.▲支持防火墙策略模拟测算功能,针对防火墙策略,支持基于源安全区、目的安全区、源地址、目的地址、源端口、目的端口、协议等,模拟流量报文的处理计算,获得策略的命中信息,并可对命中的策略信息进行编辑,实现防火墙策略命中情况的仿真模拟测算。 5.支持基于域名的防火墙策略,一条策略中最多支持同时配置128个域名(支持IPV6),支持通配符格式的域名如*.test.com,最多支持10级域名且层级可配置,系统内置国内外大模型域名站点模板,提供功能截图证明并加盖投标人公章。 6.▲支持对基于HTTP、FTP、POP3、SMTP、IMAP协议的多线程下载行为,以及有密码的压缩包进行下载限制。 7.★所投产品提供 三年原厂维保,三年应用识别、入侵防御、防病毒、URL特征库升级授权。
| 3
| 多链路负载均衡设备
| 台
| 2
| 1. 国产操作系统,国产CPU,标准机架式设备,冗余电源,≥8个万兆光口,≥2个扩展插槽。(配置8个万兆多模光模块)。 2. L4吞吐量≥100G,L7吞吐量≥75G。 3. 支持三大运营商链路智能调度、健康检查、故障秒级切换、智能选路等功能。 4. ★所投产品提供三年原厂维保服务。
| 8
| 终端一体化管理系统
| 台
| 1
| 1. 国产操作系统,国产CPU,标准机架式设备,冗余电源,≥6个千兆电口。 2. 本次提供授权≥10000个。 3. 功能:集成终端准入控制、病毒查杀、外设管控、违规外联检测、终端基线检查;实现终端全生命周期安全管控。 4. 支持运维模式、正常模式和紧急模式等之间的灵活切换。实施模式下仅推送认证或客户端安装提示,用户关闭后可正常网络访问。正常模式下违规终端将被执行阻断等管理策略。紧急模式下所有设备均可正常访问业务,准入系统处于透明状态存在。 5. 支持基于多厂商Virtual Gateway的VLAN隔离技术,能实现对接入终端达到接入层交换机端口级准入管理,实现无客户端下端口级准入控制,并提供强制web引导入网页面,具备流程化入网控制效果。 6. 为满足多类终端的准入控制需求,同时减少成本投入,需要一个管理平台可以同时对Windows电脑、国产化电脑、MacOS电脑、苹果手机、安卓手机进行安全检查: 7. 适配信创终端,支持包括但不限于飞腾、鲲鹏、海思等CPU架构,操作系统支持但不限于中标麒麟、银河麒麟、统信UOS等,提供产品功能截图及承诺函,并加盖投标人公章。 8. ★所投产品提供三年原厂维保服务。
| 三、疑问及质疑 本更正公告为招标文件的组成部分,招标文件如涉及上述内容的应作相应调整和修改,若本更正公告与原招标文件内容有不一致之处,应以本更正公告为准。 供应商认为本更正内容存在歧视性的,应在更正公告发布之日起七个工作日内以书面形式向采购人、代理机构提出。 四、凡对本次公告内容提出询问,请按以下方式联系 (一)采购人信息 名 称: 娄底市数据局(娄底市行政审批服务局) 地 址: 湖南省娄底市娄星区勤政街 联系人:邓先生 邮 编:417000 电 话:0738-8227321 (二)采购代理机构信息 名 称: 娄底市政府采购中心 地 址:娄底市湘中大道政务服务大楼 联系人:肖女士 邮 编:417000 电 话:0738-6371181 (三)电子交易平台服务机构信息 联系人:金润方舟科技股份有限公司 电 话:400-926-9966 客服QQ:2159511823
|
| 发布时间: | 2026-09-11 |
| 附件: | [已固化]-数据局.gef 市本级电子政务外网统一互联网出9.11口建设项目招标文件9-11(1).docx
|
三、成交(中标,废标)公告
暂无数据
四、合同公示
暂无数据
|
| 基本信息 |
| 项目名称: | |
| 项目编号: | | 项目所属区域: | |
招标人: | | 保证金: | |
| 多标: |
|
| 内容 |
|
| 发表日期: | |
| 附件: |
|
打 印
|
| 公告类型: | | 项目所属区域: | |
| 交易大类: | | 交易小类: | |
| 内容 |
|
| 发布时间: | |
| 附件: |
|
|
| 项目编号: | | 项目所属区域: | |
| 项目类型: | | | |
| 内容 |
| 采购人: | | 供应商: | |
| 合同金额: | | 合同期限: | |
| 签署时间: | | 发布时间: | |
/**/ var _timeSpan = $('.tB-mb span'); $(function () initNavigation(); loadAllContent(); if (bidOpenTime) show_time(); / 滚动到锚点 scrollToAnchor(); ); /** * 初始化左侧导航点击事件 */ function initNavigation() $('#left').on('click', 'li', function () var _this = $(this); if (!_this.hasClass('cur')) _this.addClass('cur').siblings('.cur').removeClass('cur'); / ContentPage类型:在新窗口打开独立页面 if (_this.data('is-content-page') === true || _this.data('is-content-page') === 'true') var docId = _this.data('doc-id'); if (docId && docId > 0) window.open(ctx + 'web/contentPage?docId=' + docId, '_blank'); return; var key = _this.data('key'); location.hash = 'title_' + key; / 滚动右侧到对应section var target = document.getElementById('title_' + key); if (target) $('#right').animate(scrollTop: target.offsetTop - 130, 300); ); /** * 加载所有栏目内容(AJAX) */ function loadAllContent() $('.sepFrame').each(function () var $frame = $(this); var key = $frame.data('key'); / 从对应的左侧导航获取noticeTypeIds var $navItem = $('#left li[data-key='' + key + '']'); var noticeTypeIds = $navItem.data('notice-type-ids'); if (noticeTypeIds) loadContent($frame, noticeTypeIds); else $frame.find('.sep-content').html('暂无数据
'); ); /** * AJAX加载单个栏目内容(返回JSON,前端模板渲染) */ function loadContent($frame, noticeTypeIds) $.ajax( url: ctx + 'web/viewContent', data: code: projectCode, noticeTypeIds: noticeTypeIds, type: 'GET', dataType: 'json', success: function (res) if (res.code === 0 && res.data) renderContent($frame, res.data); else $frame.find('.sep-content').html('暂无数据
'); , error: function () $frame.find('.sep-content').html('加载失败
'); ); /** * 根据viewType选择模板渲染内容 */ function renderContent($frame, data) var $content = $frame.find('.sep-content'); switch (data.viewType) case 'tender': renderTender($content, data); break; case 'other': renderOther($content, data); break; case 'contract': renderContract($content, data); break; case 'contentPage': renderContentPage($content, data); break; default: $content.html('暂无数据
'); /** 安全设置文本(jQuery .text()自动转义防XSS) */ function safeText($el, val) $el.text(val || ''); /** 注入富文本HTML(内容来自管理后台维护的可信HTML) */ function safeHtml($el, val) $el.html(val || ''); /** * 渲染招标/采购公告(对应zbggShow模板) */ function renderTender($container, data) var $clone = $($('#tmpl-tender').html()); safeText($clone.find('.t-noticeName'), data.noticeName); safeText($clone.find('.t-projectName'), data.projectName); safeText($clone.find('.t-codeLabel'), data.projectCodeLabel + ':'); safeText($clone.find('.t-projectCode'), data.projectCode); safeText($clone.find('.t-regionCode'), data.regionCode); safeText($clone.find('.t-tendererLabel'), data.tendererLabel + ':'); safeText($clone.find('.t-tendererName'), data.tendererName); / 投标按钮(根据项目编号前缀决定) var code = data.projectCode || ''; var $btns = $clone.find('.t-btns'); if (code.indexOf('HN') === 0) $btns.append('
不见面开标大厅'); $btns.append('
省下发系统'); else if (code.indexOf('E') === 0) $btns.append('
我要投标'); else $btns.append('
省交易平台'); / 保证金/多标段 if (data.multiSection) $clone.find('.t-marginLabel').text('多包:'); safeText($clone.find('.t-marginAmount'), ''); $clone.find('.t-sectionLine').show(); var $tbody = $clone.find('.t-sectionBody'); $.each(data.sections || [], function (i, sec) var $tr = $('
| |
|---|
'); $tr.find('th').eq(0).text(sec.name); $tr.find('th').eq(1).text(sec.margin); $tbody.append($tr); ); else safeText($clone.find('.t-marginAmount'), data.marginAmount); / 公告标题和内容 safeText($clone.find('.t-noticeTitle'), data.noticeTitle); safeHtml($clone.find('.t-noticeContent'), data.noticeContent); safeText($clone.find('.t-publishTime'), data.publishTime); renderFileLinks($clone.find('.t-files'), data.files); if (!data.files || data.files.length === 0) $clone.find('.t-filesRow').hide(); $container.empty().append($clone); / 打印功能 $clone.find('.btn-print-detail').on('click', function () var printWin = window.open('', '_blank'); var content = $clone.find('.baseInfo')[0].outerHTML; printWin.document.write('打印'); printWin.document.write(''); printWin.document.write('' + content + ''); printWin.document.close(); printWin.print(); ); /** * 渲染其他公告类型(对应otherView模板) */ function renderOther($container, data) $container.empty(); $.each(data.items || [], function (i, item) var $clone = $($('#tmpl-other').html()); / 序号角标(左侧) + 标题 var $title = $clone.find('.t-title'); $title.empty(); if (item.count > 0) $title.append($('').css(display:'inline-block',background:'#C00',color:'white',fontSize:'12px',padding:'0 6px',lineHeight:'18px',marginRight:'10px').text(item.count)); $title.append($('').text(item.noticeTitle || '')); safeText($clone.find('.t-noticeTypeName'), item.noticeTypeName); safeText($clone.find('.t-regionName'), item.regionName); safeText($clone.find('.t-projectTypeOneName'), item.projectTypeOneName); safeText($clone.find('.t-projectTypeTwoName'), item.projectTypeTwoName); safeHtml($clone.find('.t-noticeContent'), item.noticeContent); safeText($clone.find('.t-publishTime'), item.publishTime); if (item.hideFiles || !item.files || item.files.length === 0) $clone.find('.t-filesRow').hide(); else renderFileLinks($clone.find('.t-files'), item.files); $container.append($clone); ); /** * 渲染合同公告(对应ContractView模板) */ function renderContract($container, data) $container.empty(); $.each(data.items || [], function (i, item) var $clone = $($('#tmpl-contract').html()); var $title = $clone.find('.t-title'); $title.empty(); if (item.count > 0) $title.append($('').css(display:'inline-block',background:'#C00',color:'white',fontSize:'12px',padding:'0 6px',lineHeight:'18px',marginRight:'10px').text(item.count)); $title.append($('').text(item.contractName || '')); safeText($clone.find('.t-projectCode'), item.projectCode); safeText($clone.find('.t-regionName'), item.regionName); safeText($clone.find('.t-projectType'), item.projectType); safeText($clone.find('.t-purchaserName'), item.purchaserName); safeText($clone.find('.t-bidderName'), item.bidderName); safeText($clone.find('.t-contractAmount'), (item.contractAmount || '') + (item.priceUnit || '')); safeText($clone.find('.t-contractTerm'), item.contractTerm); safeText($clone.find('.t-signingTime'), item.signingTime); safeText($clone.find('.t-publishTime'), item.publishTime); $container.append($clone); ); /** * 渲染文章内容页(对应ContentPage模板,内嵌在ViewsPage中) */ function renderContentPage($container, data) var $clone = $($('#tmpl-contentPage').html()); safeHtml($clone.find('.t-noticeContent'), data.noticeContent); safeText($clone.find('.t-publishTime'), data.publishTime); renderFileLinks($clone.find('.t-files'), data.files); if (!data.files || data.files.length === 0) $clone.find('.t-filesRow').hide(); $container.empty().append($clone); /** * 渲染附件链接列表(使用jQuery创建元素,自动转义属性值防XSS) */ function renderFileLinks($container, files) $container.empty(); if (!files || files.length === 0) return; $.each(files, function (i, f) var $p = $(''); var $a = $('').attr('target', '_blank').attr('href', f.url).text(f.fileName); $p.append($a); $container.append($p); ); / 附件链接新窗口打开(富文本内容中的链接) $(document).on('click', '.td-article a', function () var href = $(this).attr('href'); if (href && href !== 'null' && href !== document.domain) $(this).attr('target', '_blank'); ); /** * 滚动到URL锚点对应的section */ function scrollToAnchor() var hash = location.hash; if (hash) var target = document.getElementById(hash.substring(1)); if (target) setTimeout(function () $('#right').scrollTop(target.offsetTop - 130); , 500); /** * 开标倒计时 */ function show_time() if (!bidOpenTime) return; var time_start = new Date().getTime(); / 将日期中的'-'替换为'/'以兼容各浏览器 var time_end = new Date(bidOpenTime.replace(/-/g, '/')).getTime(); var time_distance = time_end - time_start; if (time_distance >= 0) var int_day = Math.floor(time_distance / 86400000); time_distance -= int_day * 86400000; var int_hour = Math.floor(time_distance / 3600000); time_distance -= int_hour * 3600000; var int_minute = Math.floor(time_distance / 60000); time_distance -= int_minute * 60000; var int_second = Math.floor(time_distance / 1000); if (int_day < 10) int_day = '0' + int_day; if (int_hour < 10) int_hour = '0' + int_hour; if (int_minute < 10) int_minute = '0' + int_minute; if (int_second < 10) int_second = '0' + int_second; _timeSpan.eq(0).html(parseInt(int_day / 10)); _timeSpan.eq(1).html(parseInt(int_day % 10)); _timeSpan.eq(2).html(parseInt(int_hour / 10)); _timeSpan.eq(3).html(parseInt(int_hour % 10)); _timeSpan.eq(4).html(parseInt(int_minute / 10)); _timeSpan.eq(5).html(parseInt(int_minute % 10)); _timeSpan.eq(6).html(parseInt(int_second / 10)); _timeSpan.eq(7).html(parseInt(int_second % 10)); setTimeout('show_time()', 1000); else _timeSpan.html('-');