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="getGradeList">
<el-button slot="append"
icon="el-icon-search"
@click="getGradeList"></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="gradeList"
border
stripe>
<!-- stripe: 斑马条纹
border:边框-->
<el-table-column type="index"
label="序号"></el-table-column>
<el-table-column prop="gradeNo"
label="班级编号"></el-table-column>
<el-table-column prop="gradeName"
label="班级名称"></el-table-column>
<el-table-column prop="deptName"
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="gradeNo">
<el-input v-model="addForm.gradeNo"></el-input>
</el-form-item>
<el-form-item label="班级名称"
prop="gradeName">
<el-input v-model="addForm.gradeName"></el-input>
</el-form-item> <el-form-item label="所属院系"
prop="deptId">
<el-select v-model="addForm.deptId"
placeholder="请选择">
<el-option v-for="item in deptList"
:key="item.id"
:label="item.deptName"
:value="item.id">
</el-option>
</el-select>
</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.gradeNo"></el-input>
</el-form-item>
<el-form-item label="班级名称">
<el-input v-model="editForm.gradeName"></el-input>
</el-form-item>
<!-- TODO -->
<el-form-item label="所属院系"
prop="deptId">
<el-select v-model="editForm.deptId"
placeholder="请选择">
<el-option v-for="item in deptList"
:key="item.id"
:label="item.deptName"
:value="item.id">
</el-option>
</el-select>
</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 {
// 院系列表
deptList: [],
// 获取班级列表查询参数对象
queryInfo: {
query: "",
// 当前页数
pageNo: 1,
// 每页显示多少数据
pageSize: 5,
},
gradeList: [],
total: 0,
// 添加班级对话框
addDialogVisible: false,
// 班级添加
addForm: {
gradeNo: "",
gradeName: "",
deptId: "",
},
// 班级添加表单验证规则
addFormRules: {
gradeNo: [
{ required: true, message: "请输入班级编号", trigger: "blur" },
{
min: 2,
max: 10,
message: "班级编号的长度在2~10个字",
trigger: "blur",
},
],
gradeName: [
{ required: true, message: "请输入班级名称", trigger: "blur" },
{
min: 2,
max: 50,
message: "班级名称的长度在2~50个字",
trigger: "blur",
},
],
deptId: [
{ required: true, message: "请输入所属院系", trigger: "blur" },
],
},
// 修改班级
editDialogVisible: false,
editForm: {},
// 编辑班级表单验证
editFormRules: {
gradeNo: [
{ required: true, message: "请输入班级编号", trigger: "blur" },
],
gradeName: [
{ required: true, message: "请输入班级名称", trigger: "blur" },
],
},
};
},
created() {
this.getGradeList();
// 加载院系列表
this.getDeptList();
},
methods: {
async getGradeList() {
const { data: res } = await this.$http.get("grade/list", {
params: this.queryInfo,
});
if (res.code !== 200) {
return this.$message.error("获取班级列表失败!");
}
this.gradeList = res.data.records;
this.total = res.data.total;
},
async getDeptList() {
const { data: res } = await this.$http.get("dept/listAll", {});
if (res.code !== 200) {
return this.$message.error("获取院系列表失败!");
}
this.deptList = res.data;
},
// 监听 pageSize改变的事件
handleSizeChange(newSize) {
// console.log(newSize)
this.queryInfo.pageSize = newSize;
this.getGradeList();
},
// 监听 页码值 改变事件
handleCurrentChange(newSize) {
// console.log(newSize)
this.queryInfo.pageNo = newSize;
this.getGradeList();
},
// 监听 添加班级对话框的关闭事件
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(
"grade/modify",
this.addForm
);
if (res.code !== 200) {
this.$message.error("添加班级失败!");
return;
}
this.$message.success("添加班级成功!");
// 隐藏添加班级对话框
this.addDialogVisible = false;
this.getGradeList();
});
},
// 编辑班级信息
async showEditDialog(id) {
const { data: res } = await this.$http.get("grade/" + 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("grade/modify", {
id: this.editForm.id,
gradeNo: this.editForm.gradeNo,
gradeName: this.editForm.gradeName,
deptId: this.editForm.deptId,
});
if (res.code !== 200) {
this.$message.error("更新班级信息失败!");
}
// 隐藏添加班级对话框
this.editDialogVisible = false;
this.$message.success("更新班级信息成功!");
this.getGradeList();
});
},
// 删除班级
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("grade/remove/" + id);
if (res.code !== 200) return this.$message.error("删除班级失败!");
this.$message.success("删除班级成功!");
this.getGradeList();
},
},
};
</script>

Vue+SpringBoot+ElementUI实战学生管理系统-8.班级管理模块的更多相关文章

  1. 循序渐进VUE+Element 前端应用开发(15)--- 用户管理模块的处理

    在前面随笔介绍了ABP+Vue前后端的整合处理,包括介绍了ABP的后端设计,以及前端对ABP接口API的ES6的封装,通过JS的继承类处理,极大减少了重复臃肿的代码,可以简化对后端API接口的封装,而 ...

  2. Vue+SpringBoot项目实战(一) 搭建环境

    GitHub 地址: https://github.com/dongfanger/sprint-backend https://github.com/dongfanger/sprint-fronten ...

  3. Django_学生管理系统

    一. Django简易学生管理系统 1.在pycharm中创建工程student_manage_system,添加app:student_manage 2.配置静态文件:在工程项目目录下新建目录sta ...

  4. vue.js+element-ui

    git地址:https://github.com/jerry9022/LitAdmin vue.js+element-ui 做后台管理系统 太方便了

  5. 循序渐进VUE+Element 前端应用开发(16)--- 组织机构和角色管理模块的处理

    在前面随笔<循序渐进VUE+Element 前端应用开发(15)--- 用户管理模块的处理>中介绍了用户管理模块的内容,包括用户列表的展示,各种查看.编辑.新增对话框的界面处理和后台数据处 ...

  6. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑

    (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...

  7. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(一): 搭建基本环境、整合 Swagger、MyBatisPlus、JSR303 以及国际化操作

    相关 (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y- ...

  8. 新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚

    新书上线 大家好,笔者的新书<Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统>已上线,此书内容充实.材质优良,乃家中必备垫桌脚 ...

  9. Vue + Element-ui实现后台管理系统(4)---封装一个ECharts组件的一点思路

    封装一个ECharts组件的一点思路 有关后台管理系统之前写过三遍博客,看这篇之前最好先看下这三篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-system ...

  10. Vue + Element-ui实现后台管理系统(2)---项目搭建 + ⾸⻚布局实现

    项目搭建 + ⾸⻚布局实现 上篇对该项目做了个总述 :Vue + Element-ui实现后台管理系统(1) --- 总述 这篇主要讲解 项目搭建 + 后台⾸⻚布局实现 : 整体效果 后台首页按布局一 ...

随机推荐

  1. ZHS16GBK字符集下面Oracle数据库varchar与nvarchar的验证

    ZHS16GBK字符集下面Oracle数据库varchar与nvarchar的验证 背景 周末分析了 SQLServer mysql等数据库 想着继续分析一下oracle数据库 这边oracle使用的 ...

  2. [转帖]前端安全(同源策略、XSS攻击、CSRF攻击)

    https://juejin.cn/post/6844904158697357319 同源策略(Same-origin policy) 如果两个 URL 的协议.域名和端口都相同,我们就称这两个 UR ...

  3. [转帖]正则表达式及在Jmeter中的应用

    目录 1.正则表达式 1.1 什么是正则表达式 1.2 为什么使用正则表达式 2.语法 2.1 普通字符 2.2 限定符 2.3 非打印字符 2.4 特殊字符 2.5 定位符 2.6 修饰符(标记) ...

  4. [转帖]tar、gzip、zip、jar是什么,怎么查看?

    https://www.cnblogs.com/codelogs/p/16702759.html   原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 如果你是后 ...

  5. 什么是PWA 应用?核心技术有哪些

    在国内由于小程序的风生水起,PWA 应用在国内的状况一直都不是很好,PWA 和小程序有很多的相似性,但是 PWA 是由谷歌发起的技术,小程序是微信发起的技术,所以小程序在国内得到了大力的扶持,很快就在 ...

  6. js解析上传APK文件的详细信息

    前端解析APK版本信息 需要安装这个包,可以使用cnpm或者npm npm 安装 app-info-parser ( 命令:npm install app-info-parser) APKInfo为i ...

  7. 在K8S中,Pod重启策略有哪些?

    在Kubernetes(简称K8s)中,Pod的重启策略定义了当容器失败时kubelet如何处理.有三种主要的重启策略: Always: 这是默认的重启策略.如果设置了为"Always&qu ...

  8. NetCore高级系列文章03---中间件

    .net web 一路发展过来,经历了 .net webfrom. .net Mvc ..net core不论哪种架构,都会对用户的请求到达服务器后经历一系列类似于管道的处理.在.net webfro ...

  9. Go实现网络代理

    使用 Go 语言开发网络代理服务可以通过以下步骤完成.这里,我们将使用 golang.org/x/net/proxy 包来创建一个简单的 SOCKS5 代理服务作为示例. 步骤 1. 安装 golan ...

  10. 🛠 开源即时通讯(IM)项目OpenIM源码部署指南

    OpenIM的部署涉及多个组件,并支持多种方式,包括源码.Docker和Kubernetes等.这要求在确保不同部署方式之间的兼容性同时,还需有效管理各版本之间的差异.确实,这些都是复杂的问题,涉及到 ...