From f7b2d928f99435c798d12e688d470c69f2f5c234 Mon Sep 17 00:00:00 2001 From: luohairen <3399054449@qq.com> Date: 星期二, 12 十一月 2024 21:20:52 +0800 Subject: [PATCH] 优化错题查询 --- src/views/train/index.vue | 62 ++++++++++++++++++++++++++---- 1 files changed, 53 insertions(+), 9 deletions(-) diff --git a/src/views/train/index.vue b/src/views/train/index.vue index b4465cb..8fdfc09 100644 --- a/src/views/train/index.vue +++ b/src/views/train/index.vue @@ -8,28 +8,43 @@ <el-card class="h-full" :body-style="{ height: '100%' }"> <div class="card-wrapper w-full h-full flex flex-col px-8 box-border"> <div class="card-header flex justify-between items-center shrink-0"> - <div class="header-tab"> + + <!-- <div class="header-tab"> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane label="鍏ㄩ儴" name="1"></el-tab-pane> <el-tab-pane label="鏈紑濮�" name="2"></el-tab-pane> <el-tab-pane label="杩涜涓�" name="3"></el-tab-pane> <el-tab-pane label="宸茬粨鏉�" name="4"></el-tab-pane> </el-tabs> - </div> + </div> --> + <div class="header-search flex items-center"> - <el-input v-model="searchText" placeholder="璇疯緭鍏ヨ绋嬪悕绉�" :prefix-icon="Search" /> - <el-button type="primary" class="ml-4">鎼滅储</el-button> + <el-input v-model="searchText" placeholder="璇剧▼鍚嶇О" clearable @clear="searchData" :prefix-icon="Search" maxlength="20" @input="searchData" /> + <el-select v-model="classesIdList" placeholder="閫夋嫨鐝骇" multiple clearable @clear="searchData" style="width: 200px;margin-left: 10px" @change="searchData"> + <el-option v-for="classes in classesList" :key="classes.id" :label="classes.className" :value="classes.id"/> + </el-select> + <el-button type="primary" class="ml-4" @click="searchData">鎼滅储</el-button> </div> </div> <div class="card-main flex-1 my-5 relative"> <div class="main-content absolute top-0 bottom-0 left-0 right-0"> - <DataList :dataList="dataList"></DataList> + <DataList v-if="dataList && dataList.length > 0" :dataList="dataList"></DataList> + <el-empty v-else description="鏆傛棤" /> </div> </div> <div class="card-footer flex justify-center mb-7 shrink-0"> - <el-pagination background layout="prev, pager, next" :total="1000" /> + <el-pagination + background + layout="total, sizes, prev, pager, next, jumper" + :total="total" + :page-sizes="[10, 20, 50]" + :page-size="pageSize" + :currentPage="currentIndex" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> </div> </div> </el-card> @@ -44,24 +59,53 @@ import NormalHeader from '@/components/NormalHeader/index.vue'; import DataList from './data-list/index.vue'; import { Search } from '@element-plus/icons-vue'; -import {getMeetList} from '@/api/modules/meet.js'; +import { getMeetList, getStudentClasses } from '@/api/modules/meet.js'; const activeName = ref('1'); const searchText = ref(''); +const classesIdList = ref([]); +const classesList = ref([]); const dataList = ref([]); const loading = ref(false); +const currentIndex = ref(1); +const pageSize = ref(10); +const total = ref(0); + const getData = () => { loading.value = true; - getMeetList().then(res => { + getMeetList({meetName: searchText.value, classesIds: classesIdList.value}).then(res => { dataList.value = res.data; loading.value = false; + total.value = res.total; }).catch(err => { loading.value = false; }); }; +const studentClasses = () => { + getStudentClasses().then(res => { + classesList.value = res.data + }) +} + getData(); +studentClasses(); +const handleCurrentChange = (val) => { + currentIndex.value = val; + getData(); +}; + +const handleSizeChange = (val) => { + currentIndex.value = 1; + pageSize.value = val; + getData(); +}; + +const searchData = () => { + getData(); + +}; const handleClick = (tab, event) => { }; @@ -72,4 +116,4 @@ :deep(.el-tabs__nav-wrap:after) { display: none; } -</style> \ No newline at end of file +</style> -- Gitblit v1.8.0