使用ElementUI + Vue框架实现学生管理系统前端页面设计

embedded/2024/11/14 23:48:06/

目录

一.什么是ElementUI?

二.使用ElementUI和Vue-cli搭建前端页面

三.具体步骤

1.创建vue-cli项目

2.分析

3.创建组件

四.总结


一.什么是ElementUI?

ElementUI是一种网站快速成型工具,一套为开发者,设计师准备的基于Vue2.0的桌面端组件库。

ElementUI官方网站如下:Element - 网站快速成型工具

其中ElementUI提供了很多种组件的原型,以及源码供开发者们使用。

二.使用ElementUI和Vue-cli搭建前端页面

目标页面如下:

三.具体步骤

1.创建vue-cli项目

2.分析

 我们现在需要登录的前端页面,管理系统的前端页面,以及两个管理系统中的学生管理和专业管理界面,所以需要创建四个 .vue 组件。

还需要创建一个.js配置路由。配置好路由一定要在main.js中导入路由对象。

首先,我们需要使用 vue-cli 和 ElementUI 就需要通过终端将 router 组件和 elementui的组件进行导入

javascript">//导入router组件
npm i vue-router@3.5.3
javascript">//导入ElementUI组件npm i element-ui -S

下载完成后在package.json中查看是否导入成功

导入成功后在main.js中配置:

3.创建组件

首先我们先来创建前端首页的第一个登陆界面:

注意:1.账号和密码为空时点击登录要提示信息。

2.密码框要采用隐藏式

大家也可以添加其他的组件到Login.vue中,使得页面更加新颖耐看。

javascript"><!-- 一个.vue文件是一个组件,可以理解为一个页面,但是和页面不同 内容都写在一个template标签中,template标签必须有一个根标签
-->
<template><div class="login_container"><!-- 登录盒子--><div class="login_box"><!-- 头像盒子--><div class="img_box"><img src="./assets/tx.jpg" /></div><!-- 登录表单--><div style="margin-top: 100px; padding-right: 20px;"><el-form ref="form" label-width="80px" ><el-form-item label="账号"><el-input v-model="account" ></el-input></el-form-item><el-form-item label="密码" ><el-input show-password v-model="password"></el-input></el-form-item><el-form-item><el-button type="primary" @click="login()" >登录</el-button><el-button>取消</el-button></el-form-item></el-form></div></div></div>
</template><script>
/* 导出组件,并为组件定义数据,函数,生命周期函数 */export default{data(){return{account:"",password:""}},methods:{login(){//进行前端判断账号密码不能为空if(this.account.length==0){this.$message({ message: '账号不能为空', type: 'warning'});return;}if(this.password.length==0){this.$message({ message: '密码不能为空', type: 'warning'});return;}//与后端交互//后端响应回来一个数据,用来判断是否登陆成功,如果登陆成功就跳转下个页面//this.$router.push("路由地址")  用来跳转页面this.$router.push("/main");},}}
</script><style>.login_container{height: 100vh;margin: 0px;padding: 0px;background-image: url(assets/vue-cli.png);}.login_box{width: 450px;height: 350px;background-color: #fff;border-radius: 10px;position: absolute;left: 50%;top: 50%;transform: translate(-50%,-50%);opacity: 0.95;}.img_box{width: 130px;height: 130px;position: absolute;left: 50%;transform: translate(-50%,-50%);background-color: #fff;border-radius: 50%;padding: 5px;border: 1px solid #eee;}.img_box img{width: 100%;height: 100%;border-radius: 50%;background-color: #eee;}
</style>

下面我们要来写管理系统平台的页面

注意:1.左侧为导航栏,下拉选择,并且每点击一个选择都会跳转到对应的界面,但是不会重新开一个界面(这里就要用到路由嵌套)。

2.点击右侧系统按钮会弹出选项,并且点击安全退出就会跳转到登录界面。

3.点击安全退出会弹出警告消息,让用户确认退出。

javascript"><template><div><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 ><span @click="logout()">安全退出</span></el-dropdown-item></el-dropdown-menu></el-dropdown><span>赵逸康</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-group></el-submenu></el-menu></el-aside><el-main><router-view></router-view></el-main></el-container></el-container></div>
</template><script>export default{data(){return{}},methods:{logout(){this.$confirm('您确定要退出吗?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {this.$router.push("/login");})}}}
</script><style>.el-header {background-color: #00a7fa;color: #333;line-height: 60px;}.el-main {background-color: aliceblue;height: 100vh;}.header-title{width: 300px;float: left;text-align: left;font-size: 20px;color: white;}</style>

再接下来就是两个专业管理和学生管理的子界面了,这两个界面都是再Main.vue下的子界面,所以在配置路由的时候就需要使用到路由嵌套,并且在Main.vue中还需要加上画布

下面两个StudentList.vue 和 MajorList.vue两个组件就很简单了,只需要在ElementUI中挑选出自己喜欢的表格组件,合理套用即可。

MajorList.vue:

javascript"><template><el-table:data="tableData"style="width: 35%"><el-table-columnprop="grade"label="年级"width="180"></el-table-column><el-table-columnprop="major"label="专业"width="180"></el-table-column><el-table-columnprop="students"label="学生人数"></el-table-column></el-table>
</template><script>export default{data(){return{tableData: [{grade: '20级',major: '计算机科学与技术',students: 300}, {grade: '21级',major: '计算机科学与技术',students: 350}, {grade: '22级',major: '计算机科学与技术',students: 330}, {grade: '23级',major: '计算机科学与技术',students: 360}]}},methods:{}}
</script><style>
</style>

 StudentList.vue:

javascript"><template><el-table:data="tableData"borderstyle="width: 100%"><el-table-columnfixedprop="id"label="学号"width="200"></el-table-column><el-table-columnprop="name"label="姓名"width="120"></el-table-column><el-table-columnprop="major"label="专业"width="170"></el-table-column><el-table-columnprop="class"label="班级"width="150"></el-table-column><el-table-columnprop="address"label="家庭地址"width="530"></el-table-column><el-table-columnprop="zip"label="邮编"width="120"></el-table-column><el-table-columnfixed="right"label="操作"width="100"><template slot-scope="scope"><el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button><el-button type="text" size="small">编辑</el-button></template></el-table-column></el-table>
</template><script>export default{data(){return{tableData: [{id: "1001",name: '张三',major: '计算机科学与技术',class: '计科2201',address: '陕西省渭南市大荔县666号',zip: 111111}, {id: '1002',name: '王小虎',major: '计算机科学与技术',class: '计科2201',address: '上海市普陀区金沙江路 1517 弄',zip: 200333}, {id: '1003',name: '李四',major: '网络工程',class: '网络2201',address: '陕西省延安市宝塔区888号',zip: 222222}, {id: '1004',name: '王小虎',major: '人工智能',class: '智能2201',address: '陕西省西安市未央区777号',zip: 333333}]}},methods:{handleClick(row) {console.log(row);}}}
</script><style>
</style>

四.总结

本篇博客呢,带领大家做了一个简单的vue-cli框架ElementUI的综合利用和搭建,其中还是包括很多细节的,比如嵌套路由后的添加画布以及组件切换需要加的router都是非常小的细节部分,我们做程序员必须要细节一些的。到这里呢,就要和大家说再见了,期待我们的下次再见,对于本篇博客有问题的同学可以在评论区留言或者私信博主嗷,我们一起进步!!!制作不易,还请大家可以多多支持,一键三连,谢谢大家!!!


http://www.ppmy.cn/embedded/105413.html

相关文章

JavaScript的BOM模型

一、浏览器环境概述(BOM) JavaScript 是浏览器的内置脚本语言&#xff0c;一旦网页内嵌了 JavaScript 脚本&#xff0c;浏览器加载网页&#xff0c;就会去执行脚本&#xff0c;从而达到操作浏览器的目的&#xff0c;实现网页的各种动态效果 二、script 元素工作原理 浏览器加…

defineExpose暴露子组件的属性及方法

1. defineExpose 的概念 defineExpose 是 Vue 3 的 Composition API 中一个新的实用函数&#xff0c;用于在 <script setup> 语法下显式暴露组件的公共属性和方法 这在处理子组件时特别有用&#xff0c;允许父组件访问子组件的特定属性或方法 在 Vue 3 中&#xff0c;…

Android 9.0 SystemUI状态栏/快捷设置介绍

Android 9.0 SystemUI状态栏/快捷设置介绍 状态栏 状态栏是SystemUI里的重要功能之一&#xff0c;状态栏的一大功能就是显示功能图标&#xff0c;以告知用户一些最基本的信息状态&#xff0c;在 Android 9.0 版本中&#xff0c;状态栏一般包含运营商信息、时间、日期、电池、通…

有序行转列

一、基础数据 有配送订单表记录骑手配送的物品类型、送达时间、顾客id、配送举例及配送费。 -------------------------------------------------------------------------------------------- | rider_id | order_id | goods_type | delivery_time | customer_id …

hackme靶机攻略

1.通过nmap扫描靶场ip 2.目录扫描 3.找出文件存储位置&#xff0c;看看哪里可以上传文件 4.注册账号登录一下 点击search 5.输入1 and 11 -- 1 and 12 --看看有无SQL注入 6.判断字段数 1 order by 3 -- 说明字段数是3 7.查看数据库 -1 union select database(),2,3 # 8.查…

AI人工智能_Prompt提示词工程如何生成API接口文档

AI人工智能_Prompt提示词工程如何生成API接口文档&#xff1f;在与AI大模型的交互中&#xff0c;每当我们输入一段文字&#xff0c;无论是问题、命令还是陈述&#xff0c;这段文字就是一个Prompt。 Prompt提示词工程&#xff08;Prompt Engineering&#xff09;是一种技术或方…

奇异递归模板模式(Curiously Recurring Template Pattern)

奇异递归模板模式(Curiously Recurring Template Pattern) - 知乎 (zhihu.com) 本文来自上面的文章&#xff01;&#xff01;&#xff01;本菜鸡学习和记录一下。 CRTP是C模板编程时的一种惯用法&#xff1a;把派生类作为基类的模板参数。 1.静态多态 #include <iostrea…

【RabbitMQ】基本概念以及安装教程

1. 什么是MQ MQ( Message queue),从字面意思上看,本质是个队列,FIFO 先入先出&#xff0c;只不过队列中存放的内容是消息(message)而已.消息可以非常简单,比如只包含文本字符串,JSON等,也可以很复杂,比如内嵌对象.MQ多用于分布式系统之间进行通信 系统之间的调用通常有两种方式…