【学生管理系统】班级管理

目录

3. 班级管理

3.1 需求

3.1.1 添加班级

3.1.2 班级列表

3.2 搭建环境

3.2.1 前端实现

3.2.2 后端实现(9010)

3.3 添加班级

3.3.1 查询所有老师

3.3.2 【难】前端:选择老师

3.3.3 后端:添加班级

3.3.4 前端:添加班级

3.4 查询所有班级

3.4.1 后端实现

3.4.2 前端实现

3.5 修改班级

3.5.1 后端实现

3.5.2 前端实现

3. 班级管理

3.1 需求

3.1.1 添加班级

 

3.1.2 班级列表

 

3.2 搭建环境

3.2.1 前端实现

  • 创建对应的页面

     

3.2.2 后端实现(9010)

  • 项目名:nacos-nuxt-student-service-classes

  • pom文件

  • yml文件(端口号、服务名、数据库)

     

  • 启动类

  • 拷贝配置类

  • 基本结构

 

3.3 添加班级

3.3.1 查询所有老师

1)后端

 

package com.czxy.classes.controller;
​
import com.czxy.classes.service.TbClassesService;
import com.czxy.classes.service.TbTeacherService;
import com.czxy.domain.TbTeacher;
import com.czxy.vo.BaseResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
​
import javax.annotation.Resource;
import java.util.List;
​
/*** @author 桐叔* @email liangtong@itcast.cn* @description*/
@RestController
@RequestMapping("/teacher")
public class TbTeacherController {
​@Resourceprivate TbTeacherService tbTeacherService;
​/*** 查询所有* @author 桐叔* @email liangtong@itcast.cn* @return*/@GetMappingpublic BaseResult findAll() {List<TbTeacher> list = tbTeacherService.list();return BaseResult.ok("查询成功", list);}
​
​
}
​

2)前端

  • 显示表单

  • 展示所有老师

  • 显示表单

    <template><el-card class="classes-add-card"><el-form ref="form" :model="classes" label-width="100px"><el-form-item label="班级ID"><el-input v-model="classes.cid"></el-input></el-form-item><el-form-item label="班级名称"><el-input v-model="classes.cname"></el-input></el-form-item><el-form-item label="选择老师"><el-select v-model="classes.teacherIds" placeholder="请选择老师"><el-option label="区域一" value="shanghai"></el-option></el-select></el-form-item><el-form-item label="授课老师"></el-form-item><el-form-item label="助理老师"></el-form-item><el-form-item label="辅导员老师"></el-form-item><el-form-item><el-button type="primary">添加</el-button><el-button>重置</el-button></el-form-item></el-form></el-card>
    </template>
    ​
    <script>
    export default {data() {return {classes: {teacherIds: []      //选择的所有老师}}},
    }
    </script>
    ​
    <style>.classes-add-card {width: 500px;}
    </style>

  • 展示所有老师

     

    <template><el-card class="classes-add-card"><el-form ref="form" :model="classes" label-width="100px"><el-form-item label="班级ID"><el-input v-model="classes.cid"></el-input></el-form-item><el-form-item label="班级名称"><el-input v-model="classes.cname"></el-input></el-form-item><el-form-item label="选择老师"><el-select v-model="classes.teacherIds" multiple placeholder="请选择老师" style="width: 100%"><el-option v-for="(teacher,index) in teacherList" :key="index" :label="teacher.tname" :value="teacher.tid"></el-option></el-select></el-form-item><el-form-item label="授课老师"></el-form-item><el-form-item label="助理老师"></el-form-item><el-form-item label="辅导员老师"></el-form-item><el-form-item><el-button type="primary">添加</el-button><el-button>重置</el-button></el-form-item></el-form>{{classes}}</el-card>
    </template>
    ​
    <script>
    export default {data() {return {classes: {teacherIds: []      //选择的所有老师},teacherList: [],      //老师列表}},methods: {async findAllTeacher() {let { data:baseResult } = await this.$axios.get('/classes-service/teacher')// 获得结果this.teacherList = baseResult.data}},mounted() {//查询所有的老师this.findAllTeacher()},
    }
    </script>
    ​
    <style>.classes-add-card {width: 500px;}
    </style>

3.3.2 【难】前端:选择老师

  • 需求:如果某类型的老师已选,将除当前老师,其他该类型的老师禁用

  • 实现:完善ClassesAdd.vue

     

    <template><div><el-card class="classes-card"><!-- 添加表单start --><el-form ref="form" :model="classes" label-width="85px"><!-- 编写id --><el-form-item label="班级ID"><el-input v-model="classes.cid"></el-input></el-form-item><!-- 编写name --><el-form-item label="班级名称"><el-input v-model="classes.cname"></el-input></el-form-item><!-- 完成 --><el-form-item label="选择老师"><el-select v-model="classes.ids" style="width:100%;" multiple @change="selectTeacher" placeholder="请选择"><el-optionv-for="(teacher,index) in teacherList":key="index":label="teacher.tname":value="teacher.tid":disabled="teacher.disabled"><span style="float: left">{{ teacher.tname }}</span><span style="float: right; color: #8492a6; font-size: 13px;padding-right: 20px;">{{teacher.type==1? '授课老师': teacher.type==2 ? '助理老师' : '辅导员老师'}}</span></el-option></el-select></el-form-item><el-form-item label="授课老师">{{classes.teacher1.tname}}</el-form-item><el-form-item label="助理老师">{{classes.teacher2.tname}}</el-form-item><el-form-item label="辅导员老师">{{classes.teacher3.tname}}</el-form-item><el-form-item><el-button type="primary" >添加</el-button><el-button>重置</el-button></el-form-item></el-form><!-- 添加表单end --></el-card></div>
    </template>
    ​
    <script>
    export default {data() {return {classes: {teacher1: {},teacher2: {},teacher3: {},},teacherList: [
    ​]}},methods: {async findAllTeacher() {// 发送ajaxvar {data} = await this.$axios.get('/classes-service/teacher')// 处理结果if(data.code == 1){// 成功this.teacherList = data.data} else {// 失败this.$message.error(data.message)}},resetClasses(){this.classes.teacher1Id = nullthis.classes.teacher2Id = nullthis.classes.teacher3Id = nullthis.classes.teacher1 = {}this.classes.teacher2 = {}this.classes.teacher3 = {}},selectTeacher(selectIds) {// 重置老师数据this.resetClasses()// 过滤选中的老师var selectTeachers = this.teacherList.filter(teacher=> selectIds.includes(teacher.tid))// 处理数据,用于回显和数据提交selectTeachers.forEach(teacher => {/*if(teacher.type == 1) {this.classes.teacher1Id = teacher.tidthis.classes.teacher1Name = teacher.tname}if(teacher.type == 2) {this.classes.teacher2Id = teacher.tidthis.classes.teacher2Name = teacher.tname}if(teacher.type == 3) {this.classes.teacher3Id = teacher.tidthis.classes.teacher3Name = teacher.tname}*/this.classes['teacher'+teacher.type+'Id'] = teacher.tidthis.classes['teacher'+teacher.type] = teacher
    ​});// 获得选中老师的类型var types = selectTeachers.map(teacher=>teacher.type)// 遍历所有老师,如果某类型的老师已选,将除当前老师,其他该类型的老师禁用this.teacherList.forEach(teacher => {//  相同类型  && 其他老师if(types.includes(teacher.type) && !selectIds.includes(teacher.tid)){teacher.disabled = true} else {teacher.disabled = false}});}},mounted() {// 查询所有老师this.findAllTeacher()},
    }
    </script>
    ​
    <style>.classes-card {width: 480px;}
    </style>

3.3.3 后端:添加班级

 

package com.czxy.classes.controller;
​
import com.czxy.classes.service.TbClassesService;
import com.czxy.domain.TbClass;
import com.czxy.vo.BaseResult;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
​
import javax.annotation.Resource;
​
/*** @author 桐叔* @email liangtong@itcast.cn* @description*/
@RestController
@RequestMapping("/classes")
public class TbClassesController {
​@Resourceprivate TbClassesService tbClassesService;
​@PostMappingpublic BaseResult add(@RequestBody TbClass tbClass) {boolean result = tbClassesService.save(tbClass);if(result) {return BaseResult.ok("添加成功");}return BaseResult.error("添加失败");}
​
​
}
​

3.3.4 前端:添加班级

 

async classesAdd() {// ajax添加let { data:baseResult } = await this.$axios.post('/classes-service/classes', this.classes)// 处理if(baseResult.code == 20000) {this.$message.success(baseResult.message)// 跳转列表页this.$router.push('/classes/classesList')} else {this.$message.error(baseResult.message)}
}

3.4 查询所有班级

3.4.1 后端实现

3.4.2 前端实现

3.5 修改班级

3.5.1 后端实现

3.5.2 前端实现

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postman解决session验证问题,试用验证码校验,带登录状态的请求

在测试后端接口时&#xff0c;我们经常会遇到某个接口是需要权限才能访问&#xff0c;如登录后才能访问&#xff0c;那postman如何模拟已登录的状态呢&#xff1f;再者&#xff0c;如果我们在做注册模块时&#xff0c;后端验证码生成并通过邮箱或短信发送给用户后&#xff0c;必…

TDengine高可用分布式集群详解

本文正在参与“拥抱开源|涛思数据TDengine有奖征稿&#xff1a;投稿地址。 文章目录 一、前言二、举个栗子1、努力工作的小T2、可怜的小T3、小T的老婆小D登场4、小T创业了5、平衡分配任务6、公司越做越大 三、分布式和集群概览1、单点1&#xff09;单点概念2&#xff09;单点故…

鹅厂发布的这个算力集群,最快4天训练万亿参数大模型

​| 文章来源于&#xff1a;“鹅厂技术派”公众号 大模型要成功&#xff0c;算力是关键。 这是腾讯云面向大模型训练场景&#xff0c;发布的全新一代的HCC高性能计算集群性能参数&#xff1a; “算力性能和上一代相比提升3倍&#xff0c;服务器接入带宽从1.6T提升到3.2T。”…

GPU集群使用

文章目录 一、GPU集群使用1、使用ssh远程连接2、新建虚拟环境3、修改信息4、常用命令 一、GPU集群使用 在GPU集群中&#xff0c;会有不同级别的用户&#xff0c;huge(最高级用户)、large(高级用户)、normal(普通用户)&#xff0c;用户的级别不同&#xff0c;权限也不同。 1、…

部署+使用集群的算力跑CPU密集型任务

我先在开头做一个总结&#xff0c;表达我最终要做的事情和最终环境是如何的&#xff0c;然后我会一步步说明我是如何搭建。 要做的事情 尝试如何使用多台机器的算力共同跑一个CPU密集型或者GPU密集型的任务。这里以CPU密集型为例子。 在多台机器搭建MPI环境&#xff0c;构建…

今年你们赚到钱了吗?

峥嵘的2022年&#xff0c;各位程序员们&#xff0c;你们赚到钱了吗&#xff1f; 今天是2022年12月21日&#xff0c;眼看就快过年了&#xff01; 今年你们赚到钱了吗&#xff1f;对于我而言&#xff0c;又是一个"窘迫/囧迫"的穷年&#xff0c;有点心慌慌&#xff0c;有…

教你一招利用python在网上接单赚钱,月薪过万太香了

前言 学习python编程&#xff0c;不仅可以找到一份高薪工作&#xff0c;而且不打算转化或者是在校学生的话&#xff0c;也能为你的日常生活提高一些帮助&#xff0c;比如&#xff1a;自动化办公 爬取一些数据信息之类的…另外闲暇时间也可以在网上接点小单&#xff0c;增加些收…

业余时间赚“外块”的话。给你汇总了用Python挣钱的4个方式,一起来瞧瞧吧~

渠道一&#xff1a;程序流程代笔 到淘宝网/猪八戒在网上搜&#xff1a;Python程序流程。随后到对应的店里找在线客服&#xff0c;便说你要做程序流程开发&#xff0c;是不是可以给个联系电话。渐渐地聊熟识了&#xff0c;还可以变成她们店面里的做兼职技术工程师。 或是添加一…

2023年靠Python接私单赚钱可太香了

假期&#xff0c;闲来无事回顾过去的一年&#xff0c;收益最大的还得是Python爬虫接私单&#xff0c;每每和大家分享都甘之如饴&#xff0c;单看一两个单子可能没什么感觉&#xff0c;但一单接一单&#xff0c;一个月的收获非常可观&#xff01; 这是近期做的爬虫单子&#xf…

宝剑锋从磨砺出 梅花香自苦寒来(高考志愿篇)

各省高考成绩已出&#xff0c;又到一年高考季。张雪峰提到&#xff1a;“普通家庭不要光谈理想&#xff0c;也要谈落地。”志愿怎样填报、选专业还是选学校、什么专业好就业、高考志愿主要看什么&#xff1f;针对这些疑问&#xff0c;你对正在选志愿的毕业生们有什么建议吗&…

海淀育新学校2021高考成绩查询,首师附育新“加工能力”不容小觑!海淀7000名以内可“签约”实验班...

近两年海淀北片的几所高中学校 也越来越受到家长的关注 今天给大家整理了一些 首都师范大学附属育新的数据 例如2021中招计划、班级设置及高考成绩 供今年即将中考的家长参考 下面一起来看看吧 01 2021年招生计划 首都师范大学附属育新学校位于西三旗街道新康园4号。学校2021年…

DDD案例说明

1、案例说明 整个专栏的案例来源于一个虚构的公司&#xff0c;公司里有一个虚构的团队&#xff0c;他们真实的业务章程&#xff0c;并且有一个真实的软件系统需要部署开发部署&#xff0c;而他们所面临的DDD挑战和问题也是真实存在的。 这个公司叫做SaaSOvation。正如名字所示…

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day15】—— Spring框架1

大家好&#xff0c;我是陈哈哈&#xff0c;北漂五年。认识我的朋友们知道&#xff0c;我是非科班出身&#xff0c;半路出家&#xff0c;大学也很差&#xff01;这种背景来北漂&#xff0c;你都不知道你会经历什么&#x1f643;&#x1f643;。   不敢苟同&#xff0c;相信大家…

update多表联合更新

t_student表和t_class表 Mysql UPDATE db_shop.t_student s,db_shop.t_class c SET s.class_namec.name,c.stu_names.name WHERE s.class_idc.id --等效于 UPDATE db_shop.t_student s JOIN db_shop.t_class c SET s.class_namec.name,c.stu_names.name WHERE s.class_…

oracle update 多表关联更新

oracle 多表 关联 更新 先看例子 select t.*, t.rowid from T1 t;select t.*, t.rowid from T2 t;错误示范&#xff1a; update t1 set t1.money (select t2.money from t2 where t2.name t1.name);结果&#xff1a; 因更新条件不够&#xff0c;可以看到name不相等的mone…

linux普通账户变为管理员,你就可以将普通账户升级为管理员账户了

当每台电脑装上系统后&#xff0c;都会有一个Administrator管理员账户&#xff0c;它是Windows默认的最高权限用户&#xff0c;它有权力对系统进行任何等级设置或删除应用&#xff0c;而一般的帐户就只有对这个系统的使用权&#xff0c;没有管理权。那么&#xff0c;我们可以将…

Power Automate Forms 提交表单 到 Teams 群组中的Excel行

新建一个Forms表单 Teams 研究群组 中新建一个 个人信息.xlsx 注意&#xff1a;一定要是xlsx格式 个人信息.xlsx 中 设置表格 在Power Automate 中 找一个 Forms 开始的模板 删除原来SharePoint 的部分 添加Excel Online 选择 在表中插入新行 建立 Forms 和Excel 表格的 对应…

社区电商平台除了小红书,这个运营社群的平台你肯定没用过!

有的阿&#xff0c;比如有赞、粉丝圈、云之家等等......&#xff0c;现在的微信生态圈在不断的完善&#xff0c;不仅仅是社交内容层面上的不断优化&#xff0c;社群平台更多的是打开了服务自己店铺的用户端口&#xff0c;不断在这个空间内扩大自己的用户池。 就来说说粉丝圈吧…

小红书店铺的所有商品API接口(整店商品详情查询接口)

小红书店铺的所有商品API接口&#xff08;整店商品详情查询接口&#xff09;代码对接如下&#xff1a; 1.公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff0c;点击获取请求key和secret &#xff09;secretString是调用密钥api_nam…

如何打造爆款单品?小红书品牌营销全链路解决方案来了

导语 爆款单品已经成为小红书品牌增长的捷径。爆款单品能让新锐品牌实现从0到1的增长&#xff0c;那么能让网红品牌从1到10吗&#xff1f; 《小红书品牌营销全链路解决方案》专栏第二部分&#xff1a;网红单品打造。与大家一起探讨如何打造爆款单品以及延长它的生命周期。 01…