| | |
| | | <template> |
| | | <div class="exam-list-container w-screen h-screen bg-slate-50 flex flex-col"> |
| | | <div class="exam-list-container w-screen h-screen bg-slate-50 flex flex-col items-center"> |
| | | <NormalHeader class="shrink-0"></NormalHeader> |
| | | |
| | | <div class="list-container grow-1"> |
| | | <div class="list-container container grow relative"> |
| | | <div class="list-content absolute top-0 bottom-0 left-0 right-0 py-4"> |
| | | <div class="list-wrapper w-full h-full"> |
| | | <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"> |
| | | <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 class="header-search flex items-center"> |
| | | <el-input v-model="searchText" placeholder="请输入考试名称" :prefix-icon="Search" maxlength="20" /> |
| | | <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" v-loading="loading"> |
| | | <DataList :dataList="dataList"></DataList> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="card-footer flex justify-center mb-7 shrink-0"> |
| | | <el-pagination background layout="prev, pager, next" :total="dataList.length" |
| | | :default-page-size="20" |
| | | :currentPage="currentIndex" |
| | | :hide-on-single-page="true" |
| | | @current-change="handleCurrentChange"/> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import NormalHeader from '@/components/NormalHeader/index.vue'; |
| | | import { ref } from 'vue'; |
| | | |
| | | import NormalHeader from '@/components/NormalHeader/index.vue'; |
| | | import DataList from './data-list/index.vue'; |
| | | |
| | | import { Search } from '@element-plus/icons-vue'; |
| | | |
| | | import { getExamList } from '@/api/modules/exam.js'; |
| | | |
| | | |
| | | const activeName = ref('1'); |
| | | const searchText = ref(''); |
| | | |
| | | const dataList = ref([]); |
| | | |
| | | const loading = ref(false); |
| | | |
| | | const getData = () => { |
| | | loading.value = true; |
| | | getExamList({ examName: searchText.value }).then(res => { |
| | | dataList.value = res.data; |
| | | loading.value = false; |
| | | }).catch(err => { |
| | | loading.value = false; |
| | | }); |
| | | }; |
| | | |
| | | getData(); |
| | | |
| | | const searchData = () => { |
| | | getData(); |
| | | }; |
| | | |
| | | const handleClick = (tab, event) => { |
| | | }; |
| | | |
| | | const handleCurrentChange = (val) => { |
| | | getData(); |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | :deep(.el-tabs__nav-wrap:after) { |
| | | display: none; |
| | | } |
| | | </style> |