提交代码
This commit is contained in:
1 parent
59c666a6f4
commit
21856615db
9 files changed
+504
-133
No files matched your search
+24
@@ -23,6 +23,8 @@ import org.dromara.xg.domain.vo.StudentOptionVo;
|
|||||||
import org.dromara.xg.domain.bo.StudentOptionBo;
|
import org.dromara.xg.domain.bo.StudentOptionBo;
|
||||||
import org.dromara.xg.service.IXgDormApplicationService;
|
import org.dromara.xg.service.IXgDormApplicationService;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生宿舍申请单表(调宿+退宿)
|
* 学生宿舍申请单表(调宿+退宿)
|
||||||
@@ -113,4 +115,26 @@ public class XgDormApplicationController extends BaseController {
|
|||||||
return toAjax(xgDormApplicationService.deleteWithValidByIds(List.of(ids), true));
|
return toAjax(xgDormApplicationService.deleteWithValidByIds(List.of(ids), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取二级学院审批人列表
|
||||||
|
*
|
||||||
|
* @param collegeId 学院ID
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("dormApplication:dormApplication:list")
|
||||||
|
@GetMapping("/getCollegeApprovers")
|
||||||
|
public R<List<Map<String, Object>>> getCollegeApprovers(@RequestParam Long collegeId) {
|
||||||
|
List<Map<String, Object>> approvers = xgDormApplicationService.getCollegeApprovers(collegeId);
|
||||||
|
return R.ok(approvers);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取学工处审批人列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("dormApplication:dormApplication:list")
|
||||||
|
@GetMapping("/getStudentAffairsApprovers")
|
||||||
|
public R<List<Map<String, Object>>> getStudentAffairsApprovers() {
|
||||||
|
List<Map<String, Object>> approvers = xgDormApplicationService.getStudentAffairsApprovers();
|
||||||
|
return R.ok(approvers);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+11
@@ -343,4 +343,15 @@ public class XgDormBedStudentController extends BaseController {
|
|||||||
return R.ok(currentDormInfo);
|
return R.ok(currentDormInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据床位ID获取该床位的学生信息
|
||||||
|
* 包含学生基本信息、学院、专业、班级等信息
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("dormBedStudent:dormBedStudent:list")
|
||||||
|
@GetMapping("/bedStudentInfo/{bedId}")
|
||||||
|
public R<Object> getBedStudentInfo(@NotNull(message = "床位ID不能为空") @PathVariable Long bedId) {
|
||||||
|
Object bedStudentInfo = xgDormBedStudentService.getBedStudentInfo(bedId);
|
||||||
|
return R.ok(bedStudentInfo);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+43
@@ -236,4 +236,47 @@ public interface XgDormBedStudentMapper extends BaseMapperPlus<XgDormBedStudent,
|
|||||||
""")
|
""")
|
||||||
Map<String, Object> selectCurrentDormInfo(@Param("studentId") Long studentId);
|
Map<String, Object> selectCurrentDormInfo(@Param("studentId") Long studentId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据床位ID获取该床位的学生信息
|
||||||
|
* 包含学生基本信息、学院、专业、班级等信息
|
||||||
|
*
|
||||||
|
* @param bedId 床位ID
|
||||||
|
* @return 床位学生信息
|
||||||
|
*/
|
||||||
|
@Select("""
|
||||||
|
SELECT
|
||||||
|
bs.student_id,
|
||||||
|
bs.bed_id,
|
||||||
|
|
||||||
|
-- 学生基本信息
|
||||||
|
s.student_no,
|
||||||
|
s.name as student_name,
|
||||||
|
s.gender,
|
||||||
|
s.phone,
|
||||||
|
|
||||||
|
-- 班级信息
|
||||||
|
c.class_name,
|
||||||
|
|
||||||
|
-- 学院信息
|
||||||
|
d.dept_name as college_name,
|
||||||
|
|
||||||
|
-- 专业信息
|
||||||
|
major.dept_name as major_name
|
||||||
|
|
||||||
|
FROM xg_dorm_bed_student bs
|
||||||
|
INNER JOIN xg_student_msg s ON bs.student_id = s.id AND s.deleted = 0
|
||||||
|
LEFT JOIN xg_class_msg c ON s.class_id = c.id AND c.deleted = 0
|
||||||
|
LEFT JOIN sys_dept d ON c.college_id = d.dept_id AND d.del_flag = '0'
|
||||||
|
LEFT JOIN sys_dept major ON c.major_id = major.dept_id AND major.del_flag = '0'
|
||||||
|
|
||||||
|
WHERE bs.bed_id = #{bedId}
|
||||||
|
AND bs.student_id IS NOT NULL
|
||||||
|
AND bs.status = '0'
|
||||||
|
AND bs.deleted = '0'
|
||||||
|
AND s.student_status = '1'
|
||||||
|
|
||||||
|
LIMIT 1
|
||||||
|
""")
|
||||||
|
Map<String, Object> selectBedStudentInfo(@Param("bedId") Long bedId);
|
||||||
|
|
||||||
}
|
}
|
||||||
+16
@@ -9,6 +9,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 学生宿舍申请单表(调宿+退宿)Service接口
|
* 学生宿舍申请单表(调宿+退宿)Service接口
|
||||||
@@ -77,4 +78,19 @@ public interface IXgDormApplicationService {
|
|||||||
*/
|
*/
|
||||||
TableDataInfo<StudentOptionVo> getStudentOptions(StudentOptionBo bo, PageQuery pageQuery);
|
TableDataInfo<StudentOptionVo> getStudentOptions(StudentOptionBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取二级学院审批人列表
|
||||||
|
*
|
||||||
|
* @param collegeId 学院ID
|
||||||
|
* @return 审批人列表
|
||||||
|
*/
|
||||||
|
List<Map<String, Object>> getCollegeApprovers(Long collegeId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取学工处审批人列表
|
||||||
|
*
|
||||||
|
* @return 审批人列表
|
||||||
|
*/
|
||||||
|
List<Map<String, Object>> getStudentAffairsApprovers();
|
||||||
|
|
||||||
}
|
}
|
||||||
+9
@@ -251,4 +251,13 @@ public interface IXgDormBedStudentService {
|
|||||||
* @return 当前宿舍信息
|
* @return 当前宿舍信息
|
||||||
*/
|
*/
|
||||||
Object getCurrentDormInfo(Long studentId);
|
Object getCurrentDormInfo(Long studentId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据床位ID获取该床位的学生信息
|
||||||
|
* 包含学生基本信息、学院、专业、班级等信息
|
||||||
|
*
|
||||||
|
* @param bedId 床位ID
|
||||||
|
* @return 床位学生信息
|
||||||
|
*/
|
||||||
|
Object getBedStudentInfo(Long bedId);
|
||||||
}
|
}
|
||||||
+116
@@ -30,7 +30,12 @@ import cn.hutool.core.map.MapUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.system.mapper.SysDeptMapper;
|
import org.dromara.system.mapper.SysDeptMapper;
|
||||||
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
|
import org.dromara.system.mapper.SysUserRoleMapper;
|
||||||
|
import org.dromara.system.mapper.SysRoleMapper;
|
||||||
import org.dromara.system.domain.SysDept;
|
import org.dromara.system.domain.SysDept;
|
||||||
|
import org.dromara.system.domain.SysUser;
|
||||||
|
import org.dromara.system.domain.SysRole;
|
||||||
import org.dromara.xg.mapper.XgStudentManagerMapper;
|
import org.dromara.xg.mapper.XgStudentManagerMapper;
|
||||||
import org.dromara.xg.mapper.XgStudentManagerSourceMapper;
|
import org.dromara.xg.mapper.XgStudentManagerSourceMapper;
|
||||||
import org.dromara.xg.mapper.XgClassMsgMapper;
|
import org.dromara.xg.mapper.XgClassMsgMapper;
|
||||||
@@ -64,6 +69,9 @@ public class XgDormApplicationServiceImpl implements IXgDormApplicationService {
|
|||||||
private final XgDormBedStudentMapper xgDormBedStudentMapper;
|
private final XgDormBedStudentMapper xgDormBedStudentMapper;
|
||||||
// 添加权限过滤需要的依赖
|
// 添加权限过滤需要的依赖
|
||||||
private final SysDeptMapper sysDeptMapper;
|
private final SysDeptMapper sysDeptMapper;
|
||||||
|
private final SysUserMapper sysUserMapper;
|
||||||
|
private final SysUserRoleMapper sysUserRoleMapper;
|
||||||
|
private final SysRoleMapper sysRoleMapper;
|
||||||
private final XgStudentManagerMapper xgStudentManagerMapper;
|
private final XgStudentManagerMapper xgStudentManagerMapper;
|
||||||
private final XgStudentManagerSourceMapper xgStudentManagerSourceMapper;
|
private final XgStudentManagerSourceMapper xgStudentManagerSourceMapper;
|
||||||
private final XgClassMsgMapper xgClassMsgMapper;
|
private final XgClassMsgMapper xgClassMsgMapper;
|
||||||
@@ -493,4 +501,112 @@ public class XgDormApplicationServiceImpl implements IXgDormApplicationService {
|
|||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取二级学院审批人列表
|
||||||
|
*
|
||||||
|
* @param collegeId 学院ID
|
||||||
|
* @return 审批人列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Map<String, Object>> getCollegeApprovers(Long collegeId) {
|
||||||
|
try {
|
||||||
|
// 查询角色key为'ejxyssgly'的角色ID
|
||||||
|
LambdaQueryWrapper<SysRole> roleWrapper = new LambdaQueryWrapper<>();
|
||||||
|
roleWrapper.eq(SysRole::getRoleKey, "ejxyssgly");
|
||||||
|
SysRole role = sysRoleMapper.selectOne(roleWrapper);
|
||||||
|
|
||||||
|
if (role == null) {
|
||||||
|
log.warn("未找到角色key为'ejxyssgly'的角色");
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通过角色ID查询用户角色关系表
|
||||||
|
LambdaQueryWrapper<org.dromara.system.domain.SysUserRole> userRoleWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userRoleWrapper.eq(org.dromara.system.domain.SysUserRole::getRoleId, role.getRoleId());
|
||||||
|
List<org.dromara.system.domain.SysUserRole> userRoles = sysUserRoleMapper.selectList(userRoleWrapper);
|
||||||
|
|
||||||
|
if (userRoles.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取用户ID列表
|
||||||
|
List<Long> userIds = userRoles.stream()
|
||||||
|
.map(org.dromara.system.domain.SysUserRole::getUserId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 查询用户信息,过滤指定学院的用户
|
||||||
|
LambdaQueryWrapper<SysUser> userWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userWrapper.in(SysUser::getUserId, userIds)
|
||||||
|
.eq(SysUser::getDeptId, collegeId)
|
||||||
|
.eq(SysUser::getStatus, "0"); // 只查询启用状态的用户
|
||||||
|
List<SysUser> users = sysUserMapper.selectList(userWrapper);
|
||||||
|
|
||||||
|
// 转换为Map格式返回
|
||||||
|
return users.stream().map(user -> {
|
||||||
|
Map<String, Object> approver = MapUtil.newHashMap();
|
||||||
|
approver.put("userId", user.getUserId());
|
||||||
|
approver.put("userName", user.getUserName());
|
||||||
|
approver.put("nickName", user.getNickName());
|
||||||
|
approver.put("deptId", user.getDeptId());
|
||||||
|
return approver;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("获取二级学院审批人列表失败", e);
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取学工处审批人列表
|
||||||
|
*
|
||||||
|
* @return 审批人列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Map<String, Object>> getStudentAffairsApprovers() {
|
||||||
|
try {
|
||||||
|
// 查询角色key为'xscxsxxgly'的角色ID
|
||||||
|
LambdaQueryWrapper<SysRole> roleWrapper = new LambdaQueryWrapper<>();
|
||||||
|
roleWrapper.eq(SysRole::getRoleKey, "xscxsxxgly");
|
||||||
|
SysRole role = sysRoleMapper.selectOne(roleWrapper);
|
||||||
|
|
||||||
|
if (role == null) {
|
||||||
|
log.warn("未找到角色key为'xscxsxxgly'的角色");
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通过角色ID查询用户角色关系表
|
||||||
|
LambdaQueryWrapper<org.dromara.system.domain.SysUserRole> userRoleWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userRoleWrapper.eq(org.dromara.system.domain.SysUserRole::getRoleId, role.getRoleId());
|
||||||
|
List<org.dromara.system.domain.SysUserRole> userRoles = sysUserRoleMapper.selectList(userRoleWrapper);
|
||||||
|
|
||||||
|
if (userRoles.isEmpty()) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取用户ID列表
|
||||||
|
List<Long> userIds = userRoles.stream()
|
||||||
|
.map(org.dromara.system.domain.SysUserRole::getUserId)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 查询用户信息
|
||||||
|
LambdaQueryWrapper<SysUser> userWrapper = new LambdaQueryWrapper<>();
|
||||||
|
userWrapper.in(SysUser::getUserId, userIds)
|
||||||
|
.eq(SysUser::getStatus, "0"); // 只查询启用状态的用户
|
||||||
|
List<SysUser> users = sysUserMapper.selectList(userWrapper);
|
||||||
|
|
||||||
|
// 转换为Map格式返回
|
||||||
|
return users.stream().map(user -> {
|
||||||
|
Map<String, Object> approver = MapUtil.newHashMap();
|
||||||
|
approver.put("userId", user.getUserId());
|
||||||
|
approver.put("userName", user.getUserName());
|
||||||
|
approver.put("nickName", user.getNickName());
|
||||||
|
approver.put("deptId", user.getDeptId());
|
||||||
|
return approver;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("获取学工处审批人列表失败", e);
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+59
@@ -2568,4 +2568,63 @@ public class XgDormBedStudentServiceImpl implements IXgDormBedStudentService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据床位ID获取该床位的学生信息
|
||||||
|
* 包含学生基本信息、学院、专业、班级等信息
|
||||||
|
*
|
||||||
|
* @param bedId 床位ID
|
||||||
|
* @return 床位学生信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Object getBedStudentInfo(Long bedId) {
|
||||||
|
try {
|
||||||
|
log.info("开始获取床位学生信息,床位ID: {}", bedId);
|
||||||
|
|
||||||
|
if (bedId == null) {
|
||||||
|
log.warn("床位ID为空,无法获取学生信息");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用SQL关联查询,获取床位学生信息
|
||||||
|
Map<String, Object> studentInfo = baseMapper.selectBedStudentInfo(bedId);
|
||||||
|
|
||||||
|
if (studentInfo == null || studentInfo.isEmpty()) {
|
||||||
|
log.warn("床位ID: {} 未找到学生信息", bedId);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 组装返回结果
|
||||||
|
Map<String, Object> result = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
// 学生基本信息
|
||||||
|
result.put("studentId", studentInfo.get("student_id"));
|
||||||
|
result.put("studentNo", studentInfo.get("student_no"));
|
||||||
|
result.put("studentName", studentInfo.get("student_name"));
|
||||||
|
result.put("gender", studentInfo.get("gender"));
|
||||||
|
result.put("phone", studentInfo.get("phone"));
|
||||||
|
|
||||||
|
// 学院、专业、班级信息
|
||||||
|
result.put("collegeName", studentInfo.get("college_name"));
|
||||||
|
result.put("majorName", studentInfo.get("major_name"));
|
||||||
|
result.put("className", studentInfo.get("class_name"));
|
||||||
|
|
||||||
|
// 床位信息
|
||||||
|
result.put("bedId", studentInfo.get("bed_id"));
|
||||||
|
|
||||||
|
log.info("获取床位学生信息成功,床位ID: {}, 学生信息: {}({})-{}-{}-{}",
|
||||||
|
bedId,
|
||||||
|
result.get("studentName"),
|
||||||
|
result.get("studentNo"),
|
||||||
|
result.get("collegeName"),
|
||||||
|
result.get("majorName"),
|
||||||
|
result.get("className"));
|
||||||
|
|
||||||
|
return result;
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("获取床位学生信息失败,床位ID: {}", bedId, e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -84,75 +84,25 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
<!-- 学生信息和床位信息显示在整行 -->
|
||||||
<!-- 学生基础信息展示 -->
|
<el-row v-if="form.studentId" :gutter="16">
|
||||||
<div v-if="form.studentId" class="student-info-display">
|
<el-col :span="24">
|
||||||
<div class="info-subtitle">学生基础信息</div>
|
<div class="selected-student-info">
|
||||||
<el-row :gutter="16">
|
<div class="student-info-inline">
|
||||||
<el-col :span="4">
|
<div class="info-text">
|
||||||
<div class="info-item">
|
学生信息:{{ form.studentName || '-' }} / {{ form.studentNo || '-' }} / {{ form.collegeName || '-' }} /
|
||||||
<span class="info-label">学生姓名:</span>
|
{{ form.majorName || '-' }} / {{ form.className || '-' }} / {{ form.studentPhone || '-' }}
|
||||||
<span class="info-value">{{ form.studentName || '-' }}</span>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
<div class="dorm-info-inline" v-if="form.currentCampusName || form.currentBuildingName || form.currentRoomNo || form.currentBedNo">
|
||||||
<el-col :span="4">
|
<div class="info-text">
|
||||||
<div class="info-item">
|
床位信息:{{ form.currentCampusName || '-' }} / {{ form.currentBuildingName || '-' }} / {{ form.currentRoomNo || '-' }} /
|
||||||
<span class="info-label">学号:</span>
|
{{ form.currentBedNo || '-' }}
|
||||||
<span class="info-value">{{ form.studentNo || '-' }}</span>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</div>
|
||||||
<el-col :span="4">
|
</el-col>
|
||||||
<div class="info-item">
|
</el-row>
|
||||||
<span class="info-label">班级名称:</span>
|
|
||||||
<span class="info-value">{{ form.className || '-' }}</span>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="info-label">联系电话:</span>
|
|
||||||
<span class="info-value">{{ form.studentPhone || '-' }}</span>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="info-label">专业名称:</span>
|
|
||||||
<span class="info-value">{{ form.majorName || '-' }}</span>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="info-label">学院名称:</span>
|
|
||||||
<span class="info-value">{{ form.collegeName || '-' }}</span>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
<el-row :gutter="16">
|
|
||||||
<el-col :span="4">
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="info-label">校区:</span>
|
|
||||||
<span class="info-value">{{ form.currentCampusName || '-' }}</span>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="info-label">宿舍楼:</span>
|
|
||||||
<span class="info-value">{{ form.currentBuildingName || '-' }}</span>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="info-label">房间号:</span>
|
|
||||||
<span class="info-value">{{ form.currentRoomNo || '-' }}</span>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="4">
|
|
||||||
<div class="info-item">
|
|
||||||
<span class="info-label">床位号:</span>
|
|
||||||
<span class="info-value">{{ form.currentBedNo || '-' }}</span>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</div>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -256,7 +206,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<!-- 目标床位号、紧急联系人、紧急电话一行 -->
|
<!-- 目标床位号 -->
|
||||||
<el-row :gutter="16">
|
<el-row :gutter="16">
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="目标床位号" prop="targetBedId">
|
<el-form-item label="目标床位号" prop="targetBedId">
|
||||||
@@ -272,39 +222,34 @@
|
|||||||
>
|
>
|
||||||
<el-option v-for="bed in targetBedOptions" :key="bed.id" :label="bed.bedNo || bed.bedName" :value="bed.id" />
|
<el-option v-for="bed in targetBedOptions" :key="bed.id" :label="bed.bedNo || bed.bedName" :value="bed.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
|
<!-- 目标床位学生信息显示在床位选择下方 -->
|
||||||
|
<div v-if="form.targetBedId && form.targetBedStudentName" class="target-bed-student-inline-info">
|
||||||
|
<div class="student-info-text">
|
||||||
|
学生信息:{{ form.targetBedStudentName || '-' }} / {{ form.targetBedStudentNo || '-' }} /
|
||||||
|
{{ form.targetBedStudentCollegeName || '-' }} / {{ form.targetBedStudentMajorName || '-' }} /
|
||||||
|
{{ form.targetBedStudentClassName || '-' }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="18">
|
||||||
<el-form-item label="紧急联系人" prop="emergencyContact">
|
<el-form-item label="申请原因" prop="reasonDetail">
|
||||||
<el-input v-model="form.emergencyContact" placeholder="请输入紧急联系人" />
|
<el-input v-model="form.reasonDetail" placeholder="请输入详细的申请原因" />
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="6">
|
|
||||||
<el-form-item label="紧急电话" prop="emergencyPhone">
|
|
||||||
<el-input v-model="form.emergencyPhone" placeholder="请输入紧急联系电话" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 退宿申请时的紧急联系人、紧急电话 -->
|
<!-- 退宿申请时的申请原因 -->
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<el-row :gutter="16">
|
<el-row :gutter="16">
|
||||||
<el-col :span="8">
|
<el-col :span="24">
|
||||||
<el-form-item label="紧急联系人" prop="emergencyContact">
|
<el-form-item label="申请原因" prop="reasonDetail">
|
||||||
<el-input v-model="form.emergencyContact" placeholder="请输入紧急联系人" />
|
<el-input v-model="form.reasonDetail" placeholder="请输入详细的申请原因" />
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="紧急电话" prop="emergencyPhone">
|
|
||||||
<el-input v-model="form.emergencyPhone" placeholder="请输入紧急联系电话" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
<el-form-item label="申请原因" prop="reasonDetail">
|
|
||||||
<el-input v-model="form.reasonDetail" type="textarea" :rows="3" placeholder="请输入详细的申请原因" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="上传附件">
|
<el-form-item label="上传附件">
|
||||||
<div class="attachment-upload-container">
|
<div class="attachment-upload-container">
|
||||||
<el-upload
|
<el-upload
|
||||||
@@ -519,10 +464,15 @@ const form = reactive<any>({
|
|||||||
targetRoomNo: '',
|
targetRoomNo: '',
|
||||||
targetBedId: '',
|
targetBedId: '',
|
||||||
targetBedNo: '',
|
targetBedNo: '',
|
||||||
|
// 目标床位学生信息
|
||||||
|
targetBedStudentId: '',
|
||||||
|
targetBedStudentName: '',
|
||||||
|
targetBedStudentNo: '',
|
||||||
|
targetBedStudentCollegeName: '',
|
||||||
|
targetBedStudentMajorName: '',
|
||||||
|
targetBedStudentClassName: '',
|
||||||
applyTime: '',
|
applyTime: '',
|
||||||
reasonDetail: '',
|
reasonDetail: '',
|
||||||
emergencyContact: '',
|
|
||||||
emergencyPhone: '',
|
|
||||||
attachmentOssIds: '',
|
attachmentOssIds: '',
|
||||||
applicationStatus: 'draft',
|
applicationStatus: 'draft',
|
||||||
approvalOpinion: '',
|
approvalOpinion: '',
|
||||||
@@ -924,22 +874,21 @@ const handleStartWorkFlow = async (data: DormApplicationForm) => {
|
|||||||
let xgcsprIds: number[] = [];
|
let xgcsprIds: number[] = [];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 获取二级学院审批人(role_key为'ejxyssgly'的角色)
|
// 获取二级学院审批人
|
||||||
const ejxysprResponse = await request({
|
const ejxysprResponse = await request({
|
||||||
url: '/system/user/listByRoleKey',
|
url: '/dormApplication/dormApplication/getCollegeApprovers',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: { roleKey: 'ejxyssgly', collegeId: data.collegeId }
|
params: { collegeId: data.collegeId }
|
||||||
});
|
});
|
||||||
if (ejxysprResponse && ejxysprResponse.data) {
|
if (ejxysprResponse && ejxysprResponse.data) {
|
||||||
ejxysprIds = ejxysprResponse.data.map((user: any) => user.userId);
|
ejxysprIds = ejxysprResponse.data.map((user: any) => user.userId);
|
||||||
console.log('获取到二级学院审批人列表:', ejxysprIds);
|
console.log('获取到二级学院审批人列表:', ejxysprIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取学工处审批人(role_key为'xscxsxxgly'的角色)
|
// 获取学工处审批人
|
||||||
const xgcsprResponse = await request({
|
const xgcsprResponse = await request({
|
||||||
url: '/system/user/listByRoleKey',
|
url: '/dormApplication/dormApplication/getStudentAffairsApprovers',
|
||||||
method: 'get',
|
method: 'get'
|
||||||
params: { roleKey: 'xscxsxxgly' }
|
|
||||||
});
|
});
|
||||||
if (xgcsprResponse && xgcsprResponse.data) {
|
if (xgcsprResponse && xgcsprResponse.data) {
|
||||||
xgcsprIds = xgcsprResponse.data.map((user: any) => user.userId);
|
xgcsprIds = xgcsprResponse.data.map((user: any) => user.userId);
|
||||||
@@ -1087,11 +1036,21 @@ const getDormApplicationInfo = async (id: string | number) => {
|
|||||||
// 设置状态字段映射
|
// 设置状态字段映射
|
||||||
form.status = applicationInfo.applicationStatus;
|
form.status = applicationInfo.applicationStatus;
|
||||||
|
|
||||||
// 如果有学生ID,则获取学生信息
|
// 如果有学生ID,则获取学生信息并添加到选项中
|
||||||
if (applicationInfo.studentId) {
|
if (applicationInfo.studentId) {
|
||||||
await getStudentInfo(applicationInfo.studentId);
|
await getStudentInfo(applicationInfo.studentId);
|
||||||
|
// 将当前学生添加到学生选项列表中,确保下拉框能正确显示
|
||||||
|
await addCurrentStudentToOptions(applicationInfo.studentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 如果有目标学生ID,则将目标学生添加到选项中
|
||||||
|
if (applicationInfo.targetStudentId) {
|
||||||
|
await addCurrentTargetStudentToOptions(applicationInfo.targetStudentId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载目标宿舍级联选项数据(修改时必须调用)
|
||||||
|
await loadTargetCascadeOptionsForUpdate();
|
||||||
|
|
||||||
// 处理附件数据
|
// 处理附件数据
|
||||||
await handleAttachmentData();
|
await handleAttachmentData();
|
||||||
} else {
|
} else {
|
||||||
@@ -1349,6 +1308,13 @@ const handleStudentChange = async (value: string | number) => {
|
|||||||
form.targetRoomNo = '';
|
form.targetRoomNo = '';
|
||||||
form.targetBedId = '';
|
form.targetBedId = '';
|
||||||
form.targetBedNo = '';
|
form.targetBedNo = '';
|
||||||
|
// 清空目标床位学生信息
|
||||||
|
form.targetBedStudentId = '';
|
||||||
|
form.targetBedStudentName = '';
|
||||||
|
form.targetBedStudentNo = '';
|
||||||
|
form.targetBedStudentCollegeName = '';
|
||||||
|
form.targetBedStudentMajorName = '';
|
||||||
|
form.targetBedStudentClassName = '';
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1402,6 +1368,42 @@ const handleStudentSelectVisibleChange = (visible: boolean) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 将当前学生添加到学生选项列表中(用于数据回显)
|
||||||
|
const addCurrentStudentToOptions = async (studentId: string | number) => {
|
||||||
|
try {
|
||||||
|
console.log('将当前学生添加到选项列表,学生ID:', studentId);
|
||||||
|
const response = await getStudentMsg(studentId);
|
||||||
|
|
||||||
|
if (response.code === 200 && response.data) {
|
||||||
|
const studentInfo = response.data;
|
||||||
|
|
||||||
|
// 检查是否已存在该学生
|
||||||
|
const existingStudent = studentOptions.value.find((student) => student.id === studentId);
|
||||||
|
if (!existingStudent) {
|
||||||
|
// 将学生信息添加到选项列表
|
||||||
|
const studentOption: StudentOptionVO = {
|
||||||
|
id: studentInfo.id,
|
||||||
|
name: studentInfo.name || '',
|
||||||
|
studentNo: studentInfo.studentNo || '',
|
||||||
|
gender: studentInfo.gender || '',
|
||||||
|
phone: studentInfo.phone || '',
|
||||||
|
collegeId: studentInfo.collegeId,
|
||||||
|
collegeName: studentInfo.collegeName || '',
|
||||||
|
majorId: studentInfo.majorId,
|
||||||
|
majorName: studentInfo.majorName || '',
|
||||||
|
classId: studentInfo.classId,
|
||||||
|
className: studentInfo.className || ''
|
||||||
|
};
|
||||||
|
|
||||||
|
studentOptions.value = [studentOption];
|
||||||
|
console.log('当前学生已添加到选项列表:', studentOption);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('添加当前学生到选项列表失败:', error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// ==================== 目标学生选择相关方法 ====================
|
// ==================== 目标学生选择相关方法 ====================
|
||||||
|
|
||||||
// 目标学生下拉框远程搜索
|
// 目标学生下拉框远程搜索
|
||||||
@@ -1445,6 +1447,42 @@ const handleTargetStudentSelectVisibleChange = (visible: boolean) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 将当前目标学生添加到目标学生选项列表中(用于数据回显)
|
||||||
|
const addCurrentTargetStudentToOptions = async (targetStudentId: string | number) => {
|
||||||
|
try {
|
||||||
|
console.log('将当前目标学生添加到选项列表,学生ID:', targetStudentId);
|
||||||
|
const response = await getStudentMsg(targetStudentId);
|
||||||
|
|
||||||
|
if (response.code === 200 && response.data) {
|
||||||
|
const studentInfo = response.data;
|
||||||
|
|
||||||
|
// 检查是否已存在该学生
|
||||||
|
const existingStudent = targetStudentOptions.value.find((student) => student.id === targetStudentId);
|
||||||
|
if (!existingStudent) {
|
||||||
|
// 将学生信息添加到目标学生选项列表
|
||||||
|
const studentOption: StudentOptionVO = {
|
||||||
|
id: studentInfo.id,
|
||||||
|
name: studentInfo.name || '',
|
||||||
|
studentNo: studentInfo.studentNo || '',
|
||||||
|
gender: studentInfo.gender || '',
|
||||||
|
phone: studentInfo.phone || '',
|
||||||
|
collegeId: studentInfo.collegeId,
|
||||||
|
collegeName: studentInfo.collegeName || '',
|
||||||
|
majorId: studentInfo.majorId,
|
||||||
|
majorName: studentInfo.majorName || '',
|
||||||
|
classId: studentInfo.classId,
|
||||||
|
className: studentInfo.className || ''
|
||||||
|
};
|
||||||
|
|
||||||
|
targetStudentOptions.value = [studentOption];
|
||||||
|
console.log('当前目标学生已添加到选项列表:', studentOption);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('添加当前目标学生到选项列表失败:', error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// 加载初始目标学生数据
|
// 加载初始目标学生数据
|
||||||
const loadInitialTargetStudents = async () => {
|
const loadInitialTargetStudents = async () => {
|
||||||
targetStudentLoading.value = true;
|
targetStudentLoading.value = true;
|
||||||
@@ -1525,6 +1563,9 @@ const clearTargetDormInfo = () => {
|
|||||||
form.targetBedId = '';
|
form.targetBedId = '';
|
||||||
form.targetBedNo = '';
|
form.targetBedNo = '';
|
||||||
|
|
||||||
|
// 清空目标床位学生信息
|
||||||
|
clearTargetBedStudentInfo();
|
||||||
|
|
||||||
// 清空选项
|
// 清空选项
|
||||||
targetBuildingOptions.value = [];
|
targetBuildingOptions.value = [];
|
||||||
targetRoomOptions.value = [];
|
targetRoomOptions.value = [];
|
||||||
@@ -1687,7 +1728,7 @@ const loadTargetBedOptions = async (roomId: string | number) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 目标床位选择变化处理
|
// 目标床位选择变化处理
|
||||||
const handleTargetBedChange = (bedId: string | number) => {
|
const handleTargetBedChange = async (bedId: string | number) => {
|
||||||
if (bedId) {
|
if (bedId) {
|
||||||
// 设置床位名称
|
// 设置床位名称
|
||||||
const selectedBed = targetBedOptions.value.find((bed) => bed.id === bedId);
|
const selectedBed = targetBedOptions.value.find((bed) => bed.id === bedId);
|
||||||
@@ -1695,9 +1736,14 @@ const handleTargetBedChange = (bedId: string | number) => {
|
|||||||
form.targetBedId = bedId;
|
form.targetBedId = bedId;
|
||||||
form.targetBedNo = selectedBed.bedNo || selectedBed.bedName;
|
form.targetBedNo = selectedBed.bedNo || selectedBed.bedName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取该床位的学生信息
|
||||||
|
await getTargetBedStudentInfo(bedId);
|
||||||
} else {
|
} else {
|
||||||
form.targetBedId = '';
|
form.targetBedId = '';
|
||||||
form.targetBedNo = '';
|
form.targetBedNo = '';
|
||||||
|
// 清空目标床位学生信息
|
||||||
|
clearTargetBedStudentInfo();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1715,6 +1761,11 @@ const loadTargetCascadeOptionsForUpdate = async () => {
|
|||||||
// 如果有房间ID,加载床位选项
|
// 如果有房间ID,加载床位选项
|
||||||
if (form.targetRoomId) {
|
if (form.targetRoomId) {
|
||||||
await loadTargetBedOptions(form.targetRoomId);
|
await loadTargetBedOptions(form.targetRoomId);
|
||||||
|
|
||||||
|
// 如果有床位ID,加载床位学生信息
|
||||||
|
if (form.targetBedId) {
|
||||||
|
await getTargetBedStudentInfo(form.targetBedId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1723,6 +1774,46 @@ const loadTargetCascadeOptionsForUpdate = async () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 获取目标床位的学生信息
|
||||||
|
const getTargetBedStudentInfo = async (bedId: string | number) => {
|
||||||
|
try {
|
||||||
|
console.log('开始获取目标床位学生信息,床位ID:', bedId);
|
||||||
|
const response = await request({
|
||||||
|
url: `/dormBedStudent/dormBedStudent/bedStudentInfo/${bedId}`,
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
|
||||||
|
if (response.code === 200 && response.data) {
|
||||||
|
const studentInfo = response.data;
|
||||||
|
console.log('获取到的目标床位学生信息:', studentInfo);
|
||||||
|
|
||||||
|
// 填充目标床位学生信息
|
||||||
|
form.targetBedStudentId = studentInfo.studentId || '';
|
||||||
|
form.targetBedStudentName = studentInfo.studentName || '';
|
||||||
|
form.targetBedStudentNo = studentInfo.studentNo || '';
|
||||||
|
form.targetBedStudentCollegeName = studentInfo.collegeName || '';
|
||||||
|
form.targetBedStudentMajorName = studentInfo.majorName || '';
|
||||||
|
form.targetBedStudentClassName = studentInfo.className || '';
|
||||||
|
} else {
|
||||||
|
console.warn('该床位暂无学生信息');
|
||||||
|
clearTargetBedStudentInfo();
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('获取目标床位学生信息失败:', error);
|
||||||
|
clearTargetBedStudentInfo();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 清空目标床位学生信息
|
||||||
|
const clearTargetBedStudentInfo = () => {
|
||||||
|
form.targetBedStudentId = '';
|
||||||
|
form.targetBedStudentName = '';
|
||||||
|
form.targetBedStudentNo = '';
|
||||||
|
form.targetBedStudentCollegeName = '';
|
||||||
|
form.targetBedStudentMajorName = '';
|
||||||
|
form.targetBedStudentClassName = '';
|
||||||
|
};
|
||||||
|
|
||||||
// 初始化页面数据
|
// 初始化页面数据
|
||||||
const initPageData = () => {
|
const initPageData = () => {
|
||||||
// 重置表单数据
|
// 重置表单数据
|
||||||
@@ -1759,10 +1850,15 @@ const initPageData = () => {
|
|||||||
targetRoomNo: '',
|
targetRoomNo: '',
|
||||||
targetBedId: '',
|
targetBedId: '',
|
||||||
targetBedNo: '',
|
targetBedNo: '',
|
||||||
|
// 目标床位学生信息
|
||||||
|
targetBedStudentId: '',
|
||||||
|
targetBedStudentName: '',
|
||||||
|
targetBedStudentNo: '',
|
||||||
|
targetBedStudentCollegeName: '',
|
||||||
|
targetBedStudentMajorName: '',
|
||||||
|
targetBedStudentClassName: '',
|
||||||
applyTime: routeParams.value.id ? '' : new Date().toISOString().slice(0, 19).replace('T', ' '),
|
applyTime: routeParams.value.id ? '' : new Date().toISOString().slice(0, 19).replace('T', ' '),
|
||||||
reasonDetail: '',
|
reasonDetail: '',
|
||||||
emergencyContact: '',
|
|
||||||
emergencyPhone: '',
|
|
||||||
attachmentOssIds: '',
|
attachmentOssIds: '',
|
||||||
applicationStatus: 'draft',
|
applicationStatus: 'draft',
|
||||||
approvalOpinion: '',
|
approvalOpinion: '',
|
||||||
@@ -1804,9 +1900,10 @@ const submitCallback = async () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
nextTick(async () => {
|
nextTick(async () => {
|
||||||
routeParams.value = (proxy as any).$route.query;
|
routeParams.value = (proxy as any).$route.query;
|
||||||
initPageData();
|
// 先加载目标校区选项,确保级联数据回显时能找到对应的名称
|
||||||
// 加载目标校区选项
|
|
||||||
await loadTargetCampusOptions();
|
await loadTargetCampusOptions();
|
||||||
|
// 然后初始化页面数据(包含数据回显)
|
||||||
|
initPageData();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -1917,11 +2014,29 @@ onMounted(() => {
|
|||||||
padding-top: 8px;
|
padding-top: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 学生基础信息展示样式(在学生选择区域内) */
|
/* 选择学生下方的学生信息显示样式 */
|
||||||
.student-info-display {
|
.selected-student-info {
|
||||||
margin-top: 16px;
|
margin-top: 0px;
|
||||||
padding-top: 12px;
|
margin-bottom: 8px;
|
||||||
border-top: 1px solid #e9ecef;
|
}
|
||||||
|
|
||||||
|
.selected-student-info .student-info-inline,
|
||||||
|
.selected-student-info .dorm-info-inline,
|
||||||
|
.target-bed-student-inline-info {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
padding: 8px 12px;
|
||||||
|
background: #f8f9fa;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px solid #e9ecef;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selected-student-info .student-info-inline .info-text,
|
||||||
|
.selected-student-info .dorm-info-inline .info-text,
|
||||||
|
.target-bed-student-inline-info .student-info-text {
|
||||||
|
font-size: 12px;
|
||||||
|
color: #606266;
|
||||||
|
line-height: 1.4;
|
||||||
|
word-break: break-word;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-subtitle {
|
.info-subtitle {
|
||||||
@@ -1933,30 +2048,6 @@ onMounted(() => {
|
|||||||
border-bottom: 1px solid #f0f0f0;
|
border-bottom: 1px solid #f0f0f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.student-info-display .info-item {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin-bottom: 8px;
|
|
||||||
padding: 4px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.student-info-display .info-label {
|
|
||||||
color: #606266;
|
|
||||||
font-weight: 500;
|
|
||||||
margin-right: 8px;
|
|
||||||
white-space: nowrap;
|
|
||||||
font-size: 13px;
|
|
||||||
min-width: 80px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.student-info-display .info-value {
|
|
||||||
color: #303133;
|
|
||||||
font-weight: 400;
|
|
||||||
flex: 1;
|
|
||||||
word-break: break-all;
|
|
||||||
font-size: 13px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.info-title {
|
.info-title {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@@ -2279,4 +2370,6 @@ onMounted(() => {
|
|||||||
min-height: 32px !important;
|
min-height: 32px !important;
|
||||||
padding: 4px 12px !important;
|
padding: 4px 12px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 目标床位学生信息内联显示样式 - 已合并到选择学生信息样式中 */
|
||||||
</style>
|
</style>
|
||||||
@@ -328,7 +328,7 @@ const handleAdd = () => {
|
|||||||
const handleUpdate = async (row?: DormApplicationVO) => {
|
const handleUpdate = async (row?: DormApplicationVO) => {
|
||||||
const _id = row?.id || ids.value[0];
|
const _id = row?.id || ids.value[0];
|
||||||
proxy.$router.push({
|
proxy.$router.push({
|
||||||
path: `/xg/xsjcxx/xssssq/dormEdit/index`,
|
path: `/xg/xsjcxx/xssssq/dialog`,
|
||||||
query: {
|
query: {
|
||||||
id: _id,
|
id: _id,
|
||||||
type: 'update'
|
type: 'update'
|
||||||
|
|||||||
Reference in new issue
Block a user