feat: 首页样式调整

This commit is contained in:
liulujian 2026-04-28 00:43:39 +08:00
parent c80a4a7bb3
commit 3a8b70495a
62 changed files with 341 additions and 2465 deletions

View File

@ -91,7 +91,9 @@ export default {
<style lang="less" scoped>
.footer-container {
position: relative;
margin: 0 auto;
background-color: #F0F7F2;
}
.footer-top {

View File

@ -9,12 +9,12 @@
<div v-for="(menu,index) in menuOptions" :key="index">
<t-dropdown v-if="menu.child" trigger="hover" :options="menu.child" @click="handleDropdownClick">
<div class="menu-title" :class="{'meun-title-active': curPage == menu.name ,'meun-title-disable':menu.disable}" @click="gotoIfreamPage(menu)">
<img v-if="menu.icon" :src="menu.icon" width="24px" height="24px" style="margin-right:10px">
<!-- <img v-if="menu.icon" :src="menu.icon" width="24px" height="24px" style="margin-right:10px"> -->
<span> {{menu.title}} </span>
</div>
</t-dropdown>
<div v-else class="menu-title" :class="{'meun-title-active': curPage == menu.name ,'meun-title-disable':menu.disable}" @click="gotoIfreamPage(menu)">
<img v-if="menu.icon" :src="menu.icon" width="24px" height="24px" style="margin-right:10px">
<!-- <img v-if="menu.icon" :src="menu.icon" width="24px" height="24px" style="margin-right:10px"> -->
<span> {{menu.title}} </span>
</div>
</div>
@ -22,11 +22,11 @@
</div>
<div class="option-wrapper">
<div v-if="loginFlag" class="option-box">
<div class="gzt" @click="goyhzx">
<!-- <div class="gzt" @click="goyhzx">
<img src="@/pages/index/assets/home-gzt-icon.png" />
<span> 工作台</span>
</div>
<div style="margin-left:20px; cursor: pointer;" @click="goyhzx">用户中心</div>
</div> -->
<div style="margin-left:20px; cursor: pointer;" @click="goyhzx">企业工作台</div>
<div>|</div>
<div style="cursor: pointer;" @click="logoutHandler">退出登录</div>
</div>
@ -35,8 +35,8 @@
<img src="@/pages/index/assets/home-gzt-icon.png" />
<span> 工作台</span>
</div> -->
<div style="margin-left:20px; cursor: pointer;">激活</div>
<div>|</div>
<!-- <div style="margin-left:20px; cursor: pointer;">激活</div>
<div>|</div> -->
<div style="cursor: pointer;" @click="gologin">登录</div>
</div>
</div>

View File

@ -7,9 +7,7 @@ function home() {
// function home2() {
// return import(/* webpackChunkName: "sbfdemo" */ '@/pages/index/views/home2/index.vue');
// }
function home3() {
return import(/* webpackChunkName: "sbfdemo" */ '@/pages/index/views/home3/index.vue');
}
function yhzx() {
return import(/* webpackChunkName: "sbfdemo" */ '@/pages/index/views/glxtSy/glxtSy.vue');
}
@ -157,19 +155,6 @@ export default [
// needLogin: false,
// },
// },
{
name: 'home3',
path: '/home3',
component: home3,
meta: {
title: '碳身份证',
isShowSideBar: false,
hasHome: true,
breadCrumbs: [{ title: '首页', to: '/home' }, { title: '碳身份证', to: '/home3' }],
disableBack: true,
needLogin: false,
},
},
{
name: 'yhzx',
path: '/yhzx',

View File

@ -19,56 +19,69 @@
<!-- 四大服务入口卡片 -->
<div class="services-section">
<!-- <div class="section-header">
<h2 class="section-title">服务中心</h2>
<span class="section-title-bar"></span>
<p class="section-desc">一站式解决碳服务撮合绿色交易与金融对接需求</p>
</div> -->
<div class="services-grid">
<!-- 碳服务市场 -->
<div class="service-card" @click="goToPage('/tfwsc')">
<div class="service-card-icon">
<span style="font-size: 48px">🌐</span>
</div>
<h3 class="service-card-title">碳服务市场</h3>
<p class="service-card-desc">汇聚全国优质第三方服务机构提供从核算到认证的全链条专业服务</p>
<div class="service-card-buttons">
<t-button theme="primary" variant="outline" @click.stop="goToPage('/tfwsc')">浏览服务信息</t-button>
<t-button theme="primary" @click.stop="goToPage('/tfwsc?publish=1')">我要发布服务</t-button>
<div class="service-card-inner">
<div class="service-card-header blue-header">
<span class="service-card-num">01</span>
<h3 class="service-card-title">碳服务市场</h3>
</div>
<p class="service-card-desc">汇聚全国优质第三方服务机构提供从核算到认证的全链条专业服务</p>
<div class="service-card-buttons">
<t-button theme="primary" @click.stop="goToPage('/tfwsc')">浏览服务信息</t-button>
<!-- <t-button theme="primary" @click.stop="goToPage('/tfwsc?publish=1')">我要发布服务</t-button> -->
</div>
</div>
</div>
<!-- 碳需求市场 -->
<div class="service-card" @click="goToPage('/txqsc')">
<div class="service-card-icon">
<span style="font-size: 48px">📋</span>
</div>
<h3 class="service-card-title">碳需求市场</h3>
<p class="service-card-desc">企业发布真实服务采购需求智能匹配靠谱服务商杜绝中间商差价</p>
<div class="service-card-buttons">
<t-button theme="primary" variant="outline" @click.stop="goToPage('/txqsc')">浏览求购信息</t-button>
<t-button theme="primary" @click.stop="goToPage('/txqsc?publish=1')">我要发布需求</t-button>
<div class="service-card-inner">
<div class="service-card-header green-header">
<span class="service-card-num">02</span>
<h3 class="service-card-title">碳需求市场</h3>
</div>
<p class="service-card-desc">企业发布真实服务采购需求智能匹配靠谱服务商杜绝中间商差价</p>
<div class="service-card-buttons">
<t-button theme="primary" @click.stop="goToPage('/txqsc')">浏览求购信息</t-button>
<!-- <t-button theme="primary" @click.stop="goToPage('/txqsc?publish=1')">我要发布需求</t-button> -->
</div>
</div>
</div>
<!-- 碳金融市场 -->
<div class="service-card" @click="goToPage('/tjrsc')">
<div class="service-card-icon">
<span style="font-size: 48px">💰</span>
</div>
<h3 class="service-card-title">碳金融市场</h3>
<p class="service-card-desc">打通"碳""钱"的通道提供碳质押碳回购绿色信贷及碳基金对接服务</p>
<div class="service-card-buttons">
<t-button theme="primary" variant="outline" @click.stop="goToPage('/tjrsc')">查看金融产品</t-button>
<t-button theme="primary" @click.stop="goToPage('/tjrsc')">金融机构入驻</t-button>
<div class="service-card-inner">
<div class="service-card-header cyan-header">
<span class="service-card-num">03</span>
<h3 class="service-card-title">碳金融市场</h3>
</div>
<p class="service-card-desc">打通"碳""钱"的通道提供碳质押碳回购绿色信贷及碳基金对接服务</p>
<div class="service-card-buttons">
<t-button theme="primary" @click.stop="goToPage('/tjrsc')">查看金融产品</t-button>
<!-- <t-button theme="primary" @click.stop="goToPage('/tjrsc')">金融机构入驻</t-button> -->
</div>
</div>
</div>
<!-- 碳数据市场 -->
<div class="service-card" @click="goToPage('/tsjsc')">
<div class="service-card-icon">
<span style="font-size: 48px">📊</span>
</div>
<h3 class="service-card-title">碳数据市场</h3>
<p class="service-card-desc">合规高效的碳数据流转平台包括公共数据社会性数据因子库等多类数据库</p>
<div class="service-card-buttons">
<t-button theme="primary" variant="outline" @click.stop="goToPage('/tsjsc')">进入交易大厅</t-button>
<t-button theme="primary" @click.stop="goToPage('/tsjsc')">我要出售</t-button>
<div class="service-card-inner">
<div class="service-card-header purple-header">
<span class="service-card-num">04</span>
<h3 class="service-card-title">碳数据市场</h3>
</div>
<p class="service-card-desc">合规高效的碳数据流转平台包括公共数据社会性数据因子库等多类数据库</p>
<div class="service-card-buttons">
<t-button theme="primary" @click.stop="goToPage('/tsjsc')">进入交易大厅</t-button>
<!-- <t-button theme="primary" @click.stop="goToPage('/tsjsc')">我要出售</t-button> -->
</div>
</div>
</div>
</div>
@ -103,7 +116,7 @@ export default {
<style lang="less" scoped>
.fwsc-page {
min-height: 100vh;
background: #f5f5f5;
background: #f5f7fa;
}
.main-content {
@ -146,127 +159,229 @@ export default {
color: #333;
}
// Banner
// Banner -
.banner-section {
position: relative;
display: flex;
height: 280px;
text-align: center;
background: linear-gradient(135deg, #009a29 0%, #4caf50 100%);
height: 400px;
background: linear-gradient(135deg, #003B1A 0%, #009a29 40%, #00d87d 100%);
align-items: center;
justify-content: center;
overflow: hidden;
&::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url('~@/pages/index/assets/home-top-bg1.jpg') center/cover no-repeat;
opacity: 0.15;
}
&::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 120px;
background: linear-gradient(180deg, transparent, rgba(245, 247, 250, 0.8));
}
}
.banner-content {
max-width: 800px;
padding: 0 20px;
position: relative;
z-index: 1;
max-width: 900px;
padding: 0 40px;
text-align: center;
}
.banner-title {
margin-bottom: 16px;
font-size: 48px;
font-weight: 600;
line-height: 64px;
letter-spacing: 0;
margin-bottom: 20px;
font-size: 56px;
font-weight: 700;
line-height: 1.2;
letter-spacing: 2px;
color: #fff;
text-shadow: 0 2px 20px rgba(0, 0, 0, 0.2);
}
.banner-subtitle {
font-size: 18px;
font-size: 20px;
font-weight: 400;
line-height: 28px;
letter-spacing: 0;
color: rgba(255, 255, 255, 0.9);
line-height: 1.8;
color: rgba(255, 255, 255, 0.95);
}
//
.services-section {
padding: 60px 200px;
padding: 60px 200px 80px;
position: relative;
margin-top: -120px;
}
.section-header {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 48px;
}
.section-title {
font-size: 32px;
font-weight: 700;
color: #222;
margin: 0;
line-height: 1.4;
}
.section-title-bar {
display: block;
width: 128px;
height: 8px;
background: rgba(0, 185, 107, 0.6);
border-radius: 4px;
margin-top: -10px;
}
.section-desc {
font-size: 18px;
font-weight: 500;
color: #666;
margin: 16px 0 0 0;
line-height: 1.6;
}
.services-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-columns: repeat(4, 1fr);
gap: 24px;
max-width: 1200px;
max-width: 1400px;
margin: 0 auto;
}
.service-card {
display: flex;
padding: 32px;
cursor: pointer;
border-radius: 16px;
overflow: hidden;
background: #fff;
border-radius: 12px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
transition: all 0.3s ease;
flex-direction: column;
&:hover {
transform: scale(1.02);
box-shadow: 0 8px 24px rgba(0, 154, 41, 0.15);
transform: translateY(-8px);
box-shadow: 0 12px 32px rgba(0, 154, 41, 0.15);
}
}
.service-card-icon {
.service-card-inner {
display: flex;
width: 64px;
height: 64px;
margin-bottom: 20px;
align-items: center;
justify-content: center;
flex-direction: column;
height: 100%;
padding: 28px;
}
img {
width: 100%;
height: 100%;
object-fit: contain;
}
.service-card-header {
display: flex;
align-items: center;
gap: 16px;
padding-bottom: 20px;
margin-bottom: 20px;
border-bottom: 1px solid #f0f0f0;
}
.service-card-num {
font-size: 28px;
font-weight: 700;
opacity: 0.3;
}
.service-card-title {
margin-bottom: 12px;
font-size: 24px;
font-size: 22px;
font-weight: 600;
line-height: 32px;
letter-spacing: 0;
color: #1a1a1a;
margin: 0;
}
.service-card-desc {
margin-bottom: 24px;
font-size: 14px;
font-weight: 400;
line-height: 22px;
letter-spacing: 0;
line-height: 1.8;
color: #666;
flex-grow: 1;
margin-bottom: 24px;
}
.service-card-buttons {
display: flex;
gap: 12px;
flex-direction: column;
gap: 10px;
.t-button {
flex: 1;
width: 100%;
}
}
//
.blue-header {
.service-card-num { color: #2196f3; }
border-bottom-color: rgba(33, 150, 243, 0.2);
}
.green-header {
.service-card-num { color: #00b42a; }
border-bottom-color: rgba(0, 180, 42, 0.2);
}
.cyan-header {
.service-card-num { color: #00b96b; }
border-bottom-color: rgba(0, 185, 107, 0.2);
}
.purple-header {
.service-card-num { color: #722ed1; }
border-bottom-color: rgba(114, 46, 209, 0.2);
}
@media (max-width: 1400px) {
.services-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 1200px) {
.services-section {
padding: 40px 100px;
padding: 40px 100px 60px;
}
}
@media (max-width: 900px) {
.services-section {
padding: 30px 40px;
padding: 30px 40px 50px;
}
.services-grid {
grid-template-columns: 1fr;
gap: 16px;
}
.service-card {
padding: 24px;
.breadcrumb-box {
padding: 0 40px;
}
.banner-section {
height: 280px;
}
.banner-title {
font-size: 36px;
}
.banner-subtitle {
font-size: 16px;
}
}
@ -277,98 +392,107 @@ export default {
}
.banner-section {
height: 200px;
height: 220px;
}
.banner-title {
font-size: 32px;
line-height: 44px;
font-size: 28px;
letter-spacing: 1px;
}
.banner-subtitle {
font-size: 14px;
line-height: 22px;
line-height: 1.6;
}
.services-section {
padding: 20px 16px;
padding: 20px 16px 40px;
}
.section-header {
margin-bottom: 24px;
}
.section-title {
font-size: 24px;
}
.section-title-bar {
width: 80px;
height: 6px;
margin-top: -6px;
}
.section-desc {
font-size: 14px;
margin-top: 10px;
}
.services-grid {
gap: 16px;
gap: 12px;
}
.service-card {
.service-card-inner {
padding: 20px;
}
.service-card-icon {
width: 48px;
height: 48px;
margin-bottom: 16px;
span {
font-size: 36px;
}
.service-card-header {
padding-bottom: 14px;
margin-bottom: 14px;
gap: 12px;
}
.service-card-title {
margin-bottom: 8px;
.service-card-num {
font-size: 20px;
}
.service-card-desc {
margin-bottom: 16px;
font-size: 13px;
}
.service-card-buttons {
flex-direction: column;
gap: 8px;
.t-button {
width: 100%;
}
}
}
@media (max-width: 480px) {
.breadcrumb-box {
font-size: 12px;
}
.banner-section {
height: 160px;
}
.banner-title {
font-size: 24px;
line-height: 36px;
}
.banner-subtitle {
font-size: 12px;
}
.services-section {
padding: 16px 12px;
}
.service-card {
padding: 16px;
}
.service-card-icon {
width: 40px;
height: 40px;
span {
font-size: 28px;
}
}
.service-card-title {
font-size: 18px;
}
.service-card-desc {
font-size: 13px;
margin-bottom: 16px;
line-height: 1.6;
}
.service-card-buttons {
gap: 8px;
}
}
@media (max-width: 480px) {
.banner-section {
height: 180px;
}
.banner-title {
font-size: 24px;
}
.banner-subtitle {
font-size: 12px;
}
.services-section {
padding: 16px 12px 30px;
}
.service-card-inner {
padding: 16px;
}
.service-card-num {
font-size: 18px;
}
.service-card-title {
font-size: 16px;
}
.service-card-desc {
font-size: 12px;
margin-bottom: 12px;
}
}
</style>

View File

@ -1,32 +1,5 @@
<template>
<div class="page-box">
<!-- 顶部菜单栏 -->
<!-- <div class="nav-box">
<div class="logo-box">
<img src="@/pages/index/assets/logo-name.png">
</div>
<div class="menu-box">
<div class="menu-title meun-title-active">
<img src="@/pages/index/assets/nav-home.png" width="24px" height="24px">
<span> &nbsp;&nbsp;首页</span>
</div>
<div class="menu-title">碳证中心</div>
<div class="menu-title">服务中心</div>
<div class="menu-title">共性能力</div>
<div class="menu-title">企业出海</div>
<div class="menu-title">行业专题</div>
</div>
<div class="option-box">
<div class="gzt">
<img src="@/pages/index/assets/home-gzt-icon.png" />
<span> 工作台</span>
</div>
<div style="margin-left:20px; cursor: pointer;">激活</div>
<div>|</div>
<div style="cursor: pointer;">登录</div>
</div>
</div> -->
<!-- 主页面 -->
<div class="container">
<!-- 顶部背景轮播 -->
@ -53,6 +26,7 @@
</div>
</div>
<div class="top-search-hot">
<div class="hot-label">热门搜索: </div>
<div class="hot-tag" v-for="(tag, index) in hotSearchTags" :key="index" @click="handleHotSearch(tag)">{{ tag }}</div>
</div>
</div>
@ -100,7 +74,7 @@
<section class="core-section">
<div class="section-container">
<div class="section-title core-title">
<span class="title-bar"></span>
<!-- <span class="title-bar"></span> -->
<span class="title-text">核心驱动</span>
</div>
@ -120,7 +94,6 @@
<div class="section-container capability-container">
<div class="capability-header">
<div class="capability-title-group">
<i class="capability-title-icon"></i>
<div class="capability-title-content">
<h3 class="capability-title-text">共性能力</h3>
<span class="capability-title-bar"></span>
@ -146,7 +119,7 @@
<div class="section-container overseas2-container">
<div class="overseas2-header">
<div class="overseas2-title-group">
<i class="overseas2-title-icon"></i>
<!-- <i class="overseas2-title-icon"></i> -->
<div class="overseas2-title-content">
<h3 class="overseas2-title-text">企业出海</h3>
<span class="overseas2-title-bar"></span>
@ -175,7 +148,6 @@
<div class="section-container news-container">
<div class="news-header">
<div class="news-title-group">
<i class="news-title-icon"></i>
<div class="news-title-content">
<h3 class="news-title-text">行业动态</h3>
<span class="news-title-bar"></span>
@ -209,40 +181,6 @@
</div>
</section>
<!-- 行业动态模块 -->
<!-- <section class="news-section">
<div class="section-container">
<div class="section-title center-title">
<span class="title-bar"></span>
<span class="title-text">行业动态</span>
</div>
<p class="section-subtitle">实时掌握国家政策导向地方实施动态行业发展趋势和平台重要更新</p>
<div class="news-tabs">
<div class="news-tab" :class="{ 'news-tab-active': activeTab === index }" v-for="(tab, index) in newsTabs" :key="index" @click="activeTab = index">
{{ tab }}
</div>
</div>
<div class="news-list">
<div class="news-item" v-for="(item, index) in currentNewsList" :key="index" @click="handleNewsClick(item)">
<img v-if="item.src" :src="item.pic" alt="" class="news-pic" />
<div class="news-content">
<div class="news-content-top">
<div class="news-title">{{ item.title }}</div>
</div>
<div class="news-content-middle">
<img src="@/pages/index/assets/alarm.png" class="news-alarm-icon" />
<span class="news-date">{{ item.date }}</span>
<span v-if="item.remark" class="news-remark">{{ item.remark }}</span>
</div>
<div v-if="item.content" class="news-content-bottom">{{ item.content }}</div>
</div>
</div>
</div>
</div>
</section> -->
<!-- 合作伙伴模块 -->
<section class="partner-section">
<div class="section-container">
@ -332,14 +270,14 @@ export default {
coreList: [
{
name1: '核心底座',
name2: '国家区块链',
desc: '依托国家区块链基础底座,确保每一笔碳数据拥有唯一的"链上基因",实现国家级权威存证与不可篡改。',
name2: '国家区块链网络',
desc: '依托国家区块链网络,确保每一笔碳数据拥有唯一的"链上基因",实现国家级权威存证与不可篡改。',
icon: require('@/pages/index/views/home2/assets/core-base@2x.png')
},
{
name1: '数据引擎',
name2: '全场景可信流通',
desc: '打破碳数据孤岛,支持从生产端到交易端的全链路数据锚定,让碳信用在多场景下实现秒级核验。',
desc: '打破碳数据孤岛,支持从生产端到交易端的全链路数据锚定,让碳数据在多场景下实现秒级核验。',
icon: require('@/pages/index/views/home2/assets/data-engine@2x.png')
},
{
@ -366,9 +304,9 @@ export default {
newsTabs: ['国家政策', '行业资讯', '平台公告'],
newsData: [
[
{ title: '媒体报道 | “十五五”新图景:增绿降碳 加减之间再造万亿级新机遇', pic: require('@/pages/index/assets/news1.png'), date: '2026-03-31', remark: "转载自 www.ndrc.gov.cn", content: "“十五五”规划纲要中提出加快经济社会发展全面绿色转型。当前一场增绿降碳的变革正在重塑我们的生产生活方式持续激发绿色发展动能。粤西海域离岸70公里外水深超50米一场绿色能源的接力正在加紧进行。一场绿色能源的接力正在加紧进行。一场绿色能源的接力正在加紧进行。总台央视记者 刘柏煊全球最大输送容量海上风电项目现在进入开春后的首个集中施工期8艘风机安装船在同步作业超过120米长的……", src: "https://www.ndrc.gov.cn/xwdt/spfg/mtjj/202603/t20260331_1404430.html" },
{ title: '2026年循环经济发展和资源综合利用专项扶持项目开始申报', pic: require('@/pages/index/assets/news2.png'), date: '2026-02-02', remark: "转载自 fgw.sh.gov.cn", content: "根据《上海市循环经济发展和资源综合利用专项扶持办法2021版沪发改规范202113号以下简称《扶持办法》的要求结合上海市“免申即享”相关工作要求为做好2026年循环经济和资源综合利用项目申报工作上海市发展改革委近日发布《上海市发展改革委关于组织申报2026年循环经济发展和资源综合利用专项扶持项目的通知》", src: "https://fgw.sh.gov.cn/fgw_zyjyhhjbh/20260202/dbb80b9041b740da958411f9b3ea7e95.html" },
{ title: '商务部等9部门关于实施绿色消费推进行动的通知', pic: require('@/pages/index/assets/news3.png'), date: '2026-01-04', remark: "转载自 www.gov.cn", content: "各省、自治区、直辖市及计划单列市、新疆生产建设兵团商务、发展改革、工业和信息化、生态环境、住房城乡建设、农业农村、市场监管、金融监管部门,中国人民银行上海总部,各省、自治区、直辖市及计划单列市分行:为深入贯彻党的二十大和二十届历次全会精神,落实《中共中央 国务院关于加快经济社会发展全面绿色转型的意见》和中共中央办公厅、国务院办公厅印发的《提振消费专项行动方案》要求,加快发展方式和……", src: "https://www.gov.cn/zhengce/zhengceku/202601/content_7053876.htm" },
{ title: '媒体报道 | “十五五”新图景:增绿降碳 加减之间再造万亿级新机遇', pic: require('@/pages/index/assets/news1.png'), date: '2026-03-31', remark: "转载自 中华人民共和国国家发展和改革委员会", content: "“十五五”规划纲要中提出加快经济社会发展全面绿色转型。当前一场增绿降碳的变革正在重塑我们的生产生活方式持续激发绿色发展动能。粤西海域离岸70公里外水深超50米一场绿色能源的接力正在加紧进行。一场绿色能源的接力正在加紧进行。一场绿色能源的接力正在加紧进行。总台央视记者 刘柏煊全球最大输送容量海上风电项目现在进入开春后的首个集中施工期8艘风机安装船在同步作业超过120米长的……", src: "https://www.ndrc.gov.cn/xwdt/spfg/mtjj/202603/t20260331_1404430.html" },
{ title: '2026年循环经济发展和资源综合利用专项扶持项目开始申报', pic: require('@/pages/index/assets/news2.png'), date: '2026-02-02', remark: "转载自 上海市发展和改革委员会", content: "根据《上海市循环经济发展和资源综合利用专项扶持办法2021版沪发改规范202113号以下简称《扶持办法》的要求结合上海市“免申即享”相关工作要求为做好2026年循环经济和资源综合利用项目申报工作上海市发展改革委近日发布《上海市发展改革委关于组织申报2026年循环经济发展和资源综合利用专项扶持项目的通知》", src: "https://fgw.sh.gov.cn/fgw_zyjyhhjbh/20260202/dbb80b9041b740da958411f9b3ea7e95.html" },
{ title: '商务部等9部门关于实施绿色消费推进行动的通知', pic: require('@/pages/index/assets/news3.png'), date: '2026-01-04', remark: "转载自 中华人民共和国中央人民政府", content: "各省、自治区、直辖市及计划单列市、新疆生产建设兵团商务、发展改革、工业和信息化、生态环境、住房城乡建设、农业农村、市场监管、金融监管部门,中国人民银行上海总部,各省、自治区、直辖市及计划单列市分行:为深入贯彻党的二十大和二十届历次全会精神,落实《中共中央 国务院关于加快经济社会发展全面绿色转型的意见》和中共中央办公厅、国务院办公厅印发的《提振消费专项行动方案》要求,加快发展方式和……", src: "https://www.gov.cn/zhengce/zhengceku/202601/content_7053876.htm" },
],
[
{
@ -784,9 +722,11 @@ export default {
}
.hot-label {
color: #fff;
color: #003B1A;
font-weight: bold;
}
.hot-tag {
background: rgba(255, 255, 255, 0.6);
border-radius: 12px;
@ -896,6 +836,20 @@ export default {
.hero-card .card-btn:hover {
transform: scale(1.02);
/* font-weight: 700; */
box-shadow: 0 4px 12px rgba(127, 210, 255, 0.5);
}
.blue-card .card-btn:hover {
box-shadow: 0 4px 16px rgba(127, 210, 255, 0.6);
}
.cyan-card .card-btn:hover {
box-shadow: 0 4px 16px rgba(255, 255, 255, 0.5);
}
.green-card .card-btn:hover {
box-shadow: 0 4px 16px rgba(107, 255, 204, 0.6);
}
.blue-card .card-header {
@ -976,11 +930,11 @@ export default {
}
.section-title.core-title {
background-image: url('~@/pages/index/views/home2/assets/core_driver_title_icon.svg');
background-repeat: no-repeat;
background-position: left center;
padding-left: 44px;
background-size: 32px 32px;
/* background-image: url('~@/pages/index/views/home2/assets/core_driver_title_icon.svg'); */
/* background-repeat: no-repeat; */
/* background-position: left center; */
/* padding-left: 44px; */
/* background-size: 32px 32px; */
position: relative;
}
@ -989,7 +943,7 @@ export default {
position: absolute;
bottom: 3px;
z-index: 9;
left: 44px;
/* left: 44px; */
width: 128px;
height: 8px;
background: rgba(0, 185, 107, 0.6);
@ -1123,7 +1077,7 @@ export default {
.capability-title-content {
display: flex;
flex-direction: column;
align-items: flex-start;
align-items: center;
}
.capability-title-text {
@ -1148,7 +1102,7 @@ export default {
font-size: 24px;
font-weight: 500;
color: #666;
margin: 8px 0 0 0;
margin: 2px 0 0 0;
line-height: 40px;
}
@ -1212,7 +1166,9 @@ export default {
/* ==================== 企业出海模块(新样式) ==================== */
.overseas2-section {
position: relative;
/* position: relative; */
position:sticky;
top: 64px;
padding: 80px 0;
overflow: hidden;
background-image: url('~@/pages/index/assets/qych-bg.png');
@ -1249,7 +1205,7 @@ export default {
.overseas2-title-content {
display: flex;
flex-direction: column;
align-items: flex-start;
align-items: center;
}
.overseas2-title-text {
@ -1274,7 +1230,7 @@ export default {
font-size: 24px;
font-weight: 500;
color: #666;
margin: 8px 0 0 0;
margin: 2px 0 0 0;
line-height: 40px;
}
@ -1397,7 +1353,7 @@ export default {
.news-title-content {
display: flex;
flex-direction: column;
align-items: flex-start;
align-items: center;
}
.news-title-text {
@ -1431,6 +1387,14 @@ export default {
border-radius: 24px;
color: #666666;
padding: 8px 20px;
cursor: pointer;
transition: all 0.3s ease;
&:hover {
background: rgba(0, 185, 107, 0.25);
color: #333;
transform: scale(1.05);
}
}
.news-tab-active {
@ -1621,6 +1585,7 @@ export default {
/* ==================== 合作伙伴模块 ==================== */
.partner-section {
position: relative;
background: #f5f7fa;
padding: 80px 0;
overflow: hidden;
@ -1790,6 +1755,7 @@ export default {
}
.bottom-box {
position: relative;
width: 100%;
height: 539px;
@ -2039,11 +2005,6 @@ export default {
margin-top: -10px;
}
.capability-desc {
font-size: 16px;
text-align: center;
line-height: 24px;
}
.capability-grid {
grid-template-columns: 1fr;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 MiB

View File

@ -1,3 +0,0 @@
<svg width="27" height="27" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.5 0C14.2456 0 14.85 0.604422 14.85 1.35C14.85 2.09558 14.2456 2.7 13.5 2.7C7.53532 2.7 2.7 7.53532 2.7 13.5C2.7 19.4647 7.53532 24.3 13.5 24.3C19.4647 24.3 24.3 19.4647 24.3 13.5C24.3 12.7544 24.9044 12.15 25.65 12.15C26.3956 12.15 27 12.7544 27 13.5C27 20.9558 20.9558 27 13.5 27C6.04415 27 0 20.9558 0 13.5C0 6.04415 6.04415 0 13.5 0ZM13.5 5.4C14.2456 5.4 14.85 6.00442 14.85 6.75C14.85 7.49557 14.2456 8.09999 13.5 8.09999C10.5177 8.09999 8.09999 10.5177 8.09999 13.5C8.09999 16.4823 10.5177 18.9 13.5 18.9C16.4823 18.9 18.9 16.4823 18.9 13.5C18.9 12.7544 19.5044 12.15 20.25 12.15C20.9956 12.15 21.6 12.7544 21.6 13.5C21.6 17.9735 17.9735 21.6 13.5 21.6C9.02648 21.6 5.4 17.9735 5.4 13.5C5.4 9.02648 9.02648 5.4 13.5 5.4ZM22.3712 0.135796C22.744 0.13581 23.0461 0.438061 23.0462 0.810796V3.28008C23.0466 3.65246 23.3488 3.95369 23.7212 3.95376H26.1892C26.5618 3.95376 26.8639 4.25621 26.8642 4.62875V5.86406L24.3144 8.41376C23.8083 8.9197 23.1212 9.20462 22.4055 9.20478H19.7055L14.4544 14.4544C13.9273 14.9815 13.0727 14.9816 12.5455 14.4544C12.0186 13.9273 12.0185 13.0726 12.5455 12.5455L17.7965 7.2958V4.5958C17.7965 3.88005 18.0803 3.1931 18.5862 2.68681L21.1372 0.135796H22.3712Z" fill="#222222"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 821 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 994 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

View File

@ -1,180 +0,0 @@
<template>
<footer class="footer">
<div class="footer-container">
<!-- 上部信息区 -->
<div class="footer-top">
<div class="footer-column footer-column-1">
<div class="column-title">指导单位</div>
<div class="column-content">
<p>中国钢铁工业协会</p>
<p>中国石油和化学工业联合会</p>
<p>中国建筑材料联合会</p>
</div>
</div>
<div class="footer-column footer-column-2">
<div class="column-title">联系我们</div>
<div class="column-content">
<p>客服电话400-888-8888</p>
<p>商务合作business@tanxin.com</p>
<p>公司地址北京市朝阳区建国路88号</p>
</div>
</div>
<div class="footer-column footer-column-3">
<div class="column-title">微信公众号</div>
<div class="qrcode-box">
<div class="qrcode"></div>
</div>
</div>
<div class="footer-column footer-column-4">
<div class="column-title">快捷链接</div>
<div class="column-content footer-links">
<div class="link-item" @click="goPage('/home3')">首页</div>
<div class="link-item" @click="goPage('/qych')">企业出海</div>
<div class="link-item" @click="goPage('/hyzt')">行业专题</div>
<div class="link-item" @click="goPage('/tfwsc')">服务中心</div>
</div>
</div>
</div>
<!-- 下部版权信息 -->
<div class="footer-bottom">
<div class="footer-bottom-content">
<p class="copyright">Copyright © 2024 可信碳信息网 版权所有</p>
<p class="icp">京ICP备12345678号-1</p>
</div>
</div>
</div>
</footer>
</template>
<script>
export default {
name: 'Footer',
methods: {
goPage(path) {
if (path.startsWith('/')) {
this.$router.push(path);
} else {
window.location.href = path;
}
}
}
};
</script>
<style lang="less" scoped>
.footer {
background: #1a1a2e;
color: #fff;
padding: 60px 0 30px;
}
.footer-container {
max-width: 1400px;
margin: 0 auto;
padding: 0 40px;
}
.footer-top {
display: grid;
grid-template-columns: 1.2fr 1.5fr 1fr 1fr;
gap: 60px;
padding-bottom: 50px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-column {
.column-title {
font-size: 18px;
font-weight: 600;
margin-bottom: 20px;
padding-left: 12px;
border-left: 3px solid #00b42a;
color: #fff;
}
.column-content {
p {
font-size: 14px;
color: rgba(255, 255, 255, 0.7);
line-height: 28px;
margin: 0;
}
}
.qrcode-box {
.qrcode {
width: 120px;
height: 120px;
background: rgba(255, 255, 255, 0.1);
border-radius: 8px;
}
}
&.footer-links {
.link-item {
font-size: 14px;
color: rgba(255, 255, 255, 0.7);
line-height: 32px;
cursor: pointer;
transition: color 0.3s ease;
&:hover {
color: #00b42a;
}
}
}
}
.footer-bottom {
padding-top: 30px;
}
.footer-bottom-content {
text-align: center;
.copyright {
font-size: 14px;
color: rgba(255, 255, 255, 0.5);
margin: 0 0 8px 0;
}
.icp {
font-size: 12px;
color: rgba(255, 255, 255, 0.3);
margin: 0;
}
}
//
@media (max-width: 1024px) {
.footer-top {
grid-template-columns: repeat(2, 1fr);
gap: 40px;
}
}
@media (max-width: 768px) {
.footer-container {
padding: 0 20px;
}
.footer-top {
grid-template-columns: 1fr;
gap: 30px;
padding-bottom: 30px;
}
.footer-column {
.qrcode-box {
.qrcode {
width: 100px;
height: 100px;
}
}
}
}
</style>

View File

@ -1,351 +0,0 @@
<template>
<nav class="navbar" :class="{ 'navbar-scrolled': isScrolled }">
<div class="navbar-container">
<!-- 左侧Logo + 标题 -->
<div class="navbar-left">
<div class="logo">
<img src="@/pages/index/assets/logo.png" alt="可信碳信息网" class="logo-icon" />
<img src="@/pages/index/assets/logo-name.png" alt="可信碳信息网" class="logo-img" />
</div>
</div>
<!-- 中间菜单 -->
<div class="navbar-menu">
<div
v-for="(item, index) in menuItems"
:key="index"
class="menu-item"
:class="{ 'menu-item-active': activeMenu === item.name, 'menu-item-home': index === 0 }"
@click="handleMenuClick(item)"
>
<img v-if="index === 0" src="@/pages/index/assets/nav-home.png" alt="" class="menu-icon" />
{{ item.name }}
</div>
</div>
<!-- 右侧工作台 + 登录 -->
<div class="navbar-right">
<div class="workbench-btn" @click="goWorkbench">
<img src="@/pages/index/assets/home-gzt-icon.png" alt="" class="gzt-icon" />
<span>工作台</span>
</div>
<div class="login-btn" @click="goLogin">
{{ isLoggedIn ? '用户中心' : '激活 | 登录' }}
</div>
</div>
<!-- 移动端菜单按钮 -->
<div class="mobile-menu-btn" @click="toggleMobileMenu">
<div class="hamburger" :class="{ 'hamburger-open': mobileMenuOpen }">
<span></span>
<span></span>
<span></span>
</div>
</div>
</div>
<!-- 移动端菜单 -->
<div class="mobile-menu" :class="{ 'mobile-menu-open': mobileMenuOpen }">
<div class="mobile-menu-content">
<div
v-for="(item, index) in menuItems"
:key="index"
class="mobile-menu-item"
@click="handleMenuClick(item)"
>
{{ item.name }}
</div>
<div class="mobile-menu-divider"></div>
<div class="mobile-menu-item" @click="goWorkbench">工作台</div>
<div class="mobile-menu-item" @click="goLogin">{{ isLoggedIn ? '用户中心' : '激活' }}</div>
</div>
</div>
</nav>
</template>
<script>
export default {
name: 'NavBar',
data() {
return {
isScrolled: false,
mobileMenuOpen: false,
activeMenu: '首页',
isLoggedIn: false,
menuItems: [
{ name: '首页', path: '/home3' },
{ name: '碳证中心', path: '/home3' },
{ name: '服务中心', path: '/home3' },
{ name: '共性能力', path: '/home3' },
{ name: '企业出海', path: '/qych' },
{ name: '行业专题', path: '/hyzt' }
]
};
},
mounted() {
window.addEventListener('scroll', this.handleScroll);
this.checkLoginStatus();
},
beforeDestroy() {
window.removeEventListener('scroll', this.handleScroll);
},
methods: {
handleScroll() {
this.isScrolled = window.scrollY > 20;
},
toggleMobileMenu() {
this.mobileMenuOpen = !this.mobileMenuOpen;
},
handleMenuClick(item) {
this.activeMenu = item.name;
this.mobileMenuOpen = false;
if (item.path.startsWith('/')) {
this.$router.push(item.path);
} else {
window.location.href = item.path;
}
},
goWorkbench() {
this.mobileMenuOpen = false;
this.$router.push('/yhzx/gzt');
},
goLogin() {
this.mobileMenuOpen = false;
if (this.isLoggedIn) {
this.$router.push('/yhzx');
} else {
window.location.href = '/view/mhzc/login';
}
},
checkLoginStatus() {
const sfdl = window.sessionStorage.getItem('sfdl');
this.isLoggedIn = !!sfdl;
}
}
};
</script>
<style lang="less" scoped>
.navbar {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
background: rgba(255, 255, 255, 0.6);
backdrop-filter: blur(20px);
border-bottom: 1px solid #fff;
border-radius: 0 0 12px 12px;
transition: all 0.3s ease;
&.navbar-scrolled {
background: rgba(255, 255, 255, 0.98);
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}
}
.navbar-container {
max-width: 1440px;
margin: 0 auto;
height: 64px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 120px;
}
.navbar-left {
display: flex;
align-items: center;
gap: 12px;
.logo {
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
.logo-icon {
width: 32px;
height: 32px;
border-radius: 100px;
overflow: hidden;
}
.logo-img {
height: 34px;
width: auto;
}
}
}
.navbar-menu {
display: flex;
align-items: center;
gap: 16px;
.menu-item {
padding: 0 8px;
height: 64px;
font-size: 16px;
font-weight: 400;
color: #003B1A;
cursor: pointer;
transition: all 0.3s ease;
display: flex;
align-items: center;
justify-content: center;
position: relative;
&.menu-item-active {
font-weight: 500;
}
}
.menu-item:first-child {
background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);
border-bottom: 3px solid #fff;
padding: 0;
width: 96px;
gap: 10px;
&.menu-item-active {
border-bottom: 3px solid #003B1A;
}
.menu-icon {
width: 24px;
height: 24px;
}
}
}
.navbar-right {
display: flex;
align-items: center;
gap: 24px;
.workbench-btn {
display: flex;
align-items: center;
gap: 10px;
padding: 8px 10px;
background: rgba(255, 255, 255, 0.4);
border-radius: 4px;
cursor: pointer;
transition: all 0.3s ease;
color: #003B1A;
font-size: 16px;
.gzt-icon {
width: 24px;
height: 24px;
}
}
.login-btn {
cursor: pointer;
color: #003B1A;
font-size: 16px;
font-weight: 400;
transition: color 0.3s ease;
&:hover {
color: #00b42a;
}
}
}
.mobile-menu-btn {
display: none;
padding: 8px;
.hamburger {
width: 24px;
height: 18px;
display: flex;
flex-direction: column;
justify-content: space-between;
span {
display: block;
width: 100%;
height: 2px;
background: #333;
border-radius: 1px;
transition: all 0.3s ease;
}
&.hamburger-open {
span:nth-child(1) {
transform: rotate(45deg) translate(5px, 5px);
}
span:nth-child(2) {
opacity: 0;
}
span:nth-child(3) {
transform: rotate(-45deg) translate(6px, -6px);
}
}
}
}
.mobile-menu {
display: none;
position: fixed;
top: 64px;
left: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 0.98);
backdrop-filter: blur(12px);
z-index: 999;
opacity: 0;
visibility: hidden;
transition: all 0.3s ease;
&.mobile-menu-open {
opacity: 1;
visibility: visible;
}
.mobile-menu-content {
padding: 20px;
.mobile-menu-item {
padding: 16px;
font-size: 18px;
color: #333;
border-bottom: 1px solid #eee;
cursor: pointer;
&:hover {
color: #00b42a;
}
}
.mobile-menu-divider {
height: 20px;
}
}
}
//
@media (max-width: 1024px) {
.navbar-menu {
display: none;
}
.navbar-right {
display: none;
}
.mobile-menu-btn {
display: block;
}
.mobile-menu {
display: block;
}
}
</style>

View File

@ -1,73 +0,0 @@
# Figma设计稿结构
| 字段 | 值 |
|------|-----|
| 文件Key | pAhXcxXvsz0xswPn817sFf |
| Node ID | 2345-106 |
| Root ID | 2345:106 |
| Root Name | 001 |
| Root Type | FRAME |
| 子节点数量 | 58 |
## 页面节点列表
| 序号 | Node ID | 类型 | 名称/内容 |
|------|---------|------|---------|
| 1 | 2345:107 | GROUP | Group 7 |
| 2 | 2345:116 | RECTANGLE | Rectangle 118 |
| 3 | 2345:123 | RECTANGLE | 轮播图2 |
| 4 | 2345:125 | RECTANGLE | Rectangle 83 |
| 5 | 2345:160 | FRAME | Frame 124 |
| 6 | 2345:171 | TEXT | 可信碳信息网 |
| 7 | 2345:172 | TEXT | 让中国的每一个碳都拥有独一无二的可信数字身份 |
| 8 | 2345:173 | FRAME | Frame 97 |
| 9 | 2345:177 | RECTANGLE | Rectangle 84 |
| 10 | 2345:178 | TEXT | 依托块链网络基础底座上海枢纽,确保每一笔碳数据拥有唯一的“链上基因”,实现国家级 |
| 11 | 2345:179 | TEXT | 为企业构建唯一的链上“身份”,集成资质核验证、资产托管与信用评级,打造绿色经济的 |
| 12 | 2345:180 | TEXT | 打破碳数据孤岛,支持从生产端到交易端的全链路数据锚定,让碳信用在多场景下实现秒级 |
| 13 | 2345:181 | TEXT | 服务企业出海、国际互认。直击跨境合规与碳交易撮合痛点,通过智能合约实现供需精准匹 |
| 14 | 2345:182 | GROUP | Group 12 |
| 15 | 2345:187 | RECTANGLE | Rectangle 80 |
| 16 | 2345:188 | RECTANGLE | Rectangle 86 |
| 17 | 2345:189 | FRAME | Frame 85 |
| 18 | 2345:191 | FRAME | Frame 87 |
| 19 | 2345:193 | FRAME | Frame 86 |
| 20 | 2345:195 | FRAME | Frame 88 |
| 21 | 2345:197 | RECTANGLE | Rectangle 81 |
| 22 | 2345:198 | RECTANGLE | Rectangle 87 |
| 23 | 2345:199 | RECTANGLE | Rectangle 82 |
| 24 | 2345:200 | RECTANGLE | Rectangle 88 |
| 25 | 2345:201 | TEXT | 碳数字身份证 |
| 26 | 2345:202 | TEXT | 国家可信碳链 |
| 27 | 2345:203 | TEXT | 绿色服务 |
| 28 | 2345:204 | FRAME | Frame 89 |
| 29 | 2345:206 | FRAME | Frame 93 |
| 30 | 2345:208 | FRAME | Frame 90 |
| 31 | 2345:210 | FRAME | Frame 94 |
| 32 | 2345:212 | FRAME | Frame 91 |
| 33 | 2345:214 | FRAME | Frame 95 |
| 34 | 2345:216 | FRAME | Frame 92 |
| 35 | 2345:218 | FRAME | Frame 96 |
| 36 | 2345:220 | GROUP | Group 5 |
| 37 | 2345:262 | RECTANGLE | 4 1 |
| 38 | 2345:263 | RECTANGLE | 3 1 |
| 39 | 2345:264 | RECTANGLE | 2 27 |
| 40 | 2345:265 | RECTANGLE | 1 9 |
| 41 | 2345:266 | FRAME | Frame 136 |
| 42 | 2345:268 | FRAME | Frame 138 |
| 43 | 2345:270 | FRAME | Frame 139 |
| 44 | 2345:272 | FRAME | Frame 137 |
| 45 | 2345:274 | TEXT | 国家区块链上海枢纽 |
| 46 | 2345:275 | TEXT | 碳数字身份体系 |
| 47 | 2345:276 | TEXT | 碳信用--碳数据 |
| 48 | 2345:277 | TEXT | 精准服务企业走出去 |
| 49 | 2345:278 | GROUP | Group 11 |
| 50 | 2345:319 | GROUP | Group 16 |
| 51 | 2345:384 | GROUP | Group 17 |
| 52 | 2345:417 | FRAME | 导航栏 |
| 53 | 2345:452 | RECTANGLE | cb80bb64c553e5f5 1 |
| 54 | 2345:453 | RECTANGLE | cb80bb64c553e5f5 2 |
| 55 | 2345:454 | RECTANGLE | cb80bb64c553e5f5 3 |
| 56 | 2345:455 | RECTANGLE | cb80bb64c553e5f5 4 |
| 57 | 2345:456 | GROUP | Group 21 |
| 58 | 2345:460 | RECTANGLE | cb80bb64c553e5f5 2 |

File diff suppressed because it is too large Load Diff

View File

@ -286,26 +286,26 @@ module.exports = {
// 会误伤 SPA 路由 /view/mhzc/...,刷新时整页请求被转发到后端导致 Proxy error。必须用 ^ 限定为路径前缀。
proxy: {
'^/sso': {
target: 'http://localhost:9301',
// target: 'http://carbon.liantu.tech',
// target: 'http://localhost:9301',
target: 'http://carbon.liantu.tech',
// target: 'http://10.23.20.13:94/',
changeOrigin: true,
},
'^/mhzc': {
target: 'http://localhost:9302',
// target: 'http://carbon.liantu.tech',
// target: 'http://localhost:9302',
target: 'http://carbon.liantu.tech',
// target: 'http://10.23.20.13:94/',
changeOrigin: true,
},
'^/gxzx': {
target: 'http://localhost:9303',
// target: 'http://carbon.liantu.tech',
// target: 'http://localhost:9303',
target: 'http://carbon.liantu.tech',
// target: 'http://10.23.20.13:94/',
changeOrigin: true,
},
'^/yygl': {
target: 'http://localhost:20010',
// target: 'http://carbon.liantu.tech',
// target: 'http://localhost:20010',
target: 'http://carbon.liantu.tech',
// target: 'http://10.23.20.13:94/',
changeOrigin: true,
},