提交代码
This commit is contained in:
1 parent
6bffe5fa08
commit
900ca0ad19
11 files changed
+791
-45
No files matched your search
@@ -581,8 +581,30 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="info-item">
|
||||
<text class="label">宿舍房间号</text>
|
||||
<text class="value">{{ form.dormitoryRoom || '-' }}</text>
|
||||
<text class="label">宿舍房间</text>
|
||||
<view class="value">
|
||||
<view v-if="roomDisplayName" class="room-info">
|
||||
<u-tag
|
||||
:text="roomDisplayName"
|
||||
:type="getRoomTagType(form.dormitoryRoom)"
|
||||
size="mini"
|
||||
></u-tag>
|
||||
</view>
|
||||
<text v-else>-</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info-item">
|
||||
<text class="label">床位</text>
|
||||
<view class="value">
|
||||
<view v-if="bedDisplayName" class="bed-info">
|
||||
<u-tag
|
||||
:text="bedDisplayName"
|
||||
:type="getBedTagType(form.extField1)"
|
||||
size="mini"
|
||||
></u-tag>
|
||||
</view>
|
||||
<text v-else>-</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -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'; // 默认类型
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -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;
|
||||
|
||||
@@ -747,9 +747,15 @@
|
||||
</text>
|
||||
</view>
|
||||
<view class="info-item">
|
||||
<text class="label">宿舍房间号:</text>
|
||||
<text class="label">宿舍房间:</text>
|
||||
<text class="value">
|
||||
{{ studentInfo.dormitoryRoom || '-' }}
|
||||
{{ dormRoomName || '-' }}
|
||||
</text>
|
||||
</view>
|
||||
<view class="info-item">
|
||||
<text class="label">床位:</text>
|
||||
<text class="value">
|
||||
{{ dormBedName || '-' }}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -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('未获取到学生信息或数据为空');
|
||||
}
|
||||
|
||||
@@ -77,8 +77,8 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 快捷操作按钮 v-if="isWechatBrowser"-->
|
||||
<view class="photo-quick-actions" >
|
||||
<!-- 快捷操作按钮 -->
|
||||
<view class="photo-quick-actions">
|
||||
<view class="placeholder-tips">
|
||||
<text class="tip-item">• 建议尺寸:2寸证件照 • 支持格式:JPG、PNG • 文件大小:不超过10MB</text>
|
||||
</view>
|
||||
@@ -1086,20 +1086,21 @@
|
||||
<u-picker
|
||||
:columns="[trainingModeOptions]"
|
||||
keyName="label"
|
||||
:disabled="true"
|
||||
:defaultIndex="trainingModeIndex"
|
||||
:show="showTrainingModePicker"
|
||||
:closeOnClickOverlay="true"
|
||||
@confirm="onTrainingModeConfirm"
|
||||
@cancel="onTrainingModeClose"
|
||||
></u-picker>
|
||||
<view class="picker-input" @click="showTrainingModePicker = true">
|
||||
<view class="picker-input disabled">
|
||||
<text class="picker-text">
|
||||
{{
|
||||
getDictLabel(trainingModeOptions, form.trainingType) ||
|
||||
'请选择培养方式'
|
||||
}}
|
||||
</text>
|
||||
<u-icon name="arrow-down" size="16" color="#c0c4cc"></u-icon>
|
||||
<u-icon name="arrow-down" size="16" color="#e4e7ed"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -1109,13 +1110,14 @@
|
||||
<u-picker
|
||||
:columns="[admissionCategoryOptions]"
|
||||
keyName="label"
|
||||
:disabled="true"
|
||||
:defaultIndex="admissionCategoryIndex"
|
||||
:show="showAdmissionCategoryPicker"
|
||||
:closeOnClickOverlay="true"
|
||||
@confirm="onAdmissionCategoryConfirm"
|
||||
@cancel="onAdmissionCategoryClose"
|
||||
></u-picker>
|
||||
<view class="picker-input" @click="showAdmissionCategoryPicker = true">
|
||||
<view class="picker-input disabled">
|
||||
<text class="picker-text">
|
||||
{{
|
||||
getDictLabel(
|
||||
@@ -1124,7 +1126,7 @@
|
||||
) || '请选择录取类别'
|
||||
}}
|
||||
</text>
|
||||
<u-icon name="arrow-down" size="16" color="#c0c4cc"></u-icon>
|
||||
<u-icon name="arrow-down" size="16" color="#e4e7ed"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="form-item-half">
|
||||
@@ -1132,37 +1134,38 @@
|
||||
<u-picker
|
||||
:columns="[studentStatusOptions]"
|
||||
keyName="label"
|
||||
:disabled="true"
|
||||
:defaultIndex="studentStatusIndex"
|
||||
:show="showStudentStatusPicker"
|
||||
:closeOnClickOverlay="true"
|
||||
@confirm="onStudentStatusConfirm"
|
||||
@cancel="onStudentStatusClose"
|
||||
></u-picker>
|
||||
<view class="picker-input" @click="showStudentStatusPicker = true">
|
||||
<view class="picker-input disabled">
|
||||
<text class="picker-text">
|
||||
{{
|
||||
getDictLabel(studentStatusOptions, form.studentStatus) ||
|
||||
'请选择学籍状态'
|
||||
}}
|
||||
</text>
|
||||
<u-icon name="arrow-down" size="16" color="#c0c4cc"></u-icon>
|
||||
<u-icon name="arrow-down" size="16" color="#e4e7ed"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="form-item">
|
||||
<text class="form-label">是否住校</text>
|
||||
<u-radio-group v-model="form.isBoarder">
|
||||
<u-radio
|
||||
v-for="item in yesNoOptions"
|
||||
:key="item.value"
|
||||
:name="item.value"
|
||||
:disabled="true"
|
||||
>
|
||||
{{ item.label }}
|
||||
</u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
<view class="form-row">
|
||||
<view class="form-item-half">
|
||||
<text class="form-label">是否住校</text>
|
||||
<u-radio-group v-model="form.isBoarder">
|
||||
<u-radio
|
||||
v-for="item in yesNoOptions"
|
||||
:key="item.value"
|
||||
:name="item.value"
|
||||
:disabled="true"
|
||||
>
|
||||
{{ item.label }}
|
||||
</u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
<view class="form-item-half">
|
||||
<text class="form-label">宿舍楼栋</text>
|
||||
<u-picker
|
||||
@@ -1185,11 +1188,22 @@
|
||||
<u-icon name="arrow-down" size="16" color="#e4e7ed"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="form-row">
|
||||
<view class="form-item-half">
|
||||
<text class="form-label">宿舍房间号</text>
|
||||
<text class="form-label">宿舍房间</text>
|
||||
<u-input
|
||||
v-model="form.dormitoryRoom"
|
||||
placeholder="请输入宿舍房间号"
|
||||
:value="dormRoomName"
|
||||
placeholder="宿舍房间"
|
||||
:disabled="true"
|
||||
border-bottom
|
||||
></u-input>
|
||||
</view>
|
||||
<view class="form-item-half">
|
||||
<text class="form-label">床位</text>
|
||||
<u-input
|
||||
:value="dormBedName"
|
||||
placeholder="床位"
|
||||
:disabled="true"
|
||||
border-bottom
|
||||
></u-input>
|
||||
@@ -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 = '-';
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -52,10 +52,34 @@ export function getStudentPersonalInfo(userId?: number): AxiosPromise<any> {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取宿舍房间信息
|
||||
* @param roomId 房间ID
|
||||
*/
|
||||
export function getDormRoomInfo(roomId: number): AxiosPromise<R<any>> {
|
||||
return request({
|
||||
url: `/xgss/dormRoom/${roomId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取宿舍床位信息
|
||||
* @param bedId 床位ID
|
||||
*/
|
||||
export function getDormBedInfo(bedId: number): AxiosPromise<R<any>> {
|
||||
return request({
|
||||
url: `/dormbed/dormBed/${bedId}`,
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
export default {
|
||||
XgDeptTreeSelect,
|
||||
deptTreeSelect,
|
||||
listStudentRoster,
|
||||
exportStudentRoster,
|
||||
getStudentPersonalInfo
|
||||
getStudentPersonalInfo,
|
||||
getDormRoomInfo,
|
||||
getDormBedInfo
|
||||
};
|
||||
@@ -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组件
|
||||
|
||||
@@ -702,8 +702,13 @@
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="宿舍房间号" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="form.dormitoryRoom" placeholder="请输入宿舍房间号" maxlength="20" />
|
||||
<el-form-item label="宿舍房间" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="dormitoryRoomName" placeholder="宿舍房间" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="床位" prop="bedInfo">
|
||||
<el-input disabled v-model="bedInfo" placeholder="床位" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -827,6 +832,10 @@ const dormBuildingOptions = ref([]); // 宿舍楼栋选项
|
||||
const photoLoading = ref(false); // 照片加载状态
|
||||
const asyncPhotoUrl = ref(''); // 异步加载的照片URL
|
||||
|
||||
// 宿舍房间和床位信息
|
||||
const dormitoryRoomName = ref<string>('');
|
||||
const bedInfo = ref<string>('');
|
||||
|
||||
// 历史记录相关数据
|
||||
const historyLoading = ref(false);
|
||||
const historyRecords = ref<any[]>([]);
|
||||
@@ -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,
|
||||
|
||||
@@ -1350,8 +1350,13 @@
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="宿舍房间号" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="form.dormitoryRoom" placeholder="请输入宿舍房间号" maxlength="20" />
|
||||
<el-form-item label="宿舍房间" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="dormitoryRoomName" placeholder="宿舍房间" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="床位" prop="bedInfo">
|
||||
<el-input disabled v-model="bedInfo" placeholder="床位" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -1520,6 +1525,10 @@ const changedFields = ref<any[]>([]); // 存储变更的字段信息
|
||||
const asyncPhotoUrl = ref<string>('');
|
||||
const photoLoading = ref<boolean>(false);
|
||||
|
||||
// 宿舍房间和床位信息
|
||||
const dormitoryRoomName = ref<string>('');
|
||||
const bedInfo = ref<string>('');
|
||||
|
||||
const studentFormRef = ref<any>();
|
||||
|
||||
/** 获取历史记录数据 */
|
||||
@@ -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 {
|
||||
|
||||
@@ -700,8 +700,13 @@
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="宿舍房间号" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="form.dormitoryRoom" placeholder="请输入宿舍房间号" maxlength="20" />
|
||||
<el-form-item label="宿舍房间" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="dormitoryRoomName" placeholder="请输入宿舍房间" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="床位" prop="bedInfo">
|
||||
<el-input disabled v-model="bedName" placeholder="请输入床位" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -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<any[]>([]);
|
||||
@@ -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: '',
|
||||
|
||||
@@ -640,7 +640,7 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="培养方式" prop="trainingType">
|
||||
<el-select v-model="form.trainingType" placeholder="请选择培养方式">
|
||||
<el-select v-model="form.trainingType" placeholder="请选择培养方式" disabled>
|
||||
<!-- <el-option label="全日制" value="全日制" />
|
||||
<el-option label="在职" value="在职" />
|
||||
<el-option label="函授" value="函授" />
|
||||
@@ -651,7 +651,7 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="录取类别" prop="admissionCategory">
|
||||
<el-select v-model="form.admissionCategory" placeholder="请选择录取类别">
|
||||
<el-select v-model="form.admissionCategory" placeholder="请选择录取类别" disabled>
|
||||
<!-- <el-option label="统招" value="统招" />
|
||||
<el-option label="自主招生" value="自主招生" />
|
||||
<el-option label="专项计划" value="专项计划" /> -->
|
||||
@@ -663,7 +663,7 @@
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="学籍状态" prop="studentStatus">
|
||||
<el-select v-model="form.studentStatus" placeholder="请选择学籍状态">
|
||||
<el-select v-model="form.studentStatus" placeholder="请选择学籍状态" disabled>
|
||||
<!-- <el-option label="在籍" value="1" />
|
||||
<el-option label="休学" value="2" />
|
||||
<el-option label="复学" value="3" />
|
||||
@@ -706,8 +706,13 @@
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="宿舍房间号" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="form.dormitoryRoom" placeholder="请输入宿舍房间号" maxlength="20" />
|
||||
<el-form-item label="宿舍房间" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="dormitoryRoomName" placeholder="请输入宿舍房间" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="床位" prop="bedInfo">
|
||||
<el-input disabled v-model="bedName" placeholder="请输入床位" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -830,6 +835,10 @@ const dialogLoading = ref(false); // 对话框整体加载状态
|
||||
const regionOptions = ref([]); // 行政区划选项
|
||||
const dormBuildingOptions = ref([]); // 宿舍楼栋选项
|
||||
|
||||
// 宿舍信息相关数据
|
||||
const dormitoryRoomName = ref(''); // 宿舍房间名称
|
||||
const bedName = ref(''); // 床位名称
|
||||
|
||||
// 历史记录相关数据
|
||||
const historyLoading = ref(false);
|
||||
const historyRecords = ref<any[]>([]);
|
||||
@@ -1054,6 +1063,9 @@ const getUserHistoryData = async (batchId: number) => {
|
||||
}
|
||||
});
|
||||
|
||||
// 获取宿舍房间和床位信息
|
||||
await getDormitoryInfo(historyData.dormitoryRoom, historyData.extField1);
|
||||
|
||||
ElMessage.success('历史数据加载成功');
|
||||
console.log('表单数据已更新:', form);
|
||||
} else {
|
||||
@@ -1068,6 +1080,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,
|
||||
@@ -1167,6 +1212,7 @@ const form = reactive({
|
||||
classTeacherName: '',
|
||||
dormitoryBuilding: '',
|
||||
dormitoryRoom: '',
|
||||
extField1: '',
|
||||
|
||||
// // 银行卡信息字段
|
||||
bankCardNo: '',
|
||||
@@ -1362,6 +1408,10 @@ const resetFormToDefault = () => {
|
||||
}
|
||||
photoLoading.value = false;
|
||||
|
||||
// 重置宿舍信息
|
||||
dormitoryRoomName.value = '';
|
||||
bedName.value = '';
|
||||
|
||||
// 重置为默认值
|
||||
Object.assign(form, {
|
||||
id: undefined,
|
||||
|
||||
@@ -686,8 +686,13 @@
|
||||
</el-row>
|
||||
<el-row :gutter="30">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="宿舍房间号" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="form.dormitoryRoom" placeholder="请输入宿舍房间号" maxlength="20" />
|
||||
<el-form-item label="宿舍房间" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="dormitoryRoomName" placeholder="宿舍房间" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="床位" prop="extField1">
|
||||
<el-input disabled v-model="bedName" placeholder="床位" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -786,6 +791,8 @@ const dormBuildingOptions = ref([]); // 宿舍楼栋选项
|
||||
const loading = ref(false); // 加载状态
|
||||
const photoLoading = ref(false); // 照片加载状态
|
||||
const asyncPhotoUrl = ref(''); // 异步加载的照片URL
|
||||
const dormitoryRoomName = ref(''); // 宿舍房间名称
|
||||
const bedName = ref(''); // 床位名称
|
||||
|
||||
// 表单数据
|
||||
const form = reactive({
|
||||
@@ -886,6 +893,9 @@ const form = reactive({
|
||||
classTeacherName: '',
|
||||
dormitoryBuilding: '',
|
||||
dormitoryRoom: '',
|
||||
extField1: '', // 新增床位字段
|
||||
dormitoryRoomName: '', // 新增宿舍房间名称字段
|
||||
bedName: '', // 新增床位名称字段
|
||||
|
||||
// 银行卡信息字段
|
||||
bankCardNo: '',
|
||||
@@ -924,6 +934,9 @@ const getPersonalInfoData = async () => {
|
||||
});
|
||||
// 将API返回的数据映射到表单
|
||||
Object.assign(form, data);
|
||||
|
||||
// 获取宿舍房间和床位信息
|
||||
await getDormitoryInfo();
|
||||
} else {
|
||||
ElMessage.error(response.data.msg || '获取个人信息失败');
|
||||
}
|
||||
@@ -935,6 +948,50 @@ const getPersonalInfoData = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
/** 获取宿舍房间和床位信息 */
|
||||
const getDormitoryInfo = async () => {
|
||||
try {
|
||||
// 获取宿舍房间信息
|
||||
if (form.dormitoryRoom) {
|
||||
const roomId = String(form.dormitoryRoom); // 转换为字符串保持精度
|
||||
const roomResponse = await request({
|
||||
url: `/xgss/dormRoom/${roomId}`,
|
||||
method: 'get'
|
||||
});
|
||||
if (roomResponse.code === 200 && roomResponse.data) {
|
||||
const roomData = roomResponse.data;
|
||||
dormitoryRoomName.value = roomData.roomName || roomData.roomCode || '未知房间';
|
||||
} else {
|
||||
dormitoryRoomName.value = '房间信息获取失败';
|
||||
}
|
||||
}
|
||||
|
||||
// 获取床位信息
|
||||
if (form.extField1) {
|
||||
const bedId = String(form.extField1); // 转换为字符串保持精度
|
||||
const bedResponse = await request({
|
||||
url: `/dormbed/dormBed/${bedId}`,
|
||||
method: 'get'
|
||||
});
|
||||
if (bedResponse.code === 200 && bedResponse.data) {
|
||||
const bedData = bedResponse.data;
|
||||
bedName.value = bedData.bedName || bedData.bedCode || '未知床位';
|
||||
} else {
|
||||
bedName.value = '床位信息获取失败';
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取宿舍信息失败:', error);
|
||||
// 不显示错误提示,避免影响主要功能
|
||||
if (form.dormitoryRoom) {
|
||||
dormitoryRoomName.value = '房间信息获取失败';
|
||||
}
|
||||
if (form.extField1) {
|
||||
bedName.value = '床位信息获取失败';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/** 根据行政区划代码获取完整路径(省/市/区) */
|
||||
const getRegionFullPath = (code: string): string => {
|
||||
if (!code || !regionOptions.value) return code || '';
|
||||
|
||||
@@ -682,8 +682,13 @@
|
||||
</el-row>
|
||||
<el-row :gutter="30">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="宿舍房间号" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="form.dormitoryRoom" placeholder="请输入宿舍房间号" maxlength="20" />
|
||||
<el-form-item label="宿舍房间" prop="dormitoryRoom">
|
||||
<el-input disabled v-model="form.dormitoryRoomName" placeholder="宿舍房间名称" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="床位" prop="extField1">
|
||||
<el-input disabled v-model="form.bedName" placeholder="床位名称" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -905,6 +910,9 @@ const form = reactive({
|
||||
classTeacherName: '',
|
||||
dormitoryBuilding: '',
|
||||
dormitoryRoom: '',
|
||||
dormitoryRoomName: '', // 宿舍房间名称
|
||||
extField1: '', // 床位ID
|
||||
bedName: '', // 床位名称
|
||||
|
||||
// 银行卡信息字段
|
||||
bankCardNo: '',
|
||||
@@ -946,6 +954,9 @@ const getPersonalInfoData = async (studentId?: number) => {
|
||||
});
|
||||
// 将API返回的数据映射到表单
|
||||
Object.assign(form, data);
|
||||
|
||||
// 异步获取宿舍房间和床位信息
|
||||
await getDormitoryInfo();
|
||||
} else {
|
||||
ElMessage.error(response.msg || '获取个人信息失败');
|
||||
}
|
||||
@@ -957,6 +968,44 @@ const getPersonalInfoData = async (studentId?: number) => {
|
||||
}
|
||||
};
|
||||
|
||||
/** 获取宿舍房间和床位信息 */
|
||||
const getDormitoryInfo = async () => {
|
||||
try {
|
||||
// 获取宿舍房间信息
|
||||
if (form.dormitoryRoom) {
|
||||
const roomId = String(form.dormitoryRoom); // 转换为字符串保持精度
|
||||
const roomResponse = await api.getDormRoomInfo(roomId);
|
||||
if (roomResponse.code === 200 && roomResponse.data) {
|
||||
const roomData = roomResponse.data as any;
|
||||
form.dormitoryRoomName = roomData.roomName || roomData.name || '未知房间';
|
||||
} else {
|
||||
form.dormitoryRoomName = '房间信息获取失败';
|
||||
}
|
||||
}
|
||||
|
||||
// 获取床位信息
|
||||
if (form.extField1) {
|
||||
const bedId = String(form.extField1); // 转换为字符串保持精度
|
||||
const bedResponse = await api.getDormBedInfo(bedId);
|
||||
if (bedResponse.code === 200 && bedResponse.data) {
|
||||
const bedData = bedResponse.data as any;
|
||||
form.bedName = bedData.bedName || bedResponse.data.name || '未知床位';
|
||||
} else {
|
||||
form.bedName = '床位信息获取失败';
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取宿舍信息失败:', error);
|
||||
// 不显示错误提示,避免影响主要功能
|
||||
if (form.dormitoryRoom) {
|
||||
form.dormitoryRoomName = '房间信息获取失败';
|
||||
}
|
||||
if (form.extField1) {
|
||||
form.bedName = '床位信息获取失败';
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/** 根据行政区划代码获取完整路径(省/市/区) */
|
||||
const getRegionFullPath = (code: string): string => {
|
||||
if (!code || !regionOptions.value) return code || '';
|
||||
@@ -1092,6 +1141,11 @@ watch(
|
||||
}
|
||||
});
|
||||
|
||||
// 重置宿舍相关字段
|
||||
form.dormitoryRoomName = '';
|
||||
form.extField1 = '';
|
||||
form.bedName = '';
|
||||
|
||||
// 获取学生个人信息
|
||||
await getPersonalInfoData(studentId);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user