Vue管理系统框架静态界面

最近使用Vue.js模仿Avuex的界面写了一个静态的管理系统框架界面,原因是开源的项目从里面挑出想要的东西并整合到自己的项目中真的是很困难,只是想要个简单的静态界面,于是就自己写了,希望大家也可以复用。(有很多地方细节还是没写好,希望以后加油!!!)

界面如下:

1)折叠前:

2)折叠后:

 

 代码如下: 

<template>
	<el-container>
		<div class="controlPanel-sidebar" width="220px">
			<el-menu class="el-menu-vertical-demo" 
				@open="handleOpen" 
				@close="handleClose" 
				:collapse="isCollapse"
				background-color="rgb(32,34,42)"
				text-color="rgba(255, 255, 255, 0.8)"
				active-text-color="#fff">
				<div class="Title1" v-if="!isCollapse"><span>控制台</span></div>
				<div class="Title2" v-if="isCollapse" style="width:60px;">A</div>

				<el-submenu index="1">
					<template slot="title">
						<i class="el-icon-data-board"></i>
						<span slot="title">工作台</span>
					</template>
					<el-menu-item index="1-1"><div class="barstyle"></div>通知公告</el-menu-item>
				</el-submenu>

				<el-submenu index="2">
					<template slot="title">
						<i class="el-icon-menu"></i>
						<span slot="title">事务管理</span>
					</template>
					<el-menu-item index="2-1"><div class="barstyle"></div>待办事务</el-menu-item>
					<el-menu-item index="2-2"><div class="barstyle"></div>办结事务</el-menu-item>
				</el-submenu>

				<el-submenu index="3">
					<template slot="title">
						<i class="el-icon-view"></i>
						<span slot="title">系统监控</span>
					</template>
					<el-menu-item index="3-1"><div class="barstyle"></div>接口文档</el-menu-item>
					<el-submenu index="3-2">
						<span slot="title">日志管理</span>
						<el-menu-item index="3-2-1"><div class="barstyle" style="margin-left:-60px"></div>通用日志</el-menu-item>
						<el-menu-item index="3-2-2"><div class="barstyle" style="margin-left:-60px"></div>接口日志</el-menu-item>
						<el-menu-item index="3-2-3"><div class="barstyle" style="margin-left:-60px"></div>错误日志</el-menu-item>
					</el-submenu>
				</el-submenu>

				<el-submenu index="4">
					<template slot="title">
						<i class="el-icon-connection"></i>
						<span slot="title">业务资源管理</span>
					</template>
					<el-menu-item index="4-1"><div class="barstyle"></div>应用管理</el-menu-item>
					<el-menu-item index="4-2"><div class="barstyle"></div>表单管理</el-menu-item>
					<el-submenu index="4-3">
						<span slot="title">流程管理</span>
						<el-menu-item index="4-3-1"><div class="barstyle" style="margin-left:-60px"></div>模型管理</el-menu-item>
						<el-menu-item index="4-3-2"><div class="barstyle" style="margin-left:-60px"></div>流程部署</el-menu-item>
						<el-menu-item index="4-3-3"><div class="barstyle" style="margin-left:-60px"></div>实例监控</el-menu-item>
						<el-menu-item index="4-3-4"><div class="barstyle" style="margin-left:-60px"></div>流程监控</el-menu-item>
					</el-submenu>
					<el-menu-item index="4-4"><div class="barstyle"></div>列表管理</el-menu-item>
					<el-menu-item index="4-5"><div class="barstyle"></div>业务角色管理</el-menu-item>
				</el-submenu>

				<el-submenu index="5">
					<template slot="title">
						<i class="el-icon-data-analysis"></i>
						<span slot="title">平台管理</span>
					</template>
					<el-menu-item index="5-1"><div class="barstyle"></div>平台角色管理</el-menu-item>
					<el-menu-item index="5-2"><div class="barstyle"></div>平台用户管理</el-menu-item>
					<el-menu-item index="5-3"><div class="barstyle"></div>平台菜单管理</el-menu-item>
				</el-submenu>

				<el-submenu index="6">
					<template slot="title">
						<i class="el-icon-setting"></i>
						<span slot="title">系统管理</span>
					</template>
					<el-menu-item index="6-1"><div class="barstyle"></div>用户管理</el-menu-item>
					<el-menu-item index="6-2"><div class="barstyle"></div>组织机构</el-menu-item>
					<el-menu-item index="6-3"><div class="barstyle"></div>场景管理</el-menu-item>
					<el-menu-item index="6-4"><div class="barstyle"></div>字典管理</el-menu-item>
					<el-menu-item index="6-5"><div class="barstyle"></div>菜单管理</el-menu-item>
				</el-submenu>
			</el-menu>
		</div>
		<el-container class="controlPanel-mainbar" >
			<el-header height="55px"> 
				<i class="el-icon-s-fold" @click="CollapseTrue()" id="CollapseTrueIcon"></i>
				<i class="el-icon-s-unfold" @click="CollapseFalse()" id="CollapseFalseIcon"></i>
				<el-input
					placeholder="请输入搜索内容"
					v-model="input"
					size="small">
					<el-button slot="append" icon="el-icon-search"></el-button>
				</el-input>
				<div class="userinfo">
					
					<el-dropdown :hide-on-click="false">
						<div class="el-dropdown-link">
							admin<i class="el-icon-arrow-down el-icon--right"></i>
						</div>
						<el-dropdown-menu slot="dropdown">
							<el-dropdown-item>首页</el-dropdown-item>
							<el-dropdown-item>个人信息</el-dropdown-item>
							<el-dropdown-item>github</el-dropdown-item>
							<el-dropdown-item divided>退出系统</el-dropdown-item>
						</el-dropdown-menu>
					</el-dropdown>
					<div class="avater"></div>
				</div>
			</el-header>
			<el-main>
				<el-scrollbar style="height:100%">
					<keep-alive>
						<router-view></router-view>
					</keep-alive>
				</el-scrollbar>
			</el-main>
		</el-container>
	</el-container>
</template>

<script>
export default {
	name: 'topbar',
	data() {
		return {
			isCollapse: false,
			input: ''
		};
	},
	methods: {
		handleOpen(key, keyPath) {
			console.log(key, keyPath);
		},
		handleClose(key, keyPath) {
			console.log(key, keyPath);
		},
		//收起
		CollapseTrue() {
			this.isCollapse = true;
			var show1 = document.getElementById("CollapseTrueIcon");
			var show2 = document.getElementById("CollapseFalseIcon");
			show2.style.display = "block";
			show1.style.display = "none";
		},
		//展开
		CollapseFalse() {
			this.isCollapse = false;
			var show1 = document.getElementById("CollapseTrueIcon");
			var show2 = document.getElementById("CollapseFalseIcon");
			show1.style.display = "block";
			show2.style.display = "none";
		}
	}
}
</script>

<style lang="scss" scoped>
.controlPanel-sidebar {
	height: 100vh;
	.Title1 {
		background:rgb(32,34,42);
		width:219px;
		height:55px;
		border-bottom: 2px rgb(6,7,8) solid;
		span {
			display: block;
			text-align: center;
			font-weight: 300;
			font-size: 18px;
			color: white;
			font-family: 'YouYuan';
			padding-top: 15px;
		}
	}
	.Title2 {
		background:rgb(32,34,42);
		width:219px;
		height:55px;
		border-bottom: 2px rgb(6,7,8) solid;
		display: block;
		text-align: center;
		font-size: 18px;
		font-weight: bold;
		color: #fff;
		padding-top:15px;
	}
	.el-menu-vertical-demo {
		// width: 220px;
		min-height: 100%;
		height: 100%;
		.barstyle {
			width: 4px;
			background: #409EFF;
			height: 50px;
			float: left;
			margin-left: -40px;
			display: none;
		}
		.el-menu-item:hover {
			background: rgb(6,7,8) !important;
			color: #fff !important;
			i {
				color: #fff !important;
			}
			.barstyle {
                display: block;
            }
		}
		.el-menu-item.is-active {
			background: rgb(6,7,8) !important;
			.barstyle {
                display: block;
            }
		}
	}
	.el-menu-vertical-demo:not(.el-menu--collapse) {
		width: 220px;
	}
}
.controlPanel-mainbar {
	padding: 0px;
	height: 100vh;
	background: rgb(242,242,242);
	.el-header {
		background: white !important;
		.el-icon-s-fold {
			font-size: 28px;
			color: rgb(144,147,153);
			padding-top: 13px;
			display: block;
			width: 20px;
			float: left;
		}
		.el-icon-s-unfold {
			font-size: 28px;
			color: rgb(144,147,153);
			padding-top: 13px;
			display: none;
			width: 20px;
			float: left;
		}
		.el-input {
			width:250px;
			padding-left: 30px;
			padding-top: 12px;
			.el-button {
				padding-left: 13px;
				padding-right: 6px;
			}
		}
		.userinfo {
			float: right;
			.avater {
				width: 35px;
				height: 35px;
				background: rgb(56,161,242);
				-moz-border-radius: 50px;
				-webkit-border-radius: 50px;
				border-radius: 50px;
				margin-top: 10px;
				float: right;
				margin-right: 15px;
			}
			.el-dropdown {
				float: right;
				.el-dropdown-link {
					color: black !important;
					// float: right;
					margin-right: 5px;
					margin-top: 18px;
				}

			}
		}
	}
}
</style>
<style>
.controlPanel-sidebar .el-submenu i,span{
	color: rgba(255, 255, 255, 0.8) !important;
}
.controlPanel-sidebar .el-submenu i:hover,span:hover{
	color: #fff !important;
	background: rgb(6,7,8) !important;
}
.controlPanel-sidebar .el-submenu .el-submenu__title:hover{
	color: #fff !important;
	background: rgb(6,7,8) !important;

}
.controlPanel-sidebar .el-submenu .el-submenu__title.is-active {
	background: rgb(6,7,8) !important;
}
</style>

 

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于SSM+Vue的健身房管理系统是一个现代化、高效的管理平台,它结合了后端的Spring、SpringMVC和MyBatis框架(即SSM)以及前端Vue.js技术。该系统旨在为健身房提供一个简洁、易用的管理工具,涵盖了会员管理、课程安排、教练管理、设备维护等多个方面。 源码介绍: 后端:使用Java语言开发,基于Spring框架进行业务处理,SpringMVC负责请求分发,MyBatis用于数据持久化。整个后端结构清晰,代码分层明确,便于维护和扩展。 前端:采用Vue.js框架,结合组件化思想构建用户界面。通过Axios与后端进行数据交互,保证了前后端分离的架构模式。 部署说明: 系统环境要求:确保已安装JDK、MySQL数据库、Maven、Node.js等必要环境。 后端部署:导入项目到IDE中,配置好数据库连接信息,运行Maven命令进行依赖管理和项目构建,然后启动Spring Boot应用。 前端部署:在项目根目录下运行npm install安装依赖,然后执行npm run build命令打包前端资源,最后将打包好的文件放置到后端项目的静态资源目录下。 演示视频: 为了更直观地展示系统功能,开发者提供了演示视频,其中展示了会员注册登录、课程预约、教练信息查看、设备借用等核心功能的实际操作流程。 总结: 总之这个基于SSM+Vue的健身房管理系统不仅提供了完整的健身房运营解决方案,还通过精心的设计和实现确保了系统的高性能和用户体验。无论是对于健身房业主还是管理人员,这个系统都是一个提升工作效率、优化客户体验的有力工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值