宿舍管理系统代码详解(主页面)

news2024/11/18 9:48:35

        本篇将对管理系统的主页面的代码进行详细的介绍。

目录

一、主页面前端代码

        1.样式展示

        2.代码详解 

        (1)template部分

        (2)script部分

        (3)路由导航守卫

        (4)在vue中引用vue


一、主页面前端代码

        1.样式展示

        2.代码详解 

        (1)template部分

<template>
	<el-container>
		<el-header style="text-align: right; font-size: 12px">
			<div class="header-title">
				后台管理系统
			</div>
			<el-dropdown>
				<i class="el-icon-setting" style="margin-right: 15px"></i>
				<el-dropdown-menu slot="dropdown">
					<el-dropdown-item>个人信息</el-dropdown-item>
					<el-dropdown-item>修改密码</el-dropdown-item>
					<el-dropdown-item><span @click="logout()">安全退出</span></el-dropdown-item>
				</el-dropdown-menu>
			</el-dropdown>
			<span>{{account}}</span>
		</el-header>
		<el-container>
			<el-aside width="200px" style="background-color: rgb(238, 241, 246)">

				<el-menu :default-openeds="['1', '3']" router>
					<el-submenu index="1">
						<template slot="title"><i class="el-icon-message"></i>导航一</template>
						<el-menu-item-group>
							<el-menu-item index="/majorlist">专业管理</el-menu-item>
							<el-menu-item index="/studentList">学生管理</el-menu-item>
							<el-menu-item index="/BuildList">楼栋管理</el-menu-item>
							<el-menu-item index="/BmList">宿舍员管理</el-menu-item>
							<el-menu-item index="/DormList">宿舍员管理</el-menu-item>
						</el-menu-item-group>
					</el-submenu>
				</el-menu>
			</el-aside>
			<el-main>
				<router-view></router-view>
			</el-main>
		</el-container>
	</el-container>
</template>

        这部分代码依旧是element-UI组件里面的布局代码,从官网上可以直接引用(Element - 全球最流行的 Vue UI 框架)。然后在基础上修改以满足自己需要的内容样式。

注意这部分的导航这部分的代码,在新建导航或者新建导航内的内容时,记得将标签前后都带上。

        (2)script部分

<script>
	export default {
		data() {
			return {
				account: ""
			}
		},
		methods: {
			logout() {
				this.$confirm('您确定要退出吗?', '提示', {
					confirmButtonText: '确定',
					cancelButtonText: '取消',
					type: 'warning'
				}).then(() => {
					sessionStorage.clear();
					this.$router.replace("/login");
				})
			}
		},
		mounted() {
			//去除要显示的用户信息
			this.account = sessionStorage.getItem("account");
		}
	}
</script>

        1.account数据需要显示在主页面右上角,所以需要传值

        2.logout()函数:用来退出登录的,直接退出到登录界面

        (3)路由导航守卫

网页有可能会跳过登录界面直接进入到主页面,是不安全的,所以要添加导航守卫,确保在点击其他的内容时吗,进行判断,当用户信息为空时返回到登录界面。

//路由导航守卫,每当前端发生一次路由跳转时,会自动触发beforeEach();
router.beforeEach((to, from, next) => {
	if (to.path == '/login') { //如果访问登录组件,不需要做任何判断,直接放行
		return next(); //放行到目标组件
	} else {
		var account = sessionStorage.getItem("account");
		if (account == null) { //用户信息为空,说明用户没有登录
			return next("/login");
		} else { //说明用户已经登录
			next();
		}
	}
})

        (4)在vue中引用vue

        在vue中调用其他的vue文件,会重新打开一个新的页面来显示新的vue内的东西,我们需要的是在本网页内打开,所以需要使用children方法:

routes: [{
			path: '/',
			component: Login
		},
		{
			path: '/login',
			component: Login
		},
		{
			path: '/Main',
			component: Guanli,
			children: [{
					path: "/majorlist",
					component: MajorList
				},
				{
					path: "/StudentList",
					component: StudentList
				},
				{
					path: "/BuildList",
					component: BuildList
				},
				{
					path: "/BmList",
					component: BmList
				},
				{
					path: "/DormList",
					component: DormList
				}
			]
		}
	]

        vue中引用vue定义是这样定义的,但是还需要进行路由导入

import MajorList from '../views/major/MajorList.vue';
import StudentList from '../views/student/StudentList.vue';
import BuildList from '../views/building/BuildList.vue';
import BmList from '../views/buildmanager/BmList.vue';
import DormList from '../views/dorms/DormList.vue';

        因为主页面只是用来展示,调用其他的导航内容的,所以不需要与后端交互,没有交互的内容,因此没有后端的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1675930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

富唯智能复合机器人:CNC铝块上下料安全新标准

在CNC铝块加工过程中&#xff0c;上下料环节的安全问题一直是企业关注的焦点。富唯智能复合机器人的应用&#xff0c;为这一环节树立了新的安全标准。 传统的上下料方式往往依赖于人工操作&#xff0c;存在着较大的安全隐患。而富唯智能复合机器人采用先进的视觉识别技术和精准…

Charger之二输入电压动态电源原理(VIN-DPM)

主要内容 Charger的VIN-DPM 前篇内容&#xff1a;电池管理IC&#xff08;Charger&#xff09;了解一下&#xff1f; 领资料&#xff1a;点下方↓名片关注回复&#xff1a;粉丝群 正文 一、 VIN-DPM概念 VIN-DPM是指输入电压动态电源管理&#xff08;Input voltage dynamic…

全栈开发之路——前端篇(9)插槽、常用api和全局api

全栈开发一条龙——前端篇 第一篇&#xff1a;框架确定、ide设置与项目创建 第二篇&#xff1a;介绍项目文件意义、组件结构与导入以及setup的引入。 第三篇&#xff1a;setup语法&#xff0c;设置响应式数据。 第四篇&#xff1a;数据绑定、计算属性和watch监视 第五篇 : 组件…

OpenAI 把超强AI带进日常,GPT-4o 让机器也懂情感!

一、前言 ⭐⭐ 立即体验&#xff1a;GPT-4o OpenAI 在春季发布会上推出了名为 GPT-4o 的旗舰级生成式人工智能模型&#xff0c;这一模型的发布不仅标志着技术的巨大飞跃&#xff0c;更预示着人机交互方式的全面革新。"o" 在 GPT-4o 中代表 "omni"&#xf…

Codeforces Round 944 (Div. 4)(A,B,C,D,E,F,G,H)

比赛链接 这场不难&#xff0c; G G G 和 H H H 比较有意思。 G G G 题需要一定的二进制和数据结构的知识&#xff0c; H H H 题是个 2 − s a t 2-sat 2−sat 的题&#xff0c;算法名字吓人但是其实很简单&#xff0c;题目本身也很板&#xff0c;建议趁机学习一波。 A. My …

vue获取路由的值

1&#xff0c;此方法获取到请求地址后面的值 如 /name123&age12 2&#xff0c;此方法获取到请地址&#xff1f;后面的值 例如?name123&age12 二者的区别&#xff0c;第一个是直接在路径后面拼接&#xff0c;第二种就是正规的http请求。 路径带&#xff1f;号的

Ajax 学习

文章目录 1. 前置知识1.1 ajax 介绍1.2 XML 简介 2. AJAX 学习2.1 AJAX基础学习&#xff08;1&#xff09;AJAX的特点&#xff08;2&#xff09;AJAX 初体验&#xff08;3&#xff09;服务端响应json 数据 2.2 IE 缓存问题2.3 请求超时和网络异常2.4 手动取消请求2.5 重复请求2…

使用DBeaver的第2天-使用sql导入数据

使用sql导入数据这块我会仔细的说一下 首先位置一定要放在库上&#xff08;实例&#xff09;&#xff0c;放在表上可不好使用哦 然后点击工具-再点击执行脚本 这样就执行成功了 但是如果你执行失败了&#xff0c;多半可能是因为本地没有部署mysql&#xff0c;记住只有本地有…

搜索引擎的设计与实现(四)

目录 6 系统测试 6.1测试重要性 6.2测试用例 结 论 参 考 文 献 前面内容请移步 搜索引擎的设计与实现&#xff08;三&#xff09; 免费源代码&毕业设计论文 搜索引擎的设计与实现 6 系统测试 6.1测试重要性 该项目是在本地服务器上进行运行和调试&#xff0c;…

BOM部分

一&#xff0c;概述 二&#xff0c;Windows对象常见的事件 1.窗口加载事件 上面那个是会等页面都加载完了&#xff0c;在进行函数的调用或者触发事件&#xff0c;如&#xff08;图像&#xff0c;文本&#xff0c;css&#xff0c;js等&#xff09;&#xff0c;所以那个声明可以…

IT行业找工作十面十败,不妨试试鸿蒙开发岗~

近期某脉上看到这样一则帖子&#xff0c;讨论的非常激烈&#xff01; 相信也有不少人有和他这情况类似&#xff0c;像他这种失业的状态&#xff0c;近两年大家或多或少都深有体验。由于互联网行业进过了十几年的快速发展&#xff0c;从2G→3G→4G→5G&#xff0c;在这个期间人们…

Linux基础之进程-进程状态

目录 一、进程状态 1.1 什么是进程状态 1.2 运行状态 1.2 阻塞状态 1.3 挂起状态 二、Linux操作系统上具体的进程状态 2.1 状态 2.2 R 和 S 状态的查看 2.3 后台进程和前台进程 2.4 休眠状态和深度休眠状态 一、进程状态 1.1 什么是进程状态 首先我们知道我们的操作系…

未来互联网:Web3的技术革新之路

引言 随着技术的不断发展和社会的日益数字化&#xff0c;互联网作为信息交流和社交媒介的重要平台已经成为我们生活中不可或缺的一部分。然而&#xff0c;传统的互联网架构在数据安全、隐私保护和去中心化等方面存在着诸多挑战。为了解决这些问题&#xff0c;Web3技术应运而生…

【js】获取媒体流实现拍照功能,摄像头切换

<script setup>import {onMounted,reactive,ref} from vueconst videoConstraints reactive({width: 500,height: 300});let picArr reactive([])let videoNode ref(null)let show ref(true)let stream reactive({})onMounted(async () > {// 获取视频流&#xf…

C++语法|深入理解 new 、delete

在开发过程中&#xff0c;非常重要的语法就有我们new和delete&#xff0c;周所周知在C中最为强大的能力就是对内存的控制&#xff0c;所以我们再怎么强调new和delete都不为过 文章目录 1.new和delete基本语法new和malloc的区别是什么&#xff1f;(1)开辟单个元素的内存差别(2)开…

Python专题:十三、日期和时间(2)

datetime 模块 today()函数 date类型 year month day

摊还分析

一、摊还分析 概念&#xff1a;是求数据结构中一个操作序列执行所有操作的平均时间&#xff0c;与平均复杂度不同&#xff0c;它不涉及输入概率&#xff0c;能够保证在最坏情况下操作的平均性能。 适用场景&#xff1a;用含 n 个操作的序列&#xff08;o1&#xff0c;o2&#x…

互联网轻量级框架整合之HibernateMyBatis

持久层框架 Hibernate 假设有个数据表&#xff0c;它有3个字段分别是id、rolename、note, 首先用IDEA构建一个maven项目Archetype选择org.apache.maven.archetypes:maven-archetype-quickstart即可&#xff0c;配置如下pom <project xmlns"http://maven.apache.org/…

ERROR: tensorboard 1.14.0 has requirement setuptools>=41.0.0(问题解决)

问题描述&#xff1a; ERROR: tensorboard 1.14.0 has requirement setuptools>41.0.0, but youll have setuptools 39.2.0 which is incompatible. 问题原因&#xff1a; setuptools 版本太低 解决方法&#xff1a;升级setuptools版本 pip install --upgrade setuptools…

Notepad8.1.9汉化中文版

下载地址&#xff1a;Notepad8.1.9.zip 一款优秀免费的源代码编辑器&#xff0c;支持语法高亮的开源纯文本编辑器&#xff0c;并且可以替代系统自带的记事本的功能。