components.d.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/modules/grade.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/grade-list/data-list/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/grade-list/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
components.d.ts
@@ -7,24 +7,15 @@ /* prettier-ignore */ declare module 'vue' { export interface GlobalComponents { ElAvatar: typeof import('element-plus/es')['ElAvatar'] ElButton: typeof import('element-plus/es')['ElButton'] ElCard: typeof import('element-plus/es')['ElCard'] ElCol: typeof import('element-plus/es')['ElCol'] ElCollapse: typeof import('element-plus/es')['ElCollapse'] ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem'] ElCountdown: typeof import('element-plus/es')['ElCountdown'] ElDialog: typeof import('element-plus/es')['ElDialog'] ElForm: typeof import('element-plus/es')['ElForm'] ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElIcon: typeof import('element-plus/es')['ElIcon'] ElImageViewer: typeof import('element-plus/es')['ElImageViewer'] ElInput: typeof import('element-plus/es')['ElInput'] ElPagination: typeof import('element-plus/es')['ElPagination'] ElProgress: typeof import('element-plus/es')['ElProgress'] ElRow: typeof import('element-plus/es')['ElRow'] ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] ElSlider: typeof import('element-plus/es')['ElSlider'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTabPane: typeof import('element-plus/es')['ElTabPane'] @@ -33,9 +24,6 @@ ExamAudio: typeof import('./src/components/ExamAudio/index.vue')['default'] ExamInfo: typeof import('./src/components/ExamInfo/index.vue')['default'] ExamInfoDialog: typeof import('./src/components/ExamInfoDialog/index.vue')['default'] Header: typeof import('./src/components/Header/index.vue')['default'] HelloWorld: typeof import('./src/components/HelloWorld.vue')['default'] ImageViewer: typeof import('./src/components/ImageViewer/index.vue')['default'] NormalHeader: typeof import('./src/components/NormalHeader/index.vue')['default'] PDFViewer: typeof import('./src/components/PDFViewer/index.vue')['default'] PDFVIewer: typeof import('./src/components/PDFVIewer/index.vue')['default'] src/api/modules/grade.js
New file @@ -0,0 +1,6 @@ import service from "@/api"; export const getGradeList = (postData = {examName: '', pageIndex: 1, pageSize: 10}) => { return service.post('/api/student/exampaper/answer/pageList',postData); } src/views/grade-list/data-list/index.vue
@@ -1,11 +1,11 @@ <template> <div class="list-container w-full h-full"> <el-scrollbar> <el-card shadow="hover" class="mb-3"> <el-card shadow="hover" class="mb-3" v-for="item in props.dataList"> <div class="item flex justify-between items-center"> <div class="left-container flex flex-col justify-between"> <div class="top-container flex items-center"> <div class="title mr-5 text-xl font-bold">测试测试测试测试测试</div> <div class="title mr-5 text-xl font-bold">{{ item.examName }}</div> <div class="tag"> <el-tag type="primary" effect="light" round> 已批改 @@ -20,19 +20,19 @@ </div> <div class="bottom-container flex text-sm text-gray-400 mb-3"> <div class="bottom-item"> 总分: 100 总分: {{ item.totalScore }} </div> <div class="bottom-item"> 题数: 20 题数: {{ item.questionCount}} </div> <div class="bottom-item"> 答题时间: 20分钟 答题时间: {{item.doTime / 60 }}分钟 </div> </div> <div class="grade-container flex items-center text-red-600"> <div class="grade-label mr-1">成绩:</div> <div class="grade-num text-lg font-bold">60</div> <div class="grade-num text-lg font-bold">{{ item.score }}</div> </div> </div> <div class="right-container"> @@ -52,7 +52,29 @@ import { Timer } from '@element-plus/icons-vue'; import {useRouter} from 'vue-router'; const router = useRouter(); const props = defineProps({ dataList: { type: Array, default: () => [] } }); const stateList = { 1: { text: '未开始', type: 'primary', disabled: true }, 'ing': { text: '进行中', type: 'success', disabled: false }, 'finished': { text: '已结束', type: 'info', disabled: true } }; const checkExam = () => { router.push('/grade'); } src/views/grade-list/index.vue
@@ -22,8 +22,8 @@ </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> <div class="main-content absolute top-0 bottom-0 left-0 right-0" v-loading="loading"> <DataList :dataList="dataList"></DataList> </div> </div> @@ -43,8 +43,26 @@ import NormalHeader from '@/components/NormalHeader/index.vue'; import DataList from './data-list/index.vue'; import { Search } from '@element-plus/icons-vue'; import { getGradeList } from '@/api/modules/grade.js'; const activeName = ref('1'); const searchText = ref(''); const loading = ref(false); const dataList = ref([]); const getData = () => { loading.value = true; getGradeList().then(res => { dataList.value = res.data.list; loading.value = false; }).catch(err => { loading.value = false; }); }; getData(); const handleClick = (tab, event) => { }; </script> @@ -53,5 +71,4 @@ :deep(.el-tabs__nav-wrap:after) { display: none; } </style>