src/assets/
├── variables.css ✅ NEW - 设计系统变量
├── base.css ✅ UPDATED - 全局样式优化
├── main.css ✅ UPDATED - Element Plus 增强
├── list-common.css ✅ NEW - 通用列表样式
└── animations.css ✅ NEW - 动画效果库
src/layouts/
└── MainLayout.vue ✅ UPDATED - 主布局美化
src/views/
├── Login.vue ✅ UPDATED - 登录页美化
├── Dashboard.vue ✅ UPDATED - 数据面板优化
├── user/UserList.vue ✅ UPDATED - 应用通用样式
└── banner/BannerList.vue ✅ UPDATED - 应用通用样式
根目录/
├── 美化方案说明.md ✅ NEW - 完整方案文档
└── 美化-快速开始.md ✅ NEW - 快速开始指南
cd marriageAdmin-vue
npm run dev
访问 http://localhost:5173(或控制台显示的地址)
适用于:用户管理、活动管理、课程管理等列表页面
<template>
<div class="list-container">
<h2 class="page-title">页面标题</h2>
<!-- 工具栏 -->
<el-card class="toolbar-card">
<!-- 搜索、筛选、按钮等 -->
</el-card>
<!-- 表格 -->
<el-card class="table-card">
<el-table :data="list">
<!-- 表格列 -->
</el-table>
<!-- 分页 -->
<div class="pagination-container">
<el-pagination />
</div>
</el-card>
</div>
</template>
<style scoped>
/* 引入通用样式 */
@import '@/assets/list-common.css';
/* 页面特定样式 */
.your-custom-class {
/* 自定义样式 */
}
</style>
适用于:自定义页面或组件
<style scoped>
.custom-container {
padding: var(--spacing-xl);
background-color: var(--bg-primary);
border-radius: var(--radius-md);
box-shadow: var(--shadow-md);
}
.custom-title {
font-size: var(--font-2xl);
font-weight: var(--font-bold);
color: var(--text-primary);
margin-bottom: var(--spacing-lg);
}
.custom-button {
background-color: var(--primary-color);
transition: all var(--transition-base);
}
.custom-button:hover {
background-color: var(--primary-light);
transform: translateY(-2px);
box-shadow: var(--shadow-lg);
}
</style>
<template>
<!-- 淡入上移动画 -->
<div class="animate-fade-in-up">
内容...
</div>
<!-- 悬停上浮效果 -->
<el-card class="hover-lift">
卡片内容...
</el-card>
<!-- 脉冲动画 -->
<el-icon class="animate-pulse">
<Bell />
</el-icon>
<!-- 悬停放大 -->
<el-avatar class="hover-scale" />
</template>
以下页面可以按照相同方式应用美化:
src/views/activity/ActivityList.vue - 活动列表src/views/activity/ActivityForm.vue - 活动表单src/views/matchmaker/MatchmakerList.vue - 红娘列表src/views/course/CourseList.vue - 课程列表src/views/dynamic/DynamicList.vue - 动态列表src/views/report/ReportList.vue - 举报列表src/views/success-case/SuccessCaseList.vue - 成功案例列表src/views/vip/VipPackageList.vue - VIP 套餐列表src/views/announcement/AnnouncementList.vue - 公告列表复制此模板并替换相应内容:
<template>
<div class="list-container">
<!-- 页面标题 -->
<h2 class="page-title">页面名称</h2>
<!-- 工具栏 -->
<el-card shadow="never" class="toolbar-card">
<el-row :gutter="20">
<el-col :span="24">
<el-space wrap>
<!-- 筛选器 -->
<el-select v-model="filters.xxx" placeholder="筛选" clearable>
<el-option label="选项1" :value="1" />
</el-select>
<!-- 搜索框 -->
<el-input v-model="searchKeyword" placeholder="搜索关键词" clearable>
<template #append>
<el-button icon="Search" @click="handleSearch" />
</template>
</el-input>
<!-- 操作按钮 -->
<el-button type="primary" icon="Plus" @click="handleCreate">
新增
</el-button>
<el-button icon="Refresh" @click="handleRefresh">
刷新
</el-button>
</el-space>
</el-col>
</el-row>
</el-card>
<!-- 表格 -->
<el-card shadow="never" class="table-card">
<el-table v-loading="loading" :data="list" stripe>
<el-table-column type="index" label="序号" width="60" />
<!-- 更多列 -->
<el-table-column label="操作" width="200" fixed="right">
<template #default="{ row }">
<el-button type="primary" size="small" link @click="handleEdit(row)">
编辑
</el-button>
<el-button type="danger" size="small" link @click="handleDelete(row)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<div class="pagination-container">
<el-pagination
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:total="total"
layout="total, sizes, prev, pager, next"
@size-change="handleLoad"
@current-change="handleLoad"
/>
</div>
</el-card>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { ElMessage } from 'element-plus'
const loading = ref(false)
const list = ref([])
const currentPage = ref(1)
const pageSize = ref(10)
const total = ref(0)
const searchKeyword = ref('')
const filters = ref({})
const handleLoad = async () => {
loading.value = true
try {
// 加载数据逻辑
// const response = await api.getList({ ... })
// list.value = response.data.list
// total.value = response.data.total
} catch (error) {
ElMessage.error('加载失败')
} finally {
loading.value = false
}
}
const handleCreate = () => {
// 创建逻辑
}
const handleEdit = (row) => {
// 编辑逻辑
}
const handleDelete = (row) => {
// 删除逻辑
}
const handleSearch = () => {
currentPage.value = 1
handleLoad()
}
const handleRefresh = () => {
currentPage.value = 1
searchKeyword.value = ''
filters.value = {}
handleLoad()
}
onMounted(() => {
handleLoad()
})
</script>
<style scoped>
@import '@/assets/list-common.css';
/* 页面特定样式 */
</style>
var(--primary-color) /* 主蓝色 #3b82f6 */
var(--success-color) /* 成功绿 #10b981 */
var(--warning-color) /* 警告橙 #f59e0b */
var(--danger-color) /* 危险红 #ef4444 */
var(--text-primary) /* 主文本 #1f2937 */
var(--text-secondary) /* 次文本 #6b7280 */
var(--bg-primary) /* 主背景 #ffffff */
var(--bg-secondary) /* 次背景 #f9fafb */
var(--border-color) /* 边框色 #e5e7eb */
var(--spacing-xs) /* 4px */
var(--spacing-sm) /* 8px */
var(--spacing-base) /* 12px */
var(--spacing-md) /* 16px */
var(--spacing-lg) /* 20px */
var(--spacing-xl) /* 24px */
var(--spacing-2xl) /* 32px */
var(--spacing-3xl) /* 40px */
var(--radius-sm) /* 4px */
var(--radius-base) /* 8px */
var(--radius-md) /* 12px */
var(--radius-lg) /* 16px */
var(--radius-xl) /* 20px */
var(--shadow-sm) /* 小阴影 */
var(--shadow-base) /* 基础阴影 */
var(--shadow-md) /* 中等阴影 */
var(--shadow-lg) /* 大阴影 */
var(--shadow-xl) /* 特大阴影 */
var(--shadow-2xl) /* 超大阴影 */
var(--font-xs) /* 12px */
var(--font-sm) /* 13px */
var(--font-base) /* 14px */
var(--font-md) /* 15px */
var(--font-lg) /* 16px */
var(--font-xl) /* 18px */
var(--font-2xl) /* 20px */
var(--font-3xl) /* 24px */
解决方案:
@import 路径是否正确scoped 作用域冲突解决方案: 动画库已自动优化移动端性能,将动画时长缩短到 0.3s
解决方案:
在 variables.css 中修改 --primary-color 等变量即可:
:root {
--primary-color: #your-color; /* 改成你想要的颜色 */
}
解决方案:
variables.css 已预留暗色模式配置,取消注释即可启用:
@media (prefers-color-scheme: dark) {
:root {
/* 暗色模式变量 */
}
}
如果在应用美化方案时遇到问题:
美化方案说明.md 完整文档按照本指南,你可以轻松为任何页面应用统一的美化效果。
记住三个关键文件:
variables.css - 设计变量list-common.css - 通用列表样式animations.css - 动画效果祝你美化愉快! 🚀