fiee-official-website/src/views/BusinessServices/size768/index.vue

276 lines
6.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="home-page">
<div class="business-page">
<!-- 渐变背景标题区 -->
<section class="hero-section">
<div class="container">
<div class="title-wrapper">
<h1 class="hero-title">
{{ $t("BusinessiIntroduction.CONTAIN.TITLEONE.TITLE") }}
</h1>
</div>
<div class="hero-description">
{{ $t("BusinessiIntroduction.CONTAIN.TITLEONE.CONTENT") }}
</div>
</div>
</section>
<!-- 业务核心解决方案 -->
<main class="container">
<section>
<h1 class="hero-title">
{{ $t("BusinessiIntroduction.CONTAIN.TITLEONE.CONTENTTWO") }}
</h1>
</section>
<!-- 解决方案网格 - 响应式弹性布局 -->
<div class="solution-grid">
<!-- 统一使用弹性列布局通过媒体查询控制排列方式 -->
<div
v-for="(solution, sIndex) in solutions"
:key="sIndex"
class="featured-solution"
>
<div
class="solution-card"
:style="{ '--delay': `${sIndex * 0.2}s` }"
>
<div class="card-header">
<div class="decorative-line"></div>
<h2 class="card-title">{{ solution.title }}</h2>
</div>
<ul class="card-content">
<li
v-for="(point, pIndex) in solution.points"
:key="pIndex"
class="content-point"
>
<div class="point-icon">➤</div>
<div class="point-text">{{ point }}</div>
</li>
</ul>
</div>
</div>
</div>
</main>
</div>
</div>
</template>
<script setup>
import { useI18n } from "vue-i18n";
import { computed } from "vue";
const { t } = useI18n();
const solutions = computed(() => [
{
title: t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.ONE.TITLE"),
points: [
t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.ONE.CONTENT"),
t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.ONE.CONTENTTWO"),
],
},
{
title: t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.TWO.TITLE"),
points: [
t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.TWO.CONTENT"),
t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.TWO.CONTENTTWO"),
],
},
{
title: t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.THREE.TITLE"),
points: [
t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.THREE.CONTENT"),
t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.THREE.CONTENTTWO"),
t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.THREE.CONTENTTHREE"),
],
},
{
title: t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.FOUR.TITLE"),
points: [
t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.FOUR.CONTENT"),
t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.FOUR.CONTENTTWO"),
t("BusinessiIntroduction.CONTAIN.TITLEONE.paragraph.FOUR.CONTENTTHREE"),
],
},
]);
</script>
<style scoped>
/* 基础样式 */
.container {
margin: 0 auto;
padding: 0 2rem;
max-width: 1600px;
}
/* 标题区样式 */
.hero-section {
background: linear-gradient(135deg, #f8fbfe 0%, #e6f0ff 100%);
padding: 8rem 0 6rem;
position: relative;
overflow: hidden;
}
.hero-section::after {
content: "";
position: absolute;
bottom: -50px;
left: 0;
width: 100%;
height: 100px;
background: white;
transform: skewY(-3deg);
}
.hero-title {
font-size: 2.5rem;
color: #2c3e50;
margin-bottom: 2rem;
position: relative;
}
.hero-title::after {
content: "";
position: absolute;
bottom: -10px;
left: 0;
width: 80px;
height: 4px;
background: linear-gradient(135deg, #895bff 0%, #6a11cb 100%);
border-radius: 2px;
}
.hero-description {
max-width: 1000px;
margin: 0 auto;
font-size: 1.1rem;
line-height: 1.8;
color: #5a6d80;
}
:root {
--primary-color: #895bff;
--primary-light: #a07cff;
--primary-dark: #6a11cb;
--primary-gradient: linear-gradient(
135deg,
var(--primary-light) 0%,
var(--primary-color) 100%
);
}
.home-page {
background-image: url("@/assets/image/bg-mobile.png");
background-size: 100% 100%;
background-position: center;
background-repeat: no-repeat;
}
/* 解决方案网格 - 响应式布局 */
.solution-grid {
padding: 6rem 0;
display: grid;
grid-template-columns: 1fr; /* 默认单列(移动端) */
gap: 3rem;
}
/* 中等屏幕768px-1439px - 单列布局 */
@media (min-width: 768px) and (max-width: 1439px) {
.solution-grid {
grid-template-columns: 1fr;
}
}
/* 大屏幕≥1440px - 双列布局 */
@media (min-width: 1440px) {
.solution-grid {
grid-template-columns: 1fr 1fr;
}
}
/* 卡片样式 */
.solution-card {
background: white;
border-radius: 16px;
padding: 2.5rem;
box-shadow: 0 10px 40px rgba(137, 91, 255, 0.1);
transform: translateY(20px);
opacity: 0;
animation: cardEnter 0.6s ease forwards;
position: relative;
overflow: hidden;
border: 1px solid rgba(137, 91, 255, 0.2);
transition: all 0.3s ease;
}
.solution-card::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 4px;
background: var(--primary-gradient);
}
.solution-card:hover {
transform: translateY(-8px);
box-shadow: 0 15px 50px rgba(137, 91, 255, 0.2);
}
.card-header {
margin-bottom: 2rem;
}
.decorative-line {
width: 50px;
height: 3px;
background: var(--primary-gradient);
margin-bottom: 1rem;
border-radius: 3px;
transition: width 0.3s ease;
}
.solution-card:hover .decorative-line {
width: 80px;
}
.card-title {
font-size: 1.3rem;
color: #2c0850;
font-weight: 600;
}
.content-point {
display: flex;
gap: 1rem;
padding: 1rem 0;
border-bottom: 1px solid rgba(137, 91, 255, 0.1);
}
.content-point:last-child {
border-bottom: none;
}
.point-icon {
color: var(--primary-color);
font-size: 1.2rem;
flex-shrink: 0;
}
.point-text {
color: #4a3a6b;
line-height: 1.6;
font-size: 1rem;
}
@keyframes cardEnter {
to {
opacity: 1;
transform: translateY(0);
}
}
</style>