wuzhen update 招生就业相关修改
This commit is contained in:
1 parent
80cdde97a1
commit
6546732bb2
29 files changed
+1389
-287
No files matched your search
@@ -208,7 +208,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/xgss/dmdl/dmdl",
|
||||
"path": "pages/xgss/ssdm/ssdm",
|
||||
"style": {
|
||||
"navigationBarTitleText": "宿舍点名",
|
||||
"navigationBarBackgroundColor": "#0051d9",
|
||||
@@ -216,14 +216,14 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/xgss/dmdl/dmdlCheck",
|
||||
"path": "pages/xgss/ssdm/ssdmCheck",
|
||||
"style": {
|
||||
"navigationBarTitleText": "宿舍点名",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/xgss/dmdl/dmdlDetail",
|
||||
"path": "pages/xgss/ssdm/ssdmDetail",
|
||||
"style": {
|
||||
"navigationBarTitleText": "点名详情",
|
||||
"navigationBarBackgroundColor": "#0051d9",
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
></u-picker>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="出生日期" prop="birthDate">
|
||||
<u-form-item label="出生日期" prop="birthDate" required>
|
||||
<u-input
|
||||
v-model="formData.birthDate"
|
||||
placeholder="选择出生日期"
|
||||
@@ -71,15 +71,15 @@
|
||||
<u-input v-model="formData.phone1" placeholder="请输入联系电话" />
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="备用电话" prop="phone2">
|
||||
<u-form-item label="备用电话" prop="phone2" required>
|
||||
<u-input v-model="formData.phone2" placeholder="请输入备用电话" />
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="民族" prop="nation">
|
||||
<u-form-item label="民族" prop="nation" required>
|
||||
<u-input v-model="formData.nation" placeholder="请输入民族" />
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="是否住宿" prop="isBoarding">
|
||||
<u-form-item label="是否住宿" prop="isBoarding" required>
|
||||
<view
|
||||
@click="showBoardingPicker"
|
||||
@tap="showBoardingPicker"
|
||||
@@ -102,11 +102,11 @@
|
||||
></u-picker>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="健康状况" prop="healthStatus">
|
||||
<u-form-item label="健康状况" prop="healthStatus" required>
|
||||
<u-input v-model="formData.healthStatus" placeholder="请输入健康状况" />
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="家庭住址" prop="homeAddress">
|
||||
<u-form-item label="家庭住址" prop="homeAddress" required>
|
||||
<u-input
|
||||
v-model="formData.homeAddress"
|
||||
type="textarea"
|
||||
@@ -123,19 +123,19 @@
|
||||
<text class="title-text">学业信息</text>
|
||||
</view>
|
||||
|
||||
<u-form-item label="毕业中学" prop="middleSchool">
|
||||
<u-form-item label="毕业中学" prop="middleSchool" required>
|
||||
<u-input v-model="formData.middleSchool" placeholder="请输入毕业中学全称" />
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="准考证号" prop="examNumber">
|
||||
<u-form-item label="准考证号" prop="examNumber" required>
|
||||
<u-input v-model="formData.examNumber" placeholder="请输入准考证号" />
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="中考地区" prop="examRegion">
|
||||
<u-form-item label="中考地区" prop="examRegion" required>
|
||||
<u-input v-model="formData.examRegion" placeholder="请输入中考地区" />
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="中考满分" prop="totalScoreFull">
|
||||
<u-form-item label="中考满分" prop="totalScoreFull" required>
|
||||
<u-number-box
|
||||
v-model="formData.totalScoreFull"
|
||||
:min="0"
|
||||
@@ -144,7 +144,7 @@
|
||||
></u-number-box>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="中考成绩" prop="totalScore">
|
||||
<u-form-item label="中考成绩" prop="totalScore" required>
|
||||
<u-number-box
|
||||
v-model="formData.totalScore"
|
||||
:min="0"
|
||||
@@ -153,7 +153,7 @@
|
||||
></u-number-box>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="语文成绩" prop="chineseScore">
|
||||
<u-form-item label="语文成绩" prop="chineseScore" required>
|
||||
<u-number-box
|
||||
v-model="formData.chineseScore"
|
||||
:min="0"
|
||||
@@ -162,7 +162,7 @@
|
||||
></u-number-box>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="数学成绩" prop="mathScore">
|
||||
<u-form-item label="数学成绩" prop="mathScore" required>
|
||||
<u-number-box
|
||||
v-model="formData.mathScore"
|
||||
:min="0"
|
||||
@@ -171,7 +171,7 @@
|
||||
></u-number-box>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="英语成绩" prop="englishScore">
|
||||
<u-form-item label="英语成绩" prop="englishScore" required>
|
||||
<u-number-box
|
||||
v-model="formData.englishScore"
|
||||
:min="0"
|
||||
@@ -180,7 +180,7 @@
|
||||
></u-number-box>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="科学成绩" prop="scienceScore">
|
||||
<u-form-item label="科学成绩" prop="scienceScore" required>
|
||||
<u-number-box
|
||||
v-model="formData.scienceScore"
|
||||
:min="0"
|
||||
@@ -189,7 +189,7 @@
|
||||
></u-number-box>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="社会成绩" prop="socialScore">
|
||||
<u-form-item label="社会成绩" prop="socialScore" required>
|
||||
<u-number-box
|
||||
v-model="formData.socialScore"
|
||||
:min="0"
|
||||
@@ -198,7 +198,7 @@
|
||||
></u-number-box>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="体育成绩" prop="peScore">
|
||||
<u-form-item label="体育成绩" prop="peScore" required>
|
||||
<u-number-box
|
||||
v-model="formData.peScore"
|
||||
:min="0"
|
||||
@@ -238,7 +238,7 @@
|
||||
></u-picker>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="学院代码" prop="collegeId">
|
||||
<u-form-item label="学院代码" prop="collegeId" required>
|
||||
<u-input
|
||||
v-model="formData.collegeId"
|
||||
placeholder="学院代码将自动填入"
|
||||
@@ -265,7 +265,7 @@
|
||||
></u-picker>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="专业代码" prop="majorCode">
|
||||
<u-form-item label="专业代码" prop="majorCode" required>
|
||||
<u-input
|
||||
v-model="formData.majorCode"
|
||||
placeholder="专业代码将自动填入"
|
||||
@@ -273,7 +273,7 @@
|
||||
/>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item label="校服尺码" prop="uniformSize">
|
||||
<u-form-item label="校服尺码" prop="uniformSize" required>
|
||||
<view
|
||||
@click="showUniformSizePicker"
|
||||
@tap="showUniformSizePicker"
|
||||
@@ -444,6 +444,28 @@ import { getDict } from '@/common/dict.js';
|
||||
import { request } from '@/common/request.js';
|
||||
import { getCollegeList, getMajorsByCollegeId } from '@/api/enrollment.js';
|
||||
|
||||
const idCardPattern = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
|
||||
const phonePattern = /^1[3-9]\d{9}$/;
|
||||
|
||||
const requiredText = (label) => [{ required: true, message: `${label}不能为空`, trigger: ['blur', 'change'] }];
|
||||
|
||||
const requiredNumber = (label, min = 0, max) => [
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (value === null || value === undefined || value === '') {
|
||||
callback(new Error(`${label}不能为空`));
|
||||
} else if (Number(value) < min) {
|
||||
callback(new Error(`${label}不能小于${min}`));
|
||||
} else if (max !== undefined && Number(value) > max) {
|
||||
callback(new Error(`${label}不能大于${max}`));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
},
|
||||
trigger: ['blur', 'change'],
|
||||
},
|
||||
];
|
||||
|
||||
export default {
|
||||
name: 'EnrollmentIndex',
|
||||
data() {
|
||||
@@ -535,28 +557,43 @@ export default {
|
||||
majorPickerColumns: [],
|
||||
uniformSizePickerColumns: [],
|
||||
|
||||
// 表单验证规则
|
||||
// 表单验证规则(特长爱好、获奖情况除外)
|
||||
rules: {
|
||||
name: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
|
||||
name: requiredText('姓名'),
|
||||
idCard: [
|
||||
{ required: true, message: '身份证号不能为空', trigger: 'blur' },
|
||||
{
|
||||
pattern:
|
||||
/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
|
||||
message: '身份证号格式不正确',
|
||||
trigger: 'blur',
|
||||
},
|
||||
{ pattern: idCardPattern, message: '身份证号格式不正确', trigger: 'blur' },
|
||||
],
|
||||
gender: [{ required: true, message: '性别不能为空', trigger: 'change' }],
|
||||
gender: requiredText('性别'),
|
||||
birthDate: requiredText('出生日期'),
|
||||
phone1: [
|
||||
{ required: true, message: '联系电话不能为空', trigger: 'blur' },
|
||||
{ pattern: /^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' },
|
||||
{ pattern: phonePattern, message: '手机号码格式不正确', trigger: 'blur' },
|
||||
],
|
||||
phone2: [
|
||||
{ pattern: /^$|^1[3-9]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' },
|
||||
{ required: true, message: '备用电话不能为空', trigger: 'blur' },
|
||||
{ pattern: phonePattern, message: '手机号码格式不正确', trigger: 'blur' },
|
||||
],
|
||||
collegeName: [{ required: true, message: '所属学院不能为空', trigger: 'change' }],
|
||||
appliedMajor: [{ required: true, message: '报考专业不能为空', trigger: 'change' }],
|
||||
nation: requiredText('民族'),
|
||||
isBoarding: requiredText('是否住宿'),
|
||||
healthStatus: requiredText('健康状况'),
|
||||
homeAddress: requiredText('家庭住址'),
|
||||
middleSchool: requiredText('毕业中学'),
|
||||
examNumber: requiredText('准考证号'),
|
||||
examRegion: requiredText('中考地区'),
|
||||
totalScoreFull: requiredNumber('中考满分', 100, 1000),
|
||||
totalScore: requiredNumber('中考成绩', 0),
|
||||
chineseScore: requiredNumber('语文成绩', 0),
|
||||
mathScore: requiredNumber('数学成绩', 0),
|
||||
englishScore: requiredNumber('英语成绩', 0),
|
||||
scienceScore: requiredNumber('科学成绩', 0),
|
||||
socialScore: requiredNumber('社会成绩', 0),
|
||||
peScore: requiredNumber('体育成绩', 0),
|
||||
collegeName: requiredText('所属学院'),
|
||||
collegeId: requiredText('学院代码'),
|
||||
appliedMajor: requiredText('报考专业'),
|
||||
majorCode: requiredText('专业代码'),
|
||||
uniformSize: requiredText('校服尺码'),
|
||||
},
|
||||
};
|
||||
},
|
||||
@@ -565,21 +602,10 @@ export default {
|
||||
try {
|
||||
console.log('🚀 开始页面初始化...');
|
||||
|
||||
// 先初始化兜底数据,确保页面能正常显示
|
||||
this.initDefaultDictData();
|
||||
this.initDefaultCollegeData();
|
||||
|
||||
console.log('✅ 兜底数据初始化完成:', {
|
||||
genderOptions: this.genderOptions.length,
|
||||
collegeOptions: this.collegeOptions.length,
|
||||
majorOptions: this.majorOptions.length,
|
||||
});
|
||||
|
||||
// 并行加载数据,即使部分失败也不影响页面显示
|
||||
// 并行加载数据
|
||||
const results = await Promise.allSettled([
|
||||
this.initDictData(),
|
||||
this.loadCollegeOptions(),
|
||||
this.initMajorOptions(),
|
||||
]);
|
||||
|
||||
console.log('📋 异步数据加载结果:', results);
|
||||
@@ -606,9 +632,7 @@ export default {
|
||||
console.log('✅ 页面初始化完成,准备就绪');
|
||||
} catch (error) {
|
||||
console.error('❌ 页面初始化失败:', error);
|
||||
// 确保使用兜底数据
|
||||
this.initDefaultDictData();
|
||||
this.initDefaultCollegeData();
|
||||
this.$forceUpdate();
|
||||
}
|
||||
},
|
||||
@@ -798,15 +822,8 @@ export default {
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('学院数据加载失败:', error);
|
||||
// 设置兜底学院数据
|
||||
this.collegeOptions = [
|
||||
{ deptId: 1, deptName: '机械工程学院', deptCategory: 'JX' },
|
||||
{ deptId: 2, deptName: '电气工程学院', deptCategory: 'DQ' },
|
||||
{ deptId: 3, deptName: '信息工程学院', deptCategory: 'XX' },
|
||||
{ deptId: 4, deptName: '经济管理学院', deptCategory: 'JG' },
|
||||
{ deptId: 5, deptName: '建筑工程学院', deptCategory: 'JZ' },
|
||||
];
|
||||
console.log('✅ 已使用默认学院数据(兜底方案)');
|
||||
this.collegeOptions = [];
|
||||
uni.showToast({ title: '学院数据加载失败', icon: 'none' });
|
||||
}
|
||||
|
||||
// 更新学院picker的columns数据
|
||||
@@ -1174,13 +1191,6 @@ export default {
|
||||
this.majorOptions = [];
|
||||
}
|
||||
|
||||
// 如果API加载失败或无数据,使用兜底专业数据
|
||||
if (!this.majorOptions || this.majorOptions.length === 0) {
|
||||
const defaultMajors = this.getDefaultMajorsByCollegeId(collegeId);
|
||||
this.majorOptions = defaultMajors;
|
||||
console.log('✅ 已使用默认专业数据(兜底方案):', defaultMajors);
|
||||
}
|
||||
|
||||
// 更新专业picker的columns数据
|
||||
this.majorPickerColumns = [this.majorOptions.map((item) => item.label)];
|
||||
console.log('✅ 专业picker columns更新完成:', {
|
||||
|
||||
@@ -1220,7 +1220,7 @@ export default {
|
||||
// 跳转到宿舍点名页面
|
||||
gotoDormRollCall() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/xgss/dmdl/dmdl',
|
||||
url: '/pages/xgss/ssdm/ssdm',
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
Reference in new issue
Block a user