diff --git a/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/train/TrainTeacherController.java b/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/train/TrainTeacherController.java index e1ef3dc2c..842f89551 100644 --- a/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/train/TrainTeacherController.java +++ b/RuoYi-Vue/ruoyi-admin/src/main/java/com/ruoyi/web/controller/train/TrainTeacherController.java @@ -1,13 +1,12 @@ package com.ruoyi.web.controller.train; import java.util.List; -import javax.servlet.http.HttpServletResponse; +import java.util.regex.Pattern; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -15,90 +14,108 @@ import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.PageDomain; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.train.domain.TrainTeacher; import com.ruoyi.train.service.ITrainTeacherService; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.common.core.page.TableDataInfo; /** * 教师信息Controller - * + * * @author ruoyi - * @date 2026-09-08 + * @date 2026-09-14 */ @RestController @RequestMapping("/train/teacher") public class TrainTeacherController extends BaseController { + private static final Pattern PHONE_PATTERN = Pattern.compile("^1[3-9]\\d{9}$"); + @Autowired private ITrainTeacherService trainTeacherService; /** - * 查询教师信息列表 + * 查询教师信息列表 (GET /train/teacher/list) */ - @PreAuthorize("@ss.hasPermi('system:teacher:list')") + @PreAuthorize("@ss.hasPermi('train:teacher:list')") @GetMapping("/list") public TableDataInfo list(TrainTeacher trainTeacher) { + PageDomain pageDomain = TableSupport.buildPageRequest(); + Integer pageSize = pageDomain.getPageSize(); + if (pageSize != null && pageSize > 100) + { + throw new ServiceException("分页大小不能超过100"); + } startPage(); List list = trainTeacherService.selectTrainTeacherList(trainTeacher); return getDataTable(list); } /** - * 导出教师信息列表 + * 获取教师信息详细信息 (GET /train/teacher/{tId}) */ - @PreAuthorize("@ss.hasPermi('system:teacher:export')") - @Log(title = "教师信息", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, TrainTeacher trainTeacher) - { - List list = trainTeacherService.selectTrainTeacherList(trainTeacher); - ExcelUtil util = new ExcelUtil(TrainTeacher.class); - util.exportExcel(response, list, "教师信息数据"); - } - - /** - * 获取教师信息详细信息 - */ - @PreAuthorize("@ss.hasPermi('system:teacher:query')") + @PreAuthorize("@ss.hasPermi('train:teacher:query')") @GetMapping(value = "/{tId}") public AjaxResult getInfo(@PathVariable("tId") String tId) { - return success(trainTeacherService.selectTrainTeacherByTId(tId)); + TrainTeacher teacher = trainTeacherService.selectTrainTeacherByTId(tId); + if (teacher == null) + { + return AjaxResult.error(40401, "教师不存在"); + } + return success(teacher); } /** - * 新增教师信息 + * 新增教师信息 (POST /train/teacher) */ - @PreAuthorize("@ss.hasPermi('system:teacher:add')") - @Log(title = "教师信息", businessType = BusinessType.INSERT) + @PreAuthorize("@ss.hasPermi('train:teacher:add')") + @Log(title = "教师管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody TrainTeacher trainTeacher) { + if (StringUtils.isEmpty(trainTeacher.gettName())) + { + return AjaxResult.error("教师姓名不能为空"); + } + if (trainTeacher.gettName().trim().length() > 50) + { + return AjaxResult.error("教师姓名长度不能超过50个字符"); + } + if (StringUtils.isNotEmpty(trainTeacher.gettPhone()) && !isValidPhone(trainTeacher.gettPhone())) + { + return AjaxResult.error("手机号码格式不正确"); + } return toAjax(trainTeacherService.insertTrainTeacher(trainTeacher)); } /** - * 修改教师信息 + * 修改教师信息 (PUT /train/teacher/{tId}) */ - @PreAuthorize("@ss.hasPermi('system:teacher:edit')") - @Log(title = "教师信息", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody TrainTeacher trainTeacher) + @PreAuthorize("@ss.hasPermi('train:teacher:edit')") + @Log(title = "教师管理", businessType = BusinessType.UPDATE) + @PutMapping(value = "/{tId}") + public AjaxResult edit(@PathVariable("tId") String tId, @RequestBody TrainTeacher trainTeacher) { + trainTeacher.settId(tId); + if (StringUtils.isNotEmpty(trainTeacher.gettName()) && trainTeacher.gettName().trim().length() > 50) + { + return AjaxResult.error("教师姓名长度不能超过50个字符"); + } + if (StringUtils.isNotEmpty(trainTeacher.gettPhone()) && !isValidPhone(trainTeacher.gettPhone())) + { + return AjaxResult.error("手机号码格式不正确"); + } return toAjax(trainTeacherService.updateTrainTeacher(trainTeacher)); } - /** - * 删除教师信息 - */ - @PreAuthorize("@ss.hasPermi('system:teacher:remove')") - @Log(title = "教师信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{tIds}") - public AjaxResult remove(@PathVariable String[] tIds) + private boolean isValidPhone(String phone) { - return toAjax(trainTeacherService.deleteTrainTeacherByTIds(tIds)); + return PHONE_PATTERN.matcher(phone).matches(); } } diff --git a/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/domain/TrainTeacher.java b/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/domain/TrainTeacher.java index bf513ecc9..e9c0a48a9 100644 --- a/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/domain/TrainTeacher.java +++ b/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/domain/TrainTeacher.java @@ -9,15 +9,15 @@ import com.ruoyi.common.core.domain.BaseEntity; /** * 教师信息对象 train_teacher - * + * * @author ruoyi - * @date 2026-09-08 + * @date 2026-09-14 */ public class TrainTeacher extends BaseEntity { private static final long serialVersionUID = 1L; - /** 教师工号 */ + /** 教师工号/标识 */ private String tId; /** 教师姓名 */ @@ -25,7 +25,7 @@ public class TrainTeacher extends BaseEntity private String tName; /** 性别:男 / 女 */ - @Excel(name = "性别:男 / 女") + @Excel(name = "性别") private String tGender; /** 出生日期 */ @@ -33,13 +33,16 @@ public class TrainTeacher extends BaseEntity @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd") private Date tBirth; - /** 所属院系 */ - @Excel(name = "所属院系") - private String tDepartment; + /** sys_user登录账号逻辑关联ID */ + private Long userId; - /** 职称:讲师 / 副教授 / 教授 */ - @Excel(name = "职称:讲师 / 副教授 / 教授") - private String tTitle; + /** 所属单位/部门名称 (由旧 t_department 迁移) */ + @Excel(name = "所属单位") + private String orgName; + + /** 职务/职称 (由旧 t_title 迁移) */ + @Excel(name = "职务/职称") + private String jobTitle; /** 联系电话 */ @Excel(name = "联系电话") @@ -49,98 +52,121 @@ public class TrainTeacher extends BaseEntity @Excel(name = "邮箱") private String tEmail; - /** 创建人 (管理员 / 教师) */ - @Excel(name = "创建人 (管理员 / 教师)") - private String createUser; + /** 状态 (1:正常, 0:停用) */ + @Excel(name = "状态", readConverterExp = "1=正常,0=停用") + private Integer status; - public void settId(String tId) + /** 删除标志 (0:存在, 2:删除) */ + private String delFlag; + + public void settId(String tId) { this.tId = tId; } - public String gettId() + public String gettId() { return tId; } - public void settName(String tName) + public void settName(String tName) { this.tName = tName; } - public String gettName() + public String gettName() { return tName; } - public void settGender(String tGender) + public void settGender(String tGender) { this.tGender = tGender; } - public String gettGender() + public String gettGender() { return tGender; } - public void settBirth(Date tBirth) + public void settBirth(Date tBirth) { this.tBirth = tBirth; } - public Date gettBirth() + public Date gettBirth() { return tBirth; } - public void settDepartment(String tDepartment) + public void setUserId(Long userId) { - this.tDepartment = tDepartment; + this.userId = userId; } - public String gettDepartment() + public Long getUserId() { - return tDepartment; + return userId; } - public void settTitle(String tTitle) + public void setOrgName(String orgName) { - this.tTitle = tTitle; + this.orgName = orgName; } - public String gettTitle() + public String getOrgName() { - return tTitle; + return orgName; } - public void settPhone(String tPhone) + public void setJobTitle(String jobTitle) + { + this.jobTitle = jobTitle; + } + + public String getJobTitle() + { + return jobTitle; + } + + public void settPhone(String tPhone) { this.tPhone = tPhone; } - public String gettPhone() + public String gettPhone() { return tPhone; } - public void settEmail(String tEmail) + public void settEmail(String tEmail) { this.tEmail = tEmail; } - public String gettEmail() + public String gettEmail() { return tEmail; } - public void setCreateUser(String createUser) + public void setStatus(Integer status) { - this.createUser = createUser; + this.status = status; } - public String getCreateUser() + public Integer getStatus() { - return createUser; + return status; + } + + public void setDelFlag(String delFlag) + { + this.delFlag = delFlag; + } + + public String getDelFlag() + { + return delFlag; } @Override @@ -150,12 +176,16 @@ public class TrainTeacher extends BaseEntity .append("tName", gettName()) .append("tGender", gettGender()) .append("tBirth", gettBirth()) - .append("tDepartment", gettDepartment()) - .append("tTitle", gettTitle()) + .append("userId", getUserId()) + .append("orgName", getOrgName()) + .append("jobTitle", getJobTitle()) .append("tPhone", gettPhone()) .append("tEmail", gettEmail()) - .append("createUser", getCreateUser()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) .toString(); diff --git a/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/mapper/TrainTeacherMapper.java b/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/mapper/TrainTeacherMapper.java index c422d71b0..718e3513a 100644 --- a/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/mapper/TrainTeacherMapper.java +++ b/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/mapper/TrainTeacherMapper.java @@ -5,15 +5,15 @@ import com.ruoyi.train.domain.TrainTeacher; /** * 教师信息Mapper接口 - * + * * @author ruoyi * @date 2026-09-08 */ -public interface TrainTeacherMapper +public interface TrainTeacherMapper { /** * 查询教师信息 - * + * * @param tId 教师信息主键 * @return 教师信息 */ @@ -21,7 +21,7 @@ public interface TrainTeacherMapper /** * 查询教师信息列表 - * + * * @param trainTeacher 教师信息 * @return 教师信息集合 */ @@ -29,7 +29,7 @@ public interface TrainTeacherMapper /** * 新增教师信息 - * + * * @param trainTeacher 教师信息 * @return 结果 */ @@ -37,15 +37,23 @@ public interface TrainTeacherMapper /** * 修改教师信息 - * + * * @param trainTeacher 教师信息 * @return 结果 */ public int updateTrainTeacher(TrainTeacher trainTeacher); + /** + * 根据手机号码查询教师(用于全局查重) + * + * @param tPhone 手机号码 + * @return 教师信息 + */ + public TrainTeacher checkPhoneUnique(String tPhone); + /** * 删除教师信息 - * + * * @param tId 教师信息主键 * @return 结果 */ @@ -53,7 +61,7 @@ public interface TrainTeacherMapper /** * 批量删除教师信息 - * + * * @param tIds 需要删除的数据主键集合 * @return 结果 */ diff --git a/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/service/ITrainTeacherService.java b/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/service/ITrainTeacherService.java index 934034230..49af34583 100644 --- a/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/service/ITrainTeacherService.java +++ b/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/service/ITrainTeacherService.java @@ -5,15 +5,15 @@ import com.ruoyi.train.domain.TrainTeacher; /** * 教师信息Service接口 - * + * * @author ruoyi * @date 2026-09-08 */ -public interface ITrainTeacherService +public interface ITrainTeacherService { /** * 查询教师信息 - * + * * @param tId 教师信息主键 * @return 教师信息 */ @@ -21,7 +21,7 @@ public interface ITrainTeacherService /** * 查询教师信息列表 - * + * * @param trainTeacher 教师信息 * @return 教师信息集合 */ @@ -29,7 +29,7 @@ public interface ITrainTeacherService /** * 新增教师信息 - * + * * @param trainTeacher 教师信息 * @return 结果 */ @@ -37,15 +37,23 @@ public interface ITrainTeacherService /** * 修改教师信息 - * + * * @param trainTeacher 教师信息 * @return 结果 */ public int updateTrainTeacher(TrainTeacher trainTeacher); + /** + * 校验教师手机号码是否唯一 + * + * @param trainTeacher 教师信息 + * @return 结果 + */ + public boolean checkPhoneUnique(TrainTeacher trainTeacher); + /** * 批量删除教师信息 - * + * * @param tIds 需要删除的教师信息主键集合 * @return 结果 */ @@ -53,7 +61,7 @@ public interface ITrainTeacherService /** * 删除教师信息信息 - * + * * @param tId 教师信息主键 * @return 结果 */ diff --git a/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/service/impl/TrainTeacherServiceImpl.java b/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/service/impl/TrainTeacherServiceImpl.java index 6c7107de8..5fbad20af 100644 --- a/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/service/impl/TrainTeacherServiceImpl.java +++ b/RuoYi-Vue/ruoyi-train/src/main/java/com/ruoyi/train/service/impl/TrainTeacherServiceImpl.java @@ -1,7 +1,11 @@ package com.ruoyi.train.service.impl; import java.util.List; +import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.uuid.IdUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.train.mapper.TrainTeacherMapper; @@ -10,19 +14,19 @@ import com.ruoyi.train.service.ITrainTeacherService; /** * 教师信息Service业务层处理 - * + * * @author ruoyi - * @date 2026-09-08 + * @date 2026-09-14 */ @Service -public class TrainTeacherServiceImpl implements ITrainTeacherService +public class TrainTeacherServiceImpl implements ITrainTeacherService { @Autowired private TrainTeacherMapper trainTeacherMapper; /** * 查询教师信息 - * + * * @param tId 教师信息主键 * @return 教师信息 */ @@ -34,7 +38,7 @@ public class TrainTeacherServiceImpl implements ITrainTeacherService /** * 查询教师信息列表 - * + * * @param trainTeacher 教师信息 * @return 教师信息 */ @@ -44,35 +48,125 @@ public class TrainTeacherServiceImpl implements ITrainTeacherService return trainTeacherMapper.selectTrainTeacherList(trainTeacher); } + /** + * 校验教师手机号码是否唯一 + * + * @param trainTeacher 教师信息 + * @return true 唯一,false 重复 + */ + @Override + public boolean checkPhoneUnique(TrainTeacher trainTeacher) + { + if (StringUtils.isEmpty(trainTeacher.gettPhone())) + { + return true; + } + TrainTeacher info = trainTeacherMapper.checkPhoneUnique(trainTeacher.gettPhone()); + if (StringUtils.isNotNull(info) && !StringUtils.equals(info.gettId(), trainTeacher.gettId())) + { + return false; + } + return true; + } + /** * 新增教师信息 - * + * * @param trainTeacher 教师信息 * @return 结果 */ @Override public int insertTrainTeacher(TrainTeacher trainTeacher) { + // 1. 姓名校验 + if (StringUtils.isEmpty(trainTeacher.gettName())) + { + throw new ServiceException("教师姓名不能为空"); + } + if (trainTeacher.gettName().trim().length() > 50) + { + throw new ServiceException("教师姓名长度不能超过50个字符"); + } + + // 2. 手机号系统全局查重 (AC-02: 40001 TEACHER_PHONE_DUPLICATED) + if (StringUtils.isNotEmpty(trainTeacher.gettPhone()) && !checkPhoneUnique(trainTeacher)) + { + throw new ServiceException("教师手机号码已存在", 40001); + } + + // 3. 主键生成:支持自定义工号或自动生成32位UUID + if (StringUtils.isEmpty(trainTeacher.gettId())) + { + trainTeacher.settId(IdUtils.fastSimpleUUID()); + } + + // 4. 默认值与审计字段 + if (trainTeacher.getStatus() == null) + { + trainTeacher.setStatus(1); + } + trainTeacher.setDelFlag("0"); trainTeacher.setCreateTime(DateUtils.getNowDate()); + try + { + trainTeacher.setCreateBy(SecurityUtils.getUsername()); + } + catch (Exception e) + { + // 非登录上下文防崩溃 + } + return trainTeacherMapper.insertTrainTeacher(trainTeacher); } /** * 修改教师信息 - * + * * @param trainTeacher 教师信息 * @return 结果 */ @Override public int updateTrainTeacher(TrainTeacher trainTeacher) { + // 1. 检查教师是否存在 (40401 TEACHER_NOT_FOUND) + if (StringUtils.isEmpty(trainTeacher.gettId())) + { + throw new ServiceException("教师工号不能为空"); + } + TrainTeacher existing = trainTeacherMapper.selectTrainTeacherByTId(trainTeacher.gettId()); + if (existing == null) + { + throw new ServiceException("教师不存在", 40401); + } + + // 2. 姓名校验 + if (StringUtils.isNotEmpty(trainTeacher.gettName()) && trainTeacher.gettName().trim().length() > 50) + { + throw new ServiceException("教师姓名长度不能超过50个字符"); + } + + // 3. 手机号查重 (AC-02: 40001 TEACHER_PHONE_DUPLICATED) + if (StringUtils.isNotEmpty(trainTeacher.gettPhone()) && !checkPhoneUnique(trainTeacher)) + { + throw new ServiceException("教师手机号码已存在", 40001); + } + trainTeacher.setUpdateTime(DateUtils.getNowDate()); + try + { + trainTeacher.setUpdateBy(SecurityUtils.getUsername()); + } + catch (Exception e) + { + // 非登录上下文防崩溃 + } + return trainTeacherMapper.updateTrainTeacher(trainTeacher); } /** - * 批量删除教师信息 - * + * 批量删除教师信息(逻辑删除) + * * @param tIds 需要删除的教师信息主键 * @return 结果 */ @@ -83,8 +177,8 @@ public class TrainTeacherServiceImpl implements ITrainTeacherService } /** - * 删除教师信息信息 - * + * 删除教师信息(逻辑删除) + * * @param tId 教师信息主键 * @return 结果 */ diff --git a/RuoYi-Vue/ruoyi-train/src/main/resources/mapper/train/TrainTeacherMapper.xml b/RuoYi-Vue/ruoyi-train/src/main/resources/mapper/train/TrainTeacherMapper.xml index 5fda2c520..5752be0df 100644 --- a/RuoYi-Vue/ruoyi-train/src/main/resources/mapper/train/TrainTeacherMapper.xml +++ b/RuoYi-Vue/ruoyi-train/src/main/resources/mapper/train/TrainTeacherMapper.xml @@ -3,43 +3,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + - - + + + - + + + + - select t_id, t_name, t_gender, t_birth, t_department, t_title, t_phone, t_email, create_user, create_time, update_time, remark from train_teacher + select t_id, t_name, t_gender, t_birth, user_id, org_name, job_title, t_phone, t_email, status, del_flag, create_by, create_time, update_by, update_time, remark from train_teacher - + + + @@ -49,12 +60,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" t_name, t_gender, t_birth, - t_department, - t_title, - t_phone, + user_id, + org_name, + job_title, + t_phone, t_email, - create_user, + status, + del_flag, + create_by, create_time, + update_by, update_time, remark, @@ -63,12 +78,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{tName}, #{tGender}, #{tBirth}, - #{tDepartment}, - #{tTitle}, - #{tPhone}, + #{userId}, + #{orgName}, + #{jobTitle}, + #{tPhone}, #{tEmail}, - #{createUser}, + #{status}, + #{delFlag}, + #{createBy}, #{createTime}, + #{updateBy}, #{updateTime}, #{remark}, @@ -80,26 +99,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" t_name = #{tName}, t_gender = #{tGender}, t_birth = #{tBirth}, - t_department = #{tDepartment}, - t_title = #{tTitle}, + user_id = #{userId}, + org_name = #{orgName}, + job_title = #{jobTitle}, t_phone = #{tPhone}, t_email = #{tEmail}, - create_user = #{createUser}, - create_time = #{createTime}, + status = #{status}, + update_by = #{updateBy}, update_time = #{updateTime}, remark = #{remark}, - where t_id = #{tId} + where t_id = #{tId} and del_flag = '0' - - delete from train_teacher where t_id = #{tId} - + + + update train_teacher set del_flag = '2' where t_id = #{tId} + - - delete from train_teacher where t_id in + + + update train_teacher set del_flag = '2' where t_id in #{tId} - - \ No newline at end of file + + diff --git a/build_ui/src/api/train/teacher.js b/build_ui/src/api/train/teacher.js index c48e9620e..885282467 100644 --- a/build_ui/src/api/train/teacher.js +++ b/build_ui/src/api/train/teacher.js @@ -29,16 +29,8 @@ export function addTeacher(data) { // 修改教师信息 export function updateTeacher(data) { return request({ - url: '/train/teacher', + url: '/train/teacher/' + (data.tId || ''), method: 'put', data: data }) } - -// 删除教师信息 -export function delTeacher(tId) { - return request({ - url: '/train/teacher/' + tId, - method: 'delete' - }) -} diff --git a/build_ui/src/views/train/teacher/index.vue b/build_ui/src/views/train/teacher/index.vue index 8a9db03d0..898753801 100644 --- a/build_ui/src/views/train/teacher/index.vue +++ b/build_ui/src/views/train/teacher/index.vue @@ -1,6 +1,6 @@