Files
front/src/views/home/index.vue

540 lines
12 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">
<!-- 顶部导航 -->
<header class="navbar">
<div class="navbar-content">
<div class="logo">
<img src="@/assets/logo.svg?url" alt="Logo" />
<span class="logo-text">智能运维管理系统</span>
</div>
<nav class="nav-links">
<a href="#home">首页</a>
<a href="#help">帮助中心</a>
<a-button type="primary" @click="goToLogin">登录系统</a-button>
</nav>
</div>
</header>
<!-- Banner 区域 -->
<section id="home" class="banner">
<img src="@/assets/images/home1.jpg" alt="Banner" class="banner-image" />
<div class="banner-overlay"></div>
<div class="banner-content">
<h1 class="banner-title">智能运维管理系统</h1>
<p class="banner-subtitle">提供全方位的 IT 运维管理解决方案让系统运行更稳定更高效</p>
</div>
</section>
<!-- 功能特性区域 -->
<section id="features" class="features">
<div class="section-container">
<h2 class="section-title">核心功能</h2>
<p class="section-subtitle">全面的运维管理工具满足您的各种需求</p>
<div class="feature-grid">
<div class="feature-card">
<div class="feature-icon icon-blue">
<icon-dashboard />
</div>
<h3>实时监控仪表盘</h3>
<p>多维度数据展示实时掌握系统运行状态关键指标一目了然</p>
</div>
<div class="feature-card">
<div class="feature-icon icon-orange">
<icon-exclamation-circle />
</div>
<h3>智能告警管理</h3>
<p>灵活的告警策略配置多渠道通知确保问题及时发现和处理</p>
</div>
<div class="feature-card">
<div class="feature-icon icon-green">
<icon-chart-line />
</div>
<h3>数据大屏中心</h3>
<p>将所有设备数据可视化管理及监控为决策提供有力支持</p>
</div>
<div class="feature-card">
<div class="feature-icon icon-purple">
<icon-settings />
</div>
<h3>数据采集</h3>
<p>统一的数据采集中心规范化管理提升运维效率</p>
</div>
<div class="feature-card">
<div class="feature-icon icon-cyan">
<icon-shield />
</div>
<h3>数据中心</h3>
<p>数据中心可视化管理楼层机柜U位等空间信息</p>
</div>
<div class="feature-card">
<div class="feature-icon icon-pink">
<icon-message-circle />
</div>
<h3>工单管理</h3>
<p>完善的问题反馈机制全流程跟踪快速响应解决工单</p>
</div>
</div>
</div>
</section>
<!-- 页脚 -->
<footer class="footer">
<div class="footer-content">
<div class="footer-section">
<h4>系统信息</h4>
<p>系统版本:v1.2.0 部署环境:生产环境</p>
</div>
<div class="footer-section">
<h4>帮助中心</h4>
<p>
<a href="#help" target="_blank">帮助中心</a>
技术支持邮箱:
<a href="mailto:david.yan@qq.com">david.yan@qq.com</a>
</p>
</div>
<div class="footer-section">
<h4>版权信息</h4>
<p>Copyright &copy; 2026 智能运维管理系统All rights reserved.</p>
</div>
</div>
</footer>
</div>
</template>
<script lang="ts" setup>
import { useRouter } from 'vue-router'
import { IconDashboard, IconExclamationCircle, IconChartLine, IconSettings, IconShield, IconMessageCircle } from '@tabler/icons-vue'
const router = useRouter()
const goToLogin = () => {
router.push('/login')
}
const scrollToSection = (id: string) => {
const element = document.getElementById(id)
if (element) {
element.scrollIntoView({ behavior: 'smooth' })
}
}
</script>
<style scoped lang="less">
.home-page {
min-height: 100vh;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
// 顶部导航
.navbar {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 60px;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
z-index: 1000;
.navbar-content {
max-width: 1200px;
margin: 0 auto;
padding: 0 24px;
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.logo {
display: flex;
align-items: center;
gap: 12px;
img {
height: 32px;
width: 32px;
flex-shrink: 0;
object-fit: contain;
}
.logo-text {
font-size: 20px;
font-weight: 600;
color: var(--color-text-1);
}
}
.nav-links {
display: flex;
align-items: center;
gap: 24px;
a {
color: var(--color-text-2);
text-decoration: none;
font-size: 14px;
transition: color 0.3s;
&:hover {
color: rgb(var(--primary-6));
}
}
}
}
}
// Banner 区域
.banner {
position: relative;
padding: 160px 24px 100px;
min-height: 600px;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
.banner-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 0;
}
.banner-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(135deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.3) 100%);
z-index: 1;
}
.banner-content {
text-align: center;
z-index: 2;
.banner-title {
font-size: 48px;
font-weight: 700;
color: #fff;
margin-bottom: 16px;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.banner-subtitle {
font-size: 20px;
color: rgba(255, 255, 255, 0.9);
margin-bottom: 40px;
max-width: 600px;
margin-left: auto;
margin-right: auto;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}
.banner-actions {
display: flex;
gap: 16px;
justify-content: center;
}
}
}
// 功能特性区域
.features {
padding: 100px 24px;
background: #fff;
.section-container {
max-width: 1200px;
margin: 0 auto;
.section-title {
font-size: 36px;
font-weight: 700;
text-align: center;
margin-bottom: 16px;
color: var(--color-text-1);
}
.section-subtitle {
font-size: 16px;
text-align: center;
color: var(--color-text-2);
margin-bottom: 60px;
}
.feature-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 32px;
.feature-card {
padding: 32px;
background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
border-radius: 12px;
transition: all 0.3s;
cursor: pointer;
&:hover {
transform: translateY(-8px);
box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
}
.feature-icon {
width: 64px;
height: 64px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 12px;
margin-bottom: 24px;
color: #fff;
font-size: 32px;
transition:
transform 0.3s,
box-shadow 0.3s;
&:hover {
transform: scale(1.1);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}
&.icon-blue {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
&.icon-orange {
background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}
&.icon-green {
background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
}
&.icon-purple {
background: linear-gradient(135deg, #a18cd1 0%, #fbc2eb 100%);
}
&.icon-cyan {
background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
}
&.icon-pink {
background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
}
}
h3 {
font-size: 20px;
font-weight: 600;
color: var(--color-text-1);
margin-bottom: 12px;
}
p {
font-size: 14px;
color: var(--color-text-2);
line-height: 1.6;
}
}
}
}
}
// 数据中心区域
.datacenter {
padding: 100px 24px;
background: linear-gradient(135deg, rgb(var(--primary-1)) 0%, rgb(var(--primary-2)) 100%);
.section-container {
max-width: 1200px;
margin: 0 auto;
.section-title {
font-size: 36px;
font-weight: 700;
text-align: center;
margin-bottom: 16px;
color: var(--color-text-1);
}
.section-subtitle {
font-size: 16px;
text-align: center;
color: var(--color-text-2);
margin-bottom: 60px;
}
.datacenter-content {
.datacenter-info {
.stat-item {
text-align: center;
padding: 32px;
background: #fff;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
.stat-number {
font-size: 48px;
font-weight: 700;
color: rgb(var(--primary-6));
margin-bottom: 8px;
}
.stat-label {
font-size: 16px;
color: var(--color-text-2);
}
}
}
}
}
}
// CTA 区域
.cta-section {
padding: 100px 24px;
background: #fff;
text-align: center;
.section-container {
max-width: 800px;
margin: 0 auto;
h2 {
font-size: 36px;
font-weight: 700;
color: var(--color-text-1);
margin-bottom: 16px;
}
p {
font-size: 18px;
color: var(--color-text-2);
margin-bottom: 40px;
}
.arco-btn {
margin: 8px;
}
}
}
// 页脚
.footer {
background: var(--color-bg-1);
padding: 60px 24px 24px;
.footer-content {
max-width: 1200px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 40px;
margin-bottom: 40px;
.footer-section {
h4 {
font-size: 18px;
font-weight: 600;
color: var(--color-text-1);
margin-bottom: 16px;
}
p {
font-size: 14px;
color: var(--color-text-2);
line-height: 1.6;
}
ul {
list-style: none;
padding: 0;
margin: 0;
li {
margin-bottom: 12px;
a {
color: var(--color-text-2);
text-decoration: none;
font-size: 14px;
transition: color 0.3s;
&:hover {
color: rgb(var(--primary-6));
}
}
}
}
}
}
.footer-bottom {
max-width: 1200px;
margin: 0 auto;
padding-top: 24px;
border-top: 1px solid var(--color-border);
text-align: center;
p {
font-size: 14px;
color: var(--color-text-3);
}
}
}
}
// 响应式设计
@media (max-width: 768px) {
.home-page {
.navbar {
.navbar-content {
.nav-links {
gap: 12px;
a {
display: none;
}
}
}
}
.banner {
padding: 120px 16px 60px;
min-height: 400px;
.banner-title {
font-size: 32px !important;
}
.banner-subtitle {
font-size: 16px !important;
}
}
.features,
.datacenter,
.cta-section {
padding: 60px 16px;
}
.features {
.feature-grid {
grid-template-columns: 1fr;
}
}
}
}
</style>