fiee-official-website/src/views/manage/size375/index.vue

228 lines
4.6 KiB
Vue
Raw Normal View History

2025-05-23 04:03:48 +00:00
<template>
<div class="home-page">
2025-05-23 05:29:23 +00:00
<div class="management-page">
<!-- 标题区 -->
<section class="leadership-header">
<div class="container">
2025-05-23 06:41:54 +00:00
<h1 class="page-title">
FiEE, Inc. has a team of capable senior management with extensive
professional experience
</h1>
2025-05-23 05:29:23 +00:00
</div>
</section>
<!-- 管理团队列表 -->
<main class="container">
<div class="leadership-grid">
<!-- 每个高管卡片 -->
<div
v-for="(leader, index) in leadershipTeam"
2025-05-23 07:32:12 +00:00
:key="leader.name"
2025-05-23 05:29:23 +00:00
class="leader-card"
2025-05-23 07:32:12 +00:00
:style="{ '--delay': index * 0.15 + 's' }"
2025-05-23 05:29:23 +00:00
>
<!-- 卡片上半部 -->
<div class="card-profile">
<div class="avatar-wrapper">
<div class="decorative-dot"></div>
<div class="initials">{{ getInitials(leader.name) }}</div>
2025-05-23 07:32:12 +00:00
<div></div>
2025-05-23 05:29:23 +00:00
</div>
<div class="profile-info">
<h2 class="leader-name">{{ leader.name }}</h2>
<p class="leader-position">{{ leader.position }}</p>
</div>
</div>
<!-- 卡片下半部 -->
<div class="card-content">
<div
class="content-section"
v-for="(content, cIndex) in leader.content"
:key="cIndex"
>
<p>{{ content }}</p>
</div>
</div>
</div>
</div>
</main>
2025-05-23 04:03:48 +00:00
</div>
</div>
</template>
<script setup>
import { useI18n } from "vue-i18n";
2025-05-23 05:29:23 +00:00
import { computed } from "vue";
const { t } = useI18n();
const leadershipTeam = computed(() => [
{
name: t("MANAGEMENT.ONE.TITLE"),
position: t("MANAGEMENT.ONE.TITLETWO"),
content: [
t("MANAGEMENT.ONE.CONTENT"),
t("MANAGEMENT.ONE.CONTENTTWO"),
t("MANAGEMENT.ONE.CONTENTTHREE"),
],
},
{
name: t("MANAGEMENT.TWO.TITLE"),
position: t("MANAGEMENT.TWO.TITLETWO"),
content: [t("MANAGEMENT.TWO.CONTENTONE"), t("MANAGEMENT.TWO.CONTENTTWO")],
},
]);
const getInitials = (name) => {
return name
.split(" ")
.map((n) => n[0])
.join("");
};
2025-05-23 04:03:48 +00:00
</script>
<style scoped>
2025-05-23 07:32:12 +00:00
/* 基础变量定义 */
:root {
--primary-color: #895bff;
--primary-gradient: linear-gradient(135deg, #7a4dff 0%, #895bff 100%);
--text-primary: #2c3e50;
--text-secondary: #5a6d80;
--bg-light: #f9fbfe;
--border-radius: 16px;
--box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
2025-05-23 04:03:48 +00:00
}
2025-05-23 07:32:12 +00:00
2025-05-23 05:29:23 +00:00
/* 基础样式 */
.container {
2025-05-23 07:32:12 +00:00
padding: 0 1.25rem;
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
/* 标题区 */
.leadership-header {
2025-05-23 07:32:12 +00:00
background: linear-gradient(135deg, var(--bg-light) 0%, #e8f2ff 100%);
2025-05-23 08:31:43 +00:00
/* padding: 4rem 0 3rem; */
2025-05-23 04:03:48 +00:00
text-align: center;
2025-05-23 08:31:43 +00:00
/* margin-bottom: 2rem; */
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
.page-title {
2025-05-23 07:32:12 +00:00
font-size: clamp(1.75rem, 5vw, 2.25rem);
color: var(--text-primary);
margin-bottom: 0.75rem;
line-height: 1.3;
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
.page-subtitle {
color: #6b7c93;
2025-05-23 07:32:12 +00:00
font-size: 1rem;
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
/* 管理团队网格 */
.leadership-grid {
display: grid;
2025-05-23 07:32:12 +00:00
grid-template-columns: 1fr;
gap: 1.5rem;
2025-05-23 08:31:43 +00:00
/* padding: 2rem 0; */
2025-05-23 05:29:23 +00:00
}
/* 高管卡片 */
.leader-card {
background: white;
2025-05-23 07:32:12 +00:00
border-radius: var(--border-radius);
box-shadow: var(--box-shadow);
2025-05-23 05:29:23 +00:00
overflow: hidden;
transform: translateY(20px);
opacity: 0;
2025-05-23 07:32:12 +00:00
animation: cardEnter 0.5s ease forwards;
2025-05-23 05:29:23 +00:00
animation-delay: var(--delay);
transition: transform 0.3s ease;
}
.leader-card:hover {
2025-05-23 07:32:12 +00:00
transform: translateY(-4px);
2025-05-23 05:29:23 +00:00
}
/* 个人资料区 */
.card-profile {
2025-05-23 07:32:12 +00:00
padding: 1.75rem;
background: var(--primary-gradient);
2025-05-23 05:29:23 +00:00
position: relative;
}
.avatar-wrapper {
position: relative;
2025-05-23 07:32:12 +00:00
width: 65px;
height: 65px;
2025-05-23 08:31:43 +00:00
/* margin-bottom: 1.25rem; */
2025-05-23 05:29:23 +00:00
}
.decorative-dot {
position: absolute;
2025-05-23 07:32:12 +00:00
width: 16px;
height: 16px;
2025-05-23 05:29:23 +00:00
background: rgba(255, 255, 255, 0.2);
border-radius: 50%;
2025-05-23 08:31:43 +00:00
/* top: -8px; */
2025-05-23 07:32:12 +00:00
right: -8px;
2025-05-23 05:29:23 +00:00
}
.initials {
width: 100%;
2025-05-23 08:31:43 +00:00
/* height: 100%; */
2025-05-23 05:29:23 +00:00
background: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
2025-05-23 07:32:12 +00:00
font-size: 1.5rem;
2025-05-23 05:29:23 +00:00
font-weight: bold;
2025-05-23 07:32:12 +00:00
color: var(--primary-color);
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
.profile-info {
color: white;
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
.leader-name {
2025-05-23 07:32:12 +00:00
font-size: 1.35rem;
2025-05-23 08:31:43 +00:00
/* margin-bottom: 0.35rem; */
margin-top: -30px;
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
.leader-position {
2025-05-23 07:32:12 +00:00
font-size: 0.95rem;
2025-05-23 05:29:23 +00:00
opacity: 0.9;
2025-05-23 07:32:12 +00:00
color: #895bff;
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
/* 内容区 */
.card-content {
2025-05-23 07:32:12 +00:00
padding: 1.5rem;
2025-05-23 08:31:43 +00:00
margin-top: -200px;
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
.content-section {
2025-05-23 07:32:12 +00:00
margin-bottom: 1.25rem;
}
.content-section:last-child {
margin-bottom: 0;
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
.content-section p {
2025-05-23 07:32:12 +00:00
color: var(--text-secondary);
line-height: 1.65;
font-size: 0.9rem;
2025-05-23 04:03:48 +00:00
}
2025-05-23 05:29:23 +00:00
/* 动画 */
@keyframes cardEnter {
to {
opacity: 1;
transform: translateY(0);
}
2025-05-23 04:03:48 +00:00
}
</style>