460 lines
11 KiB
Vue
460 lines
11 KiB
Vue
<template>
|
||
<div class="fwsc-page portal-page-shell portal-landing-figma-page">
|
||
<div class="portal-figma-scale-viewport">
|
||
<div class="portal-figma-scale-stage" ref="figmaStage">
|
||
<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>
|
||
<!-- <img src="@/pages/index/assets/home-top-title.png"> -->
|
||
<p class="banner-subtitle">链接全球碳资产,赋能绿色价值链。一站式解决碳服务撮合、绿色交易与金融对接需求。</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 四大服务入口卡片 -->
|
||
<div class="services-section page-content-wrap">
|
||
<!-- <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-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-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('/tsjsc')">
|
||
<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 class="service-card" @click="goToPage()">
|
||
<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="default" variant="base" @click.stop="goToPage()">查看金融产品</t-button>
|
||
<!-- <t-button theme="primary" @click.stop="goToPage('/tjrsc')">金融机构入驻</t-button> -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import portalFigmaScaleMixin from '@/pages/index/utils/portal-figma-scale-mixin';
|
||
|
||
export default {
|
||
name: 'FwscIndex',
|
||
mixins: [portalFigmaScaleMixin],
|
||
methods: {
|
||
goHome() {
|
||
this.$router.push('/view/mhzc/home');
|
||
},
|
||
goToPage(path) {
|
||
if (path) {
|
||
this.$router.push(path);
|
||
} else {
|
||
this.$message.info('敬请期待');
|
||
}
|
||
}
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style lang="less" scoped>
|
||
@import '../../styles/home-figma-variables.less';
|
||
@import '../../styles/portal-landing-cards.less';
|
||
.fwsc-page {
|
||
background: #f6f7fa;
|
||
.portal-figma-scale-page();
|
||
}
|
||
|
||
// Banner 区 — 背景限定在 350px 标题区内
|
||
.banner-section {
|
||
position: relative;
|
||
z-index: 1;
|
||
display: flex;
|
||
height: @portal-landing-banner-height;
|
||
background: linear-gradient(135deg, #003B1A 0%, #009a29 40%, #00d87d 100%);
|
||
align-items: center;
|
||
justify-content: center;
|
||
overflow: hidden;
|
||
|
||
&::before {
|
||
content: '';
|
||
position: absolute;
|
||
inset: 0;
|
||
background: url('~@/pages/index/assets/home-top-bg1.jpg') center/cover no-repeat;
|
||
}
|
||
|
||
&::after {
|
||
content: '';
|
||
position: absolute;
|
||
right: 0;
|
||
bottom: 0;
|
||
left: 0;
|
||
height: @portal-landing-cards-overlap;
|
||
background: linear-gradient(180deg, transparent, rgba(245, 247, 250, 0.85));
|
||
}
|
||
}
|
||
|
||
.banner-content {
|
||
position: relative;
|
||
z-index: 1;
|
||
max-width: 900px;
|
||
padding: 0 40px;
|
||
text-align: center;
|
||
}
|
||
|
||
.banner-title {
|
||
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);
|
||
color: #204a0b;
|
||
}
|
||
|
||
.banner-subtitle {
|
||
font-size: 20px;
|
||
font-weight: 400;
|
||
line-height: 1.8;
|
||
// color: rgba(255, 255, 255, 0.95);
|
||
color: #0A4A17;
|
||
text-shadow: 0 0 1px #ffffff, 0 0 3px #ffffff, 0 0 6px #ffffff, 0 0 10px #ffffff;
|
||
}
|
||
|
||
// 四大服务入口(负 margin 与 Banner 底部衔接,移动端在断点内减弱避免压住标题区)
|
||
.services-section {
|
||
position: relative;
|
||
z-index: 2;
|
||
|
||
.portal-landing-card-shell();
|
||
}
|
||
|
||
.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;
|
||
width: 100%;
|
||
grid-template-columns: repeat(var(--portal-services-fwsc-cols, 4), minmax(0, 1fr));
|
||
gap: var(--portal-services-grid-gap, 24px);
|
||
max-width: var(--portal-services-grid-max, var(--page-content-max-width, 1200px));
|
||
margin: 0 auto;
|
||
box-sizing: border-box;
|
||
align-items: stretch;
|
||
}
|
||
|
||
.service-card {
|
||
cursor: pointer;
|
||
border-radius: 16px;
|
||
overflow: hidden;
|
||
background: #fff;
|
||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
|
||
transition: all 0.3s ease;
|
||
box-sizing: border-box;
|
||
|
||
&:hover {
|
||
transform: translateY(-8px);
|
||
box-shadow: 0 12px 32px rgba(0, 154, 41, 0.15);
|
||
}
|
||
}
|
||
|
||
.service-card-header {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 16px;
|
||
}
|
||
|
||
.service-card-num {
|
||
font-size: 28px;
|
||
font-weight: 700;
|
||
opacity: 0.3;
|
||
}
|
||
|
||
.service-card-title {
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
line-height: 1.35;
|
||
color: #1a1a1a;
|
||
margin: 0;
|
||
}
|
||
|
||
.service-card-desc {
|
||
position: relative;
|
||
z-index: 1;
|
||
font-size: 14px;
|
||
font-weight: 400;
|
||
line-height: 1.8;
|
||
color: #666;
|
||
}
|
||
|
||
.service-card-buttons {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 10px;
|
||
|
||
.t-button {
|
||
width: 100%;
|
||
height: @hyzt-landing-card-btn-h;
|
||
}
|
||
}
|
||
|
||
// 头部颜色变体
|
||
.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: 900px) {
|
||
.services-section {
|
||
.portal-landing-card-shell-reset();
|
||
}
|
||
|
||
.breadcrumb-box {
|
||
padding: 0 var(--page-gutter-x);
|
||
}
|
||
|
||
.banner-section {
|
||
height: 280px;
|
||
}
|
||
|
||
.banner-title {
|
||
font-size: 36px;
|
||
}
|
||
|
||
.banner-subtitle {
|
||
font-size: 16px;
|
||
}
|
||
}
|
||
|
||
@media (max-width: 768px) {
|
||
.breadcrumb-box {
|
||
height: 40px;
|
||
padding: 0 16px;
|
||
}
|
||
|
||
.banner-section {
|
||
height: auto;
|
||
min-height: 200px;
|
||
padding: 32px 16px 56px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.banner-content {
|
||
max-width: 100%;
|
||
padding: 0;
|
||
}
|
||
|
||
.banner-title {
|
||
margin-bottom: 12px;
|
||
font-size: 28px;
|
||
letter-spacing: 1px;
|
||
}
|
||
|
||
.banner-subtitle {
|
||
font-size: 14px;
|
||
line-height: 1.6;
|
||
}
|
||
|
||
.services-section {
|
||
padding-left: var(--page-gutter-x, 16px);
|
||
padding-right: var(--page-gutter-x, 16px);
|
||
.portal-landing-card-shell-reset();
|
||
}
|
||
|
||
.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;
|
||
}
|
||
|
||
.service-card-inner {
|
||
padding: 20px;
|
||
}
|
||
|
||
.service-card-header {
|
||
flex-direction: column;
|
||
align-items: flex-start;
|
||
padding-bottom: 12px;
|
||
margin-bottom: 12px;
|
||
gap: 8px;
|
||
}
|
||
|
||
.service-card-num {
|
||
font-size: 20px;
|
||
}
|
||
|
||
.service-card-title {
|
||
font-size: 18px;
|
||
}
|
||
|
||
.service-card-desc {
|
||
font-size: 13px;
|
||
margin: 0 0 16px;
|
||
line-height: 1.6;
|
||
}
|
||
|
||
.service-card-buttons {
|
||
gap: 8px;
|
||
}
|
||
}
|
||
|
||
@media (max-width: 480px) {
|
||
.banner-section {
|
||
min-height: 180px;
|
||
padding: 28px 12px 48px;
|
||
}
|
||
|
||
.banner-title {
|
||
font-size: 24px;
|
||
}
|
||
|
||
.banner-subtitle {
|
||
font-size: 12px;
|
||
}
|
||
|
||
.services-section {
|
||
padding: 0 12px 30px;
|
||
margin-top: -24px;
|
||
}
|
||
|
||
.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>
|