点名、成绩册统一读取“行政班在籍学生 ∪ 已选课学生”,不再错误显示 0 人。

教师选课名单改为展示全部本人教学班及完整学生名单,支持 Excel 导出。
调停课改用教师专用教学班接口,并在服务端限制只能操作本人教学班。
This commit is contained in:
2026-07-27 08:05:42 +08:00 Unverified
parent bc6ffa2ada
commit 22321abe23
9 changed files with 491 additions and 69 deletions
+18 -9
View File
@@ -101,6 +101,18 @@ async function submit() {
} catch (e) { ElMessage.error(apiErrorMessage(e)) }
}
async function loadTaskOptions() {
if (!isTeacher.value && isManager.value) return
try {
tasks.value = (await http.get('/course-adjustments/task-options', {
params: { academicTermId: termId.value || undefined },
})).data
} catch (error) {
tasks.value = []
ElMessage.error(apiErrorMessage(error))
}
}
async function doSubmit(adj: any) {
try {
await http.post(`/course-adjustments/${adj.id}/submit`)
@@ -137,16 +149,13 @@ async function doReject() {
onMounted(async () => {
try {
const [termRes, taskRes] = await Promise.all([
http.get('/base-data/terms'),
isTeacher.value || !isManager.value
? http.get('/teaching-tasks', { params: { page: 1, pageSize: 100 } })
: Promise.resolve({ data: { items: [] } }),
])
const termRes = await http.get('/base-data/terms')
terms.value = termRes.data
tasks.value = taskRes.data.items
termId.value = defaultAcademicTermId(terms.value)
} catch (_) {}
await loadTaskOptions()
} catch (error) {
ElMessage.error(apiErrorMessage(error))
}
await load()
})
@@ -173,7 +182,7 @@ function showCancel(type: string) { return type === 'Cancel' }
</section>
<section class="adj-toolbar">
<el-select v-model="termId" clearable placeholder="全部学期" @change="load">
<el-select v-model="termId" clearable placeholder="全部学期" @change="load(); loadTaskOptions()">
<el-option v-for="t in terms" :key="t.id" :label="academicTermLabel(t)" :value="t.id" :class="academicTermOptionClass(t)" />
</el-select>
<el-segmented v-model="tab" :options="[