Parcourir la source

fast:新增学生管理表单

sakura il y a 1 an
Parent
commit
7d8085bac1

+ 10 - 0
school-in-out-system/src/main/java/com/schoolinout/system/service/impl/TeacherServiceImpl.java

@@ -3,10 +3,12 @@ package com.schoolinout.system.service.impl;
 import com.schoolinout.common.utils.DateUtils;
 import com.schoolinout.system.domain.Teacher;
 import com.schoolinout.system.domain.vo.OptionVo;
+import com.schoolinout.system.mapper.TeacherClassRelationMapper;
 import com.schoolinout.system.mapper.TeacherMapper;
 import com.schoolinout.system.service.ITeacherService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -20,6 +22,8 @@ import java.util.List;
 public class TeacherServiceImpl implements ITeacherService {
     @Autowired
     private TeacherMapper teacherMapper;
+    @Autowired
+    private TeacherClassRelationMapper relationMapper;
 
     /**
      * 查询教师管理
@@ -74,7 +78,13 @@ public class TeacherServiceImpl implements ITeacherService {
      * @return 结果
      */
     @Override
+    @Transactional(rollbackFor = RuntimeException.class)
     public int deleteTeacherByIds(Long[] ids) {
+        // 检查是否存在绑定关系,如果存在,则提示
+        for (Long id : ids) {
+            relationMapper.deleteAllRelationsForClass(null, null, id);
+        }
+
         return teacherMapper.deleteTeacherByIds(ids);
     }
 

+ 53 - 9
school-in-out-ui/src/views/system/student/index.vue

@@ -81,9 +81,20 @@
 
     <el-table v-loading="loading" :data="studentList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="id" align="center" prop="id" />
-      <el-table-column label="学校id" align="center" prop="schoolId" />
-      <el-table-column label="班级id" align="center" prop="classId" />
+      <el-table-column label="序号" align="center" type="index"/>
+      <!-- todo 显示 学校名称 -->
+      <el-table-column label="所属学校" align="center">
+        <template slot-scope="scope">
+          <dict-tag :options="dictTables.schoolDict" :value="scope.row.schoolId" />
+        </template>
+      </el-table-column>
+      <el-table-column label="所属班级" align="center" prop="classId" >
+        <template slot-scope="scope">
+          <dict-tag :options="dictTables.classDict" :value="scope.row.classId" />
+        </template>
+      </el-table-column>
+
+      <el-table-column label="学号" align="center" prop="studentNum" />
       <el-table-column label="学生名称" align="center" prop="studentName" />
       <el-table-column label="学生照片" align="center" prop="studentPic" width="100">
         <template slot-scope="scope">
@@ -95,7 +106,7 @@
           <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.studentGender"/>
         </template>
       </el-table-column>
-      <el-table-column label="学号" align="center" prop="studentNum" />
+    
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -127,6 +138,31 @@
     <!-- 添加或修改学生管理对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="所属学校" prop="schoolId">
+          <el-select v-model="form.schoolId" placeholder="请选择所属学校" clearable>
+            <el-option
+              v-for="dict in dictTables.schoolDict"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <!-- todo 需要修改逻辑 -->
+        <el-form-item label="所属班级" prop="classId">
+          <el-select
+            v-model="form.classId" 
+            :disabled="!form.schoolId" 
+            placeholder="请选择所属班级" clearable
+          >
+            <el-option
+              v-for="dict in dictTables.classDict"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="学生名称" prop="studentName">
           <el-input v-model="form.studentName" placeholder="请输入学生名称" />
         </el-form-item>
@@ -146,9 +182,6 @@
         <el-form-item label="学号" prop="studentNum">
           <el-input v-model="form.studentNum" placeholder="请输入学号" />
         </el-form-item>
-        <el-form-item label="删除标志" prop="delFlag">
-          <el-input v-model="form.delFlag" placeholder="请输入删除标志" />
-        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -160,9 +193,10 @@
 
 <script>
 import { listStudent, getStudent, delStudent, addStudent, updateStudent } from "@/api/system/student";
-
+import Textyixia from "@/mixin/Textyixia"
 export default {
   name: "Student",
+  mixins: [Textyixia],
   dicts: ['sys_user_sex'],
   data() {
     return {
@@ -210,11 +244,21 @@ export default {
         studentPic: [
           { required: true, message: "学生照片不能为空", trigger: "blur" }
         ],
-      }
+      },
+      dictTables: {
+        schoolDict: [],
+        classDict: []
+      },
     };
   },
   created() {
     this.getList();
+    this.dictTableData("tb_school,school_name,id").then(data => {
+      this.dictTables.schoolDict = data
+    })
+    this.dictTableData("tb_school_class,class_name,id").then(data => {
+      this.dictTables.classDict = data
+    })
   },
   methods: {
     /** 查询学生管理列表 */