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 |   49 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/src/views/train/index.vue b/src/views/train/index.vue
index 721d11f..8fdfc09 100644
--- a/src/views/train/index.vue
+++ b/src/views/train/index.vue
@@ -19,19 +19,32 @@
                 </div> -->
 
                 <div class="header-search flex items-center">
-                  <el-input v-model="searchText" placeholder="璇疯緭鍏ヨ绋嬪悕绉�" :prefix-icon="Search" maxlength="20" />
+                  <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>
@@ -46,24 +59,48 @@
 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({meetName: searchText.value}).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();
@@ -79,4 +116,4 @@
 :deep(.el-tabs__nav-wrap:after) {
   display: none;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.8.0