团员档案:学院改从组织树取,班级改为选填

学院级联修复:
- 原先 listColleges() 取 /gxmu/college,读的是已废弃的 gxmu_college 表,
  其 id 域(1、4)与班级的 collegeId(sys_organization.organization_id,53~79)
  不重合,导致学院只列出 2 个选项、选完选不出真实班级
- 改为取组织树中「广西医科大学」(parentId=24) 的直接子节点;
  loadClassOptions 传的本来就是 organizationId,正好对齐

班级改选填:
- 研究生在开放平台体系中本就没有班级(1584 个班级里一个研究生班都没有),
  强制必填会把 15538 名研究生挡在团员档案之外
- 去掉 classId 的 required 与「有学院就必须有班级」的强校验,学院仍保持必填
This commit is contained in:
2026-09-15 15:55:00 +08:00
parent 2dcae4165b
commit 7245008497
2 changed files with 18 additions and 6 deletions
+4 -5
View File
@@ -297,7 +297,9 @@ const fields = [
placeholder: '请选择学院', placeholder: '请选择学院',
displayKey: 'collegeName' displayKey: 'collegeName'
}, },
{key: 'classId', label: '班级', required: true, type: 'class', placeholder: '请选择班级', displayKey: 'className'}, // 班级选填:研究生在开放平台体系中本就没有班级(平台 1584 个班级里一个研究生班都没有),
// 强制必填会把 15538 名研究生挡在团员档案之外
{key: 'classId', label: '班级', required: false, type: 'class', placeholder: '请选择班级(研究生可不填)', displayKey: 'className'},
{key: 'phone', label: '手机号码', type: 'readonly', placeholder: '自动读取当前用户手机号'}, {key: 'phone', label: '手机号码', type: 'readonly', placeholder: '自动读取当前用户手机号'},
{key: 'leaguePosition', label: '团内职务', type: 'text', placeholder: '请选择团内职务'}, {key: 'leaguePosition', label: '团内职务', type: 'text', placeholder: '请选择团内职务'},
{ {
@@ -985,10 +987,7 @@ export default {
this.showToast('身份证号格式不正确,无法识别出生日期') this.showToast('身份证号格式不正确,无法识别出生日期')
return false return false
} }
if (this.formData.collegeId && !this.formData.classId) { // 班级为选填:研究生在开放平台没有班级,此处不再强制要求
this.showToast('请选择班级')
return false
}
return true return true
}, },
saveDraft() { saveDraft() {
+14 -1
View File
@@ -11,8 +11,21 @@ export function listOrganizations(params) {
return get('/system/organization', params) return get('/system/organization', params)
} }
/**
* 学院挂载的父节点:广西医科大学。
* 见 tuanwei-java 的 OpenplatSyncConstants.ORG_PARENT_ID。
*/
export const COLLEGE_PARENT_ID = 24
/**
* 学院列表。
*
* 取自组织树中「广西医科大学」的直接子节点,而不是 /gxmu/college
* 后者读的是已废弃的 gxmu_college 表,其 id 域与班级的 collegeId(sys_organization.organization_id)
* 不重合,会让学院->班级级联失效。见 docs/adr/0002。
*/
export function listColleges(params) { export function listColleges(params) {
return get('/gxmu/college', params) return get('/system/organization', Object.assign({ parentId: COLLEGE_PARENT_ID }, params || {}))
} }
export function listClasses(params) { export function listClasses(params) {