453 lines
9.0 KiB
Vue
453 lines
9.0 KiB
Vue
<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>© 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> |