From 900ca0ad199d1a26cde612c4852ba117870f8db2 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Mon, 25 Aug 2025 01:25:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mobile/src/pages/xg/xsjcxx/xsjcxx/index.vue | 264 +++++++++++++++++- .../xg/xsjcxx/xsws/stuMsgDetailDialog.vue | 68 ++++- .../src/pages/xg/xsjcxx/xsws/stuMsgDialog.vue | 145 ++++++++-- web/src/api/xg/xsjcxx/stuRoster/index.ts | 26 +- .../xg/xsjcxx/stuMsgAudit/auditDialog.vue | 1 - .../xsjcxx/stuMsgAudit/stuMsgDetailDialog.vue | 49 +++- .../xg/xsjcxx/stuMsgAudit/stuMsgDialog.vue | 49 +++- .../stuMsgSupply/stuMsgDetailDialog.vue | 55 +++- .../xg/xsjcxx/stuMsgSupply/stuMsgDialog.vue | 60 +++- .../views/xg/xsjcxx/stuPersonalMsg/index.vue | 61 +++- .../components/StudentDetailDialog.vue | 58 +++- 11 files changed, 791 insertions(+), 45 deletions(-) diff --git a/mobile/src/pages/xg/xsjcxx/xsjcxx/index.vue b/mobile/src/pages/xg/xsjcxx/xsjcxx/index.vue index 2cf109ba..a646bd0b 100644 --- a/mobile/src/pages/xg/xsjcxx/xsjcxx/index.vue +++ b/mobile/src/pages/xg/xsjcxx/xsjcxx/index.vue @@ -581,8 +581,30 @@ - 宿舍房间号 - {{ form.dormitoryRoom || '-' }} + 宿舍房间 + + + + + - + + + + 床位 + + + + + - + @@ -724,6 +746,7 @@ export default { classTeacherName: '', dormitoryBuilding: '', dormitoryRoom: '', + extField1: '', // 新增床位信息字段 // 银行卡信息字段 bankCardNo: '', @@ -751,6 +774,14 @@ export default { // 行政区划和宿舍楼栋数据 regionOptions: [], dormBuildingOptions: [], + + // 房间和床位数据 + dormRoomOptions: [], + dormBedOptions: [], + + // 显示名称(异步加载) + roomDisplayName: '', + bedDisplayName: '', }; }, @@ -770,6 +801,13 @@ export default { console.error('区域和宿舍数据加载出错:', error); } + try { + await this.loadDormRoomAndBedData(); + console.log('✓ 房间和床位数据加载完成'); + } catch (error) { + console.error('房间和床位数据加载出错:', error); + } + try { await this.getPersonalInfoData(); console.log('✓ 个人信息加载完成'); @@ -1224,6 +1262,33 @@ export default { }); }, + // 加载房间和床位数据(改为按需加载) + async loadDormRoomAndBedData() { + console.log('房间和床位数据改为按需加载模式,不再预加载所有数据'); + // 初始化空数组,数据将在需要时按需查询 + this.dormRoomOptions = []; + this.dormBedOptions = []; + }, + + // 异步加载房间和床位显示名称 + async loadRoomAndBedDisplayNames() { + try { + // 加载房间名称 + if (this.form.dormitoryRoom) { + this.roomDisplayName = await this.getRoomName(this.form.dormitoryRoom); + console.log('房间名称加载完成:', this.roomDisplayName); + } + + // 加载床位名称 + if (this.form.extField1) { + this.bedDisplayName = await this.getBedName(this.form.extField1); + console.log('床位名称加载完成:', this.bedDisplayName); + } + } catch (error) { + console.error('加载房间和床位显示名称失败:', error); + } + }, + // 获取学生个人信息 async getPersonalInfoData() { try { @@ -1257,6 +1322,17 @@ export default { // 将API返回的数据映射到表单 Object.assign(this.form, data); + + // 调试日志:检查宿舍相关字段 + console.log('宿舍信息字段检查:', { + dormitoryBuilding: this.form.dormitoryBuilding, + dormitoryRoom: this.form.dormitoryRoom, + extField1: this.form.extField1, + extField1Type: typeof this.form.extField1, + }); + + // 异步加载房间和床位信息 + await this.loadRoomAndBedDisplayNames(); } else { uni.showToast({ title: response.msg || '获取个人信息失败', @@ -1468,6 +1544,178 @@ export default { return findBuilding(this.dormBuildingOptions, buildingId); }, + + // 根据房间ID获取房间名称(含性别标识) + async getRoomName(roomId) { + // 防护性检查 + if (!roomId) { + return ''; + } + + // 如果本地缓存中没有数据,则按需查询 + if (!this.dormRoomOptions || this.dormRoomOptions.length === 0) { + try { + const response = await request({ + url: `/xgss/dormRoom/${roomId}`, + method: 'GET', + }); + + if (response.code === 200 && response.data) { + const roomData = response.data; + // 缓存房间数据 + if (!this.dormRoomOptions) { + this.dormRoomOptions = []; + } + this.dormRoomOptions.push(roomData); + + // 返回房间名称 + return roomData.roomName || roomData.name || `房间${roomId}`; + } else { + console.warn(`查询房间信息失败,房间ID: ${roomId}`); + return `房间${roomId}`; + } + } catch (error) { + console.error(`查询房间信息异常,房间ID: ${roomId}`, error); + return `房间${roomId}`; + } + } + + // 从本地缓存中查找 + const room = this.dormRoomOptions.find((item) => String(item.id) === String(roomId)); + if (room) { + return room.roomName || room.name || `房间${roomId}`; + } + + // 如果本地缓存中没有找到,则按需查询 + try { + const response = await request({ + url: `/xgss/dormRoom/${roomId}`, + method: 'GET', + }); + + if (response.code === 200 && response.data) { + const roomData = response.data; + // 缓存房间数据 + this.dormRoomOptions.push(roomData); + + // 返回房间名称 + return roomData.roomName || roomData.name || `房间${roomId}`; + } else { + console.warn(`查询房间信息失败,房间ID: ${roomId}`); + return `房间${roomId}`; + } + } catch (error) { + console.error(`查询房间信息异常,房间ID: ${roomId}`, error); + return `房间${roomId}`; + } + }, + + // 根据房间ID获取房间标签类型 + getRoomTagType(roomId) { + if (!roomId) { + return 'info'; // 默认类型 + } + + // 从本地缓存中查找 + const room = this.dormRoomOptions.find((item) => String(item.id) === String(roomId)); + if (room) { + // 根据房间类型设置标签类型 + if (room.roomType === '1') { + // 男生房间 + return 'warning'; + } else if (room.roomType === '2') { + // 女生房间 + return 'error'; + } + } + return 'info'; // 默认类型 + }, + + // 根据床位ID获取床位名称(含性别标识) + async getBedName(bedId) { + // 防护性检查 + if (!bedId) { + return ''; + } + + // 如果本地缓存中没有数据,则按需查询 + if (!this.dormBedOptions || this.dormBedOptions.length === 0) { + try { + const response = await request({ + url: `/dormbed/dormBed/${bedId}`, + method: 'GET', + }); + + if (response.code === 200 && response.data) { + const bedData = response.data; + // 缓存床位数据 + if (!this.dormBedOptions) { + this.dormBedOptions = []; + } + this.dormBedOptions.push(bedData); + + // 返回床位名称 + return bedData.bedName || bedData.name || `床位${bedId}`; + } else { + console.warn(`查询床位信息失败,床位ID: ${bedId}`); + return `床位${bedId}`; + } + } catch (error) { + console.error(`查询床位信息异常,床位ID: ${bedId}`, error); + return `床位${bedId}`; + } + } + + // 从本地缓存中查找 + const bed = this.dormBedOptions.find((item) => String(item.id) === String(bedId)); + if (bed) { + return bed.bedName || bed.name || `床位${bedId}`; + } + + // 如果本地缓存中没有找到,则按需查询 + try { + const response = await request({ + url: `/dormbed/dormBed/${bedId}`, + method: 'GET', + }); + + if (response.code === 200 && response.data) { + const bedData = response.data; + // 缓存床位数据 + this.dormBedOptions.push(bedData); + + // 返回床位名称 + return bedData.bedName || bedData.name || `床位${bedId}`; + } else { + console.warn(`查询床位信息失败,床位ID: ${bedId}`); + return `床位${bedId}`; + } + } catch (error) { + console.error(`查询床位信息异常,床位ID: ${bedId}`, error); + return `床位${bedId}`; + } + }, + + // 根据床位ID获取床位标签类型 + getBedTagType(bedId) { + if (!bedId) { + return 'info'; // 默认类型 + } + + // 从本地缓存中查找 + const bed = this.dormBedOptions.find((item) => String(item.id) === String(bedId)); + if (bed) { + // 根据床位类型设置标签类型 + if (bed.bedType === '1') { + // 男生床位 + return 'warning'; + } else if (bed.bedType === '2') { + // 女生床位 + return 'error'; + } + } + return 'info'; // 默认类型 + }, }, }; @@ -1655,6 +1903,18 @@ export default { gap: 8rpx; } +.room-info { + display: flex; + align-items: center; + gap: 8rpx; +} + +.bed-info { + display: flex; + align-items: center; + gap: 8rpx; +} + // uview组件样式调整 ::v-deep .u-tag { margin: 0; diff --git a/mobile/src/pages/xg/xsjcxx/xsws/stuMsgDetailDialog.vue b/mobile/src/pages/xg/xsjcxx/xsws/stuMsgDetailDialog.vue index c5aeb00c..b8b1c33e 100644 --- a/mobile/src/pages/xg/xsjcxx/xsws/stuMsgDetailDialog.vue +++ b/mobile/src/pages/xg/xsjcxx/xsws/stuMsgDetailDialog.vue @@ -747,9 +747,15 @@ - 宿舍房间号: + 宿舍房间: - {{ studentInfo.dormitoryRoom || '-' }} + {{ dormRoomName || '-' }} + + + + 床位: + + {{ dormBedName || '-' }} @@ -881,6 +887,10 @@ export default { // 新增:行政区划和宿舍楼栋数据 regionOptions: [], // 行政区划选项 dormBuildingOptions: [], // 宿舍楼栋选项 + + // 宿舍房间和床位显示名称 + dormRoomName: '', + dormBedName: '', }; }, @@ -1293,6 +1303,42 @@ export default { } }, + // 获取宿舍房间名称 + async getDormRoomName(roomId) { + if (!roomId) return '-'; + try { + const response = await request({ + url: `/xgss/dormRoom/${roomId}`, + method: 'GET', + }); + if (response.code === 200 && response.data) { + return response.data.roomName || '-'; + } + return roomId; // 如果没有找到,返回原始ID + } catch (error) { + console.error('获取宿舍房间名称失败:', error); + return roomId; + } + }, + + // 获取床位名称 + async getDormBedName(bedId) { + if (!bedId) return '-'; + try { + const response = await request({ + url: `/dormbed/dormBed/${bedId}`, + method: 'GET', + }); + if (response.code === 200 && response.data) { + return response.data.bedName || '-'; + } + return bedId; // 如果没有找到,返回原始ID + } catch (error) { + console.error('获取床位名称失败:', error); + return bedId; + } + }, + // 根据行政区划代码获取完整路径(省/市/区) getRegionFullPath(code) { if (!code || !this.regionOptions) return code || ''; @@ -1336,6 +1382,21 @@ export default { return findBuilding(this.dormBuildingOptions, buildingId) || buildingId; }, + // 设置宿舍房间和床位显示名称 + async setDormDisplayNames() { + if (this.studentInfo.dormitoryRoom) { + this.dormRoomName = await this.getDormRoomName(this.studentInfo.dormitoryRoom); + } else { + this.dormRoomName = '-'; + } + + if (this.studentInfo.extField1) { + this.dormBedName = await this.getDormBedName(this.studentInfo.extField1); + } else { + this.dormBedName = '-'; + } + }, + // 加载数据 async loadData() { if (!this.batchInfo || !this.batchInfo.batchId) { @@ -1407,6 +1468,9 @@ export default { if (this.studentInfo.photoPath) { this.loadPhoto(); } + + // 设置宿舍房间和床位显示名称 + await this.setDormDisplayNames(); } else { console.log('未获取到学生信息或数据为空'); } diff --git a/mobile/src/pages/xg/xsjcxx/xsws/stuMsgDialog.vue b/mobile/src/pages/xg/xsjcxx/xsws/stuMsgDialog.vue index e0a90b08..90f8d1d2 100644 --- a/mobile/src/pages/xg/xsjcxx/xsws/stuMsgDialog.vue +++ b/mobile/src/pages/xg/xsjcxx/xsws/stuMsgDialog.vue @@ -77,8 +77,8 @@ - - + + • 建议尺寸:2寸证件照 • 支持格式:JPG、PNG • 文件大小:不超过10MB @@ -1086,20 +1086,21 @@ - + {{ getDictLabel(trainingModeOptions, form.trainingType) || '请选择培养方式' }} - + @@ -1109,13 +1110,14 @@ - + {{ getDictLabel( @@ -1124,7 +1126,7 @@ ) || '请选择录取类别' }} - + @@ -1132,37 +1134,38 @@ - + {{ getDictLabel(studentStatusOptions, form.studentStatus) || '请选择学籍状态' }} - + - - 是否住校 - - - {{ item.label }} - - - + + 是否住校 + + + {{ item.label }} + + + 宿舍楼栋 + + - 宿舍房间号 + 宿舍房间 + + + 床位 + @@ -1387,6 +1401,7 @@ export default { classTeacherName: '', dormitoryBuilding: '', dormitoryRoom: '', + extField1: '', // 银行卡信息字段 bankCardNo: '', @@ -1453,6 +1468,14 @@ export default { showStudentStatusPicker: false, showDormBuildingPicker: false, showSourceRegionPicker: false, + + // 缓存 + roomNameCache: {}, + bedNameCache: {}, + + // 宿舍房间和床位显示名称 + dormRoomName: '', + dormBedName: '', }; }, @@ -2106,6 +2129,9 @@ export default { // 同步picker索引 this.syncPickerIndexes(); + + // 设置宿舍房间和床位显示名称 + await this.setDormDisplayNames(); } else { uni.showToast({ title: response.msg || '获取个人信息失败', @@ -3127,6 +3153,77 @@ export default { this.debugMode = !this.debugMode; this.addWechatLog(`调试模式已${this.debugMode ? '开启' : '关闭'}`, 'info'); }, + + // 获取宿舍房间名称 + async getDormRoomName(roomId) { + if (!roomId) return '-'; + + // 检查缓存 + if (this.roomNameCache && this.roomNameCache[roomId]) { + return this.roomNameCache[roomId]; + } + + try { + const response = await request({ + url: `/xgss/dormRoom/${roomId}`, + method: 'GET', + }); + if (response.code === 200 && response.data) { + const roomName = response.data.roomName || response.data.roomCode || String(roomId); + // 缓存结果 + if (!this.roomNameCache) this.roomNameCache = {}; + this.roomNameCache[roomId] = roomName; + return roomName; + } + return String(roomId); // 如果没有找到,返回原始ID + } catch (error) { + console.error('获取宿舍房间名称失败:', error); + return String(roomId); + } + }, + + // 获取床位名称 + async getDormBedName(bedId) { + if (!bedId) return '-'; + + // 检查缓存 + if (this.bedNameCache && this.bedNameCache[bedId]) { + return this.bedNameCache[bedId]; + } + + try { + const response = await request({ + url: `/dormbed/dormBed/${bedId}`, + method: 'GET', + }); + if (response.code === 200 && response.data) { + const bedName = response.data.bedName || response.data.bedCode || String(bedId); + // 缓存结果 + if (!this.bedNameCache) this.bedNameCache = {}; + this.bedNameCache[bedId] = bedName; + return bedName; + } + return String(bedId); // 如果没有找到,返回原始ID + } catch (error) { + console.error('获取床位名称失败:', error); + return String(bedId); + } + }, + + // 设置宿舍房间和床位显示名称 + async setDormDisplayNames() { + if (this.form.dormitoryRoom) { + this.dormRoomName = await this.getDormRoomName(this.form.dormitoryRoom); + } else { + this.dormRoomName = '-'; + } + + if (this.form.extField1) { + this.dormBedName = await this.getDormBedName(this.form.extField1); + } else { + this.dormBedName = '-'; + } + }, }, }; diff --git a/web/src/api/xg/xsjcxx/stuRoster/index.ts b/web/src/api/xg/xsjcxx/stuRoster/index.ts index 430b370a..9fd52bbf 100644 --- a/web/src/api/xg/xsjcxx/stuRoster/index.ts +++ b/web/src/api/xg/xsjcxx/stuRoster/index.ts @@ -52,10 +52,34 @@ export function getStudentPersonalInfo(userId?: number): AxiosPromise { }); } +/** + * 获取宿舍房间信息 + * @param roomId 房间ID + */ +export function getDormRoomInfo(roomId: number): AxiosPromise> { + return request({ + url: `/xgss/dormRoom/${roomId}`, + method: 'get' + }); +} + +/** + * 获取宿舍床位信息 + * @param bedId 床位ID + */ +export function getDormBedInfo(bedId: number): AxiosPromise> { + return request({ + url: `/dormbed/dormBed/${bedId}`, + method: 'get' + }); +} + export default { XgDeptTreeSelect, deptTreeSelect, listStudentRoster, exportStudentRoster, - getStudentPersonalInfo + getStudentPersonalInfo, + getDormRoomInfo, + getDormBedInfo }; diff --git a/web/src/views/xg/xsjcxx/stuMsgAudit/auditDialog.vue b/web/src/views/xg/xsjcxx/stuMsgAudit/auditDialog.vue index 525d7733..a962e2d4 100644 --- a/web/src/views/xg/xsjcxx/stuMsgAudit/auditDialog.vue +++ b/web/src/views/xg/xsjcxx/stuMsgAudit/auditDialog.vue @@ -194,7 +194,6 @@ import { getCurrentInstance, ComponentInternalInstance, ref, reactive, computed, watch, onMounted, nextTick, defineAsyncComponent } from 'vue'; import ElMessage from 'element-plus/es/components/message/index'; import ElMessageBox from 'element-plus/es/components/message-box/index'; -// @ts-ignore import request from '@/utils/request'; // 动态加载StuMsgDialog组件 diff --git a/web/src/views/xg/xsjcxx/stuMsgAudit/stuMsgDetailDialog.vue b/web/src/views/xg/xsjcxx/stuMsgAudit/stuMsgDetailDialog.vue index 6b039040..96f18a6b 100644 --- a/web/src/views/xg/xsjcxx/stuMsgAudit/stuMsgDetailDialog.vue +++ b/web/src/views/xg/xsjcxx/stuMsgAudit/stuMsgDetailDialog.vue @@ -702,8 +702,13 @@ - - + + + + + + + @@ -827,6 +832,10 @@ const dormBuildingOptions = ref([]); // 宿舍楼栋选项 const photoLoading = ref(false); // 照片加载状态 const asyncPhotoUrl = ref(''); // 异步加载的照片URL +// 宿舍房间和床位信息 +const dormitoryRoomName = ref(''); +const bedInfo = ref(''); + // 历史记录相关数据 const historyLoading = ref(false); const historyRecords = ref([]); @@ -1096,6 +1105,9 @@ const getUserHistoryData = async (batchId: number, userId?: number) => { ElMessage.success('历史数据加载成功'); console.log('表单数据已更新:', form); + + // 获取宿舍房间和床位信息 + await getDormitoryInfo(historyData.dormitoryRoom, historyData.extField1); } else { console.log('未获取到历史数据或数据为空'); // 如果没有历史数据,保持表单默认值即可 @@ -1108,6 +1120,39 @@ const getUserHistoryData = async (batchId: number, userId?: number) => { } }; +// 获取宿舍房间和床位信息 +const getDormitoryInfo = async (roomId: string | number, bedId: string | number) => { + try { + // 获取宿舍房间信息 + if (roomId) { + const roomRes = await request.get(`/xgss/dormRoom/${roomId}`); + if (roomRes && roomRes.code === 200 && roomRes.data) { + dormitoryRoomName.value = roomRes.data.roomName || roomRes.data.name || '未知房间'; + } else { + dormitoryRoomName.value = '未知房间'; + } + } else { + dormitoryRoomName.value = ''; + } + + // 获取床位信息 + if (bedId) { + const bedRes = await request.get(`/dormbed/dormBed/${bedId}`); + if (bedRes && bedRes.code === 200 && bedRes.data) { + bedInfo.value = bedRes.data.bedName || bedRes.data.name || '未知床位'; + } else { + bedInfo.value = '未知床位'; + } + } else { + bedInfo.value = ''; + } + } catch (error) { + console.error('获取宿舍信息失败:', error); + dormitoryRoomName.value = '获取失败'; + bedInfo.value = '获取失败'; + } +}; + // 表单数据 const form = reactive({ id: undefined, diff --git a/web/src/views/xg/xsjcxx/stuMsgAudit/stuMsgDialog.vue b/web/src/views/xg/xsjcxx/stuMsgAudit/stuMsgDialog.vue index e1ffcffe..294e4f92 100644 --- a/web/src/views/xg/xsjcxx/stuMsgAudit/stuMsgDialog.vue +++ b/web/src/views/xg/xsjcxx/stuMsgAudit/stuMsgDialog.vue @@ -1350,8 +1350,13 @@ - - + + + + + + + @@ -1520,6 +1525,10 @@ const changedFields = ref([]); // 存储变更的字段信息 const asyncPhotoUrl = ref(''); const photoLoading = ref(false); +// 宿舍房间和床位信息 +const dormitoryRoomName = ref(''); +const bedInfo = ref(''); + const studentFormRef = ref(); /** 获取历史记录数据 */ @@ -1713,6 +1722,9 @@ const getUserHistoryData = async (batchId: number, userId: number) => { ElMessage.success('历史数据加载成功'); console.log('表单数据已更新:', form); + + // 获取宿舍房间和床位信息 + await getDormitoryInfo(historyData.dormitoryRoom, historyData.extField1); } else { console.log('未获取到历史数据或数据为空'); // 如果没有历史数据,保持表单默认值即可 @@ -1725,6 +1737,39 @@ const getUserHistoryData = async (batchId: number, userId: number) => { } }; +// 获取宿舍房间和床位信息 +const getDormitoryInfo = async (roomId: string | number, bedId: string | number) => { + try { + // 获取宿舍房间信息 + if (roomId) { + const roomRes = await request.get(`/xgss/dormRoom/${roomId}`); + if (roomRes && roomRes.code === 200 && roomRes.data) { + dormitoryRoomName.value = roomRes.data.roomName || roomRes.data.name || '未知房间'; + } else { + dormitoryRoomName.value = '未知房间'; + } + } else { + dormitoryRoomName.value = ''; + } + + // 获取床位信息 + if (bedId) { + const bedRes = await request.get(`/dormbed/dormBed/${bedId}`); + if (bedRes && bedRes.code === 200 && bedRes.data) { + bedInfo.value = bedRes.data.bedName || bedRes.data.name || '未知床位'; + } else { + bedInfo.value = '未知床位'; + } + } else { + bedInfo.value = ''; + } + } catch (error) { + console.error('获取宿舍信息失败:', error); + dormitoryRoomName.value = '获取失败'; + bedInfo.value = '获取失败'; + } +}; + // 获取变更详情 const getCompareStudentMsg = async (batchId: number, userId: number) => { try { diff --git a/web/src/views/xg/xsjcxx/stuMsgSupply/stuMsgDetailDialog.vue b/web/src/views/xg/xsjcxx/stuMsgSupply/stuMsgDetailDialog.vue index eb99a6ce..de194714 100644 --- a/web/src/views/xg/xsjcxx/stuMsgSupply/stuMsgDetailDialog.vue +++ b/web/src/views/xg/xsjcxx/stuMsgSupply/stuMsgDetailDialog.vue @@ -700,8 +700,13 @@ - - + + + + + + + @@ -825,6 +830,10 @@ const dormBuildingOptions = ref([]); // 宿舍楼栋选项 const photoLoading = ref(false); // 照片加载状态 const asyncPhotoUrl = ref(''); // 异步加载的照片URL +// 宿舍信息相关数据 +const dormitoryRoomName = ref(''); // 宿舍房间名称 +const bedName = ref(''); // 床位名称 + // 历史记录相关数据 const historyLoading = ref(false); const historyRecords = ref([]); @@ -1089,6 +1098,9 @@ const getUserHistoryData = async (batchId: number) => { } }); + // 获取宿舍房间和床位信息 + await getDormitoryInfo(historyData.dormitoryRoom, historyData.extField1); + ElMessage.success('历史数据加载成功'); console.log('表单数据已更新:', form); } else { @@ -1103,6 +1115,39 @@ const getUserHistoryData = async (batchId: number) => { } }; +/** 获取宿舍房间和床位信息 */ +const getDormitoryInfo = async (roomId: string | number, bedId: string | number) => { + try { + // 获取宿舍房间信息 + if (roomId) { + const roomRes = await request.get(`/xgss/dormRoom/${roomId}`); + if (roomRes && roomRes.code === 200 && roomRes.data) { + dormitoryRoomName.value = roomRes.data.roomName || roomRes.data.name || '未知房间'; + } else { + dormitoryRoomName.value = '未知房间'; + } + } else { + dormitoryRoomName.value = ''; + } + + // 获取床位信息 + if (bedId) { + const bedRes = await request.get(`/dormbed/dormBed/${bedId}`); + if (bedRes && bedRes.code === 200 && bedRes.data) { + bedName.value = bedRes.data.bedName || bedRes.data.name || '未知床位'; + } else { + bedName.value = '未知床位'; + } + } else { + bedName.value = ''; + } + } catch (error) { + console.error('获取宿舍信息失败:', error); + dormitoryRoomName.value = '获取失败'; + bedName.value = '获取失败'; + } +}; + // 表单数据 const form = reactive({ id: undefined, @@ -1202,6 +1247,7 @@ const form = reactive({ classTeacherName: '', dormitoryBuilding: '', dormitoryRoom: '', + bedInfo: '', // // 银行卡信息字段 bankCardNo: '', @@ -1296,6 +1342,10 @@ watch( // 重置表单数据到默认值 const resetFormToDefault = () => { + // 重置宿舍信息 + dormitoryRoomName.value = ''; + bedName.value = ''; + // 重置为默认值 Object.assign(form, { id: undefined, @@ -1395,6 +1445,7 @@ const resetFormToDefault = () => { classTeacherName: '', dormitoryBuilding: '', dormitoryRoom: '', + bedInfo: '', // 银行卡信息字段 bankCardNo: '', diff --git a/web/src/views/xg/xsjcxx/stuMsgSupply/stuMsgDialog.vue b/web/src/views/xg/xsjcxx/stuMsgSupply/stuMsgDialog.vue index 9f51ce2c..f0bf4eb3 100644 --- a/web/src/views/xg/xsjcxx/stuMsgSupply/stuMsgDialog.vue +++ b/web/src/views/xg/xsjcxx/stuMsgSupply/stuMsgDialog.vue @@ -640,7 +640,7 @@ - + @@ -663,7 +663,7 @@ - +