Vue+SpringBoot+ElementUI实战学生管理系统-6.院系管理模块
1.章节介绍
前一篇介绍了用户管理模块,这一篇编写院系管理模块,需要的朋友可以拿去自己定制。:)
2.获取源码
源码是捐赠方式获取,详细请QQ联系我 :)!
3.实现效果
院系列表

修改院系

4.模块代码
页面布局
<template>
<div>
<!-- 面包屑导航区 -->
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item>首页</el-breadcrumb-item>
<el-breadcrumb-item>院系管理</el-breadcrumb-item>
<el-breadcrumb-item>院系列表</el-breadcrumb-item>
</el-breadcrumb>
<!-- 卡片视图 -->
<el-card>
<!-- 搜索 添加 -->
<el-row :gutter="20">
<el-col :span="6">
<el-input placeholder="请输入院系名称"
v-model="queryInfo.query"
clearable
@clear="getDeptList">
<el-button slot="append"
icon="el-icon-search"
@click="getDeptList"></el-button>
</el-input>
</el-col>
<el-col :span="4">
<el-button type="primary"
@click="addDialogVisible = true">添加院系</el-button>
</el-col>
</el-row>
<!-- 院系列表区域 -->
<el-table :data="deptList"
border
stripe>
<!-- stripe: 斑马条纹
border:边框-->
<el-table-column type="index"
label="序号"></el-table-column>
<el-table-column prop="deptNo"
label="院系编码"></el-table-column>
<el-table-column prop="deptName"
label="院系名称"></el-table-column>
<el-table-column prop="remark"
label="备注"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary"
icon="el-icon-edit"
size="mini"
circle
@click="showEditDialog(scope.row.id)"></el-button>
<el-button type="danger"
icon="el-icon-delete"
size="mini"
circle
@click="removeById(scope.row.id)"></el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页区域 -->
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="queryInfo.pageNo"
:page-size="queryInfo.pageSize"
layout="total, prev, pager, next, jumper"
:total="total"></el-pagination>
</el-card>
<!-- 添加院系的对话框 -->
<el-dialog title="添加院系"
:visible.sync="addDialogVisible"
width="30%"
@close="addDialogClosed">
<!-- 内容主体 -->
<el-form :model="addForm"
ref="addFormRef"
:rules="addFormRules"
label-width="100px">
<el-form-item label="院系编码"
prop="deptNo">
<el-input v-model="addForm.deptNo"></el-input>
</el-form-item>
<el-form-item label="院系名称"
prop="deptName">
<el-input v-model="addForm.deptName"></el-input>
</el-form-item>
<el-form-item label="备注"
prop="remark">
<el-input v-model="addForm.remark"></el-input>
</el-form-item>
</el-form>
<span slot="footer"
class="dialog-footer">
<el-button @click="addDialogVisible = false">取 消</el-button>
<el-button type="primary"
@click="add">确 定</el-button>
</span>
</el-dialog>
<!-- 修改院系的对话框 -->
<el-dialog title="修改院系信息"
:visible.sync="editDialogVisible"
width="30%"
@close="editDialogClosed">
<!-- 内容主体 -->
<el-form :model="editForm"
ref="editFormRef"
:rules="editFormRules"
label-width="70px">
<el-form-item label="院系编码">
<el-input v-model="editForm.deptNo"></el-input>
</el-form-item>
<el-form-item label="院系名称">
<el-input v-model="editForm.deptName"></el-input>
</el-form-item>
<el-form-item label="备注"
prop="remark">
<el-input v-model="editForm.remark"></el-input>
</el-form-item>
</el-form>
<span slot="footer"
class="dialog-footer">
<el-button @click="editDialogVisible = false">取 消</el-button>
<el-button type="primary"
@click="editUser">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
数据和事件
<script>
export default {
data() {
return {
// 获取院系列表查询参数对象
queryInfo: {
query: "",
// 当前页数
pageNo: 1,
// 每页显示多少数据
pageSize: 5,
},
deptList: [],
total: 0,
// 添加院系对话框
addDialogVisible: false,
// 院系添加
addForm: {
deptNo: "",
deptName: "",
remark: "",
},
// 院系添加表单验证规则
addFormRules: {
deptNo: [
{ required: true, message: "请输入院系编码", trigger: "blur" },
{
min: 2,
max: 10,
message: "院系编码的长度在2~10个字",
trigger: "blur",
},
],
deptName: [
{ required: true, message: "请输入院系名称", trigger: "blur" },
{
min: 2,
max: 100,
message: "院系名称的长度在2~100个字",
trigger: "blur",
},
],
},
// 修改院系
editDialogVisible: false,
editForm: {},
// 编辑院系表单验证
editFormRules: {
deptName: [
{ required: true, message: "请输入院系名称", trigger: "blur" },
],
},
};
},
created() {
this.getDeptList();
},
methods: {
async getDeptList() {
const { data: res } = await this.$http.get("dept/list", {
params: this.queryInfo,
});
if (res.code !== 200) {
return this.$message.error("获取院系列表失败!");
}
this.deptList = res.data.records;
this.total = res.data.total;
},
// 监听 pageSize改变的事件
handleSizeChange(newSize) {
// console.log(newSize)
this.queryInfo.pageSize = newSize;
this.getDeptList();
},
// 监听 页码值 改变事件
handleCurrentChange(newSize) {
// console.log(newSize)
this.queryInfo.pageNo = newSize;
this.getDeptList();
},
// 监听 添加院系对话框的关闭事件
addDialogClosed() {
this.$refs.addFormRef.resetFields();
},
// 添加院系
add() {
// 提交请求前,表单预验证
this.$refs.addFormRef.validate(async (valid) => {
// console.log(valid)
// 表单预校验失败
if (!valid) return;
const { data: res } = await this.$http.post(
"dept/modify",
this.addForm
);
if (res.code !== 200) {
this.$message.error("添加院系失败!");
return;
}
this.$message.success("添加院系成功!");
// 隐藏添加院系对话框
this.addDialogVisible = false;
this.getDeptList();
});
},
// 编辑院系信息
async showEditDialog(id) {
const { data: res } = await this.$http.get("dept/" + id);
if (res.code !== 200) {
return this.$message.error("查询院系信息失败!");
}
this.editForm = res.data;
this.editDialogVisible = true;
},
// 监听修改院系对话框的关闭事件
editDialogClosed() {
this.$refs.editFormRef.resetFields();
},
// 修改院系信息
editUser() {
// 提交请求前,表单预验证
this.$refs.editFormRef.validate(async (valid) => {
// console.log(valid)
// 表单预校验失败
if (!valid) return;
const { data: res } = await this.$http.post("dept/modify", {
id: this.editForm.id,
deptName: this.editForm.deptName,
remark: this.editForm.remark,
});
if (res.code !== 200) {
this.$message.error("更新院系信息失败!");
}
// 隐藏添加院系对话框
this.editDialogVisible = false;
this.$message.success("更新院系信息成功!");
this.getDeptList();
});
},
// 删除院系
async removeById(id) {
const confirmResult = await this.$confirm("确定删除该院系?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).catch((err) => err);
// 点击确定 返回值为:confirm
// 点击取消 返回值为: cancel
if (confirmResult !== "confirm") {
return this.$message.info("已取消删除");
}
const { data: res } = await this.$http.post("dept/remove/" + id);
if (res.code !== 200) return this.$message.error("删除院系失败!");
this.$message.success("删除院系成功!");
this.getDeptList();
},
},
};
</script>
Vue+SpringBoot+ElementUI实战学生管理系统-6.院系管理模块的更多相关文章
- Vue+SpringBoot项目实战(一) 搭建环境
GitHub 地址: https://github.com/dongfanger/sprint-backend https://github.com/dongfanger/sprint-fronten ...
- vue.js+element-ui
git地址:https://github.com/jerry9022/LitAdmin vue.js+element-ui 做后台管理系统 太方便了
- vue后台管理系统——商品管理模块
电商后台管理系统的功能--商品管理模块 商品管理概述 商品管理模块用于维护电商平台的商品信息,包括商品的类型.参数.图片.详情等信息. 通过商品管理模块可以实现商品的添加.修改.展示和删除等功能. 1 ...
- vue后台管理系统——订单管理模块
电商后台管理系统的功能--订单管理模块 1. 订单管理概述 订单管理模块用于维护商品的订单信息, 可以查看订单的商品信息.物流信息,并且可以根据实际的运营情况对订单做适当的调整. 2. 订单列表 在c ...
- vue后台管理系统——权限管理模块
电商后台管理系统的功能--权限管理模块 1. 权限管理业务分析 通过权限管理模块控制不同的用户可以进行哪些操作,具体可以通过角色的方式进行控制,即每个用户分配一个特定的角色,角色包括不同的功能权限. ...
- vue后台管理系统——用户管理模块
电商后台管理系统的功能--用户管理模块 1. 用户管理概述 通过后台管理用户的账号信息,具体包括用户信息的展示.添加.修改.删除.角色分配.账号启用/注销等功能. 用户信息列表展示 添加用户 修改用户 ...
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑
(1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(一): 搭建基本环境、整合 Swagger、MyBatisPlus、JSR303 以及国际化操作
相关 (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y- ...
- 使用vue+elementUI+springboot创建基础后台增删改查的管理页面--(1)
目前这家公司前端用的是vue框架,由于在之前的公司很少涉及到前端内容,对其的了解也只是会使用js和jquery,所以..慢慢来吧. 在此之前需要先了解vue的大致语法和规则,可先前往官方文档进行学习h ...
- 新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚
新书上线 大家好,笔者的新书<Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统>已上线,此书内容充实.材质优良,乃家中必备垫桌脚 ...
随机推荐
- 左值,右值,引用,指针,常量,auto如何组合?
左值,右值,引用,指针,常量,auto如何组合? 左值引用:int &a = b; 左值引用是通过使用&符号来声明的,例如int &a. 左值引用用于绑定到左值(可标识的.持久 ...
- [转帖]【split】Linux上用 split实现大文件的拆分和合并
https://www.jianshu.com/p/87748b8563a9 有没有遇到某些网站上传复件时,单个文件有大小限制,导致上传失败呢?当然你可以采用更高的压缩率重新生成压缩包来解决,但如果还 ...
- [转帖]062、监控指标之PD
PD相关 Grafana 监控 PD -> PD Dashboard 是否存在异常状态的TiKV Grafana 监控 PD -> Region health 大表清理后,出现了大量的空r ...
- [转帖]Kafka 核心技术与实战学习笔记(六)kafka线上集群部署方案
一.操作系统-Linux Kafka是JVM系的大数据框架 kafka由Scala语言和Java语言编写而成,编译之后的源代码就是普通的".class"文件 使用Linux kaf ...
- [转帖]军备芯片14nm对比5nm,在战场上差距在哪里?
https://www.eet-china.com/mp/a207185.html 现在全球已经打响科技之战,每个国家都在力求让自己做到足够拔尖.美国商务部长就曾自曝家底说,美国制定两套战略应对在芯片 ...
- [转帖]Linux系统语言设置和locale命令详解
简介 Linux系统可以用locale命令查看语言设置,查看中英文环境,具体操作如下. 操作 1.查看当前安装有那些语言: [root@localhost /]# locale -a 2.当前语言相关 ...
- Linux下PG数据库计划任务定期备份恢复的方法
注意事项 PG数据库需要注意的一点是需要安装OSSP-UUID的组件才能使用. 本次使用最除了冷备之外 最简单的 pg_dump和pg_restore的操作 的方式来进行处理 务必定期演练保证数据备份 ...
- js设计模式(下)
引用:(23条消息) <Javascript设计模式与开发实践>关于设计模式典型代码的整理(下):模板方法模式.享元模式.职责链模式.中介者模式.装饰模式.状态模式.适配器模式_QQsil ...
- 百度飞桨:ERNIE 3.0 、通用信息抽取 UIE、paddleNLP的安装使用[一]
相关文章: 基础知识介绍: [一]ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?_汀.的博客-CSDN博客_ernie模型 百度飞桨: ...
- Python 实现Web容器指纹识别
当今的Web安全行业在进行渗透测试时普遍第一步就是去识别目标网站的指纹,从而进一步根据目标框架进行针对性的安全测试,指纹识别的原理其实很简单,目前主流的识别方式有下面这几种. 1.识别特定网页中的关键 ...