Files
HertzAdmin-SpringBoot/ui/src/views/portal/Home.vue
2026-01-22 17:33:28 +08:00

89 lines
2.0 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-container">
<div class="hero-section glass">
<h1 class="hero-title">Hertz Admin</h1>
<p class="hero-subtitle">基于 Spring Boot 3 Vue 3 的现代化权限管理系统</p>
<div class="hero-actions">
<el-button type="primary" size="large" @click="router.push('/login')">立即开始</el-button>
<el-button size="large" @click="router.push('/portal/about')">了解更多</el-button>
</div>
</div>
<div class="features-grid">
<el-card class="feature-card glass">
<h3>RBAC 权限</h3>
<p>基于角色的访问控制细粒度的权限管理</p>
</el-card>
<el-card class="feature-card glass">
<h3>动态菜单</h3>
<p>根据用户角色动态生成侧边栏菜单</p>
</el-card>
<el-card class="feature-card glass">
<h3>现代化 UI</h3>
<p>采用 Element Plus iOS 风格设计</p>
</el-card>
</div>
</div>
</template>
<script setup>
import { useRouter } from 'vue-router'
const router = useRouter()
</script>
<style scoped>
.home-container {
display: flex;
flex-direction: column;
gap: 40px;
}
.hero-section {
text-align: center;
padding: 80px 40px;
border-radius: 24px;
background: linear-gradient(135deg, rgba(255,255,255,0.8) 0%, rgba(240,249,255,0.8) 100%);
}
.hero-title {
font-size: 48px;
font-weight: 800;
margin: 0 0 16px;
background: linear-gradient(135deg, var(--ios-primary) 0%, #00C6FB 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
letter-spacing: -1px;
}
.hero-subtitle {
font-size: 20px;
color: #666;
margin: 0 0 32px;
}
.hero-actions {
display: flex;
justify-content: center;
gap: 16px;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 24px;
}
.feature-card h3 {
margin: 0 0 8px;
color: var(--ios-primary);
}
.feature-card p {
margin: 0;
color: #666;
line-height: 1.6;
}
</style>