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 @@
-
+