|
@@ -77,8 +77,8 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <!-- 快捷操作按钮 v-if="isWechatBrowser"-->
|
|
|
|
|
- <view class="photo-quick-actions" >
|
|
|
|
|
|
|
+ <!-- 快捷操作按钮 -->
|
|
|
|
|
+ <view class="photo-quick-actions">
|
|
|
<view class="placeholder-tips">
|
|
<view class="placeholder-tips">
|
|
|
<text class="tip-item">• 建议尺寸:2寸证件照 • 支持格式:JPG、PNG • 文件大小:不超过10MB</text>
|
|
<text class="tip-item">• 建议尺寸:2寸证件照 • 支持格式:JPG、PNG • 文件大小:不超过10MB</text>
|
|
|
</view>
|
|
</view>
|
|
@@ -1086,20 +1086,21 @@
|
|
|
<u-picker
|
|
<u-picker
|
|
|
:columns="[trainingModeOptions]"
|
|
:columns="[trainingModeOptions]"
|
|
|
keyName="label"
|
|
keyName="label"
|
|
|
|
|
+ :disabled="true"
|
|
|
:defaultIndex="trainingModeIndex"
|
|
:defaultIndex="trainingModeIndex"
|
|
|
:show="showTrainingModePicker"
|
|
:show="showTrainingModePicker"
|
|
|
:closeOnClickOverlay="true"
|
|
:closeOnClickOverlay="true"
|
|
|
@confirm="onTrainingModeConfirm"
|
|
@confirm="onTrainingModeConfirm"
|
|
|
@cancel="onTrainingModeClose"
|
|
@cancel="onTrainingModeClose"
|
|
|
></u-picker>
|
|
></u-picker>
|
|
|
- <view class="picker-input" @click="showTrainingModePicker = true">
|
|
|
|
|
|
|
+ <view class="picker-input disabled">
|
|
|
<text class="picker-text">
|
|
<text class="picker-text">
|
|
|
{{
|
|
{{
|
|
|
getDictLabel(trainingModeOptions, form.trainingType) ||
|
|
getDictLabel(trainingModeOptions, form.trainingType) ||
|
|
|
'请选择培养方式'
|
|
'请选择培养方式'
|
|
|
}}
|
|
}}
|
|
|
</text>
|
|
</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>
|
|
|
</view>
|
|
</view>
|
|
@@ -1109,13 +1110,14 @@
|
|
|
<u-picker
|
|
<u-picker
|
|
|
:columns="[admissionCategoryOptions]"
|
|
:columns="[admissionCategoryOptions]"
|
|
|
keyName="label"
|
|
keyName="label"
|
|
|
|
|
+ :disabled="true"
|
|
|
:defaultIndex="admissionCategoryIndex"
|
|
:defaultIndex="admissionCategoryIndex"
|
|
|
:show="showAdmissionCategoryPicker"
|
|
:show="showAdmissionCategoryPicker"
|
|
|
:closeOnClickOverlay="true"
|
|
:closeOnClickOverlay="true"
|
|
|
@confirm="onAdmissionCategoryConfirm"
|
|
@confirm="onAdmissionCategoryConfirm"
|
|
|
@cancel="onAdmissionCategoryClose"
|
|
@cancel="onAdmissionCategoryClose"
|
|
|
></u-picker>
|
|
></u-picker>
|
|
|
- <view class="picker-input" @click="showAdmissionCategoryPicker = true">
|
|
|
|
|
|
|
+ <view class="picker-input disabled">
|
|
|
<text class="picker-text">
|
|
<text class="picker-text">
|
|
|
{{
|
|
{{
|
|
|
getDictLabel(
|
|
getDictLabel(
|
|
@@ -1124,7 +1126,7 @@
|
|
|
) || '请选择录取类别'
|
|
) || '请选择录取类别'
|
|
|
}}
|
|
}}
|
|
|
</text>
|
|
</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>
|
|
|
<view class="form-item-half">
|
|
<view class="form-item-half">
|
|
@@ -1132,37 +1134,38 @@
|
|
|
<u-picker
|
|
<u-picker
|
|
|
:columns="[studentStatusOptions]"
|
|
:columns="[studentStatusOptions]"
|
|
|
keyName="label"
|
|
keyName="label"
|
|
|
|
|
+ :disabled="true"
|
|
|
:defaultIndex="studentStatusIndex"
|
|
:defaultIndex="studentStatusIndex"
|
|
|
:show="showStudentStatusPicker"
|
|
:show="showStudentStatusPicker"
|
|
|
:closeOnClickOverlay="true"
|
|
:closeOnClickOverlay="true"
|
|
|
@confirm="onStudentStatusConfirm"
|
|
@confirm="onStudentStatusConfirm"
|
|
|
@cancel="onStudentStatusClose"
|
|
@cancel="onStudentStatusClose"
|
|
|
></u-picker>
|
|
></u-picker>
|
|
|
- <view class="picker-input" @click="showStudentStatusPicker = true">
|
|
|
|
|
|
|
+ <view class="picker-input disabled">
|
|
|
<text class="picker-text">
|
|
<text class="picker-text">
|
|
|
{{
|
|
{{
|
|
|
getDictLabel(studentStatusOptions, form.studentStatus) ||
|
|
getDictLabel(studentStatusOptions, form.studentStatus) ||
|
|
|
'请选择学籍状态'
|
|
'请选择学籍状态'
|
|
|
}}
|
|
}}
|
|
|
</text>
|
|
</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>
|
|
|
</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-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">
|
|
<view class="form-item-half">
|
|
|
<text class="form-label">宿舍楼栋</text>
|
|
<text class="form-label">宿舍楼栋</text>
|
|
|
<u-picker
|
|
<u-picker
|
|
@@ -1185,11 +1188,22 @@
|
|
|
<u-icon name="arrow-down" size="16" color="#e4e7ed"></u-icon>
|
|
<u-icon name="arrow-down" size="16" color="#e4e7ed"></u-icon>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="form-row">
|
|
|
|
|
+ <view class="form-item-half">
|
|
|
|
|
+ <text class="form-label">宿舍房间</text>
|
|
|
|
|
+ <u-input
|
|
|
|
|
+ :value="dormRoomName"
|
|
|
|
|
+ placeholder="宿舍房间"
|
|
|
|
|
+ :disabled="true"
|
|
|
|
|
+ border-bottom
|
|
|
|
|
+ ></u-input>
|
|
|
|
|
+ </view>
|
|
|
<view class="form-item-half">
|
|
<view class="form-item-half">
|
|
|
- <text class="form-label">宿舍房间号</text>
|
|
|
|
|
|
|
+ <text class="form-label">床位</text>
|
|
|
<u-input
|
|
<u-input
|
|
|
- v-model="form.dormitoryRoom"
|
|
|
|
|
- placeholder="请输入宿舍房间号"
|
|
|
|
|
|
|
+ :value="dormBedName"
|
|
|
|
|
+ placeholder="床位"
|
|
|
:disabled="true"
|
|
:disabled="true"
|
|
|
border-bottom
|
|
border-bottom
|
|
|
></u-input>
|
|
></u-input>
|
|
@@ -1387,6 +1401,7 @@ export default {
|
|
|
classTeacherName: '',
|
|
classTeacherName: '',
|
|
|
dormitoryBuilding: '',
|
|
dormitoryBuilding: '',
|
|
|
dormitoryRoom: '',
|
|
dormitoryRoom: '',
|
|
|
|
|
+ extField1: '',
|
|
|
|
|
|
|
|
// 银行卡信息字段
|
|
// 银行卡信息字段
|
|
|
bankCardNo: '',
|
|
bankCardNo: '',
|
|
@@ -1453,6 +1468,14 @@ export default {
|
|
|
showStudentStatusPicker: false,
|
|
showStudentStatusPicker: false,
|
|
|
showDormBuildingPicker: false,
|
|
showDormBuildingPicker: false,
|
|
|
showSourceRegionPicker: false,
|
|
showSourceRegionPicker: false,
|
|
|
|
|
+
|
|
|
|
|
+ // 缓存
|
|
|
|
|
+ roomNameCache: {},
|
|
|
|
|
+ bedNameCache: {},
|
|
|
|
|
+
|
|
|
|
|
+ // 宿舍房间和床位显示名称
|
|
|
|
|
+ dormRoomName: '',
|
|
|
|
|
+ dormBedName: '',
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
|
|
|
|
@@ -2106,6 +2129,9 @@ export default {
|
|
|
|
|
|
|
|
// 同步picker索引
|
|
// 同步picker索引
|
|
|
this.syncPickerIndexes();
|
|
this.syncPickerIndexes();
|
|
|
|
|
+
|
|
|
|
|
+ // 设置宿舍房间和床位显示名称
|
|
|
|
|
+ await this.setDormDisplayNames();
|
|
|
} else {
|
|
} else {
|
|
|
uni.showToast({
|
|
uni.showToast({
|
|
|
title: response.msg || '获取个人信息失败',
|
|
title: response.msg || '获取个人信息失败',
|
|
@@ -3127,6 +3153,77 @@ export default {
|
|
|
this.debugMode = !this.debugMode;
|
|
this.debugMode = !this.debugMode;
|
|
|
this.addWechatLog(`调试模式已${this.debugMode ? '开启' : '关闭'}`, 'info');
|
|
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>
|
|
</script>
|