feat: 创建服务中心引导页

创建 src/pages/index/views/fwsc/index.vue,实现:
- 使用 NewNav 组件作为顶部导航
- 当前位置导航:首页 / 服务中心
- Banner 区:大标题 + 副标题
- 四大服务入口卡片(2x2 Grid 布局)
- 使用 Footer 组件
- 实现路由跳转到各子市场

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
liulujian 2026-04-03 16:29:25 +08:00
parent af2a4e822d
commit 0de9cb3a3f

View File

@ -0,0 +1,251 @@
<template>
<div class="fwsc-page">
<NewNav />
<div class="main-content">
<!-- 当前位置导航 -->
<div class="breadcrumb-box">
<span class="breadcrumb-text">当前位置</span>
<span class="breadcrumb-link" @click="goHome">首页</span>
<span class="breadcrumb-separator">/</span>
<span class="breadcrumb-current">服务中心</span>
</div>
<!-- Banner -->
<div class="banner-section">
<div class="banner-content">
<h1 class="banner-title">可信碳服务中心</h1>
<p class="banner-subtitle">链接全球碳资产赋能绿色价值链一站式解决碳服务撮合绿色交易与金融对接需求</p>
</div>
</div>
<!-- 四大服务入口卡片 -->
<div class="services-section">
<div class="services-grid">
<!-- 碳服务市场 -->
<div class="service-card" @click="goToPage('/fwsc/fwsc')">
<div class="service-card-icon">
<img src="@/pages/index/assets/fwsc-fwsc.png" alt="碳服务市场" />
</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('/fwsc/fwsc')">浏览供给信息</t-button>
<t-button theme="primary" @click.stop="goToPage('/fwsc/fwsc')">我要入驻</t-button>
</div>
</div>
<!-- 碳需求市场 -->
<div class="service-card" @click="goToPage('/fwsc/xqsc')">
<div class="service-card-icon">
<img src="@/pages/index/assets/fwsc-xqsc.png" alt="碳需求市场" />
</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('/fwsc/xqsc')">浏览求购信息</t-button>
<t-button theme="primary" @click.stop="goToPage('/fwsc/xqsc')">我要发布需求</t-button>
</div>
</div>
<!-- 碳金融市场 -->
<div class="service-card" @click="goToPage('/fwsc/jrsc')">
<div class="service-card-icon">
<img src="@/pages/index/assets/fwsc-jrsc.png" alt="碳金融市场" />
</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('/fwsc/jrsc')">查看金融产品</t-button>
<t-button theme="primary" @click.stop="goToPage('/fwsc/jrsc')">金融机构入驻</t-button>
</div>
</div>
<!-- 碳数据市场 -->
<div class="service-card" @click="goToPage('/fwsc/sjsc')">
<div class="service-card-icon">
<img src="@/pages/index/assets/fwsc-sjsc.png" alt="碳数据市场" />
</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('/fwsc/sjsc')">进入交易大厅</t-button>
<t-button theme="primary" @click.stop="goToPage('/fwsc/sjsc')">我要卖碳</t-button>
</div>
</div>
</div>
</div>
</div>
<Footer />
</div>
</template>
<script>
import NewNav from '@/pages/index/components/new-nav/index.vue';
import Footer from '@/pages/index/components/footer/index.vue';
export default {
name: 'FwscIndex',
components: {
NewNav,
Footer
},
methods: {
goHome() {
this.$router.push('/view/mhzc/home');
},
goToPage(path) {
this.$router.push(path);
}
}
};
</script>
<style lang="less" scoped>
.fwsc-page {
min-height: 100vh;
background: #f5f5f5;
}
.main-content {
padding-top: 64px;
}
//
.breadcrumb-box {
display: flex;
align-items: center;
height: 48px;
padding: 0 200px;
background: #fff;
border-bottom: 1px solid #eee;
}
.breadcrumb-text {
font-size: 14px;
color: #666;
}
.breadcrumb-link {
font-size: 14px;
color: #009a29;
cursor: pointer;
transition: color 0.3s;
}
.breadcrumb-link:hover {
color: #007a1f;
}
.breadcrumb-separator {
margin: 0 8px;
font-size: 14px;
color: #999;
}
.breadcrumb-current {
font-size: 14px;
color: #333;
}
// Banner
.banner-section {
display: flex;
align-items: center;
justify-content: center;
height: 280px;
background: linear-gradient(135deg, #009a29 0%, #4caf50 100%);
text-align: center;
}
.banner-content {
max-width: 800px;
padding: 0 20px;
}
.banner-title {
font-size: 48px;
font-weight: 600;
line-height: 64px;
letter-spacing: 0;
color: #fff;
margin-bottom: 16px;
}
.banner-subtitle {
font-size: 18px;
font-weight: 400;
line-height: 28px;
letter-spacing: 0;
color: rgba(255, 255, 255, 0.9);
}
//
.services-section {
padding: 60px 200px;
}
.services-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 24px;
max-width: 1200px;
margin: 0 auto;
}
.service-card {
display: flex;
flex-direction: column;
padding: 32px;
background: #fff;
border-radius: 12px;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
cursor: pointer;
transition: all 0.3s ease;
&:hover {
transform: scale(1.02);
box-shadow: 0 8px 24px rgba(0, 154, 41, 0.15);
}
}
.service-card-icon {
width: 64px;
height: 64px;
margin-bottom: 20px;
img {
width: 100%;
height: 100%;
object-fit: contain;
}
}
.service-card-title {
font-size: 24px;
font-weight: 600;
line-height: 32px;
letter-spacing: 0;
color: #1a1a1a;
margin-bottom: 12px;
}
.service-card-desc {
font-size: 14px;
font-weight: 400;
line-height: 22px;
letter-spacing: 0;
color: #666;
margin-bottom: 24px;
flex-grow: 1;
}
.service-card-buttons {
display: flex;
gap: 12px;
.t-button {
flex: 1;
}
}
</style>