diff --git a/frontend/src/views/teachOffice/shiftSemester/index.vue b/frontend/src/views/teachOffice/shiftSemester/index.vue index a81e18c2..1b38e974 100644 --- a/frontend/src/views/teachOffice/shiftSemester/index.vue +++ b/frontend/src/views/teachOffice/shiftSemester/index.vue @@ -24,7 +24,7 @@ style="width: 140px" @change="handleQuery" > - + @@ -368,6 +368,8 @@ export default { // ==================== 下拉数据 ==================== /** 年度下拉(来自 /semester/all) */ yearOptions: [], + /** 检索年度下拉:校历学期 ∪ 班次学期实际年度(如 2033 这类非校历年度也要能筛) */ + searchYearOptions: [], /** 教学任务下拉({ bh, rwmc }) */ taskOptions: [], /** 全部班次学期(用于班历复制目标选择) */ @@ -495,12 +497,17 @@ export default { /* ==================== 下拉数据加载 ==================== */ loadYearOptions() { - listAllSemester().then(res => { - const list = (res && res.data) || [] - const years = list.map(x => this.yearFromNd(x.nd)).filter(v => v) - this.yearOptions = [...new Set(years)].sort((a, b) => Number(a) - Number(b)) - }).catch(() => { - this.yearOptions = [] + Promise.all([ + listAllSemester().catch(() => null), + allSemester().catch(() => null) + ]).then(([schoolRes, classRes]) => { + const schoolList = (schoolRes && schoolRes.data) || [] + const classList = (classRes && (classRes.data || classRes.rows)) || [] + const schoolYears = schoolList.map(x => this.yearFromNd(x.nd)).filter(v => v) + const classYears = classList.map(x => this.yearFromNd(x.nd)).filter(v => v) + this.yearOptions = [...new Set(schoolYears)].sort((a, b) => Number(a) - Number(b)) + this.searchYearOptions = [...new Set([...schoolYears, ...classYears])] + .sort((a, b) => Number(a) - Number(b)) }) }, loadTaskOptions() {