筛选优化

This commit is contained in:
biss committed 2026-08-14 19:35:08 +08:00
1 parent ccdfe977ba
commit 0ce758191e
7 files changed
+119 -6

No files matched your search

+25
View File
@@ -54,6 +54,7 @@ const now = ref(Date.now())
const fileInput = ref<HTMLInputElement>()
const termId = ref<string>()
const taskKeyword = ref('')
const taskClassKeyword = ref('')
const taskPage = ref(1)
const taskPageSize = 12
const taskTotal = ref(0)
@@ -126,6 +127,7 @@ async function loadTasks(resetPage = false) {
params: {
academicTermId: termId.value || undefined,
keyword: taskKeyword.value.trim() || undefined,
classKeyword: taskClassKeyword.value.trim() || undefined,
page: taskPage.value,
pageSize: taskPageSize,
},
@@ -164,6 +166,20 @@ async function selectTask(task: any) {
if (activeMode.value === 'statistics') await loadStatistics()
}
function resetTaskFilters() {
taskKeyword.value = ''
taskClassKeyword.value = ''
termId.value = defaultAcademicTermId(terms.value)
loadTasks(true)
}
function resetSheetFilters() {
sheetKeyword.value = ''
sheetStatus.value = undefined
sheetMethod.value = undefined
loadSheets(true)
}
async function loadSheets(resetPage = false) {
if (!selectedTask.value) return
try {
@@ -737,7 +753,15 @@ onUnmounted(() => {
<el-select v-model="termId" clearable placeholder="全部学期" @change="loadTasks(true)">
<el-option v-for="term in terms" :key="term.id" :label="academicTermLabel(term)" :value="term.id" :class="academicTermOptionClass(term)" />
</el-select>
<el-input
v-model="taskClassKeyword"
clearable
placeholder="行政班、专业或班级代码"
@keyup.enter="loadTasks(true)"
@clear="loadTasks(true)"
/>
<el-button :icon="Search" @click="loadTasks(true)">查询</el-button>
<el-button :icon="Refresh" @click="resetTaskFilters">重置</el-button>
<span>共 {{ taskTotal }} 个教学班</span>
<el-radio-group v-model="activeMode" class="mode-switch" size="small">
<el-radio-button value="rollcall">点名记录</el-radio-button>
@@ -806,6 +830,7 @@ onUnmounted(() => {
<el-option label="定位签到" value="Location" />
</el-select>
<el-button :icon="Search" @click="loadSheets(true)">筛选</el-button>
<el-button :icon="Refresh" @click="resetSheetFilters">重置</el-button>
</div>
<div class="attendance-sheet-list">
<button