diff --git a/frontend/src/layout/components/SemesterBar.vue b/frontend/src/layout/components/SemesterBar.vue index c028415cb..5f99f3a54 100644 --- a/frontend/src/layout/components/SemesterBar.vue +++ b/frontend/src/layout/components/SemesterBar.vue @@ -27,6 +27,7 @@ :value="activeSemester ? activeSemester.nd : ''" placeholder="请选择学期" size="small" + filterable class="semester-select" @change="handleSwitch" > diff --git a/frontend/src/views/student/shiftTeam/index.vue b/frontend/src/views/student/shiftTeam/index.vue index 4869c1723..7c3c710ff 100644 --- a/frontend/src/views/student/shiftTeam/index.vue +++ b/frontend/src/views/student/shiftTeam/index.vue @@ -153,7 +153,21 @@ - + + + @@ -214,11 +228,6 @@ - - - - - 培训与状态 @@ -308,7 +317,6 @@ {{ detailForm.xtms || '-' }} {{ detailForm.jc || '-' }} {{ detailForm.ssdw || '-' }} - {{ fmtValue(detailForm.xh) }} {{ detailForm.rwlb || '-' }} @@ -352,11 +360,13 @@ import { downloadTeamTemplate } from '@/api/studentRecords/team' import { getDicts } from '@/api/system/dict/data' +import { listMajor } from '@/api/subjectMajor/major' const TEAM_TYPE_DICT_CODE = 'stu_type' const SESSION_CATEGORY_DICT_CODE = 'session_category' const SYSTEM_MODE_DICT_CODE = 'system_mode' const UNIT_CATEGORY_DICT_CODE = 'sys_unit_category' +const MAJOR_OPTION_PAGE_SIZE = 10000 export default { name: 'ShiftTeamIndex', @@ -375,6 +385,8 @@ export default { sessionCategoryOptions: [], systemModeOptions: [], unitCategoryOptions: [], + majorOptions: [], + majorOptionsLoading: false, trainingTaskOptions: [], trainingTaskLoading: false, @@ -399,7 +411,7 @@ export default { xydbh: [{ required: true, message: '请输入学员队编号', trigger: 'blur' }], xydmc: [{ required: true, message: '请输入学员队名称', trigger: 'blur' }], xydrs: [{ required: true, message: '请输入学员队人数', trigger: 'change' }], - zydh: [{ required: true, message: '请输入专业代号', trigger: 'blur' }], + zydh: [{ required: true, message: '请选择专业', trigger: 'change' }], rwlb: [{ required: true, message: '请输入任务类别', trigger: 'blur' }], xslx: [{ required: true, message: '请选择虚实类型', trigger: 'change' }], rxrq: [{ required: true, message: '请选择入学日期', trigger: 'change' }], @@ -423,6 +435,7 @@ export default { }, mounted() { this.loadTeamDictionaries() + this.loadMajorOptions() this.fetchList() }, methods: { @@ -441,6 +454,33 @@ export default { this.unitCategoryOptions = unitCategoryResponse.data || [] }, + /** 加载专业下拉选项,标签同时包含名称、代码和代号,便于直接模糊搜索。 */ + async loadMajorOptions() { + this.majorOptionsLoading = true + try { + const response = await listMajor({ + pageNum: 1, + pageSize: MAJOR_OPTION_PAGE_SIZE, + ty: false + }) + const data = response.data || {} + this.majorOptions = Array.isArray(data.records) ? data.records : [] + } catch (error) { + this.majorOptions = [] + } finally { + this.majorOptionsLoading = false + } + }, + + formatMajorLabel(item) { + const identifiers = [item.zydm, item.zydh].filter(Boolean).join(' / ') + if (!item.zymc) { + return identifiers + } + + return identifiers ? `${item.zymc}(${identifiers})` : item.zymc + }, + createEmptyForm() { return { xydbh: '', @@ -451,7 +491,6 @@ export default { zyjsbh: '', bz: '', zxzt: undefined, - xh: undefined, rwlb: '', xslx: 1, rxrq: '', @@ -575,7 +614,6 @@ export default { zyjsbh: d.zyjsbh || '', bz: d.bz || '', zxzt: this.normalizeSchoolStatus(d.zxzt), - xh: d.xh !== null && d.xh !== undefined ? d.xh : undefined, rwlb: d.rwlb || '', xslx: d.xslx !== null && d.xslx !== undefined ? Number(d.xslx) : 1, rxrq: this.formatDate(d.rxrq), @@ -636,7 +674,6 @@ export default { if (f.xydrs !== '' && f.xydrs !== null && f.xydrs !== undefined) payload.xydrs = Number(f.xydrs) // 字符串字段 if (f.zxzt !== '' && f.zxzt !== null && f.zxzt !== undefined) payload.zxzt = String(f.zxzt) - if (f.xh !== '' && f.xh !== null && f.xh !== undefined) payload.xh = String(f.xh) // 后端字段为 LocalDateTime,日期选择器值统一补齐当天零点。 if (f.rxrq) payload.rxrq = `${this.formatDate(f.rxrq)}T00:00:00` if (f.byrq) payload.byrq = `${this.formatDate(f.byrq)}T00:00:00` diff --git a/frontend/src/views/system/dict/data.vue b/frontend/src/views/system/dict/data.vue index 0acb25fe6..f6ab1015b 100644 --- a/frontend/src/views/system/dict/data.vue +++ b/frontend/src/views/system/dict/data.vue @@ -2,7 +2,7 @@
- + - + - + diff --git a/frontend/src/views/teachBusiness/teachingTask/index.vue b/frontend/src/views/teachBusiness/teachingTask/index.vue index 03e9075fd..f0a02935d 100644 --- a/frontend/src/views/teachBusiness/teachingTask/index.vue +++ b/frontend/src/views/teachBusiness/teachingTask/index.vue @@ -23,6 +23,7 @@ v-model="searchForm.nd" placeholder="请选择年度" clearable + filterable style="width: 100%" > diff --git a/frontend/src/views/teachBusiness/timetableAdjust/index.vue b/frontend/src/views/teachBusiness/timetableAdjust/index.vue index 90e5c06db..ba0f86e75 100644 --- a/frontend/src/views/teachBusiness/timetableAdjust/index.vue +++ b/frontend/src/views/teachBusiness/timetableAdjust/index.vue @@ -23,7 +23,13 @@
- + @@ -99,7 +105,13 @@ - + diff --git a/frontend/src/views/teachBusiness/timetableConflict/index.vue b/frontend/src/views/teachBusiness/timetableConflict/index.vue index dc69101a7..2649f953c 100644 --- a/frontend/src/views/teachBusiness/timetableConflict/index.vue +++ b/frontend/src/views/teachBusiness/timetableConflict/index.vue @@ -10,7 +10,13 @@
- + diff --git a/frontend/src/views/teachOffice/shiftSemester/ClassSemesterDetailDialog.vue b/frontend/src/views/teachOffice/shiftSemester/ClassSemesterDetailDialog.vue index 0320bd1f9..8feae81b7 100644 --- a/frontend/src/views/teachOffice/shiftSemester/ClassSemesterDetailDialog.vue +++ b/frontend/src/views/teachOffice/shiftSemester/ClassSemesterDetailDialog.vue @@ -24,7 +24,7 @@ - + diff --git a/frontend/src/views/teachOffice/shiftSemester/index.vue b/frontend/src/views/teachOffice/shiftSemester/index.vue index 220480e55..88c82a030 100644 --- a/frontend/src/views/teachOffice/shiftSemester/index.vue +++ b/frontend/src/views/teachOffice/shiftSemester/index.vue @@ -16,7 +16,14 @@ /> - + @@ -131,7 +138,7 @@ > - + diff --git a/frontend/src/views/teachOffice/taskPlan/index.vue b/frontend/src/views/teachOffice/taskPlan/index.vue index 42940f691..b65f48f83 100644 --- a/frontend/src/views/teachOffice/taskPlan/index.vue +++ b/frontend/src/views/teachOffice/taskPlan/index.vue @@ -16,7 +16,7 @@ /> - + @@ -109,7 +109,7 @@ - +