Files
jurong_circle_frontdesk/src/views/About.vue
2025-07-26 15:35:53 +08:00

453 lines
9.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="about-page">
<!-- 导航栏 -->
<nav class="navbar">
<div class="nav-left">
<el-button
type="text"
@click="$router.go(-1)"
class="back-btn"
>
<el-icon><ArrowLeft /></el-icon>
返回
</el-button>
</div>
<div class="nav-center">
<h1 class="nav-title">关于我们</h1>
</div>
<div class="nav-right"></div>
</nav>
<!-- 页面内容 -->
<div class="about-content">
<!-- 网站介绍 -->
<section class="intro-section">
<div class="intro-header">
<div class="logo">
<el-icon size="60"><Platform /></el-icon>
</div>
<h2>融互通</h2>
<p class="tagline">专业的积分兑换与商品管理平台</p>
</div>
<div class="intro-content">
<p>
积分商城系统是一个现代化的积分兑换与商品管理平台致力于为用户提供丰富的商品选择和便捷的积分兑换体验
我们相信积分的价值在于为用户带来实际的收益和满足感通过技术的力量让积分兑换变得更加简单高效
</p>
</div>
</section>
<!-- 功能特色 -->
<section class="features-section">
<h3>功能特色</h3>
<div class="features-grid">
<div class="feature-item">
<div class="feature-icon">
<el-icon><ShoppingBag /></el-icon>
</div>
<h4>丰富商品</h4>
<p>精选优质商品涵盖生活用品数码产品虚拟服务等多个品类</p>
</div>
<div class="feature-item">
<div class="feature-icon">
<el-icon><Coin /></el-icon>
</div>
<h4>积分兑换</h4>
<p>灵活的积分兑换机制让您的积分发挥最大价值享受购物乐趣</p>
</div>
<div class="feature-item">
<div class="feature-icon">
<el-icon><TrendCharts /></el-icon>
</div>
<h4>积分管理</h4>
<p>完整的积分获取和消费记录让您清楚了解每一分积分的来源和去向</p>
</div>
<div class="feature-item">
<div class="feature-icon">
<el-icon><User /></el-icon>
</div>
<h4>个人中心</h4>
<p>完善的个人资料管理记录您的兑换历程和积分成长轨迹</p>
</div>
</div>
</section>
<!-- 技术栈 -->
<section class="tech-section">
<h3>技术栈</h3>
<div class="tech-grid">
<div class="tech-category">
<h4>前端技术</h4>
<ul>
<li>Vue 3 + Composition API</li>
<li>Element Plus UI 组件库</li>
<li>Vue Router 路由管理</li>
<li>Pinia 状态管理</li>
<li>Vite 构建工具</li>
<li>响应式设计</li>
</ul>
</div>
<div class="tech-category">
<h4>后端技术</h4>
<ul>
<li>Node.js + Express</li>
<li>MySQL 数据库</li>
<li>JWT 身份认证</li>
<li>RESTful API 设计</li>
<li>积分系统管理</li>
<li>订单处理系统</li>
</ul>
</div>
</div>
</section>
<!-- 联系我们 -->
<section class="contact-section">
<h3>联系我们</h3>
<div class="contact-info">
<div class="contact-item">
<el-icon><Message /></el-icon>
<div>
<h4>邮箱</h4>
<p>contact@example.com</p>
</div>
</div>
<div class="contact-item">
<el-icon><Phone /></el-icon>
<div>
<h4>电话</h4>
<p>400-123-4567</p>
</div>
</div>
<div class="contact-item">
<el-icon><Location /></el-icon>
<div>
<h4>地址</h4>
<p>北京市朝阳区科技园区</p>
</div>
</div>
</div>
</section>
<!-- 版本信息 -->
<section class="version-section">
<div class="version-info">
<p><strong>版本</strong>v1.0.0</p>
<p><strong>更新时间</strong>{{ updateTime }}</p>
<p><strong>开发团队</strong>积分商城系统开发团队</p>
</div>
</section>
</div>
<!-- 页脚 -->
<footer class="about-footer">
<p>&copy; 2024 积分商城系统. All rights reserved.</p>
</footer>
</div>
</template>
<script setup>
import { ref } from 'vue'
import {
ArrowLeft,
Platform,
ShoppingBag,
Coin,
TrendCharts,
User,
Message,
Phone,
Location
} from '@element-plus/icons-vue'
// 响应式数据
const updateTime = ref('2024-01-15')
</script>
<style scoped>
.about-page {
min-height: 100vh;
background-color: #f5f5f5;
}
.navbar {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 16px;
height: 56px;
background: white;
border-bottom: 1px solid #eee;
position: sticky;
top: 0;
z-index: 100;
}
.nav-left,
.nav-right {
flex: 1;
}
.back-btn {
color: #409eff;
font-size: 14px;
}
.nav-title {
margin: 0;
font-size: 18px;
font-weight: 500;
color: #333;
}
.about-content {
padding: 20px 16px;
max-width: 800px;
margin: 0 auto;
}
.intro-section {
background: white;
border-radius: 12px;
padding: 40px 30px;
margin-bottom: 24px;
text-align: center;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.intro-header {
margin-bottom: 30px;
}
.logo {
color: #409eff;
margin-bottom: 16px;
}
.intro-header h2 {
margin: 0 0 8px 0;
font-size: 28px;
color: #333;
font-weight: 600;
}
.tagline {
margin: 0;
font-size: 16px;
color: #666;
}
.intro-content p {
font-size: 16px;
line-height: 1.8;
color: #555;
text-align: left;
margin: 0;
}
.features-section,
.tech-section,
.contact-section {
background: white;
border-radius: 12px;
padding: 30px;
margin-bottom: 24px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.features-section h3,
.tech-section h3,
.contact-section h3 {
margin: 0 0 24px 0;
font-size: 20px;
color: #333;
font-weight: 600;
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 24px;
}
.feature-item {
text-align: center;
padding: 20px;
border-radius: 8px;
background: #f8f9fa;
transition: all 0.3s;
}
.feature-item:hover {
transform: translateY(-4px);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
}
.feature-icon {
color: #409eff;
font-size: 32px;
margin-bottom: 12px;
}
.feature-item h4 {
margin: 0 0 8px 0;
font-size: 16px;
color: #333;
font-weight: 500;
}
.feature-item p {
margin: 0;
font-size: 14px;
color: #666;
line-height: 1.6;
}
.tech-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 24px;
}
.tech-category h4 {
margin: 0 0 16px 0;
font-size: 16px;
color: #333;
font-weight: 500;
padding-bottom: 8px;
border-bottom: 2px solid #409eff;
}
.tech-category ul {
margin: 0;
padding: 0;
list-style: none;
}
.tech-category li {
padding: 8px 0;
color: #555;
font-size: 14px;
position: relative;
padding-left: 16px;
}
.tech-category li::before {
content: '•';
color: #409eff;
position: absolute;
left: 0;
font-weight: bold;
}
.contact-info {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 24px;
}
.contact-item {
display: flex;
align-items: center;
gap: 12px;
padding: 16px;
background: #f8f9fa;
border-radius: 8px;
}
.contact-item .el-icon {
color: #409eff;
font-size: 24px;
}
.contact-item h4 {
margin: 0 0 4px 0;
font-size: 14px;
color: #333;
font-weight: 500;
}
.contact-item p {
margin: 0;
font-size: 14px;
color: #666;
}
.version-section {
background: white;
border-radius: 12px;
padding: 20px 30px;
margin-bottom: 24px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.version-info p {
margin: 8px 0;
font-size: 14px;
color: #666;
}
.about-footer {
text-align: center;
padding: 20px;
color: #999;
font-size: 14px;
}
/* 响应式设计 */
@media (max-width: 768px) {
.about-content {
padding: 15px 10px;
}
.intro-section,
.features-section,
.tech-section,
.contact-section {
padding: 20px 15px;
}
.intro-header h2 {
font-size: 24px;
}
.features-grid {
grid-template-columns: 1fr;
}
.tech-grid {
grid-template-columns: 1fr;
}
.contact-info {
grid-template-columns: 1fr;
}
}
@media (max-width: 480px) {
.intro-section,
.features-section,
.tech-section,
.contact-section,
.version-section {
padding: 15px;
}
.intro-header h2 {
font-size: 20px;
}
.features-section h3,
.tech-section h3,
.contact-section h3 {
font-size: 18px;
}
}
</style>