目录
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 {
@Resource
private TbTeacherService tbTeacherService;
/**
* 查询所有
* @author 桐叔
* @email liangtong@itcast.cn
* @return
*/
@GetMapping
public 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" 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>
<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-option v-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() { // 发送ajax var {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 = null this.classes.teacher2Id = null this.classes.teacher3Id = null this.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.tid this.classes.teacher1Name = teacher.tname } if(teacher.type == 2) { this.classes.teacher2Id = teacher.tid this.classes.teacher2Name = teacher.tname } if(teacher.type == 3) { this.classes.teacher3Id = teacher.tid this.classes.teacher3Name = teacher.tname }*/ this.classes['teacher'+teacher.type+'Id'] = teacher.tid this.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>
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 {
@Resource
private TbClassesService tbClassesService;
@PostMapping
public BaseResult add(@RequestBody TbClass tbClass) {
boolean result = tbClassesService.save(tbClass);
if(result) {
return BaseResult.ok("添加成功");
}
return BaseResult.error("添加失败");
}
}
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)
}
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有