feat: 查询接口,在线文档,服务中心样式调整
This commit is contained in:
parent
d7a798ecfd
commit
32368454fb
@ -1,151 +1,151 @@
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '绿色企业认定', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '联合征信', NULL, NULL, NULL, '提供企业绿色属性全面评估与认证服务,通过多维度指标核查企业碳排放表现、环境管理水平和可持续发展能力,颁发权威绿色企业资质证书,适用于绿色信贷、招投标等商业场景', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '绿色项目认定', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '联合征信', NULL, NULL, NULL, '对项目的碳减排效果进行量化评估与认证,核验项目方法学适用性,核算实际产生的碳资产价值,出具符合国内外标准的绿色项目认定报告,支撑项目融资与碳资产开发', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '中小企业环境信息披露', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '联合征信', NULL, NULL, NULL, '协助企业完成环境信息合规披露,涵盖碳排放数据核算、ESG信息编制及监管上报,满足上市公司和出口企业的碳信息披露要求,提升企业ESG评级与市场竞争力', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '碳资产管理平台解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '零数科技', NULL, NULL, NULL, '提供碳资产全生命周期数字化管理服务,支持碳排放权配额登记、国际碳信用(CCER等)管理、交易撮合、结算清缴等功能,助力企业实现碳资产保值增值', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '碳交易最优策略模拟平台解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '零数科技', NULL, NULL, NULL, '基于大数据与AI算法构建碳交易策略模型,模拟不同市场情景下的交易收益,辅助企业制定碳资产配置方案,优化买入卖出时机,降低履约成本并提升碳资产收益', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'CCER 碳资产开发平台解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '零数科技', NULL, NULL, NULL, '辅助企业开发核证自愿减排量(CCER)项目,覆盖减排方法学选择、项目设计、第三方审定、减排量核查及国家发改委签发全流程,提供项目全周期管理与价值评估', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'CBAM 辅助核算系统', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '欧冶云商', NULL, NULL, NULL, '依据欧盟碳边境调节机制(CBAM)法规要求,为出口企业提供商品隐含碳排放量核算服务,支持钢铁、铝、水泥等六大行业的数据填报,生成符合欧盟要求的合规报告', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '钢铁全产业链 EPD 平台', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '欧冶云商', NULL, NULL, NULL, '提供钢铁产品环境产品声明(EPD)全流程服务,包括产品碳足迹计算、生命周期评估(LCA)、第三方独立审核及国际EPD注册,帮助企业获取绿色贸易通行证', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'OYLCA 工具', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '欧冶云商', NULL, NULL, NULL, '提供专业的生命周期碳足迹(LCA)评估工具,支持企业快速建立产品碳核算模型,引用权威排放因子数据库,自动生成符合ISO 14040/14044标准的碳足迹报告', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '建筑节能降碳服务解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '时链科技', NULL, NULL, NULL, '提供建筑全生命周期节能降碳服务,涵盖能耗诊断审计、机电系统节能改造、可再生能源应用、智慧楼宇管控及碳减排量核算,实现建筑近零碳运行', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '基于医院建筑运行特征智能化碳评价', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '上海建工四建', NULL, NULL, NULL, '针对医院建筑能耗特性进行深度数据分析,建立医疗行业专属碳排放核算模型,输出智能化碳评价报告,为医院制定科学的碳减排路径与节能改造方案', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '能碳智慧管家解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '上海电气', NULL, NULL, NULL, '提供综合能源管理与碳排放监测一体化平台,实时采集企业用能数据,智能分析碳排放结构,自动生成碳排放报告,并提供优化建议支撑企业碳减排决策', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14064-1 温室气体核查认证解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'TUV 北德', NULL, NULL, NULL, '提供组织层面温室气体排放核查认证服务,指导企业建立碳排放清单,通过第三方独立核查出具国际认可的ISO 14064-1核查报告,证书全球通用', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14067 产品碳足迹核查认证解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'TUV 北德', NULL, NULL, NULL, '依据ISO 14067标准提供产品碳足迹核查认证服务,覆盖产品全生命周期碳排放量化、数据质量评估与第三方验证,帮助企业获得产品碳足迹认证并获取绿色产品标识', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14068-1 碳中和核查认证解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'TUV 北德', NULL, NULL, NULL, '核查组织或产品的碳中和路径规划与抵消方案,评估碳抵消项目的真实性与有效性,出具符合ISO 14068-1标准的碳中和认证证书,提升企业绿色品牌公信力', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14064 盘查 & 核查服务流程', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '必维认证', NULL, NULL, NULL, '提供温室气体排放量盘查及第三方核查服务全流程指导,帮助企业建立碳排放核算体系,完成数据收集、排放量计算及第三方核查认证,确保符合国内外碳披露要求', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14067 产品碳足迹服务流程', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '必维认证', NULL, NULL, NULL, '按照ISO 14067标准提供产品碳足迹核算与认证全流程服务,覆盖碳足迹建模、数据收集、排放计算及第三方验证,帮助企业量化产品碳排放并获取国际认可的碳标签', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'ISO 14068 碳中和服务流程', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '必维认证', NULL, NULL, NULL, '提供碳中和认证全流程服务,包括碳足迹盘查、碳抵消方案设计、碳信用购买指导及碳中和声明验证,协助企业实现碳中和目标并获得权威认证', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'PAS 2080 碳管理体系服务流程', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '必维认证', NULL, NULL, NULL, '提供碳管理体系建设咨询与认证服务,依据PAS 2080标准帮助企业建立碳管理治理架构,制定碳减排目标与路径,推动供应链协同降碳,提升整体碳效率', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'CBAM 填报 & 核验服务流程', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '必维认证', NULL, NULL, NULL, '提供欧盟碳边境调节机制(CBAM)合规服务全流程,辅助完成数据收集、隐含碳计算、季度报告填报及年度第三方核验,确保对欧出口企业符合CBAM法规要求', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'HiQLCD 数据库 + HiQEditor', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '易碳数科', NULL, NULL, NULL, '提供权威碳排放因子数据库及可视化编辑工具,支持企业快速建立产品碳足迹核算模型,内置行业标准排放因子库,自动生成符合国内国际标准的碳足迹报告与EPD文档', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '积木 LCA 云', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '易碳数科', NULL, NULL, NULL, '基于SaaS模式的生命周期评估(LCA)云平台,提供模块化碳核算工具与可视化看板,支持产品碳足迹、企业碳足迹、项目碳减排量等多场景LCA分析,数据可追溯可共享', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '积木碳云', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '易碳数科', NULL, NULL, NULL, '提供企业碳管理一站式云服务,涵盖碳排放监测与管理、减排项目管理、碳资产对接、碳普惠积分等功能,支持与碳交易所对接,助力企业实现碳数字化管理', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '碳边境调节机制计算工具 CBAM TOOL', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '易碳数科', NULL, NULL, NULL, '依据欧盟CBAM法规提供在线碳排放计算工具,支持多行业多产品隐含碳排放量自动核算,一键生成符合欧盟格式要求的CBAM填报报表与合规证明文件', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '零碳园区解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '提供零碳园区顶层规划与实施全流程解决方案,涵盖碳排放盘查、零碳路径规划、智慧能源系统建设、碳中和实施路径设计及第三方认证,打造近零碳示范园区', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '基于区块链技术的组织碳管理平台', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '利用区块链去中心化、不可篡改的特性建立可信碳管理账本,实现组织碳排放数据的链上存证、可信溯源与跨机构共享,杜绝数据造假,提升碳数据公信力', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '可持续供应链溯源解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '基于区块链技术构建绿色供应链追溯体系,追踪上游原材料碳足迹与环保属性,确保供应链碳排放数据透明可信,帮助企业满足欧盟碳边境调节机制对供应链的要求', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '基于区块链技术的能碳双控解决方案', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '融合能源管理与碳排放监测两大系统,利用区块链技术实现能耗与碳排放数据的可信关联与协同管控,支持绿电溯源、碳排放计量及碳资产确权', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '区块链驱动的全生命周期碳足迹溯源', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '通过区块链技术记录产品从原材料、生产、运输到使用、废弃的全生命周期碳数据,实现碳足迹的的可信溯源、防篡改验证与多方共识,服务于绿色贸易与品牌建设', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '绿色产品生态设计平台', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '提供绿色产品生态设计数字化工具,辅助企业在产品研发阶段融入低碳理念,进行材料选型、工艺优化、碳影响评估,推动产品全生命周期绿色化', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'ESG 综合服务平台', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '提供ESG评级提升、ESG报告编制、信息披露指导、ESG管理培训等一站式服务,帮助企业系统性提升ESG表现,满足资本市场与监管机构的可持续发展信息披露要求', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), 'CBAM 申报平台', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, 'AMT 企源', NULL, NULL, NULL, '提供CBAM数据智能采集、报表自动生成、在线申报及进度追踪等一站式服务,支持与欧盟CBAM系统对接,确保数据准确完整,降低企业合规申报成本与风险', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '可再生能源溯源解决方案(源侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供可再生能源发电碳减排量核算与绿证溯源服务,利用区块链技术追踪绿色电力从发电到消纳的全生命周期,支撑企业实现绿电消费与碳减排目标', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '智能微电网自洽系统解决方案(网侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供智能微电网能量管理系统解决方案,实现分布式光伏、储能、充电桩等资源的协调优化控制,提升新能源消纳率,降低电网碳排放强度', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '零碳园区解决方案(荷侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供园区负荷侧综合能源管理与碳排放监测服务,涵盖智慧照明、空调群控、能耗优化及碳排放计量,通过需求侧响应实现园区碳排放精细化管理', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '电化学储能解决方案(储侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供电化学储能系统集成与运维服务,通过峰谷套利、需求响应、调频辅助服务等模式优化电力碳排放结构,支撑企业降低碳排放强度与用能成本', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '碳数据库解决方案(装备侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供能源装备碳排放数据库建设与运维服务,建立设备级碳排放计量标准与数据集,为企业碳排放精细化管理提供数据支撑,服务于企业碳资产核算与碳交易', NULL);
|
||||
|
||||
INSERT INTO txw_mhzc.txw_gxzx_gxxxb
|
||||
INSERT INTO `txw_gxzx_gxxxb`
|
||||
(gx_uuid, bt_1, fwfw, kzwj, lxr, lxdh, email, zt, qyuuid, lrrq, xgrq, xgruuid, lrruuid, sjzt, ywlx_dm, ysfw_dm_1, qwwcsj, xqjjcd_dm, gjjg, gjdw_dm, qymc, bqjh, fwlxjh, sshy, fwnr, nsrsbh)
|
||||
VALUES(REPLACE(UUID(), '-', ''), '虚拟电厂场景解决方案(调控侧)', '000000', NULL, '宋冰', NULL, NULL, '3', NULL, '2026-04-29 15:54:39', NULL, NULL, '43684119bc904f50a798c6dc04b47276', 'Y', '01', NULL, NULL, NULL, 0, NULL, '中国电气装备', NULL, NULL, NULL, '提供虚拟电厂运营管理平台,聚合分布式可再生能源、储能、可控负荷等资源,参与电力辅助服务和碳减排权交易,实现多能互补与碳排放优化协同调控', NULL);
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
# 可信碳链 — 接入流程指南
|
||||
|
||||

|
||||
|
||||
欢迎接入可信碳链!以下是完整的接入流程说明,帮助您快速完成身份创建、资质申请与技术联调。
|
||||
|
||||

|
||||
|
||||
## 第一步:创建 DID 账户
|
||||
|
||||
**操作目标**:生成您的去中心化身份标识(DID),作为后续所有操作的身份基础。
|
||||
@ -22,19 +22,16 @@
|
||||
2. 按要求填写机构信息、资质材料并提交审核。
|
||||
3. 等待平台审核通过后,即可获得凭证签发权限。
|
||||
|
||||
```
|
||||
审核周期:3-5 个工作日
|
||||
资质要求:企业实名认证 + 相关行业资质
|
||||
```
|
||||
|
||||
## 第三步:创建可信碳凭证模板 & 访问令牌
|
||||
|
||||
**操作目标**:定义碳凭证的业务结构,并获取 DID 公共服务交互的安全令牌。
|
||||
|
||||
1. 进入管理台 > 凭证模板,点击「创建新模板」,配置凭证字段。
|
||||
2. 进入管理台 > 账户中心 > 访问令牌管理进行新增加令牌。
|
||||
|
||||

|
||||

|
||||
|
||||
2. 进入管理台 > 账户中心 > 访问令牌管理进行新增加令牌。
|
||||
|
||||
## 第四步:下载 SDK 并完成接入联调
|
||||
|
||||
@ -48,30 +45,4 @@
|
||||
| 4 | 接口联调 | 调用接口实现碳数据上链、VC 签发/验证等功能 |
|
||||
| 5 | 上线验证 | 联调通过后,即可正式上线 |
|
||||
|
||||
```javascript
|
||||
// SDK 初始化示例
|
||||
import { CarbonChain } from '@carbon/sdk';
|
||||
|
||||
const carbon = new CarbonChain({
|
||||
appId: 'your-app-id',
|
||||
secretKey: 'your-secret-key',
|
||||
did: 'your-did'
|
||||
});
|
||||
|
||||
await carbon.init();
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: 如何获取 DID?
|
||||
A: 在 DID 管理台创建或导入已有 DID。
|
||||
|
||||
### Q: VC 审核需要多长时间?
|
||||
A: 一般 3-5 个工作日。
|
||||
|
||||
### Q: 支持哪些开发语言?
|
||||
A: 支持 Java、Python、Node.js、Go 等主流语言。
|
||||
|
||||
---
|
||||
|
||||
**技术支持**:如有疑问,请联系 support@carbonchain.com
|
||||
|
||||
BIN
txw-mhzc-web/public/docs/images/carbon-guide-image-1.png
Normal file
BIN
txw-mhzc-web/public/docs/images/carbon-guide-image-1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
BIN
txw-mhzc-web/public/docs/images/carbon-guide-image-2.png
Normal file
BIN
txw-mhzc-web/public/docs/images/carbon-guide-image-2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 72 KiB |
@ -200,6 +200,14 @@ export default {
|
||||
data: JSON.stringify(params),
|
||||
});
|
||||
},
|
||||
getSjlbb(params) {
|
||||
return fetchSso({
|
||||
url: `${basurl}/gxdt/getSjlbb`,
|
||||
method: 'get',
|
||||
loading: true,
|
||||
params,
|
||||
});
|
||||
},
|
||||
// 代码表查询(tableName: fwlx/sshy/xzqh/bq/dw)
|
||||
dms2mc(tableName, params) {
|
||||
return fetchSso({
|
||||
|
||||
@ -99,7 +99,7 @@
|
||||
|
||||
<!-- 只展示收藏项 -->
|
||||
<div class="filter-section">
|
||||
<t-checkbox v-model="filter.zzsscx" @change="onSearch">只展示收藏项</t-checkbox>
|
||||
<t-checkbox v-model="filter.zzsscx" @change="() => onSearch()">只展示收藏项</t-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -469,6 +469,10 @@ export default {
|
||||
onPublishSuccessClose() {
|
||||
this.publishSuccessVisible = false;
|
||||
},
|
||||
// 分页变化
|
||||
onPageChange() {
|
||||
this.searchList();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@ -1,47 +1,32 @@
|
||||
<template>
|
||||
<div class="sjlbc-page">
|
||||
<!-- 面包屑导航 -->
|
||||
<!-- <BreadcrumbNav
|
||||
:currentPage="currentPageName"
|
||||
secondPage="碳数据市场"
|
||||
secondLink="/tsjsc"
|
||||
/> -->
|
||||
<div class="breadcrumb-box">
|
||||
<span class="breadcrumb-link" @click="$router.push('/view/mhzc/home')">首页</span>
|
||||
<span class="breadcrumb-separator">/</span>
|
||||
<span class="breadcrumb-link" @click="$router.push('/fwsc')">服务中心</span>
|
||||
<span class="breadcrumb-separator">/</span>
|
||||
<span class="breadcrumb-link" @click="$router.push('/tsjsc')">碳数据市场</span>
|
||||
<span class="breadcrumb-separator">/</span>
|
||||
<span class="breadcrumb-current">{{ sjscInfo && sjscInfo.sjmc || '数据列表' }}</span>
|
||||
</div>
|
||||
|
||||
<!-- 数据市场信息卡片 -->
|
||||
<div class="sjsc-info-card" v-if="sjscInfo">
|
||||
<div class="sjsc-info-main">
|
||||
<h2 class="sjsc-name">{{ sjscInfo.sjmc || '数据市场' }}</h2>
|
||||
<p class="sjsc-desc">{{ sjscInfo.sjms || '暂无描述' }}</p>
|
||||
</div>
|
||||
<div class="sjsc-info-stats" v-if="sjscInfo.llcs">
|
||||
<div class="stat-item" v-if="sjscInfo.llcs">
|
||||
<span class="stat-value">{{ sjscInfo.llcs }}</span>
|
||||
<span class="stat-label">浏览次数</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 主内容区 -->
|
||||
<div class="content-wrapper">
|
||||
<!-- 左侧筛选栏 -->
|
||||
<div class="filter-sidebar">
|
||||
<div class="filter-toggle" @click="filterCollapsed = !filterCollapsed">
|
||||
<span class="toggle-text">筛选</span>
|
||||
<span class="toggle-icon">{{ filterCollapsed ? '▼' : '▲' }}</span>
|
||||
</div>
|
||||
<div :class="['filter-box', { collapsed: filterCollapsed }]">
|
||||
<!-- 价格区间 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">价格区间</div>
|
||||
<div class="price-range">
|
||||
<input type="text" v-model="filterParams.priceMin" placeholder="最低" class="price-input price-min" />
|
||||
<span class="price-separator">-</span>
|
||||
<input type="text" v-model="filterParams.priceMax" placeholder="最高" class="price-input price-max" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 有效期 -->
|
||||
<div class="filter-section">
|
||||
<div class="filter-title">有效期</div>
|
||||
<div class="date-picker-box">
|
||||
<input type="date" v-model="filterParams.validDate" class="date-input" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 筛选按钮 -->
|
||||
<div class="filter-buttons">
|
||||
<button class="btn-reset" @click="resetFilter">重置</button>
|
||||
<button class="btn-confirm" @click="confirmFilter">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 右侧数据列表 -->
|
||||
<div class="data-list">
|
||||
<t-table
|
||||
@ -78,9 +63,10 @@
|
||||
|
||||
<!-- 联系方式弹窗 -->
|
||||
<t-dialog
|
||||
v-model:visible="contactDialogVisible"
|
||||
:closeOnOverlayClick="false"
|
||||
header="联系方式"
|
||||
:footer="false"
|
||||
:visible.sync="contactDialogVisible"
|
||||
width="400px"
|
||||
>
|
||||
<div class="contact-dialog-content">
|
||||
@ -123,11 +109,6 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
currentPageName: '数据列表',
|
||||
filterParams: {
|
||||
priceMin: '',
|
||||
priceMax: '',
|
||||
validDate: '',
|
||||
},
|
||||
sortField: '',
|
||||
sortOrder: '',
|
||||
dataList: [],
|
||||
@ -137,8 +118,7 @@ export default {
|
||||
total: 0
|
||||
},
|
||||
sjscUuid: '',
|
||||
// 移动端筛选折叠状态
|
||||
filterCollapsed: true,
|
||||
sjscInfo: null,
|
||||
// 联系方式弹窗
|
||||
contactDialogVisible: false,
|
||||
currentContact: null,
|
||||
@ -185,6 +165,7 @@ export default {
|
||||
},
|
||||
mounted() {
|
||||
this.sjscUuid = this.$route.query.id || '';
|
||||
this.loadSjscInfo();
|
||||
this.loadData();
|
||||
},
|
||||
computed: {
|
||||
@ -231,14 +212,19 @@ export default {
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
loadSjscInfo() {
|
||||
if (!this.sjscUuid) return;
|
||||
gxzxApi.getSjsc({ uuid: this.sjscUuid }).then(res => {
|
||||
if (res && res.data) {
|
||||
this.sjscInfo = res.data;
|
||||
}
|
||||
});
|
||||
},
|
||||
loadData() {
|
||||
const params = {
|
||||
pageNo: this.pagination.pageNo,
|
||||
pageSize: this.pagination.pageSize,
|
||||
sjscUuid: this.sjscUuid,
|
||||
priceMin: this.filterParams.priceMin ? parseFloat(this.filterParams.priceMin) : null,
|
||||
priceMax: this.filterParams.priceMax ? parseFloat(this.filterParams.priceMax) : null,
|
||||
validDate: this.filterParams.validDate || null
|
||||
};
|
||||
gxzxApi.sjlbbList(params).then(res => {
|
||||
if (res && res.data && res.data.records) {
|
||||
@ -248,6 +234,7 @@ export default {
|
||||
type: item.sjlxDm,
|
||||
sjbt: item.sjbt,
|
||||
sjms: item.sjms,
|
||||
email: item.emial,
|
||||
publishTime: item.lrrq ? this.formatDate(item.lrrq) : '',
|
||||
updateTime: item.xgrq ? this.formatDate(item.xgrq) : '',
|
||||
dataCount: item.sjsl ? item.sjsl.toLocaleString() : '0',
|
||||
@ -256,8 +243,8 @@ export default {
|
||||
jg: item.jg,
|
||||
jgDw: item.jgDw
|
||||
}));
|
||||
this.pagination.total = res.data.total;
|
||||
this.paginationConfig.total = res.data.total;
|
||||
this.pagination.total = Number(res.data.total);
|
||||
this.paginationConfig.total = Number(res.data.total);
|
||||
this.paginationConfig.current = this.pagination.pageNo;
|
||||
this.paginationConfig.pageSize = this.pagination.pageSize;
|
||||
}
|
||||
@ -283,9 +270,9 @@ export default {
|
||||
gxzxApi.getSjlbb({ uuid: item.uuid }).then(res => {
|
||||
if (res && res.data) {
|
||||
this.currentContact = {
|
||||
lxr: res.data.lxr,
|
||||
lxdh: res.data.lxdh,
|
||||
lxyx: res.data.lxyx,
|
||||
lxr: res.data.lxr || '-',
|
||||
lxdh: res.data.lxdh || '-',
|
||||
lxyx: res.data.email || '-',
|
||||
};
|
||||
} else {
|
||||
this.currentContact = null;
|
||||
@ -293,17 +280,6 @@ export default {
|
||||
this.contactDialogVisible = true;
|
||||
});
|
||||
},
|
||||
resetFilter() {
|
||||
this.filterParams = {
|
||||
priceMin: '',
|
||||
priceMax: '',
|
||||
validDate: '',
|
||||
};
|
||||
},
|
||||
confirmFilter() {
|
||||
this.pagination.pageNo = 1;
|
||||
this.loadData();
|
||||
},
|
||||
handlePageChange(pageInfo) {
|
||||
this.pagination.pageNo = pageInfo.current;
|
||||
this.pagination.pageSize = pageInfo.pageSize;
|
||||
@ -319,166 +295,123 @@ export default {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
// 主内容区
|
||||
.content-wrapper {
|
||||
display: flex;
|
||||
max-width: 1400px;
|
||||
padding: 20px;
|
||||
margin: 0 auto;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
// 左侧筛选栏
|
||||
.filter-sidebar {
|
||||
width: 200px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.filter-box {
|
||||
position: sticky;
|
||||
top: 104px;
|
||||
padding: 16px;
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
// 移动端筛选栏折叠
|
||||
.filter-toggle {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.filter-toggle {
|
||||
display: flex;
|
||||
padding: 12px;
|
||||
margin-bottom: 8px;
|
||||
cursor: pointer;
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.toggle-text {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.toggle-icon {
|
||||
font-size: 18px;
|
||||
color: #666;
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
|
||||
&.collapsed .toggle-icon {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
}
|
||||
|
||||
.filter-box {
|
||||
position: relative;
|
||||
top: 0;
|
||||
max-height: 1000px;
|
||||
padding: 16px;
|
||||
overflow: hidden;
|
||||
transition: max-height 0.3s ease, padding 0.3s ease;
|
||||
}
|
||||
|
||||
.filter-box.collapsed {
|
||||
max-height: 0;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.filter-section {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.filter-title {
|
||||
margin-bottom: 12px;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.price-range {
|
||||
// 面包屑导航
|
||||
.breadcrumb-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
width: 100%;
|
||||
max-width: 1400px;
|
||||
padding: 20px 20px 0;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.price-input {
|
||||
height: 32px;
|
||||
padding: 0 6px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 4px;
|
||||
outline: none;
|
||||
box-sizing: border-box;
|
||||
.breadcrumb-link {
|
||||
font-size: 14px;
|
||||
color: #009a29;
|
||||
cursor: pointer;
|
||||
transition: color 0.3s;
|
||||
|
||||
&:focus {
|
||||
border-color: #009a29;
|
||||
&:hover {
|
||||
color: #007a1f;
|
||||
}
|
||||
}
|
||||
|
||||
.price-min,
|
||||
.price-max {
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.price-separator {
|
||||
flex-shrink: 0;
|
||||
.breadcrumb-separator {
|
||||
margin: 0 8px;
|
||||
font-size: 14px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.date-picker-box {
|
||||
.date-input {
|
||||
width: 100%;
|
||||
height: 32px;
|
||||
padding: 0 8px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 4px;
|
||||
outline: none;
|
||||
box-sizing: border-box;
|
||||
.breadcrumb-current {
|
||||
font-size: 14px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border-color: #009a29;
|
||||
}
|
||||
// 数据市场信息卡片
|
||||
.sjsc-info-card {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
max-width: 1400px;
|
||||
padding: 24px;
|
||||
margin: 16px auto 0;
|
||||
background: linear-gradient(135deg, #009a29 0%, #00c853 100%);
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 4px 12px rgba(0, 154, 41, 0.15);
|
||||
color: #fff;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.sjsc-info-main {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.sjsc-name {
|
||||
margin: 0 0 8px;
|
||||
font-size: 22px;
|
||||
font-weight: 600;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.sjsc-desc {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.sjsc-info-stats {
|
||||
display: flex;
|
||||
gap: 32px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.stat-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.stat-label {
|
||||
margin-top: 4px;
|
||||
font-size: 12px;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.sjsc-info-card {
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.sjsc-info-stats {
|
||||
gap: 24px;
|
||||
width: 100%;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.stat-value {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.filter-buttons {
|
||||
display: flex;
|
||||
gap: 12px;
|
||||
|
||||
.btn-reset,
|
||||
.btn-confirm {
|
||||
height: 36px;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.btn-reset {
|
||||
color: #666;
|
||||
background: #f5f5f5;
|
||||
border: 1px solid #ddd;
|
||||
|
||||
&:hover {
|
||||
background: #eee;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-confirm {
|
||||
color: #fff;
|
||||
background: #009a29;
|
||||
|
||||
&:hover {
|
||||
background: #008f26;
|
||||
}
|
||||
}
|
||||
// 主内容区
|
||||
.content-wrapper {
|
||||
width: 100%;
|
||||
max-width: 1400px;
|
||||
padding: 20px;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// 右侧数据列表
|
||||
@ -486,7 +419,7 @@ export default {
|
||||
overflow: hidden;
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
flex: 1;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// 联系方式弹窗样式
|
||||
@ -540,39 +473,16 @@ export default {
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.breadcrumb-box {
|
||||
padding: 12px 12px 0;
|
||||
}
|
||||
|
||||
.content-wrapper {
|
||||
flex-direction: column;
|
||||
padding: 12px;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.filter-sidebar {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.filter-box {
|
||||
position: relative;
|
||||
top: 0;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
.price-range {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.price-input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.price-min,
|
||||
.price-max {
|
||||
width: calc(50% - 3px);
|
||||
}
|
||||
|
||||
.filter-buttons {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.data-list {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
@ -1,27 +1,24 @@
|
||||
<template>
|
||||
<div class="sjsc-page">
|
||||
<!-- 面包屑导航 -->
|
||||
<!-- <BreadcrumbNav currentPage="碳数据市场" /> -->
|
||||
<div>
|
||||
<!-- 面包屑导航 -->
|
||||
<!-- <BreadcrumbNav currentPage="碳数据市场" /> -->
|
||||
|
||||
<!-- 二级菜单 -->
|
||||
<div class="secondary-nav">
|
||||
<div class="secondary-nav-content">
|
||||
<div class="nav-tabs">
|
||||
<button
|
||||
v-for="tab in navTabs"
|
||||
:key="tab.path"
|
||||
:class="['nav-tab', { active: isActiveTab(tab.path) }]"
|
||||
@click="goToTab(tab.path)"
|
||||
>
|
||||
{{ tab.label }}
|
||||
</button>
|
||||
<!-- 二级菜单 -->
|
||||
<div class="secondary-nav">
|
||||
<div class="secondary-nav-content">
|
||||
<div class="nav-tabs">
|
||||
<button v-for="tab in navTabs" :key="tab.path" :class="['nav-tab', { active: isActiveTab(tab.path) }]"
|
||||
@click="goToTab(tab.path)">
|
||||
{{ tab.label }}
|
||||
</button>
|
||||
</div>
|
||||
<!-- <button class="publish-btn" @click="handlePublish">免费发布数据</button> -->
|
||||
</div>
|
||||
<!-- <button class="publish-btn" @click="handlePublish">免费发布数据</button> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 页面主体 -->
|
||||
<div class="page-body">
|
||||
<!-- 页面主体 -->
|
||||
<div class="page-body">
|
||||
<!-- 左侧筛选栏 -->
|
||||
<div class="sidebar">
|
||||
<div class="filter-toggle" @click="filterCollapsed = !filterCollapsed">
|
||||
@ -30,19 +27,14 @@
|
||||
</div>
|
||||
<div :class="['sidebar-content', { collapsed: filterCollapsed }]">
|
||||
<div class="sidebar-title">数据类型</div>
|
||||
<div class="filter-list">
|
||||
<div
|
||||
v-for="item in dataTypeList"
|
||||
:key="item.value"
|
||||
class="filter-item"
|
||||
:class="{ active: selectedType === item.value }"
|
||||
@click="handleTypeChange(item.value)"
|
||||
>
|
||||
<span class="check-icon">{{ selectedType === item.value ? '✓' : '' }}</span>
|
||||
{{ item.label }}
|
||||
<div class="filter-list">
|
||||
<div v-for="item in dataTypeList" :key="item.value" class="filter-item"
|
||||
:class="{ active: selectedType === item.value }" @click="handleTypeChange(item.value)">
|
||||
<span class="check-icon">{{ selectedType === item.value ? '✓' : '' }}</span>
|
||||
{{ item.label }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 右侧数据库卡片列表 -->
|
||||
@ -91,6 +83,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<Footer />
|
||||
</div>
|
||||
@ -201,8 +194,11 @@ export default {
|
||||
|
||||
<style lang="less" scoped>
|
||||
.sjsc-page {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: calc(100vh - 64px);
|
||||
background: #f5f5f5;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
// 页面主体
|
||||
@ -307,13 +303,19 @@ export default {
|
||||
position: sticky;
|
||||
// top: 104px;
|
||||
width: 220px;
|
||||
height: fit-content;
|
||||
min-width: 220px;
|
||||
background: #fff;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.sidebar {
|
||||
width: 100%;
|
||||
min-width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.sidebar-content {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
@ -358,6 +358,11 @@ export default {
|
||||
this.page.pageNo = 1;
|
||||
this.searchList();
|
||||
},
|
||||
onPageChange(pageInfo) {
|
||||
this.page.pageNo = pageInfo.current;
|
||||
this.page.pageSize = pageInfo.pageSize;
|
||||
this.searchList();
|
||||
},
|
||||
// 滚动到指定项并高亮
|
||||
scrollToItem(gxUuid) {
|
||||
this.$nextTick(() => {
|
||||
|
||||
@ -5,10 +5,11 @@
|
||||
</div>
|
||||
<div class="news-list">
|
||||
<div
|
||||
v-for="(item, index) in newsList"
|
||||
v-for="(item, index) in displayList"
|
||||
:key="item.id"
|
||||
class="news-item"
|
||||
:style="{ '--delay': `${index * 0.08}s` }"
|
||||
@click="handleClick(item)"
|
||||
>
|
||||
<div class="item-indicator">
|
||||
<div class="date-block">
|
||||
@ -18,8 +19,8 @@
|
||||
<div class="date-line"></div>
|
||||
</div>
|
||||
<div class="item-content">
|
||||
<p class="item-title">{{ item.title }}</p>
|
||||
<p class="item-desc">{{ item.desc || item.content }}</p>
|
||||
<p class="item-title">{{ item.title || item.bt }}</p>
|
||||
<p class="item-desc">{{ item.content || item.nr }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -34,6 +35,7 @@
|
||||
|
||||
<script>
|
||||
import { NotificationIcon, ArrowRightIcon } from 'tdesign-icons-vue';
|
||||
import hydtApi from '@/pages/index/api/hydt';
|
||||
|
||||
export default {
|
||||
name: 'PolicyNews',
|
||||
@ -48,25 +50,50 @@ export default {
|
||||
},
|
||||
newsList: {
|
||||
type: Array,
|
||||
default: () => [
|
||||
{
|
||||
id: 1,
|
||||
title: '"十五五"新图景:增绿降碳 加减之间再造万亿级新机遇',
|
||||
content: '"十五五"规划纲要中提出,加快经济社会发展全面绿色转型。当前,一场增绿降碳的变革正在重塑我们的生产生活方式,持续激发绿色发展动能。',
|
||||
day: '18',
|
||||
month: '2026.04',
|
||||
tag: '官方',
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: '全球最大输送容量海上风电项目进入首个集中施工期',
|
||||
content: '粤西海域,离岸70公里外,水深超50米,一场绿色能源的接力正在加紧进行。全球最大输送容量海上风电项目,现在进入开春后的首个集中施工期。',
|
||||
day: '17',
|
||||
month: '2026.04',
|
||||
tag: '研究',
|
||||
},
|
||||
|
||||
],
|
||||
default: () => [],
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
default: 'gjzc', // gjzc=国家政策, hyzx=行业资讯
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
localNewsList: [],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
displayList() {
|
||||
return this.newsList.length > 0 ? this.newsList : this.localNewsList;
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.fetchNews();
|
||||
},
|
||||
methods: {
|
||||
handleClick(item) {
|
||||
if (item.yyLj) {
|
||||
window.open(item.yyLj, '_blank');
|
||||
}
|
||||
},
|
||||
async fetchNews() {
|
||||
try {
|
||||
const res = await hydtApi.getHydtGroupedList();
|
||||
if (res.data) {
|
||||
const list = res.data[this.type] || [];
|
||||
this.localNewsList = list.slice(0, 2).map((item) => ({
|
||||
id: item.uuid,
|
||||
title: item.bt,
|
||||
content: item.nr,
|
||||
day: item.fbsj ? item.fbsj.substring(8, 10) : '',
|
||||
month: item.fbsj ? item.fbsj.substring(0, 7).replace('-', '.') : '',
|
||||
tag: item.lxMc || '',
|
||||
yyLj: item.yyLj || '',
|
||||
}));
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('获取新闻数据失败', e);
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
@ -224,6 +251,7 @@ export default {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
transition: color 0.25s ease;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.item-desc {
|
||||
|
||||
@ -355,12 +355,12 @@ export default {
|
||||
],
|
||||
buttonLinks: {
|
||||
// 碳数字身份证
|
||||
'办证指南': 'https://www.kdocs.cn/l/cr5aavNI1Brn',
|
||||
'办证指南': '/mdviewer?file=docs%2Fcarbon-guide.md',
|
||||
'碳证查询': 'https://ctn-web-pre.lingshu.net/trustedCarbonQuery/list?type=carbon-query',
|
||||
'碳证核验': 'https://ctn-web-pre.lingshu.net/carbon-verify',
|
||||
'跨境互通': '',
|
||||
// 国家可信碳链
|
||||
'上链指南': 'https://www.kdocs.cn/l/cr5aavNI1Brn',
|
||||
'上链指南': '/mdviewer?file=docs%2Fcarbon-guide.md',
|
||||
'上链标准': '',
|
||||
'上链工具': '',
|
||||
'碳证中心': 'https://ctn-web-pre.lingshu.net/carbon-index',
|
||||
|
||||
@ -117,7 +117,7 @@ console.log('Hello World');
|
||||
</script>
|
||||
<style scoped>
|
||||
.md-viewer {
|
||||
max-width: 820px;
|
||||
max-width: 80vw;
|
||||
margin: 30px auto;
|
||||
padding: 50px 60px;
|
||||
background: linear-gradient(135deg, #ffffff 0%, #fafbfc 100%);
|
||||
@ -137,7 +137,7 @@ console.log('Hello World');
|
||||
margin: 0 0 25px;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 3px solid transparent;
|
||||
border-image: linear-gradient(90deg, #667eea, #764ba2) 1;
|
||||
border-image: linear-gradient(90deg, #00B96B, #009857) 1;
|
||||
color: #1a1a2e;
|
||||
text-shadow: 0 1px 2px rgba(0,0,0,0.05);
|
||||
}
|
||||
@ -148,9 +148,9 @@ console.log('Hello World');
|
||||
margin: 35px 0 18px;
|
||||
padding: 10px 0 10px 16px;
|
||||
border-left: 4px solid;
|
||||
border-image: linear-gradient(180deg, #667eea, #764ba2) 1;
|
||||
border-image: linear-gradient(180deg, #00B96B, #009857) 1;
|
||||
color: #1a1a2e;
|
||||
background: linear-gradient(90deg, rgba(102,126,234,0.08) 0%, transparent 100%);
|
||||
background: linear-gradient(90deg, rgba(0,185,107,0.08) 0%, transparent 100%);
|
||||
}
|
||||
|
||||
.md-viewer h3 {
|
||||
@ -159,7 +159,7 @@ console.log('Hello World');
|
||||
margin: 28px 0 14px;
|
||||
color: #2d3748;
|
||||
padding-left: 12px;
|
||||
border-left: 3px solid #667eea;
|
||||
border-left: 3px solid #00B96B;
|
||||
}
|
||||
|
||||
.md-viewer h4 {
|
||||
@ -191,15 +191,15 @@ console.log('Hello World');
|
||||
top: 12px;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
background: linear-gradient(135deg, #667eea, #764ba2);
|
||||
background: linear-gradient(135deg, #00B96B, #009857);
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.md-viewer blockquote {
|
||||
margin: 20px 0;
|
||||
padding: 16px 24px;
|
||||
background: linear-gradient(135deg, rgba(102,126,234,0.08) 0%, rgba(118,75,162,0.08) 100%);
|
||||
border-left: 4px solid #667eea;
|
||||
background: linear-gradient(135deg, rgba(0,185,107,0.08) 0%, rgba(0,152,87,0.08) 100%);
|
||||
border-left: 4px solid #00B96B;
|
||||
border-radius: 0 12px 12px 0;
|
||||
color: #4a5568;
|
||||
font-style: italic;
|
||||
@ -211,27 +211,28 @@ console.log('Hello World');
|
||||
|
||||
.md-viewer code {
|
||||
padding: 3px 8px;
|
||||
background: linear-gradient(135deg, #f7fafc 0%, #edf2f7 100%);
|
||||
background: linear-gradient(135deg, #E6F8F0 0%, #d4f5e9 100%);
|
||||
border-radius: 6px;
|
||||
font-family: 'Fira Code', 'SFMono-Regular', Consolas, monospace;
|
||||
font-size: 0.88em;
|
||||
color: #d53f8c;
|
||||
border: 1px solid #e2e8f0;
|
||||
color: #00B96B;
|
||||
border: 1px solid #b8e6d4;
|
||||
}
|
||||
|
||||
.md-viewer pre {
|
||||
margin: 20px 0;
|
||||
padding: 20px 24px;
|
||||
background: linear-gradient(135deg, #1e1e1e 0%, #2d2d30 100%);
|
||||
background: linear-gradient(135deg, #1a2e1a 0%, #0d1f0d 100%);
|
||||
border-radius: 12px;
|
||||
overflow-x: auto;
|
||||
box-shadow: inset 0 2px 8px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.15);
|
||||
border: 1px solid #00B96B33;
|
||||
}
|
||||
|
||||
.md-viewer pre code {
|
||||
padding: 0;
|
||||
background: none;
|
||||
color: #d4d4d4;
|
||||
color: #7dd9a3;
|
||||
font-size: 0.85em;
|
||||
line-height: 1.7;
|
||||
border: none;
|
||||
@ -239,16 +240,16 @@ console.log('Hello World');
|
||||
}
|
||||
|
||||
.md-viewer a {
|
||||
color: #667eea;
|
||||
color: #00B96B;
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
transition: all 0.2s;
|
||||
border-bottom: 1px dashed #667eea;
|
||||
border-bottom: 1px dashed #00B96B;
|
||||
}
|
||||
|
||||
.md-viewer a:hover {
|
||||
color: #764ba2;
|
||||
border-bottom: 1px solid #764ba2;
|
||||
color: #009857;
|
||||
border-bottom: 1px solid #009857;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@ -295,7 +296,7 @@ console.log('Hello World');
|
||||
|
||||
.md-viewer input[type="checkbox"] {
|
||||
margin-right: 8px;
|
||||
accent-color: #667eea;
|
||||
accent-color: #00B96B;
|
||||
}
|
||||
|
||||
.md-viewer strong {
|
||||
|
||||
@ -101,35 +101,40 @@
|
||||
<p>欧盟对进口高碳产品按隐含排放征收碳关税,2026 年起正式实施</p>
|
||||
</div>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<div class="content-wrapper2">
|
||||
<div class="text-section">
|
||||
<div class="text-section-title">政策解读</div>
|
||||
<ul class="info-list">
|
||||
<li>分行业(钢铁、水泥等)解读申报要求;运营后台支持富文本维护</li>
|
||||
<li>成本随欧盟碳价波动,直接抬升高碳进口门槛;合规与透明度成为准入关键。</li>
|
||||
<li>与欧盟 ETS、新电池法案、能效与关键原材料政策联动,形成系统约束。</li>
|
||||
<li>国际扩散加速:英国拟 2027 年实施;美国虽联邦碳定价未定,但多提案推进,中长期风险上升。</li>
|
||||
<li>
|
||||
欧盟 CBAM 已自 2023-10-01 进入过渡期,2026-01-01
|
||||
起对水泥、钢铁、铝、化肥、电力等产品按实际隐含碳排放征收调节费,并与欧盟 ETS
|
||||
免费配额退出同步实施,旨在防止碳泄漏、巩固本土减排成效。
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="service-section">
|
||||
<div class="text-section-title">CBAM试算</div>
|
||||
<div style="height: calc(100% - 80px)">
|
||||
<div class="service-card card1">
|
||||
<div class="card-item1">
|
||||
<h4>CBAM 申报辅助系统</h4>
|
||||
<p>材料整理与填报指导</p>
|
||||
</div>
|
||||
<div class="text-section-content">
|
||||
<div class="content-item1">
|
||||
<ul class="info-list">
|
||||
<li>分行业(钢铁、水泥等)解读申报要求;运营后台支持富文本维护</li>
|
||||
<li>成本随欧盟碳价波动,直接抬升高碳进口门槛;合规与透明度成为准入关键。</li>
|
||||
<li>与欧盟 ETS、新电池法案、能效与关键原材料政策联动,形成系统约束。</li>
|
||||
<li>国际扩散加速:英国拟 2027 年实施;美国虽联邦碳定价未定,但多提案推进,中长期风险上升。</li>
|
||||
<li>
|
||||
欧盟 CBAM 已自 2023-10-01 进入过渡期,2026-01-01
|
||||
起对水泥、钢铁、铝、化肥、电力等产品按实际隐含碳排放征收调节费,并与欧盟 ETS
|
||||
免费配额退出同步实施,旨在防止碳泄漏、巩固本土减排成效。
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="service-card card2">
|
||||
<div class="card-item2">
|
||||
<h4>CBAM 碳成本测算系统</h4>
|
||||
<p>测算进口碳成本</p>
|
||||
<div class="content-item2">
|
||||
<div class="service-section-dcfa">
|
||||
<div class="text-section-title-dcfa">CBAM试算</div>
|
||||
<div style="height: calc(100% - 50px)">
|
||||
<div class="service-card card1">
|
||||
<div class="card-item1">
|
||||
<h4>CBAM 申报辅助系统</h4>
|
||||
<p>材料整理与填报指导</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="service-card card2">
|
||||
<div class="card-item2">
|
||||
<h4>CBAM 碳成本测算系统</h4>
|
||||
<p>测算进口碳成本</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -146,59 +151,70 @@
|
||||
<p>从化石油基向 LNG、绿甲醇、绿氨等多元低碳方向加速转型</p>
|
||||
</div>
|
||||
|
||||
<div class="content-wrapper content-wrapper-dtzc">
|
||||
<div class="text-section-dtzc">
|
||||
<div class="text-section-title-dtzc">低碳政策</div>
|
||||
<ul class="info-list">
|
||||
<li>国际海事组织(IMO)燃料碳排放要求与合规路径简介</li>
|
||||
<li>
|
||||
数据与报告:建立年度 WTW 碳强度台账,覆盖燃料采购、消耗与排放;欧盟需于每年 1 月 31
|
||||
日前提交并第三方核查。国际海事组织(IMO)燃料碳排放要求与合规路径简介
|
||||
</li>
|
||||
<li>
|
||||
技术与燃料路径:优先 OPS、可再生 / 低碳燃料(先进生物燃料、RFNBOs)与能效提升;欧盟允许合规池与
|
||||
“技术中性” 合规。
|
||||
</li>
|
||||
<li>
|
||||
数据与报告:建立年度 WTW 碳强度台账,覆盖燃料采购、消耗与排放;欧盟需于每年 1 月 31
|
||||
日前提交并第三方核查。国际海事组织(IMO)燃料碳排放要求与合规路径简介
|
||||
</li>
|
||||
<li>
|
||||
技术与燃料路径:优先 OPS、可再生 / 低碳燃料(先进生物燃料、RFNBOs)与能效提升;欧盟允许合规池与
|
||||
“技术中性” 合规。
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="service-section">
|
||||
<div class="text-section-title">申请服务</div>
|
||||
<div style="height: calc(100% - 50px)">
|
||||
<div class="service-card card1">
|
||||
<div class="card-item1">
|
||||
<h4>系统占位</h4>
|
||||
<p>字段占位字段占位字段占位</p>
|
||||
</div>
|
||||
<div class="content-wrapper2">
|
||||
<div class="text-section">
|
||||
<div class="text-section-title">低碳政策</div>
|
||||
<div class="text-section-content">
|
||||
<div class="content-item1">
|
||||
<ul class="info-list">
|
||||
<li>国际海事组织(IMO)燃料碳排放要求与合规路径简介</li>
|
||||
<li>
|
||||
数据与报告:建立年度 WTW 碳强度台账,覆盖燃料采购、消耗与排放;欧盟需于每年 1 月 31
|
||||
日前提交并第三方核查。国际海事组织(IMO)燃料碳排放要求与合规路径简介
|
||||
</li>
|
||||
<li>
|
||||
技术与燃料路径:优先 OPS、可再生 / 低碳燃料(先进生物燃料、RFNBOs)与能效提升;欧盟允许合规池与
|
||||
"技术中性" 合规。
|
||||
</li>
|
||||
<li>
|
||||
数据与报告:建立年度 WTW 碳强度台账,覆盖燃料采购、消耗与排放;欧盟需于每年 1 月 31
|
||||
日前提交并第三方核查。国际海事组织(IMO)燃料碳排放要求与合规路径简介
|
||||
</li>
|
||||
<li>
|
||||
技术与燃料路径:优先 OPS、可再生 / 低碳燃料(先进生物燃料、RFNBOs)与能效提升;欧盟允许合规池与
|
||||
"技术中性" 合规。
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="service-card card2">
|
||||
<div class="card-item2">
|
||||
<h4>系统占位</h4>
|
||||
<p>字段占位字段占位字段占位</p>
|
||||
<div class="content-item2">
|
||||
<div class="service-section-dcfa">
|
||||
<div class="text-section-title-dcfa">申请服务</div>
|
||||
<div style="height: calc(100% - 50px)">
|
||||
<div class="service-card card1">
|
||||
<div class="card-item1">
|
||||
<h4>系统占位</h4>
|
||||
<p>字段占位字段占位字段占位</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="service-card card2">
|
||||
<div class="card-item2">
|
||||
<h4>系统占位</h4>
|
||||
<p>字段占位字段占位字段占位</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<p class="coming-soon">敬请期待</p>
|
||||
<!-- <p class="coming-soon">敬请期待</p> -->
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<Footer />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Footer from '@/pages/index/components/footer/index.vue'
|
||||
export default {
|
||||
name: 'CompliancePortal',
|
||||
components: {
|
||||
Footer,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeTab: '合规指引',
|
||||
@ -424,9 +440,90 @@ body {
|
||||
.banner2 {
|
||||
padding: 30px 0;
|
||||
background: #f5f5f5;
|
||||
.text-section {
|
||||
background: #f9feff;
|
||||
border: 1px solid rgba(196, 234, 241, 1);
|
||||
border-radius: 10px;
|
||||
box-shadow: 0 6px 16px 0 rgba(76, 92, 125, 0.1);
|
||||
.text-section-title {
|
||||
height: 80px;
|
||||
padding-left: 20px;
|
||||
font-size: 28px;
|
||||
font-weight: 600;
|
||||
line-height: 80px;
|
||||
letter-spacing: 0;
|
||||
color: #0d565c;
|
||||
background: #effdfe;
|
||||
border-top-right-radius: 10px;
|
||||
border-top-left-radius: 10px;
|
||||
}
|
||||
.text-section-content {
|
||||
display: grid;
|
||||
padding: 10px 20px 20px;
|
||||
background: #fff;
|
||||
grid-template-columns: 2fr 1fr;
|
||||
gap: 20px;
|
||||
.content-item1 {
|
||||
background: #f7f8fa;
|
||||
border-radius: 8px;
|
||||
grid-column: 1;
|
||||
}
|
||||
.content-item2 {
|
||||
grid-column: 2;
|
||||
.service-section-dcfa {
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
border-left: 1px #f7f8fa solid;
|
||||
.text-section-title-dcfa {
|
||||
height: 50px;
|
||||
padding-left: 20px;
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0;
|
||||
color: #000;
|
||||
}
|
||||
.card1 {
|
||||
padding: 0 20px 10px;
|
||||
}
|
||||
.card2 {
|
||||
padding: 10px 20px 0;
|
||||
}
|
||||
.service-card {
|
||||
height: 50%;
|
||||
h4 {
|
||||
font-size: 22px;
|
||||
color: #1a1b24;
|
||||
}
|
||||
p {
|
||||
font-size: 16px;
|
||||
color: #666;
|
||||
}
|
||||
.card-item1 {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
padding: 20px;
|
||||
background-image: linear-gradient(180deg, #fffaf6 0%, #fff0e3 100%);
|
||||
border-radius: 6px;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.card-item2 {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
padding: 20px;
|
||||
background-image: linear-gradient(180deg, #ebfcff 0%, #daf9fc 100%);
|
||||
border-radius: 6px;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.banner3 {
|
||||
padding: 50px 0 200px;
|
||||
// padding: 50px 0 200px;
|
||||
background: url(../../assets/qych/banner1.png);
|
||||
background-size: contain;
|
||||
}
|
||||
@ -473,7 +570,7 @@ body {
|
||||
.content-wrapper-dtzc {
|
||||
gap: 0;
|
||||
}
|
||||
.content-wrapper2 {
|
||||
#section0 .content-wrapper2 {
|
||||
.text-section {
|
||||
background: #f9feff;
|
||||
border: none;
|
||||
@ -488,7 +585,6 @@ body {
|
||||
letter-spacing: 0;
|
||||
color: #1a1b24;
|
||||
background: linear-gradient(to bottom, #f1efff, #f0efff, #fff);
|
||||
// background-image: linear-gradient(180deg, #F0EFFF 100%, #F0EFFF 0%);
|
||||
border-top-right-radius: 10px;
|
||||
border-top-left-radius: 10px;
|
||||
}
|
||||
@ -560,6 +656,92 @@ body {
|
||||
}
|
||||
}
|
||||
}
|
||||
#section1 .content-wrapper2 {
|
||||
.text-section {
|
||||
background: #f9feff;
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
box-shadow: none;
|
||||
.text-section-title {
|
||||
height: 80px;
|
||||
padding-left: 20px;
|
||||
font-size: 28px;
|
||||
font-weight: 600;
|
||||
line-height: 80px;
|
||||
letter-spacing: 0;
|
||||
color: #1a1b24;
|
||||
background: linear-gradient(to bottom, #effdfe, #fff);
|
||||
border-top-right-radius: 10px;
|
||||
border-top-left-radius: 10px;
|
||||
}
|
||||
.text-section-content {
|
||||
display: grid;
|
||||
padding: 10px 20px 20px;
|
||||
background: #fff;
|
||||
grid-template-columns: 2fr 1fr;
|
||||
gap: 20px;
|
||||
.content-item1 {
|
||||
background: #f7f8fa;
|
||||
border-radius: 8px;
|
||||
grid-column: 1;
|
||||
}
|
||||
.content-item2 {
|
||||
grid-column: 2;
|
||||
.service-section-dcfa {
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
|
||||
border-left: 1px #f7f8fa solid;
|
||||
.text-section-title-dcfa {
|
||||
height: 50px;
|
||||
padding-left: 20px;
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
// line-height: 80px;
|
||||
letter-spacing: 0;
|
||||
color: #000;
|
||||
}
|
||||
.card1 {
|
||||
padding: 0 20px 10px;
|
||||
}
|
||||
.card2 {
|
||||
padding: 10px 20px 0;
|
||||
}
|
||||
.service-card {
|
||||
height: 50%;
|
||||
|
||||
h4 {
|
||||
font-size: 22px;
|
||||
color: #1a1b24;
|
||||
}
|
||||
p {
|
||||
font-size: 16px;
|
||||
color: #666;
|
||||
}
|
||||
.card-item1 {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
padding: 20px;
|
||||
background-image: linear-gradient(180deg, #fffaf6 0%, #fff0e3 100%);
|
||||
border-radius: 6px;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.card-item2 {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
padding: 20px;
|
||||
background-image: linear-gradient(180deg, #ebfcff 0%, #daf9fc 100%);
|
||||
border-radius: 6px;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.banner3 {
|
||||
padding-top: 30px;
|
||||
.radius-wrap {
|
||||
@ -567,43 +749,90 @@ body {
|
||||
margin-bottom: -25px;
|
||||
background: linear-gradient(to bottom, #ebfaed, rgba(217, 245, 225, 0));
|
||||
border-top: 1px solid #b9dabb;
|
||||
border-top-right-radius: 50% 70%; /* 右上角:水平50% + 垂直30% */
|
||||
border-bottom-right-radius: 0; /* 右下角直角 */
|
||||
border-bottom-left-radius: 0; /* 左下角直角 */
|
||||
// border-radius: 50% 50% 0 0 / 70% 70% 0 0;
|
||||
border-top-left-radius: 50% 70%; /* 左上角:水平50% + 垂直30% */
|
||||
border-top-right-radius: 50% 70%;
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
border-top-left-radius: 50% 70%;
|
||||
}
|
||||
.content-wrapper {
|
||||
background: url(../../assets/qych/dtcard.png);
|
||||
background-size: cover;
|
||||
}
|
||||
.text-section-title-dtzc {
|
||||
height: 45px;
|
||||
padding-left: 20px;
|
||||
font-size: 28px;
|
||||
font-weight: 600;
|
||||
line-height: 80px;
|
||||
letter-spacing: 0;
|
||||
color: #000;
|
||||
}
|
||||
.text-section-dtzc {
|
||||
}
|
||||
|
||||
.service-section {
|
||||
background: #fff;
|
||||
border: 1px solid rgba(185, 218, 187, 1);
|
||||
.text-section {
|
||||
background: #f9feff;
|
||||
border: 1px solid rgba(196, 234, 241, 1);
|
||||
border-radius: 10px;
|
||||
box-shadow: none;
|
||||
.text-section-title {
|
||||
height: 50px;
|
||||
font-size: 24px;
|
||||
height: 80px;
|
||||
padding-left: 20px;
|
||||
font-size: 28px;
|
||||
font-weight: 600;
|
||||
line-height: 80px;
|
||||
letter-spacing: 0;
|
||||
color: #1a1b24;
|
||||
background: linear-gradient(to bottom, #E0F2E1, #fff);
|
||||
border-top-right-radius: 10px;
|
||||
border-top-left-radius: 10px;
|
||||
}
|
||||
.text-section-content {
|
||||
display: grid;
|
||||
padding: 10px 20px 20px;
|
||||
background: #fff;
|
||||
}
|
||||
.card-item1 {
|
||||
background-image: linear-gradient(180deg, #f0f9ff 0%, #e0efff 100%);
|
||||
border-radius: 6px;
|
||||
}
|
||||
.card-item2 {
|
||||
background-image: linear-gradient(180deg, #ebfcff 0%, #daf9fc 100%);
|
||||
border-radius: 6px;
|
||||
grid-template-columns: 2fr 1fr;
|
||||
gap: 20px;
|
||||
.content-item1 {
|
||||
background: #f7f8fa;
|
||||
border-radius: 8px;
|
||||
grid-column: 1;
|
||||
}
|
||||
.content-item2 {
|
||||
grid-column: 2;
|
||||
.service-section-dcfa {
|
||||
height: 100%;
|
||||
background: #fff;
|
||||
border-left: 1px #f7f8fa solid;
|
||||
.text-section-title-dcfa {
|
||||
height: 50px;
|
||||
padding-left: 20px;
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0;
|
||||
color: #000;
|
||||
}
|
||||
.card1 {
|
||||
padding: 0 20px 10px;
|
||||
}
|
||||
.card2 {
|
||||
padding: 10px 20px 0;
|
||||
}
|
||||
.service-card {
|
||||
height: 50%;
|
||||
h4 {
|
||||
font-size: 22px;
|
||||
color: #1a1b24;
|
||||
}
|
||||
p {
|
||||
font-size: 16px;
|
||||
color: #666;
|
||||
}
|
||||
.card-item1 {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
padding: 20px;
|
||||
background-image: linear-gradient(180deg, #f0f9ff 0%, #e0efff 100%);
|
||||
border-radius: 6px;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
}
|
||||
.card-item2 {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
padding: 20px;
|
||||
background-image: linear-gradient(180deg, #ebfcff 0%, #daf9fc 100%);
|
||||
border-radius: 6px;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,31 +78,74 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-page" v-show="pagetab == 3">
|
||||
<div class="mind-page">
|
||||
<t-row :gutter="12" class="form-line">
|
||||
<t-col :span="4">
|
||||
<div class="lable-box">企业名称</div>
|
||||
</t-col>
|
||||
<t-col :span="8">
|
||||
<div class="value-box">{{ yhxx.qymc }}</div>
|
||||
</t-col>
|
||||
</t-row>
|
||||
<t-row :gutter="12" class="form-line">
|
||||
<t-col :span="4">
|
||||
<div class="lable-box">统一社会信用代码</div>
|
||||
</t-col>
|
||||
<t-col :span="8">
|
||||
<div class="value-box">{{ yhxx.nsrsbh }}</div>
|
||||
</t-col>
|
||||
</t-row>
|
||||
<t-row :gutter="12" class="form-line boderbottom">
|
||||
<t-col :span="4">
|
||||
<div class="lable-box">手机号码</div>
|
||||
</t-col>
|
||||
<t-col :span="8">
|
||||
<div class="value-box">{{ yhxx.sjhm1 }}</div>
|
||||
</t-col>
|
||||
</t-row>
|
||||
<div class="credential-card">
|
||||
<!-- 卡片头部 -->
|
||||
<div class="credential-header">
|
||||
<div class="credential-icon">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
||||
<path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="credential-title">
|
||||
<span class="title-main">企业实名认证信息</span>
|
||||
<span class="title-sub">Enterprise Identity Verification</span>
|
||||
</div>
|
||||
<div class="credential-badge">
|
||||
<svg viewBox="0 0 24 24" fill="currentColor">
|
||||
<path d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"/>
|
||||
</svg>
|
||||
<span>已认证</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 卡片内容 -->
|
||||
<div class="credential-body">
|
||||
<div class="credential-item">
|
||||
<div class="item-icon">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
||||
<path d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="item-content">
|
||||
<div class="item-label">企业名称</div>
|
||||
<div class="item-value">{{ yhxx.qymc }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="credential-divider"></div>
|
||||
|
||||
<div class="credential-item">
|
||||
<div class="item-icon">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
||||
<path d="M10 6H5a2 2 0 00-2 2v9a2 2 0 002 2h14a2 2 0 002-2V8a2 2 0 00-2-2h-5m-4 0V5a2 2 0 114 0v1m-4 0a2 2 0 104 0m-5 8a2 2 0 100-4 2 2 0 000 4zm10 0a2 2 0 100-4 2 2 0 000 4z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="item-content">
|
||||
<div class="item-label">统一社会信用代码</div>
|
||||
<div class="item-value credit-code">{{ yhxx.nsrsbh }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="credential-divider"></div>
|
||||
|
||||
<div class="credential-item">
|
||||
<div class="item-icon">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
||||
<path d="M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="item-content">
|
||||
<div class="item-label">手机号码</div>
|
||||
<div class="item-value">{{ yhxx.sjhm1 }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 卡片底部装饰 -->
|
||||
<div class="credential-footer">
|
||||
<div class="footer-decoration"></div>
|
||||
<div class="footer-text">碳信网 · 企业实名认证</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 底部信息区 -->
|
||||
@ -500,6 +543,195 @@ export default {
|
||||
margin: auto;
|
||||
margin-top: 50px;
|
||||
}
|
||||
|
||||
/* 企业资质卡片样式 */
|
||||
.credential-card {
|
||||
/* width: 520px; */
|
||||
margin: 0 auto;
|
||||
background: linear-gradient(135deg, #fff 0%, #f8fafb 100%);
|
||||
border-radius: 16px;
|
||||
box-shadow:
|
||||
0 4px 24px rgba(0, 0, 0, 0.06),
|
||||
0 1px 2px rgba(0, 0, 0, 0.04),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.8);
|
||||
overflow: hidden;
|
||||
border: 1px solid rgba(0, 0, 0, 0.04);
|
||||
position: relative;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 4px;
|
||||
background: linear-gradient(90deg, #2e7d32 0%, #4caf50 50%, #2e7d32 100%);
|
||||
}
|
||||
}
|
||||
|
||||
.credential-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 24px 28px 20px;
|
||||
background: linear-gradient(180deg, rgba(46, 125, 50, 0.03) 0%, transparent 100%);
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.04);
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.credential-icon {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
background: linear-gradient(135deg, #2e7d32 0%, #4caf50 100%);
|
||||
border-radius: 12px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0 4px 12px rgba(46, 125, 50, 0.25);
|
||||
flex-shrink: 0;
|
||||
|
||||
svg {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.credential-title {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2px;
|
||||
}
|
||||
|
||||
.title-main {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #1a2a3a;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
|
||||
.title-sub {
|
||||
font-size: 11px;
|
||||
color: #8a9aaa;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
font-family: 'Arial', sans-serif;
|
||||
}
|
||||
|
||||
.credential-badge {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 6px 12px;
|
||||
background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
|
||||
border-radius: 20px;
|
||||
border: 1px solid #81c784;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
color: #2e7d32;
|
||||
|
||||
svg {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
color: #2e7d32;
|
||||
}
|
||||
}
|
||||
|
||||
.credential-body {
|
||||
padding: 8px 28px 24px;
|
||||
}
|
||||
|
||||
.credential-item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
padding: 20px 0;
|
||||
gap: 16px;
|
||||
transition: all 0.2s ease;
|
||||
|
||||
&:hover {
|
||||
.item-icon {
|
||||
transform: scale(1.05);
|
||||
box-shadow: 0 4px 16px rgba(46, 125, 50, 0.3);
|
||||
}
|
||||
.item-value {
|
||||
color: #2e7d32;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.item-icon {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%);
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
transition: all 0.25s ease;
|
||||
border: 1px solid rgba(46, 125, 50, 0.08);
|
||||
|
||||
svg {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
color: #4caf50;
|
||||
}
|
||||
}
|
||||
|
||||
.item-content {
|
||||
flex: 1;
|
||||
padding-top: 4px;
|
||||
}
|
||||
|
||||
.item-label {
|
||||
font-size: 12px;
|
||||
color: #8a9aaa;
|
||||
margin-bottom: 6px;
|
||||
font-weight: 500;
|
||||
letter-spacing: 0.3px;
|
||||
}
|
||||
|
||||
.item-value {
|
||||
font-size: 16px;
|
||||
color: #1a2a3a;
|
||||
font-weight: 500;
|
||||
letter-spacing: 0.2px;
|
||||
transition: color 0.2s ease;
|
||||
}
|
||||
|
||||
.credit-code {
|
||||
font-family: 'SF Mono', 'Consolas', monospace;
|
||||
letter-spacing: 1.5px;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.credential-divider {
|
||||
height: 1px;
|
||||
background: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.06) 20%, rgba(0, 0, 0, 0.06) 80%, transparent 100%);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.credential-footer {
|
||||
padding: 16px 28px 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
background: linear-gradient(180deg, transparent 0%, rgba(46, 125, 50, 0.02) 100%);
|
||||
}
|
||||
|
||||
.footer-decoration {
|
||||
flex: 1;
|
||||
height: 2px;
|
||||
background: linear-gradient(90deg, #2e7d32 0%, #4caf50 50%, transparent 100%);
|
||||
border-radius: 1px;
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
.footer-text {
|
||||
font-size: 11px;
|
||||
color: #8a9aaa;
|
||||
letter-spacing: 2px;
|
||||
}
|
||||
/deep/ .t-input--suffix {
|
||||
width: 130px;
|
||||
}
|
||||
|
||||
@ -180,9 +180,11 @@ export default {
|
||||
{ label: '碳证中心', value: 'carbon_cert' },
|
||||
{ label: '服务中心', value: 'service' },
|
||||
{ label: '行业专题', value: 'news' },
|
||||
{ label: '国家政策', value: 'policy' },
|
||||
],
|
||||
categoryTabs: [
|
||||
{ label: '全部', value: 'all' },
|
||||
{ label: '国家政策', value: 'policy' },
|
||||
{ label: '行业专题', value: 'news' },
|
||||
{ label: '服务中心', value: 'service' },
|
||||
],
|
||||
@ -342,6 +344,8 @@ export default {
|
||||
return { theme: 'primary', variant: 'light' };
|
||||
} else if (type === 'service') {
|
||||
return { theme: 'success', variant: 'light' };
|
||||
} else if (type === 'policy') {
|
||||
return { theme: 'warning', variant: 'light' };
|
||||
}
|
||||
return { theme: 'default', variant: 'light' };
|
||||
},
|
||||
@ -384,6 +388,7 @@ export default {
|
||||
}
|
||||
|
||||
.hero-bg-overlay {
|
||||
opacity: 0.5;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
||||
@ -37,7 +37,7 @@ export default {
|
||||
hyztList: [
|
||||
{
|
||||
title: '钢铁行业',
|
||||
href: '#',
|
||||
href: 'https://www.greenscs.com/',
|
||||
category: ['碳动态', '碳数据', '服务入口'],
|
||||
desc: '行业碳动态、数据与服务对接',
|
||||
bgImg: '1.png',
|
||||
@ -46,7 +46,7 @@ export default {
|
||||
},
|
||||
{
|
||||
title: '装备制造',
|
||||
href: '#',
|
||||
href: 'https://ssc.shanghai-electric.com/',
|
||||
category: ['碳动态', '碳数据', '服务入口'],
|
||||
desc: '行业碳动态、数据与服务对接',
|
||||
bgImg: '2.png',
|
||||
|
||||
@ -42,45 +42,45 @@ INSERT INTO `txw_gxzx_sjsc_sjlbb` (
|
||||
-- 1. 上海市绿色低碳服务机构
|
||||
('sjlbb_001', 'sjsc_001', 'public', '上海市绿色低碳服务机构',
|
||||
'该数据资源包含了上海市绿色低碳服务机构信息,数据来源于上海市经信委门户网站,主要包含机构名称、服务范围、联系人等字段信息。',
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 74, 0, 0, NULL, NULL, NULL, NULL, NULL, '3', NULL, NULL, NULL, '2025-09-22', 'system', NULL, NULL),
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 74, 0, 0, NULL, NULL, NULL, NULL, 'hudabin@189.cn', '3', NULL, NULL, NULL, '2025-09-22', 'system', NULL, NULL),
|
||||
|
||||
-- 2. 上海市绿色低碳技术产品名单
|
||||
('sjlbb_002', 'sjsc_001', 'public', '上海市绿色低碳技术产品名单',
|
||||
'该数据资源包含了上海市绿色低碳技术产品名单信息,数据来源于上海市经信委门户网站,主要包含企业名称、绿色低碳技术产品等字段信息。',
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 35, 0, 0, NULL, NULL, NULL, NULL, NULL, '3', NULL, NULL, NULL, '2025-09-22', 'system', NULL, NULL),
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 35, 0, 0, NULL, NULL, NULL, NULL, 'hudabin@189.cn', '3', NULL, NULL, NULL, '2025-09-22', 'system', NULL, NULL),
|
||||
|
||||
-- 3. 上海市零碳创建标杆企业名单
|
||||
('sjlbb_003', 'sjsc_001', 'public', '上海市零碳创建标杆企业名单',
|
||||
'该数据资源包含了上海市零碳创建标杆企业名单信息,数据来源于上海市经信委门户网站,主要包含企业名称、类型等字段信息。',
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 12, 0, 0, NULL, NULL, NULL, NULL, NULL, '3', NULL, NULL, NULL, '2025-09-22', 'system', NULL, NULL),
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 12, 0, 0, NULL, NULL, NULL, NULL, 'hudabin@189.cn', '3', NULL, NULL, NULL, '2025-09-22', 'system', NULL, NULL),
|
||||
|
||||
-- 4. 上海市工业通信业碳管理试点名单
|
||||
('sjlbb_004', 'sjsc_001', 'public', '上海市工业通信业碳管理试点名单',
|
||||
'该数据资源包含了上海市工业通信业碳管理试点名单信息,数据来源于上海市经信委门户网站,主要包含企业、试点名称、申报领域等字段信息。',
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 26, 0, 0, NULL, NULL, NULL, NULL, NULL, '3', NULL, NULL, NULL, '2025-09-22', 'system', NULL, NULL),
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 26, 0, 0, NULL, NULL, NULL, NULL, 'hudabin@189.cn', '3', NULL, NULL, NULL, '2025-09-22', 'system', NULL, NULL),
|
||||
|
||||
-- 5. 资源环境效率
|
||||
('sjlbb_005', 'sjsc_001', 'public', '资源环境效率',
|
||||
'资源环境效率的相关信息,包含GDP碳排放量、单位生产总值能耗等',
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 20, 0, 0, NULL, NULL, NULL, NULL, NULL, '3', NULL, NULL, NULL, '2026-03-15', 'system', NULL, NULL),
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 20, 0, 0, NULL, NULL, NULL, NULL, 'hudabin@189.cn', '3', NULL, NULL, NULL, '2026-03-15', 'system', NULL, NULL),
|
||||
|
||||
-- 6. 公共机构绿色低碳发展典型案例
|
||||
('sjlbb_006', 'sjsc_001', 'public', '公共机构绿色低碳发展典型案例',
|
||||
'2023-2024年度全国公共机构绿色低碳发展典型案例的名单,主要包含案例名称、编写单位、方向等信息',
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 10, 0, 0, NULL, NULL, NULL, NULL, NULL, '3', NULL, NULL, NULL, '2025-09-22', 'system', NULL, NULL),
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, 10, 0, 0, NULL, NULL, NULL, NULL, 'hudabin@189.cn', '3', NULL, NULL, NULL, '2025-09-22', 'system', NULL, NULL),
|
||||
|
||||
-- 7. 碳汇监测告警信息
|
||||
('sjlbb_007', 'sjsc_001', 'public', '碳汇监测告警信息',
|
||||
'碳汇数据告警记录',
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, '3', NULL, NULL, NULL, '2026-03-28', 'system', NULL, NULL),
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, 'hudabin@189.cn', '3', NULL, NULL, NULL, '2026-03-28', 'system', NULL, NULL),
|
||||
|
||||
-- 8. 碳汇监测信息
|
||||
('sjlbb_008', 'sjsc_001', 'public', '碳汇监测信息',
|
||||
'对碳汇基础数据采集信息记录',
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, '3', NULL, NULL, NULL, '2026-03-28', 'system', NULL, NULL),
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, 'hudabin@189.cn', '3', NULL, NULL, NULL, '2026-03-28', 'system', NULL, NULL),
|
||||
|
||||
-- 9. 碳汇监测指标评分
|
||||
('sjlbb_009', 'sjsc_001', 'public', '碳汇监测指标评分',
|
||||
'对碳汇指标评分信息记录',
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, '3', NULL, NULL, NULL, '2026-03-28', 'system', NULL, NULL);
|
||||
'公共数据', 0, '每年', NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, 'hudabin@189.cn', '3', NULL, NULL, NULL, '2026-03-28', 'system', NULL, NULL);
|
||||
|
||||
@ -14,7 +14,7 @@ public class SearchReqVO {
|
||||
@Length(max = 50, message = "关键词不能超过50个字符")
|
||||
private String keyword;
|
||||
|
||||
@Schema(description = "分类类型: all, carbon_cert, service, news")
|
||||
@Schema(description = "分类类型: all, carbon_cert, service, news, policy")
|
||||
private String categoryType = "all";
|
||||
|
||||
@Schema(description = "页码")
|
||||
|
||||
@ -9,6 +9,7 @@ import com.css.txw.mhzc.pojo.vo.SearchResultVO;
|
||||
import com.css.txw.mhzc.pojo.vo.SyzxxxVO;
|
||||
import com.css.txw.mhzc.service.SearchService;
|
||||
import com.css.txw.mhzc.service.TxwMhzcZxxxbService;
|
||||
import com.css.txw.mhzc.service.TxwMhzcHydtbService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
@ -31,6 +32,9 @@ public class SearchServiceImpl implements SearchService {
|
||||
@Resource
|
||||
private TxwGxzxGxxxbMapper gxxxbMapper;
|
||||
|
||||
@Resource
|
||||
private TxwMhzcHydtbService hydtbService;
|
||||
|
||||
private static final String HIGHLIGHT_START = "<em>";
|
||||
private static final String HIGHLIGHT_END = "</em>";
|
||||
private static final String VIEW_MHZC_PREFIX = "/view/mhzc";
|
||||
@ -75,7 +79,7 @@ public class SearchServiceImpl implements SearchService {
|
||||
}
|
||||
|
||||
// 搜索服务中心(供需信息)
|
||||
if (!"news".equals(categoryType) && !"carbon_cert".equals(categoryType)) {
|
||||
if (!"news".equals(categoryType) && !"carbon_cert".equals(categoryType) && !"policy".equals(categoryType)) {
|
||||
List<SearchResultVO> serviceResults = searchServiceInfo(keyword);
|
||||
if (!"all".equals(categoryType)) {
|
||||
resultList.addAll(serviceResults);
|
||||
@ -84,6 +88,12 @@ public class SearchServiceImpl implements SearchService {
|
||||
}
|
||||
}
|
||||
|
||||
// 搜索国家政策
|
||||
if ("policy".equals(categoryType) || "all".equals(categoryType)) {
|
||||
List<SearchResultVO> policyResults = searchPolicy(keyword);
|
||||
resultList.addAll(policyResults);
|
||||
}
|
||||
|
||||
// 分页处理
|
||||
int start = (reqVO.getPage() - 1) * reqVO.getPageSize();
|
||||
int end = Math.min(start + reqVO.getPageSize(), resultList.size());
|
||||
@ -107,6 +117,7 @@ public class SearchServiceImpl implements SearchService {
|
||||
countMap.put("news", 0);
|
||||
countMap.put("service", 0);
|
||||
countMap.put("carbon_cert", 0);
|
||||
countMap.put("policy", 0);
|
||||
|
||||
// 统计资讯数量
|
||||
Map<String, List<SyzxxxVO>> data = zxxxbService.zxxx();
|
||||
@ -137,6 +148,16 @@ public class SearchServiceImpl implements SearchService {
|
||||
countMap.put("all", countMap.get("all") + serviceCount.intValue());
|
||||
}
|
||||
|
||||
// 统计国家政策数量
|
||||
List<com.css.txw.mhzc.pojo.vo.HydtbVO> policyList = hydtbService.getByLx("gjzc");
|
||||
if (policyList != null) {
|
||||
long policyCount = policyList.stream()
|
||||
.filter(policy -> matchKeyword(policy.getBt(), keyword) || matchKeyword(policy.getNr(), keyword))
|
||||
.count();
|
||||
countMap.put("policy", (int) policyCount);
|
||||
countMap.put("all", countMap.get("all") + (int) policyCount);
|
||||
}
|
||||
|
||||
return countMap;
|
||||
}
|
||||
|
||||
@ -258,6 +279,30 @@ public class SearchServiceImpl implements SearchService {
|
||||
return resultList;
|
||||
}
|
||||
|
||||
private List<SearchResultVO> searchPolicy(String keyword) {
|
||||
List<SearchResultVO> resultList = new ArrayList<>();
|
||||
List<com.css.txw.mhzc.pojo.vo.HydtbVO> policyList = hydtbService.getByLx("gjzc");
|
||||
if (policyList != null) {
|
||||
for (com.css.txw.mhzc.pojo.vo.HydtbVO policy : policyList) {
|
||||
// 关键词为空时返回全部,或匹配关键词
|
||||
if (!StringUtils.hasText(keyword) || matchKeyword(policy.getBt(), keyword) || matchKeyword(policy.getNr(), keyword)) {
|
||||
SearchResultVO vo = new SearchResultVO();
|
||||
vo.setId(policy.getUuid());
|
||||
vo.setTitle(highlightKeyword(policy.getBt(), keyword));
|
||||
vo.setSummary(highlightKeyword(truncate(policy.getNr(), 200), keyword));
|
||||
vo.setCategory("国家政策");
|
||||
vo.setCategoryType("policy");
|
||||
vo.setSource(policy.getLxr() != null ? policy.getLxr() : "碳信网");
|
||||
vo.setSourceType("policy");
|
||||
vo.setPublishTime(policy.getFbsj());
|
||||
vo.setUrl(policy.getYyLj());
|
||||
resultList.add(vo);
|
||||
}
|
||||
}
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
private String getYwlxMc(String ywlxDm) {
|
||||
if ("01".equals(ywlxDm)) {
|
||||
return "碳服务市场";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user