返回
从零搭建Vue+Antd后台管理系统:实现篇
前端
2023-09-20 15:37:22
引言
在上一篇文章中,我们完成了后台管理系统的基础搭建和一些具体功能。现在,我们将直接开始完成页面功能的具体实现和项目优化。
页面基础功能实现
- 登录页
登录页分为用户名+密码登录和手机号+验证码登录两种,验证码mock随机六位。
<template>
<div class="login-page">
<div class="login-form">
<form @submit.prevent="onSubmit">
<div class="form-group">
<label for="username">用户名</label>
<input type="text" id="username" v-model="username">
</div>
<div class="form-group">
<label for="password">密码</label>
<input type="password" id="password" v-model="password">
</div>
<div class="form-group">
<button type="submit">登录</button>
</div>
</form>
</div>
</div>
</template>
<script>
export default {
data() {
return {
username: '',
password: ''
}
},
methods: {
onSubmit() {
// 登录逻辑
}
}
}
</script>
<style>
.login-page {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.login-form {
width: 300px;
padding: 20px;
border: 1px solid #ccc;
}
.form-group {
margin-bottom: 15px;
}
label {
display: block;
margin-bottom: 5px;
}
input {
width: 100%;
padding: 5px;
border: 1px solid #ccc;
}
button {
width: 100%;
padding: 5px;
background-color: #337ab7;
color: #fff;
border: 1px solid #337ab7;
}
</style>
- 数据管理
数据管理页面包括数据列表、数据详情、数据新增、数据编辑、数据删除等功能。
<template>
<div class="data-table">
<table>
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>价格</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr v-for="item in dataList" :key="item.id">
<td>{{ item.id }}</td>
<td>{{ item.name }}</td>
<td>{{ item.price }}</td>
<td>
<button @click="editData(item.id)">编辑</button>
<button @click="deleteData(item.id)">删除</button>
</td>
</tr>
</tbody>
</table>
<div class="data-form" v-show="isEditing">
<form @submit.prevent="onSubmit">
<div class="form-group">
<label for="name">名称</label>
<input type="text" id="name" v-model="formData.name">
</div>
<div class="form-group">
<label for="price">价格</label>
<input type="number" id="price" v-model="formData.price">
</div>
<div class="form-group">
<button type="submit">保存</button>
<button @click="cancelEdit">取消</button>
</div>
</form>
</div>
</div>
</template>
<script>
import { ref } from 'vue'
export default {
setup() {
const dataList = ref([])
const formData = ref({})
const isEditing = ref(false)
const getDataList = () => {
// 获取数据列表
}
const editData = (id) => {
// 获取数据详情
isEditing.value = true
}
const deleteData = (id) => {
// 删除数据
}
const onSubmit = () => {
// 保存数据
isEditing.value = false
}
const cancelEdit = () => {
isEditing.value = false
}
return {
dataList,
formData,
isEditing,
getDataList,
editData,
deleteData,
onSubmit,
cancelEdit
}
}
}
</script>
<style>
.data-table {
width: 100%;
border-collapse: collapse;
}
.data-table th, .data-table td {
border: 1px solid #ccc;
padding: 5px;
}
.data-table tbody tr:hover {
background-color: #f5f5f5;
}
.data-form {
display: none;
}
.data-form.active {
display: block;
}
.form-group {
margin-bottom: 15px;
}
label {
display: block;
margin-bottom: 5px;
}
input {
width: 100%;
padding: 5px;
border: 1px solid #ccc;
}
button {
width: 100%;
padding: 5px;
background-color: #337ab7;
color: #fff;
border: 1px solid #337ab7;
}
</style>
- 权限控制
权限控制包括用户管理、角色管理、权限管理等功能。
<template>
<div class="permission-manager">
<div class="user-list">
<h3>用户列表</h3>
<ul>
<li v-for="user in userList" :key="user.id">
{{ user.username }}
</li>
</ul>
</div>
<div class="role-list">
<h3>角色列表</h3>
<ul>
<li v-for="role in roleList" :key="role.id">
{{ role.name }}
</li>
</ul>
</div>
<div class="permission-list">
<h3>权限列表</h3>
<ul>
<li v-for="permission in permissionList" :key="permission.id">
{{ permission.name }}
</li>
</ul>
</div>
</div>
</template>
<script>
import { ref } from 'vue'
export default {
setup() {
const userList = ref([])
const roleList = ref([])
const permissionList = ref([])
const getUserList = () => {
// 获取用户列表
}
const getRoleList = () => {
// 获取角色列表
}
const getPermissionList = () => {
// 获取权限列表
}
return {
userList,
roleList,
permissionList,
getUserList,
getRoleList,
getPermissionList
}
}
}
</script>
<style>
.permission-manager {
display: flex;
justify-content: space-between;
}
.user-list, .role-list, .permission-list {
width: 300px;
padding: 20px;
border: 1px solid #ccc;
}
ul {
list-style-type: none;
padding: 0;
}
li {
margin-bottom: 10px;
}
</style>
项目优化
-
性能优化
使用性能分析工具,如Chrome DevTools的Performance面板,来识别性能瓶颈,并进行优化。 -
代码优化
使用代码优化工具,如ESLint和Prettier,来检查代码质量并进行优化。 -
安全优化
使用安全检查工具,如OWASP ZAP,来