From 23fe845e7d13ae57d024f366950b6ec705a05c06 Mon Sep 17 00:00:00 2001 From: xiao12feng Date: Thu, 20 Nov 2025 20:42:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7=E5=92=8C?= =?UTF-8?q?=E9=A2=98=E7=9B=AE=E7=AE=A1=E7=90=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../psychology/PsyUserProfileController.java | 45 ++++++ .../controller/system/SysLoginController.java | 31 ++-- .../controller/system/SysUserController.java | 4 +- .../common/core/domain/entity/SysUser.java | 132 +++++++++++++++- .../web/service/SysLoginService.java | 35 ++++ .../domain/psychology/PsyUserProfile.java | 14 +- .../service/impl/SysUserServiceImpl.java | 14 ++ .../psychology/PsyUserProfileServiceImpl.java | 128 ++++++++++++++- .../psychology/IPsyUserProfileService.java | 10 ++ .../resources/mapper/system/SysUserMapper.xml | 4 +- xinli-ui/src/router/index.js | 1 + .../src/views/psychology/profile/index.vue | 124 +++++++++++---- .../src/views/psychology/report/detail.vue | 19 +-- .../src/views/psychology/report/index.vue | 19 +-- xinli-ui/src/views/student/tests.vue | 25 ++- xinli-ui/src/views/system/user/index.vue | 149 ++++++++++++++---- 16 files changed, 635 insertions(+), 119 deletions(-) diff --git a/ry-xinli-admin/src/main/java/com/ddnai/web/controller/psychology/PsyUserProfileController.java b/ry-xinli-admin/src/main/java/com/ddnai/web/controller/psychology/PsyUserProfileController.java index e0267131..9d536f74 100644 --- a/ry-xinli-admin/src/main/java/com/ddnai/web/controller/psychology/PsyUserProfileController.java +++ b/ry-xinli-admin/src/main/java/com/ddnai/web/controller/psychology/PsyUserProfileController.java @@ -1,6 +1,7 @@ package com.ddnai.web.controller.psychology; import java.util.List; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -12,6 +13,8 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import com.ddnai.common.annotation.Anonymous; import com.ddnai.common.annotation.Log; import com.ddnai.common.core.controller.BaseController; import com.ddnai.common.core.domain.AjaxResult; @@ -20,6 +23,7 @@ import com.ddnai.common.core.page.TableDataInfo; import com.ddnai.common.enums.BusinessType; import com.ddnai.common.utils.SecurityUtils; import com.ddnai.common.utils.StringUtils; +import com.ddnai.common.utils.poi.ExcelUtil; import com.ddnai.system.domain.psychology.PsyUserProfile; import com.ddnai.system.service.ISysDeptService; import com.ddnai.system.service.ISysPostService; @@ -235,4 +239,45 @@ public class PsyUserProfileController extends BaseController { return toAjax(profileService.deleteProfileByIds(profileIds)); } + + // ==================== 导入导出功能 ==================== + + /** + * 导出用户档案列表 + */ + @PreAuthorize("@ss.hasPermi('psychology:profile:export')") + @Log(title = "用户档案", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, PsyUserProfile profile) + { + List list = profileService.selectProfileList(profile); + ExcelUtil util = new ExcelUtil(PsyUserProfile.class); + util.exportExcel(response, list, "用户档案数据"); + } + + /** + * 下载用户档案导入模板 + */ + @Anonymous + @GetMapping("/importTemplate") + public void importTemplate(HttpServletResponse response) + { + ExcelUtil util = new ExcelUtil(PsyUserProfile.class); + util.importTemplateExcel(response, "用户档案数据"); + } + + /** + * 导入用户档案数据 + */ + @PreAuthorize("@ss.hasPermi('psychology:profile:import')") + @Log(title = "用户档案", businessType = BusinessType.IMPORT) + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(PsyUserProfile.class); + List profileList = util.importExcel(file.getInputStream()); + String operName = getUsername(); + String message = profileService.importProfile(profileList, updateSupport, operName); + return success(message); + } } diff --git a/ry-xinli-admin/src/main/java/com/ddnai/web/controller/system/SysLoginController.java b/ry-xinli-admin/src/main/java/com/ddnai/web/controller/system/SysLoginController.java index 485fff2c..6de6c738 100644 --- a/ry-xinli-admin/src/main/java/com/ddnai/web/controller/system/SysLoginController.java +++ b/ry-xinli-admin/src/main/java/com/ddnai/web/controller/system/SysLoginController.java @@ -178,34 +178,23 @@ public class SysLoginController String infoNumberTrimmed = infoNumber.trim(); SysUser user = null; - // 优先通过信息编号查找用户档案,然后通过userId查找用户 + // 严格模式:必须通过信息编号在用户档案中查找 + // 只有在用户档案中存在的信息编号才能登录 com.ddnai.system.domain.psychology.PsyUserProfile profile = userProfileService.selectProfileByInfoNumber(infoNumberTrimmed); - if (profile != null && profile.getUserId() != null) + + if (profile == null) { - user = userService.selectUserById(profile.getUserId()); + return AjaxResult.error("信息编号不存在,请先创建用户档案"); } - // 如果通过信息编号找不到,则使用原来的逻辑(兼容旧版本) - if (user == null) + if (profile.getUserId() == null) { - // 支持两种方式:1. 通过user_name查找 2. 如果是数字,通过user_id查找 - user = userService.selectUserByUserName(infoNumberTrimmed); - - // 如果通过user_name找不到,且输入的是数字,尝试通过user_id查找 - if (user == null && StringUtils.isNumeric(infoNumberTrimmed)) - { - try - { - Long userId = Long.parseLong(infoNumberTrimmed); - user = userService.selectUserById(userId); - } - catch (NumberFormatException e) - { - // 数字格式错误,忽略 - } - } + return AjaxResult.error("用户档案异常,未关联系统用户"); } + // 通过档案中的userId查找用户 + user = userService.selectUserById(profile.getUserId()); + // 检查系统有效时间(系统管理员不受限制) try { diff --git a/ry-xinli-admin/src/main/java/com/ddnai/web/controller/system/SysUserController.java b/ry-xinli-admin/src/main/java/com/ddnai/web/controller/system/SysUserController.java index a2ff1be0..b3c722ee 100644 --- a/ry-xinli-admin/src/main/java/com/ddnai/web/controller/system/SysUserController.java +++ b/ry-xinli-admin/src/main/java/com/ddnai/web/controller/system/SysUserController.java @@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import com.ddnai.common.annotation.Anonymous; import com.ddnai.common.annotation.Log; import com.ddnai.common.core.controller.BaseController; import com.ddnai.common.core.domain.AjaxResult; @@ -87,7 +88,8 @@ public class SysUserController extends BaseController return success(message); } - @PostMapping("/importTemplate") + @Anonymous + @GetMapping("/importTemplate") public void importTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil(SysUser.class); diff --git a/ry-xinli-common/src/main/java/com/ddnai/common/core/domain/entity/SysUser.java b/ry-xinli-common/src/main/java/com/ddnai/common/core/domain/entity/SysUser.java index b771617a..c07edb36 100644 --- a/ry-xinli-common/src/main/java/com/ddnai/common/core/domain/entity/SysUser.java +++ b/ry-xinli-common/src/main/java/com/ddnai/common/core/domain/entity/SysUser.java @@ -21,7 +21,7 @@ public class SysUser extends BaseEntity { private static final long serialVersionUID = 1L; - /** 用户ID */ + /** 用户ID - 只在导出时显示,导入时不需要,通过信息编号自动设置 */ @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号") private Long userId; @@ -91,6 +91,44 @@ public class SysUser extends BaseEntity /** 角色ID */ private Long roleId; + + // ==================== 心理档案相关字段 ==================== + + /** 信息编号 */ + @Excel(name = "信息编号") + private String infoNumber; + + /** 档案类型 */ + @Excel(name = "档案类型", readConverterExp = "standard=标准,child=儿童,adult=成人,senior=老年") + private String profileType; + + /** 身份证号 */ + @Excel(name = "身份证号") + private String idCard; + + /** 生日 */ + @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") + private Date birthday; + + /** 学历 */ + @Excel(name = "学历") + private String education; + + /** 职业 */ + @Excel(name = "职业") + private String occupation; + + /** 地址 */ + @Excel(name = "地址") + private String address; + + /** 紧急联系人 */ + @Excel(name = "紧急联系人") + private String emergencyContact; + + /** 紧急联系电话 */ + @Excel(name = "紧急联系电话") + private String emergencyPhone; public SysUser() { @@ -309,6 +347,98 @@ public class SysUser extends BaseEntity { this.roleId = roleId; } + + // ==================== 心理档案字段的 Getter/Setter ==================== + + public String getInfoNumber() + { + return infoNumber; + } + + public void setInfoNumber(String infoNumber) + { + this.infoNumber = infoNumber; + } + + public String getProfileType() + { + return profileType; + } + + public void setProfileType(String profileType) + { + this.profileType = profileType; + } + + public String getIdCard() + { + return idCard; + } + + public void setIdCard(String idCard) + { + this.idCard = idCard; + } + + public Date getBirthday() + { + return birthday; + } + + public void setBirthday(Date birthday) + { + this.birthday = birthday; + } + + public String getEducation() + { + return education; + } + + public void setEducation(String education) + { + this.education = education; + } + + public String getOccupation() + { + return occupation; + } + + public void setOccupation(String occupation) + { + this.occupation = occupation; + } + + public String getAddress() + { + return address; + } + + public void setAddress(String address) + { + this.address = address; + } + + public String getEmergencyContact() + { + return emergencyContact; + } + + public void setEmergencyContact(String emergencyContact) + { + this.emergencyContact = emergencyContact; + } + + public String getEmergencyPhone() + { + return emergencyPhone; + } + + public void setEmergencyPhone(String emergencyPhone) + { + this.emergencyPhone = emergencyPhone; + } @Override public String toString() { diff --git a/ry-xinli-framework/src/main/java/com/ddnai/framework/web/service/SysLoginService.java b/ry-xinli-framework/src/main/java/com/ddnai/framework/web/service/SysLoginService.java index 52cfb2ce..e9537b48 100644 --- a/ry-xinli-framework/src/main/java/com/ddnai/framework/web/service/SysLoginService.java +++ b/ry-xinli-framework/src/main/java/com/ddnai/framework/web/service/SysLoginService.java @@ -29,8 +29,10 @@ import com.ddnai.framework.manager.AsyncManager; import com.ddnai.framework.manager.factory.AsyncFactory; import com.ddnai.framework.security.context.AuthenticationContextHolder; import com.ddnai.common.core.domain.entity.SysUser; +import com.ddnai.common.core.domain.entity.SysRole; import com.ddnai.system.service.ISysConfigService; import com.ddnai.system.service.ISysUserService; +import com.ddnai.system.service.psychology.IPsyUserProfileService; /** * 登录校验方法 @@ -42,6 +44,9 @@ public class SysLoginService { private static final Logger log = LoggerFactory.getLogger(SysLoginService.class); + @Autowired + private IPsyUserProfileService userProfileService; + @Autowired private TokenService tokenService; @@ -100,6 +105,36 @@ public class SysLoginService } AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); + + // 检查学员用户是否有档案 + SysUser user = loginUser.getUser(); + if (user != null && user.getRoles() != null) + { + boolean isStudent = false; + for (SysRole role : user.getRoles()) + { + if (role != null && ("student".equalsIgnoreCase(role.getRoleKey()) || + (role.getRoleName() != null && role.getRoleName().contains("学员")))) + { + isStudent = true; + break; + } + } + + // 如果是学员角色,必须有档案才能登录 + if (isStudent) + { + com.ddnai.system.domain.psychology.PsyUserProfile profile = + userProfileService.selectProfileByUserId(user.getUserId()); + if (profile == null || StringUtils.isEmpty(profile.getInfoNumber())) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, "学员账号必须有用户档案才能登录")); + throw new ServiceException("该账号未创建用户档案,请联系管理员创建档案后再登录"); + } + log.info("学员登录验证通过,用户: {}, 信息编号: {}", username, profile.getInfoNumber()); + } + } + recordLoginInfo(loginUser.getUserId()); // 生成token return tokenService.createToken(loginUser); diff --git a/ry-xinli-system/src/main/java/com/ddnai/system/domain/psychology/PsyUserProfile.java b/ry-xinli-system/src/main/java/com/ddnai/system/domain/psychology/PsyUserProfile.java index 6b807872..84734503 100644 --- a/ry-xinli-system/src/main/java/com/ddnai/system/domain/psychology/PsyUserProfile.java +++ b/ry-xinli-system/src/main/java/com/ddnai/system/domain/psychology/PsyUserProfile.java @@ -1,5 +1,6 @@ package com.ddnai.system.domain.psychology; +import com.ddnai.common.annotation.Excel; import com.fasterxml.jackson.annotation.JsonFormat; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -17,44 +18,54 @@ public class PsyUserProfile extends BaseEntity /** 档案ID */ private Long profileId; - /** 用户ID(关联sys_user) */ + /** 用户ID(关联sys_user) - 不在Excel模板中显示,通过信息编号自动设置 */ private Long userId; /** 档案类型(如:standard标准 child儿童 adult成人 senior老年) */ + @Excel(name = "档案类型", readConverterExp = "standard=标准,child=儿童,adult=成人,senior=老年") private String profileType; /** 头像 */ private String avatar; /** 身份证号 */ + @Excel(name = "身份证号") private String idCard; /** 档案数据(JSON格式) */ private String profileData; /** 姓名 */ + @Excel(name = "姓名") private String userName; /** 电话 */ + @Excel(name = "电话") private String phone; /** 生日 */ @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd") private java.util.Date birthday; /** 学历 */ + @Excel(name = "学历") private String education; /** 职业 */ + @Excel(name = "职业") private String occupation; /** 地址 */ + @Excel(name = "地址") private String address; /** 紧急联系人 */ + @Excel(name = "紧急联系人") private String emergencyContact; /** 紧急联系电话 */ + @Excel(name = "紧急联系电话") private String emergencyPhone; /** 病史 */ @@ -70,6 +81,7 @@ public class PsyUserProfile extends BaseEntity private String deptName; /** 信息编号 */ + @Excel(name = "信息编号") private String infoNumber; public Long getProfileId() diff --git a/ry-xinli-system/src/main/java/com/ddnai/system/service/impl/SysUserServiceImpl.java b/ry-xinli-system/src/main/java/com/ddnai/system/service/impl/SysUserServiceImpl.java index 8351b113..30bfe88c 100644 --- a/ry-xinli-system/src/main/java/com/ddnai/system/service/impl/SysUserServiceImpl.java +++ b/ry-xinli-system/src/main/java/com/ddnai/system/service/impl/SysUserServiceImpl.java @@ -517,6 +517,20 @@ public class SysUserServiceImpl implements ISysUserService { try { + // 如果有信息编号,使用信息编号作为登录账号 + if (StringUtils.isNotEmpty(user.getInfoNumber())) + { + user.setUserName(user.getInfoNumber()); // 登录账号 = 信息编号 + } + + // 如果没有用户名,跳过 + if (StringUtils.isEmpty(user.getUserName())) + { + failureNum++; + failureMsg.append("
").append(failureNum).append("、用户名或信息编号不能为空"); + continue; + } + // 验证是否存在这个用户 SysUser u = userMapper.selectUserByUserName(user.getUserName()); if (StringUtils.isNull(u)) diff --git a/ry-xinli-system/src/main/java/com/ddnai/system/service/impl/psychology/PsyUserProfileServiceImpl.java b/ry-xinli-system/src/main/java/com/ddnai/system/service/impl/psychology/PsyUserProfileServiceImpl.java index ed106c18..bae52304 100644 --- a/ry-xinli-system/src/main/java/com/ddnai/system/service/impl/psychology/PsyUserProfileServiceImpl.java +++ b/ry-xinli-system/src/main/java/com/ddnai/system/service/impl/psychology/PsyUserProfileServiceImpl.java @@ -314,7 +314,37 @@ public class PsyUserProfileServiceImpl implements IPsyUserProfileService @Override public int deleteProfileByIds(Long[] profileIds) { - return profileMapper.deleteProfileByIds(profileIds); + // 先获取所有要删除的档案,记录对应的用户ID + java.util.List userIdsToDelete = new java.util.ArrayList<>(); + for (Long profileId : profileIds) + { + PsyUserProfile profile = profileMapper.selectProfileById(profileId); + if (profile != null && profile.getUserId() != null) + { + userIdsToDelete.add(profile.getUserId()); + } + } + + // 删除档案 + int result = profileMapper.deleteProfileByIds(profileIds); + + // 删除对应的用户 + if (!userIdsToDelete.isEmpty()) + { + Long[] userIds = userIdsToDelete.toArray(new Long[0]); + try + { + userService.deleteUserByIds(userIds); + log.info("删除档案同时删除了对应的用户,用户ID: {}", userIdsToDelete); + } + catch (Exception e) + { + log.error("删除用户失败,用户ID: {}", userIdsToDelete, e); + // 即使删除用户失败,档案已经删除,也返回成功 + } + } + + return result; } private void validateInfoNumberUnique(String infoNumber, Long profileId) @@ -336,16 +366,22 @@ public class PsyUserProfileServiceImpl implements IPsyUserProfileService { throw new ServiceException("信息编号不能为空"); } + SysUser user = new SysUser(); + // 使用信息编号作为登录账号(用户名) String loginAccount = profile.getInfoNumber(); - user.setUserName(loginAccount); + + // 不设置userId,让数据库自动生成 + // userId和信息编号不需要保持一致,信息编号用于登录 + user.setUserName(loginAccount); // 登录账号 = 信息编号 user.setNickName(StringUtils.isNotEmpty(profile.getUserName()) ? profile.getUserName() : loginAccount); user.setPhonenumber(profile.getPhone()); user.setDeptId(profile.getDeptId()); user.setStatus("0"); user.setPassword(SecurityUtils.encryptPassword(resolveInitPassword())); user.setCreateBy(SecurityUtils.getUsername()); - user.setRemark("由用户档案自动创建"); + user.setRemark("由用户档案自动创建(登录账号:" + loginAccount + ")"); + Long studentRoleId = resolveStudentRoleId(); if (studentRoleId != null) { @@ -355,11 +391,16 @@ public class PsyUserProfileServiceImpl implements IPsyUserProfileService { log.warn("未找到学生角色,自动创建的用户将没有角色,请检查角色配置"); } + if (!userService.checkUserNameUnique(user)) { throw new ServiceException("登录账号 '" + loginAccount + "' 已存在,请更换信息编号"); } + + log.info("自动创建用户,登录账号: {}", loginAccount); userService.insertUser(user); + log.info("用户创建成功,用户ID: {}, 登录账号: {}", user.getUserId(), user.getUserName()); + return user; } @@ -418,5 +459,86 @@ public class PsyUserProfileServiceImpl implements IPsyUserProfileService } return null; } + + /** + * 导入用户档案数据 + * + * @param profileList 用户档案数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param operName 操作用户 + * @return 结果 + */ + @Override + public String importProfile(List profileList, Boolean isUpdateSupport, String operName) + { + if (StringUtils.isNull(profileList) || profileList.size() == 0) + { + throw new ServiceException("导入用户档案数据不能为空!"); + } + int successNum = 0; + int failureNum = 0; + StringBuilder successMsg = new StringBuilder(); + StringBuilder failureMsg = new StringBuilder(); + + for (PsyUserProfile profile : profileList) + { + try + { + // 设置创建者 + profile.setCreateBy(operName); + + // 验证信息编号 + if (StringUtils.isEmpty(profile.getInfoNumber())) + { + failureNum++; + failureMsg.append("
").append(failureNum).append("、档案信息编号为空"); + continue; + } + + // 根据信息编号查询是否存在 + PsyUserProfile existProfile = profileMapper.selectProfileByInfoNumber(profile.getInfoNumber()); + if (StringUtils.isNull(existProfile)) + { + // 新增档案 + this.insertProfile(profile); + successNum++; + successMsg.append("
").append(successNum).append("、信息编号 ").append(profile.getInfoNumber()).append(" 导入成功"); + } + else if (isUpdateSupport) + { + // 更新档案 + profile.setProfileId(existProfile.getProfileId()); + profile.setUserId(existProfile.getUserId()); + profile.setUpdateBy(operName); + this.updateProfile(profile); + successNum++; + successMsg.append("
").append(successNum).append("、信息编号 ").append(profile.getInfoNumber()).append(" 更新成功"); + } + else + { + failureNum++; + failureMsg.append("
").append(failureNum).append("、信息编号 ").append(profile.getInfoNumber()).append(" 已存在"); + } + } + catch (Exception e) + { + failureNum++; + String msg = "
" + failureNum + "、信息编号 " + profile.getInfoNumber() + " 导入失败:"; + failureMsg.append(msg).append(e.getMessage()); + log.error(msg, e); + } + } + + if (failureNum > 0) + { + failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failureMsg.toString()); + } + else + { + successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:"); + } + return successMsg.toString(); + } } diff --git a/ry-xinli-system/src/main/java/com/ddnai/system/service/psychology/IPsyUserProfileService.java b/ry-xinli-system/src/main/java/com/ddnai/system/service/psychology/IPsyUserProfileService.java index 8440075f..b670a5c6 100644 --- a/ry-xinli-system/src/main/java/com/ddnai/system/service/psychology/IPsyUserProfileService.java +++ b/ry-xinli-system/src/main/java/com/ddnai/system/service/psychology/IPsyUserProfileService.java @@ -65,5 +65,15 @@ public interface IPsyUserProfileService * @return 结果 */ public int deleteProfileByIds(Long[] profileIds); + + /** + * 导入用户档案数据 + * + * @param profileList 用户档案数据列表 + * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 + * @param operName 操作用户 + * @return 结果 + */ + public String importProfile(List profileList, Boolean isUpdateSupport, String operName); } diff --git a/ry-xinli-system/src/main/resources/mapper/system/SysUserMapper.xml b/ry-xinli-system/src/main/resources/mapper/system/SysUserMapper.xml index e29629f0..0f35a1d6 100644 --- a/ry-xinli-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ry-xinli-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -1,4 +1,4 @@ - + @@ -152,7 +152,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into sys_user( - user_id, dept_id, user_name, nick_name, @@ -167,7 +166,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" remark, create_time )values( - #{userId}, #{deptId}, #{userName}, #{nickName}, diff --git a/xinli-ui/src/router/index.js b/xinli-ui/src/router/index.js index f6804131..a2e750c2 100644 --- a/xinli-ui/src/router/index.js +++ b/xinli-ui/src/router/index.js @@ -106,6 +106,7 @@ export const constantRoutes = [ { path: '/student/tests', component: () => import('@/views/student/tests'), + name: 'StudentTests', hidden: true, meta: { title: '心理测试题' } }, diff --git a/xinli-ui/src/views/psychology/profile/index.vue b/xinli-ui/src/views/psychology/profile/index.vue index d49eb46a..75a68d9b 100644 --- a/xinli-ui/src/views/psychology/profile/index.vue +++ b/xinli-ui/src/views/psychology/profile/index.vue @@ -9,14 +9,7 @@ @keyup.enter.native="handleQuery" /> - - - + 删除 + + 导入 + + + 导出 + - +