From 4f2a8c4aac52d4324dd63eb6b992fee9ba4ae2ad Mon Sep 17 00:00:00 2001 From: liulujian Date: Fri, 3 Apr 2026 20:28:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9C=8D=E5=8A=A1=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../plans/2026-04-03-fwsc-pages-plan.md | 310 ++++++++++++ .../specs/2026-04-03-fwsc-pages-design.md | 243 +++++++++ script/copy-changed-files.sh | 35 ++ setup.js => script/setup.js | 0 .../index/components/breadcrumb/index.vue | 85 ++++ .../src/pages/index/components/logo/index.vue | 2 +- .../pages/index/components/new-nav/index.vue | 209 +++++--- txw-mhzc-web/src/pages/index/router/index.js | 3 + txw-mhzc-web/src/pages/index/router/routes.js | 2 +- .../src/pages/index/views/fwsc/fwsc.vue | 289 +++++++++++ .../src/pages/index/views/fwsc/index.vue | 4 +- .../src/pages/index/views/fwsc/jrsc.vue | 32 +- .../src/pages/index/views/fwsc/sjlbc.vue | 300 +++++------- .../src/pages/index/views/fwsc/sjsc.vue | 82 +--- .../src/pages/index/views/fwsc/xqsc.vue | 462 ++++++++++++++++++ .../src/pages/index/views/home2/index.vue | 104 +--- txw-mhzc-web/vue.config.js | 98 ++-- 18 files changed, 1774 insertions(+), 487 deletions(-) create mode 100644 .gitignore create mode 100644 docs/superpowers/plans/2026-04-03-fwsc-pages-plan.md create mode 100644 docs/superpowers/specs/2026-04-03-fwsc-pages-design.md create mode 100644 script/copy-changed-files.sh rename setup.js => script/setup.js (100%) create mode 100644 txw-mhzc-web/src/pages/index/components/breadcrumb/index.vue create mode 100644 txw-mhzc-web/src/pages/index/views/fwsc/fwsc.vue create mode 100644 txw-mhzc-web/src/pages/index/views/fwsc/xqsc.vue diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d6ec751 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +prd/ diff --git a/docs/superpowers/plans/2026-04-03-fwsc-pages-plan.md b/docs/superpowers/plans/2026-04-03-fwsc-pages-plan.md new file mode 100644 index 0000000..c8b9d50 --- /dev/null +++ b/docs/superpowers/plans/2026-04-03-fwsc-pages-plan.md @@ -0,0 +1,310 @@ +# 碳信网服务中心页面开发实现计划 + +> **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 导入函数: +```javascript +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 数组末尾添加: +```javascript +{ + 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 diff --git a/docs/superpowers/specs/2026-04-03-fwsc-pages-design.md b/docs/superpowers/specs/2026-04-03-fwsc-pages-design.md new file mode 100644 index 0000000..e21c37a --- /dev/null +++ b/docs/superpowers/specs/2026-04-03-fwsc-pages-design.md @@ -0,0 +1,243 @@ +# 碳信网服务中心页面开发设计 + +## 1. 概述 + +### 1.1 项目背景 +将 `prd/` 目录下的6个Axure原型HTML页面还原为Vue组件,集成到 `txw-mhzc-web` 项目中。同时抽取 `home2/index.vue` 中的顶部导航栏为独立公共组件。 + +### 1.2 页面映射关系 +| 页面 | 文件 | 路由 | 说明 | +|------|------|------|------| +| 服务中心 | `views/fwsc/index.vue` | `/fwsc` | 引导页,含4个子入口 | +| 碳服务市场 | `views/fwsc/fwsc.vue` | `/fwsc/fwsc` | 对应供需大厅.html | +| 碳需求市场 | `views/fwsc/xqsc.vue` | `/fwsc/xqsc` | 对应需求.html | +| 碳金融市场 | `views/fwsc/jrsc.vue` | `/fwsc/jrsc` | 对应金融.html | +| 碳数据市场 | `views/fwsc/sjsc.vue` | `/fwsc/sjsc` | 对应数据.html | +| 数据列表 | `views/fwsc/sjlbc.vue` | `/fwsc/sjlbc` | 对应数据列表.html | + +--- + +## 2. 新导航组件设计 + +### 2.1 组件路径 +`src/pages/index/components/new-nav/index.vue` + +### 2.2 抽取内容 +从 `home2/index.vue` 的 `.nav-box` 抽取为独立组件。 + +### 2.3 功能逻辑(复用原有 nav 的逻辑) + +**状态判断:** +- 登录状态:`sessionStorage.getItem('sfdl')` +- 用户信息:`sessionStorage.getItem('yhxx')` + +**交互功能:** +- 工作台跳转 → `/view/mhzc/yhzx` +- 登录/注册按钮 → `/view/mhzc/login` +- 用户头像 hover 显示下拉菜单(用户中心、退出登录) +- 消息中心入口 + +### 2.4 "服务中心"菜单 — 二级下拉结构 +``` +首页 / 碳证中心 / 服务中心(二级菜单) / 共性能力 / 企业出海 / 行业专题 +``` +服务中心下拉: +- 碳服务市场 → `/fwsc/fwsc` +- 碳需求市场 → `/fwsc/xqsc` +- 碳金融市场 → `/fwsc/jrsc` +- 碳数据市场 → `/fwsc/sjsc` + +--- + +## 3. 页面设计 + +### 3.1 服务中心(引导页)`views/fwsc/index.vue` + +**布局:** +- 顶部:NewNav 导航栏 +- Banner区:大标题 + 副标题 +- 四大服务入口卡片(碳服务市场、碳需求市场、碳金融市场、碳数据市场) +- 底部:Footer + +**交互:** +- 点击卡片跳转对应二级页面 +- 卡片hover有放大效果 + +### 3.2 碳服务市场 `views/fwsc/fwsc.vue` + +**对应原型:** `prd/供需大厅.html` + +**布局:** +- 左侧筛选栏(服务类型、服务企业) +- 右侧服务卡片列表(2列Grid) +- 顶部:NewNav + 当前位置导航 +- 底部:Footer + +**卡片内容:** +- 服务标题 +- 发布企业 + 地区 +- 服务类型标签 +- 价格 +- 描述 +- 操作按钮(联系服务商、收藏) + +**筛选功能:** +- 服务类型:全部、碳核查服务、碳足迹核算、碳减排技术服务、碳资产管理服务、ESG报告编制、碳交易咨询 +- 服务企业:全部、欧冶云商、上海企源科技、上海零数科技、上海链坤数字科技 +- 关键词搜索 + +### 3.3 碳需求市场 `views/fwsc/xqsc.vue` + +**对应原型:** `prd/需求.html` + +**布局:** 与碳服务市场一致 + +**卡片内容:** +- 需求标题 +- 发布企业 +- 需求类型标签 +- 预算范围 +- 描述 +- 操作按钮(联系服务) +- 有效期 + +### 3.4 碳金融市场 `views/fwsc/jrsc.vue` + +**对应原型:** `prd/金融.html` + +**布局:** +- 左侧筛选栏(服务类型、服务机构) +- 右侧金融产品卡片(2列Grid) + +**卡片内容:** +- 机构名称(Logo) +- 产品名称 +- 额度、期限、利率 +- 操作按钮(立即申请、查看详情) + +**筛选功能:** +- 服务类型:全部、绿色信贷、绿色保险 +- 服务企业:全部、中国银行、工商银行、农业银行、建设银行、招商银行、中信银行、北京银行、兴业银行、邮政储蓄银行 + +### 3.5 碳数据市场 `views/fwsc/sjsc.vue` + +**对应原型:** `prd/数据.html` + +**布局:** +- 左侧筛选栏(数据类型) +- 右侧数据库卡片(2列Grid) + +**卡片内容:** +- 数据库名称 +- 描述 +- 数据类型标签(公共数据、社会性数据、商业数据) +- 价格标签(免费/付费) +- 操作按钮(查看数据库) + +**数据类型筛选:** +- 全部、公共数据、因子库、社会性数据 + +### 3.6 数据列表 `views/fwsc/sjlbc.vue` + +**对应原型:** `prd/数据列表.html` + +**布局:** +- 左侧筛选栏 +- 右侧数据列表(表格形式) + +**列表字段:** +- 数据名称 +- 数据类型(公共数据、社会性数据) +- 发布时间/更新时间 +- 数据条数 +- 浏览量 +- 下载量 + +**筛选项:** +- 价格区间 +- 有效期 + +--- + +## 4. 路由设计 + +```javascript +// routes.js 新增 +{ + name: 'fwsc', + path: '/fwsc', + component: () => import('@/pages/index/views/fwsc/index.vue'), + meta: { title: '服务中心', isShowSideBar: false, hasHome: true } +}, +{ + name: 'fwsc-fwsc', + path: '/fwsc/fwsc', + component: () => import('@/pages/index/views/fwsc/fwsc.vue'), + meta: { title: '碳服务市场', isShowSideBar: false, hasHome: true } +}, +{ + name: 'fwsc-xqsc', + path: '/fwsc/xqsc', + component: () => import('@/pages/index/views/fwsc/xqsc.vue'), + meta: { title: '碳需求市场', isShowSideBar: false, hasHome: true } +}, +{ + name: 'fwsc-jrsc', + path: '/fwsc/jrsc', + component: () => import('@/pages/index/views/fwsc/jrsc.vue'), + meta: { title: '碳金融市场', isShowSideBar: false, hasHome: true } +}, +{ + name: 'fwsc-sjsc', + path: '/fwsc/sjsc', + component: () => import('@/pages/index/views/fwsc/sjsc.vue'), + meta: { title: '碳数据市场', isShowSideBar: false, hasHome: true } +}, +{ + name: 'fwsc-sjlbc', + path: '/fwsc/sjlbc', + component: () => import('@/pages/index/views/fwsc/sjlbc.vue'), + meta: { title: '数据列表', isShowSideBar: false, hasHome: true } +} +``` + +--- + +## 5. 目录结构 + +``` +src/pages/index/ +├── components/ +│ └── new-nav/ +│ └── index.vue # 新导航组件 +└── views/ + └── fwsc/ + ├── index.vue # 服务中心(引导页) + ├── fwsc.vue # 碳服务市场 + ├── xqsc.vue # 碳需求市场 + ├── jrsc.vue # 碳金融市场 + ├── sjsc.vue # 碳数据市场 + └── sjlbc.vue # 数据列表 +``` + +--- + +## 6. 技术实现要点 + +### 6.1 公共组件 +- NewNav 组件:复用原有 Nav 的登录状态判断、用户信息获取逻辑 +- Footer 组件:直接使用现有 `@/pages/index/components/footer/index.vue` + +### 6.2 样式规范 +- 使用 TDesign 组件库(`t-button`、`t-input`、`t-select` 等) +- 布局使用 `t-row`、`t-col` 栅格系统 +- 卡片hover效果使用 `transform: scale(1.02)` 过渡动画 +- 颜色使用项目现有配色(绿色主题 #009a29) + +### 6.3 筛选栏 +- 服务类型、服务企业等筛选项,使用 `t-select` 组件 +- 左侧筛选栏宽度固定 220px,使用 `position: sticky` 固定 + +### 6.4 卡片列表 +- 使用 CSS Grid 两列布局:`grid-template-columns: repeat(2, 1fr)` +- 卡片间距:24px diff --git a/script/copy-changed-files.sh b/script/copy-changed-files.sh new file mode 100644 index 0000000..a200be3 --- /dev/null +++ b/script/copy-changed-files.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# 复制 git 变更文件到 change 目录,保留原文件相对路径 + +set -e + +TARGET_DIR="change" + +# 创建目标目录 +mkdir -p "$TARGET_DIR" + +# 获取所有变更文件(包含未跟踪文件) +files=$(git status --porcelain | awk '{print $2}') + +if [ -z "$files" ]; then + echo "没有变更文件" + exit 0 +fi + +count=0 +for f in $files; do + # 跳过目录(如 docs/) + if [ -d "$f" ]; then + mkdir -p "$TARGET_DIR/$f" + cp -r "$f" "$TARGET_DIR/$f" + echo "✓ $f/" + elif [ -f "$f" ]; then + mkdir -p "$TARGET_DIR/$(dirname "$f")" + cp "$f" "$TARGET_DIR/$f" + echo "✓ $f" + ((count++)) + fi +done + +echo "" +echo "已完成,复制了 $count 个文件到 $TARGET_DIR 目录" diff --git a/setup.js b/script/setup.js similarity index 100% rename from setup.js rename to script/setup.js diff --git a/txw-mhzc-web/src/pages/index/components/breadcrumb/index.vue b/txw-mhzc-web/src/pages/index/components/breadcrumb/index.vue new file mode 100644 index 0000000..d5d135e --- /dev/null +++ b/txw-mhzc-web/src/pages/index/components/breadcrumb/index.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/txw-mhzc-web/src/pages/index/components/logo/index.vue b/txw-mhzc-web/src/pages/index/components/logo/index.vue index 1815655..e2e4d5a 100644 --- a/txw-mhzc-web/src/pages/index/components/logo/index.vue +++ b/txw-mhzc-web/src/pages/index/components/logo/index.vue @@ -12,7 +12,7 @@ export default { props: { // logo高度,单位为px,默认为40 size: { - type: Number, + type: [Number, String], default: 35, }, }, diff --git a/txw-mhzc-web/src/pages/index/components/new-nav/index.vue b/txw-mhzc-web/src/pages/index/components/new-nav/index.vue index 949f52d..c1e4459 100644 --- a/txw-mhzc-web/src/pages/index/components/new-nav/index.vue +++ b/txw-mhzc-web/src/pages/index/components/new-nav/index.vue @@ -1,70 +1,72 @@ @@ -131,29 +133,36 @@ export default { diff --git a/txw-mhzc-web/src/pages/index/router/index.js b/txw-mhzc-web/src/pages/index/router/index.js index e6f3041..ea03a6b 100644 --- a/txw-mhzc-web/src/pages/index/router/index.js +++ b/txw-mhzc-web/src/pages/index/router/index.js @@ -18,6 +18,9 @@ const router = new VueRouter({ mode: 'history', base: `${window.STATIC_ENV_CONFIG.ROUTER_PREFIX}/`, routes: [...routes], + scrollBehavior(_to, _from, _savedPosition) { + return { x: 0, y: 0 }; + }, }); router.beforeEach((to, from, next) => { diff --git a/txw-mhzc-web/src/pages/index/router/routes.js b/txw-mhzc-web/src/pages/index/router/routes.js index a750d6e..01a765f 100644 --- a/txw-mhzc-web/src/pages/index/router/routes.js +++ b/txw-mhzc-web/src/pages/index/router/routes.js @@ -167,7 +167,7 @@ export default [ component: hyzt, }, { - name: 'fwsc', + name: 'fwsc-fwsc', path: '/fwsc/fwsc', component: fwsc, meta: { diff --git a/txw-mhzc-web/src/pages/index/views/fwsc/fwsc.vue b/txw-mhzc-web/src/pages/index/views/fwsc/fwsc.vue new file mode 100644 index 0000000..9c8d049 --- /dev/null +++ b/txw-mhzc-web/src/pages/index/views/fwsc/fwsc.vue @@ -0,0 +1,289 @@ + + + + + diff --git a/txw-mhzc-web/src/pages/index/views/fwsc/index.vue b/txw-mhzc-web/src/pages/index/views/fwsc/index.vue index 14a0ced..1acd391 100644 --- a/txw-mhzc-web/src/pages/index/views/fwsc/index.vue +++ b/txw-mhzc-web/src/pages/index/views/fwsc/index.vue @@ -108,7 +108,7 @@ export default { } .main-content { - padding-top: 64px; + // padding-top: 64px; } // 当前位置导航 @@ -210,10 +210,10 @@ export default { } .service-card-icon { + display: flex; width: 64px; height: 64px; margin-bottom: 20px; - display: flex; align-items: center; justify-content: center; diff --git a/txw-mhzc-web/src/pages/index/views/fwsc/jrsc.vue b/txw-mhzc-web/src/pages/index/views/fwsc/jrsc.vue index 8c681a2..32b70e9 100644 --- a/txw-mhzc-web/src/pages/index/views/fwsc/jrsc.vue +++ b/txw-mhzc-web/src/pages/index/views/fwsc/jrsc.vue @@ -3,17 +3,11 @@ + + +
- -
- 首页 - / - 服务中心 - / - 碳金融市场 -
-
@@ -133,12 +127,14 @@ @@ -298,66 +289,36 @@ export default { background: #f5f5f5; } -.main-content { - width: 1920px; - padding-top: 64px; - margin: 0 auto; -} - -// 当前位置 -.current-position { - width: 100%; - height: 48px; - padding: 0 60px; - line-height: 48px; - background: #fff; - box-sizing: border-box; - - .position-item { - cursor: pointer; - &:hover { - color: #009a29; - } - } - - .separator { - margin: 0 8px; - color: #ccc; - } - - .position-current { - color: #009a29; - } -} - // 主内容区 .content-wrapper { display: flex; - padding: 20px 60px; + max-width: 1400px; + padding: 20px; + margin: 0 auto; gap: 20px; } // 左侧筛选栏 .filter-sidebar { - width: 220px; + width: 200px; flex-shrink: 0; } .filter-box { position: sticky; - top: 84px; - padding: 20px; + top: 104px; + padding: 16px; background: #fff; border-radius: 8px; } .filter-section { - margin-bottom: 24px; + margin-bottom: 20px; } .filter-title { margin-bottom: 12px; - font-size: 16px; + font-size: 14px; font-weight: 600; color: #333; } @@ -365,13 +326,12 @@ export default { .price-range { display: flex; align-items: center; - gap: 8px; + gap: 6px; } .price-input { - flex: 1; - height: 36px; - padding: 0 12px; + height: 32px; + padding: 0 6px; border: 1px solid #ddd; border-radius: 4px; outline: none; @@ -382,15 +342,21 @@ export default { } } +.price-min, +.price-max { + width: 80px; +} + .price-separator { + flex-shrink: 0; color: #999; } .date-picker-box { .date-input { width: 100%; - height: 36px; - padding: 0 12px; + height: 32px; + padding: 0 8px; border: 1px solid #ddd; border-radius: 4px; outline: none; diff --git a/txw-mhzc-web/src/pages/index/views/fwsc/sjsc.vue b/txw-mhzc-web/src/pages/index/views/fwsc/sjsc.vue index 2034171..ed12ede 100644 --- a/txw-mhzc-web/src/pages/index/views/fwsc/sjsc.vue +++ b/txw-mhzc-web/src/pages/index/views/fwsc/sjsc.vue @@ -1,19 +1,12 @@