优化条件筛选
This commit is contained in:
1 parent
eb20211f0e
commit
130bffbd01
6 files changed
+152
-1
No files matched your search
@@ -39,6 +39,7 @@ interface TeachingClassItem {
|
||||
}
|
||||
|
||||
const terms = ref<any[]>([])
|
||||
const colleges = ref<any[]>([])
|
||||
const auth = useAuthStore()
|
||||
const canManageSchedule = computed(() => auth.user?.roles.some(role => ['SuperAdmin', 'AcademicAdmin'].includes(role)) ?? false)
|
||||
const classes = ref<TeachingClassItem[]>([])
|
||||
@@ -46,6 +47,9 @@ const selected = ref<TeachingClassItem>()
|
||||
const report = ref<any>()
|
||||
const termId = ref<string>()
|
||||
const keyword = ref('')
|
||||
const collegeId = ref<string>()
|
||||
const teacherKeyword = ref('')
|
||||
const riskOnly = ref(false)
|
||||
const page = ref(1)
|
||||
const total = ref(0)
|
||||
const pageSize = 12
|
||||
@@ -109,6 +113,9 @@ async function loadClasses(reset = false) {
|
||||
params: {
|
||||
academicTermId: termId.value,
|
||||
keyword: keyword.value.trim() || undefined,
|
||||
collegeId: collegeId.value,
|
||||
teacherKeyword: teacherKeyword.value.trim() || undefined,
|
||||
riskOnly: riskOnly.value || undefined,
|
||||
page: page.value,
|
||||
pageSize,
|
||||
},
|
||||
@@ -343,7 +350,12 @@ watch(historyMetric, async () => {
|
||||
|
||||
onMounted(async () => {
|
||||
try {
|
||||
terms.value = (await http.get('/base-data/terms')).data
|
||||
const [termResponse, collegeResponse] = await Promise.all([
|
||||
http.get('/base-data/terms'),
|
||||
http.get('/base-data/colleges'),
|
||||
])
|
||||
terms.value = termResponse.data
|
||||
colleges.value = collegeResponse.data
|
||||
termId.value = defaultAcademicTermId(terms.value)
|
||||
} catch (error) {
|
||||
ElMessage.error(apiErrorMessage(error))
|
||||
@@ -409,7 +421,12 @@ onBeforeUnmount(() => {
|
||||
<el-select v-model="termId" clearable placeholder="全部学期" style="width: 240px" @change="loadClasses(true)">
|
||||
<el-option v-for="term in terms" :key="term.id" :label="academicTermLabel(term)" :value="term.id" />
|
||||
</el-select>
|
||||
<el-select v-model="collegeId" clearable placeholder="全部开课学院" style="width: 190px" @change="loadClasses(true)">
|
||||
<el-option v-for="college in colleges" :key="college.id" :label="college.name" :value="college.id" />
|
||||
</el-select>
|
||||
<el-input v-model="keyword" clearable placeholder="课程、教学班名称或编号" :prefix-icon="Search" @keyup.enter="loadClasses(true)" />
|
||||
<el-input v-model="teacherKeyword" clearable placeholder="任课教师姓名或工号" :prefix-icon="Search" @keyup.enter="loadClasses(true)" @clear="loadClasses(true)" />
|
||||
<el-checkbox v-model="riskOnly" @change="loadClasses(true)">仅看预警班</el-checkbox>
|
||||
<el-button type="primary" @click="loadClasses(true)">查询</el-button>
|
||||
</section>
|
||||
|
||||
|
||||
Reference in new issue
Block a user