9.6 KiB
碳信网服务中心页面开发实现计划
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 将6个PRD原型页面还原为Vue组件,并抽取新版首页导航为公共组件。
Architecture:
- 新导航组件
new-nav/index.vue从home2/index.vue抽取,复用原有nav/index.vue的登录状态和用户信息逻辑 - 6个页面组件放在
views/fwsc/目录下 - 路由使用父子路由结构,
/fwsc为引导页,下设4个子页面路由
Tech Stack: Vue2 + TDesign + less
文件变更总览
| 操作 | 文件路径 |
|---|---|
| 创建 | src/pages/index/components/new-nav/index.vue |
| 创建 | src/pages/index/views/fwsc/index.vue |
| 创建 | src/pages/index/views/fwsc/fwsc.vue |
| 创建 | src/pages/index/views/fwsc/xqsc.vue |
| 创建 | src/pages/index/views/fwsc/jrsc.vue |
| 创建 | src/pages/index/views/fwsc/sjsc.vue |
| 创建 | src/pages/index/views/fwsc/sjlbc.vue |
| 修改 | src/pages/index/router/routes.js |
Task 1: 创建 NewNav 导航组件
文件:
-
创建:
src/pages/index/components/new-nav/index.vue -
Step 1: 创建 new-nav 目录和组件文件
从 home2/index.vue 的 .nav-box 抽取导航栏代码,新建 src/pages/index/components/new-nav/index.vue。
关键功能点:
- Logo + 菜单栏(首页、碳证中心、服务中心[下拉]、共性能力、企业出海、行业专题)
- 服务中心下拉:碳服务市场、碳需求市场、碳金融市场、碳数据市场
- 右侧:工作台、登录/注册、用户头像下拉菜单
- 登录状态判断复用原有 nav 的
sessionStorage.getItem('sfdl')逻辑 - 用户信息获取复用
sessionStorage.getItem('yhxx')逻辑 - 工作台跳转
/view/mhzc/yhzx - 登录跳转
/view/mhzc/login - 用户下拉:用户中心、退出登录
下拉菜单使用 position: absolute + z-index 实现,hover 显示。
Task 2: 创建服务中心引导页
文件:
-
创建:
src/pages/index/views/fwsc/index.vue -
Step 1: 创建 views/fwsc 目录和 index.vue
根据 prd/介绍.html 实现引导页:
- 顶部:NewNav 导航栏
- Banner区:大标题"可信碳服务中心",副标题"链接全球碳资产,赋能绿色价值链..."
- 四大服务入口卡片(2x2 Grid):
- 碳服务市场 →
/fwsc/fwsc - 碳需求市场 →
/fwsc/xqsc - 碳金融市场 →
/fwsc/jrsc - 碳数据市场 →
/fwsc/sjsc
- 碳服务市场 →
- 交易流程指引(注册认证 → 发布信息 → 在线撮合)
- 底部:Footer
卡片样式:白色背景、圆角、hover放大效果(transform: scale(1.02))
配色:绿色主题 #009a29
Task 3: 创建碳服务市场页面
文件:
-
创建:
src/pages/index/views/fwsc/fwsc.vue -
Step 1: 根据 prd/供需大厅.html 创建碳服务市场页面
布局:
- NewNav + 当前位置"首页 / 服务中心"
- 左侧筛选栏(220px宽,sticky)
- 右侧服务卡片列表(2列Grid)
左侧筛选栏:
- 服务类型(全部、碳核查服务、碳足迹核算、碳减排技术服务、碳资产管理服务、ESG报告编制、碳交易咨询)
- 服务企业(全部、欧冶云商、上海企源科技、上海零数科技、上海链坤数字科技)
- 关键词搜索输入框 + 搜索按钮
右侧卡片字段(根据原型):
- 标题:"本司提供碳相关服务寻找有需求的企业客户"
- 企业:"上海链坤数字科技有限公司 · 辽宁省"
- 标签:ESG报告编制、碳减排技术服务
- 价格:"¥ 10,000.00 /次"(橙色强调色 #D25F00)
- 描述:"我们为参与碳市场的企业提供全方位的交易策略与风险管理咨询..."
- 按钮:联系服务商(主按钮)、收藏(次按钮)
卡片底部有分隔线。使用 t-button 组件。
Task 4: 创建碳需求市场页面
文件:
-
创建:
src/pages/index/views/fwsc/xqsc.vue -
Step 1: 根据 prd/需求.html 创建碳需求市场页面
布局与碳服务市场基本一致,筛选栏相同。
右侧卡片字段:
- 标题:"碳核查服务需求" 或 "【碳服务需求!急急急!】"
- 企业:"上海链坤数字科技有限公司"
- 标签:ESG报告编制、碳减排技术服务
- 预算:"¥ 50-100 万元"(橙色 #D25F00)
- 描述
- 有效期至:2026-04-24
- 按钮:联系服务
注意:部分卡片标题带有"急"字标记,用不同颜色或样式突出。
Task 5: 创建碳金融市场页面
文件:
-
创建:
src/pages/index/views/fwsc/jrsc.vue -
Step 1: 根据 prd/金融.html 创建碳金融市场页面
左侧筛选栏:
- 服务类型(全部、绿色信贷、绿色保险)
- 服务企业(全部、中国银行、工商银行、农业银行、建设银行、招商银行、中信银行、北京银行、兴业银行、邮政储蓄银行)
右侧金融产品卡片(2列Grid):
- 机构名称 + Logo
- 产品名称(如"云南昭通信贷业务")
- 额度:"¥ 50,000.00"
- 期限:"1-3年"
- 利率:"3.6%~4.2%"(绿色 #00B42A)
- 产品标签(如"绿色项目贷款")
- 按钮:立即申请(主)、查看详情(次)
Task 6: 创建碳数据市场页面
文件:
-
创建:
src/pages/index/views/fwsc/sjsc.vue -
Step 1: 根据 prd/数据.html 创建碳数据市场页面
左侧筛选栏:
- 数据类型(全部、公共数据、因子库、社会性数据)
右侧数据库卡片(2列Grid):
- 数据库名称:"宝山绿色低碳数据创新实验室"、"HiQLCD数据库"、"天工数据库"、"ecoinvent数据库"
- 描述
- 标签:公共数据/社会性数据/商业数据、免费/付费
- 按钮:查看数据库
Task 7: 创建数据列表页面
文件:
-
创建:
src/pages/index/views/fwsc/sjlbc.vue -
Step 1: 根据 prd/数据列表.html 创建数据列表页面
左侧筛选栏:
- 价格区间(最低 - 最高)
- 有效期(日期选择器)
右侧数据列表(表格形式):
- 列:数据类型、名称、发布时间/更新时间、数据条数、浏览量、下载量
- 数据示例:
- 全球多源高分辨温室气体及大气污染物排放清单 / 社会性数据 / 45,000条 / 475次浏览 / 18次下载
- 国家温室气体排放因子数据库 / 公共数据 / ...
- 碳排放数据库 / ...
列表顶部有排序图标(三角形)和浏览量/下载量指示。
Task 8: 配置路由
文件:
-
修改:
src/pages/index/router/routes.js -
Step 1: 添加6个路由
在 routes.js 顶部添加 lazy-load 导入函数:
function fwscIndex() {
return import(/* webpackChunkName: "fwsc" */ '@/pages/index/views/fwsc/index.vue');
}
function fwscFwsc() {
return import(/* webpackChunkName: "fwsc" */ '@/pages/index/views/fwsc/fwsc.vue');
}
function fwscXqsc() {
return import(/* webpackChunkName: "fwsc" */ '@/pages/index/views/fwsc/xqsc.vue');
}
function fwscJrsc() {
return import(/* webpackChunkName: "fwsc" */ '@/pages/index/views/fwsc/jrsc.vue');
}
function fwscSjsc() {
return import(/* webpackChunkName: "fwsc" */ '@/pages/index/views/fwsc/sjsc.vue');
}
function fwscSjlbc() {
return import(/* webpackChunkName: "fwsc" */ '@/pages/index/views/fwsc/sjlbc.vue');
}
在 routes 数组末尾添加:
{
name: 'fwsc',
path: '/fwsc',
component: fwscIndex,
meta: {
title: '服务中心',
isShowSideBar: false,
hasHome: true,
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '/fwsc' }],
disableBack: true,
},
},
{
name: 'fwsc-fwsc',
path: '/fwsc/fwsc',
component: fwscFwsc,
meta: {
title: '碳服务市场',
isShowSideBar: false,
hasHome: true,
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '/fwsc' }, { title: '碳服务市场', to: '/fwsc/fwsc' }],
disableBack: true,
},
},
{
name: 'fwsc-xqsc',
path: '/fwsc/xqsc',
component: fwscXqsc,
meta: {
title: '碳需求市场',
isShowSideBar: false,
hasHome: true,
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '/fwsc' }, { title: '碳需求市场', to: '/fwsc/xqsc' }],
disableBack: true,
},
},
{
name: 'fwsc-jrsc',
path: '/fwsc/jrsc',
component: fwscJrsc,
meta: {
title: '碳金融市场',
isShowSideBar: false,
hasHome: true,
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '/fwsc' }, { title: '碳金融市场', to: '/fwsc/jrsc' }],
disableBack: true,
},
},
{
name: 'fwsc-sjsc',
path: '/fwsc/sjsc',
component: fwscSjsc,
meta: {
title: '碳数据市场',
isShowSideBar: false,
hasHome: true,
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '/fwsc' }, { title: '碳数据市场', to: '/fwsc/sjsc' }],
disableBack: true,
},
},
{
name: 'fwsc-sjlbc',
path: '/fwsc/sjlbc',
component: fwscSjlbc,
meta: {
title: '数据列表',
isShowSideBar: false,
hasHome: true,
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '服务中心', to: '/fwsc' }, { title: '碳数据市场', to: '/fwsc/sjsc' }, { title: '数据列表', to: '/fwsc/sjlbc' }],
disableBack: true,
},
}
依赖关系
Task 1 (NewNav) ← 无依赖,可最先完成
Task 2 (fwsc引导页) ← 依赖 Task 1
Task 3 (fwsc) ← 依赖 Task 1
Task 4 (xqsc) ← 依赖 Task 1
Task 5 (jrsc) ← 依赖 Task 1
Task 6 (sjsc) ← 依赖 Task 1
Task 7 (sjlbc) ← 依赖 Task 1
Task 8 (路由) ← 依赖 Task 2-7
建议执行顺序: Task 1 → Task 2-7 并行 → Task 8