From 8d248b7f81163690f7318c868acce4f889936d42 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 29 十月 2024 16:49:47 +0800
Subject: [PATCH] 会议列表增加班级查询、显示老师

---
 src/api/modules/meet.js             |   11 ++++++++---
 src/views/train/data-list/index.vue |    4 ++--
 components.d.ts                     |    1 +
 src/views/train/index.vue           |   24 ++++++++++++++++++------
 4 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/components.d.ts b/components.d.ts
index 78906d1..7095ee7 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -19,6 +19,7 @@
     ElDropdown: typeof import('element-plus/es')['ElDropdown']
     ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
     ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
+    ElEmpty: typeof import('element-plus/es')['ElEmpty']
     ElForm: typeof import('element-plus/es')['ElForm']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
     ElIcon: typeof import('element-plus/es')['ElIcon']
diff --git a/src/api/modules/meet.js b/src/api/modules/meet.js
index fb923bc..4acecb2 100644
--- a/src/api/modules/meet.js
+++ b/src/api/modules/meet.js
@@ -1,10 +1,15 @@
 import service from "@/api";
 
 
-export const getMeetList = (getData = {meetName: '', status: ''}) => {
-  return service.get('/api/student/meet/page', {params: getData});
+export const getMeetList = (data) => {
+  return service.post('/api/student/meet/page', data);
 };
 
 export const classMeet = (id) => {
   return service.get('/api/student/meet/' + id);
-}
\ No newline at end of file
+}
+
+// 鑾峰彇瀛︾敓鐨勭彮绾�
+export const getStudentClasses = () => {
+  return service.get('api/student/meet/classes');
+}
diff --git a/src/views/train/data-list/index.vue b/src/views/train/data-list/index.vue
index adf6dab..c2865a2 100644
--- a/src/views/train/data-list/index.vue
+++ b/src/views/train/data-list/index.vue
@@ -15,9 +15,9 @@
               </div>
               <div class="item-info p-3" style="position: relative">
                 <div class="info-title font-bold">{{ item.meetName }}</div>
-                <div class="info-teacher flex text-sm text-gray-500">
+                <div class="info-teacher flex text-sm text-gray-500" style="margin-top: 5px">
                   <div class="info-label">涓昏锛�</div>
-                  <div class="info-text">{{ item.teacherName }}</div>
+                  <div class="info-text">{{ item.teacherNamesStr }}</div>
                 </div>
                 <div class="info-time flex text-sm text-gray-500">
                   <div class="info-label">寮�濮嬫椂闂达細</div>
diff --git a/src/views/train/index.vue b/src/views/train/index.vue
index 9a32761..e026bd2 100644
--- a/src/views/train/index.vue
+++ b/src/views/train/index.vue
@@ -19,14 +19,18 @@
                 </div> -->
 
                 <div class="header-search flex items-center">
-                  <el-input v-model="searchText" placeholder="璇疯緭鍏ヨ绋嬪悕绉�" :prefix-icon="Search" maxlength="20" @input="searchData" />
+                  <el-input v-model="searchText" placeholder="璇剧▼鍚嶇О" :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>
 
@@ -55,9 +59,11 @@
 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);
@@ -68,7 +74,7 @@
 
 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;
@@ -77,8 +83,14 @@
   });
 };
 
-getData();
+const studentClasses = () => {
+  getStudentClasses().then(res => {
+    classesList.value = res.data
+  })
+}
 
+getData();
+studentClasses();
 const handleCurrentChange = (val) => {
   currentIndex.value = val;
   getData();
@@ -104,4 +116,4 @@
 :deep(.el-tabs__nav-wrap:after) {
   display: none;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.8.0