请用vue3和element-plus实现一个美观的管理系统后台页面,顶部左侧为logo,顶部右侧为用户(下拉)信息,中间左侧为菜单导航,右侧为菜单对应内容
时间: 2023-06-17 17:04:18 浏览: 184
element-plus-1.0.1-beta.15.zip
很抱歉,我是一名语言模型AI,并没有屏幕输出的能力,无法直接展示界面。但我可以提供一份代码实现的参考。
首先我们需要安装Vue3和Element Plus,可以使用npm或yarn进行安装。
```bash
npm install vue@next
npm install element-plus -S
```
接下来创建一个Vue3的组件,包括顶部导航栏、侧边菜单栏和右侧内容区域。
```html
<template>
<div class="wrapper">
<!-- 顶部导航栏 -->
<div class="header">
<img class="logo" src="./assets/logo.png" alt="Logo" />
<el-dropdown class="user-dropdown" trigger="click">
<span class="user-name">{{ userName }}</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>个人中心</el-dropdown-item>
<el-dropdown-item>退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<!-- 侧边菜单栏 -->
<div class="aside">
<el-menu :default-active="activeMenu" class="menu" @select="handleMenuSelect">
<el-submenu v-for="menu in menus" :key="menu.id" :index="menu.id">
<template #title>
<i :class="menu.icon"></i>
<span>{{ menu.name }}</span>
</template>
<el-menu-item v-for="subMenu in menu.subMenus" :key="subMenu.id" :index="subMenu.id">{{ subMenu.name }}</el-menu-item>
</el-submenu>
</el-menu>
</div>
<!-- 右侧内容区域 -->
<div class="main">
<router-view></router-view>
</div>
</div>
</template>
<script>
export default {
data() {
return {
activeMenu: '1',
userName: 'admin',
menus: [
{
id: '1',
name: '首页',
icon: 'el-icon-s-home',
subMenus: []
},
{
id: '2',
name: '用户管理',
icon: 'el-icon-user-solid',
subMenus: [
{ id: '2-1', name: '用户列表' },
{ id: '2-2', name: '新增用户' },
{ id: '2-3', name: '用户详情' }
]
},
{
id: '3',
name: '订单管理',
icon: 'el-icon-s-order',
subMenus: [
{ id: '3-1', name: '订单列表' },
{ id: '3-2', name: '新增订单' },
{ id: '3-3', name: '订单详情' }
]
}
]
}
},
methods: {
handleMenuSelect(index) {
this.activeMenu = index
this.$router.push('/' + index)
}
}
}
</script>
<style scoped>
.wrapper {
display: flex;
flex-direction: column;
height: 100%;
}
.header {
display: flex;
align-items: center;
justify-content: space-between;
height: 60px;
padding: 0 20px;
background-color: #fff;
}
.logo {
width: 120px;
}
.user-dropdown {
font-size: 16px;
}
.user-name {
margin-right: 20px;
}
.aside {
width: 200px;
background-color: #f0f0f0;
border-right: 1px solid #e0e0e0;
}
.menu {
height: calc(100% - 60px);
padding-top: 20px;
}
.main {
flex: 1;
padding: 20px;
}
</style>
```
在这份代码中,我们使用了Element Plus提供的组件来实现顶部导航栏、侧边菜单栏和右侧内容区域。其中,使用了el-dropdown、el-menu和el-submenu等组件来实现下拉菜单、菜单导航和子菜单等功能。
需要注意的是,这份代码中使用了Vue Router来实现路由跳转,需要在路由配置文件中进行相应配置。
```javascript
import { createRouter, createWebHistory } from 'vue-router'
const routes = [
{
path: '/',
redirect: '/1'
},
{
path: '/:id',
component: () => import('./views/MenuContent.vue')
}
]
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
```
最后,我们可以在main.js中挂载该Vue实例。
```javascript
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css'
createApp(App).use(router).use(ElementPlus).mount('#app')
```
以上就是一个简单的管理系统后台页面的实现,你可以根据自己的需求进行相应的修改和扩展。
阅读全文