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

252 lines
5.8 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 style="font-size: 40px" class="hero-title">
{{ $t("BusinessiIntroduction.CONTAIN.TITLEONE.TITLE") }}
</div>
<div style="font-size: 18px" class="hero-description">
{{ $t("BusinessiIntroduction.CONTAIN.TITLEONE.CONTENT") }}
</div>
</div>
</section>
<!-- 业务核心解决方案 -->
<main style="margin-top: 40px" class="container">
<section>
<div style="font-size: 40px" class="hero-title">
{{ $t("BusinessiIntroduction.CONTAIN.TITLEONE.CONTENTTWO") }}
</div>
</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 style="font-size: 18px" 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 {
max-width: 1280px;
margin: 0 auto;
padding: 0 2rem;
}
/* 标题区 - 紫色渐变 */
.hero-section {
background: var(--primary-gradient);
padding: 5rem 0 0rem;
position: relative;
overflow: hidden;
color: white;
}
.hero-title {
font-size: 40px;
color: black;
margin-bottom: 2rem;
animation: slideIn 1s ease;
}
.hero-description {
margin: 0 auto;
font-size: 1.1rem;
line-height: 1.8;
color: black;
}
: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: 0rem 0 4rem;
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: #4a3a6b;
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>