<template>
|
<div class="list-container w-full h-full">
|
<el-scrollbar>
|
<el-table
|
v-loading="loading"
|
:data="dataList"
|
border
|
:row-style="{height:'42px'}"
|
:cell-style="{padding: '0'}"
|
>
|
<el-table-column
|
align="center"
|
label="题目"
|
prop="title"
|
width="500px"
|
></el-table-column>
|
<el-table-column
|
label="题型"
|
align="center"
|
width="100px"
|
prop="questionType"
|
:formatter="questionTypeFormatter"
|
></el-table-column>
|
<el-table-column
|
align="center"
|
width="100px"
|
label="分数"
|
prop="score"
|
></el-table-column>
|
<el-table-column
|
align="center"
|
width="100px"
|
label="难度"
|
prop="difficult"
|
></el-table-column>
|
<el-table-column
|
align="center"
|
width="150px"
|
label="试卷名称"
|
prop="examName"
|
></el-table-column>
|
<el-table-column
|
label="操作"
|
align="center"
|
fixed="right"
|
>
|
<template #default="{ row }">
|
<el-button
|
type="primary"
|
size="small"
|
@click="checkWrong(row)"
|
>
|
查看错题
|
</el-button>
|
</template>
|
</el-table-column>
|
|
</el-table>
|
</el-scrollbar>
|
</div>
|
</template>
|
|
<script setup>
|
import { ref } from 'vue';
|
import { useRouter } from 'vue-router';
|
import { useGradeStore } from '@/store/index.js';
|
import { getGradeInfo } from '@/api/modules/grade.js';
|
|
// dataList
|
const props = defineProps({
|
dataList: {
|
type: Array,
|
default: () => []
|
}
|
});
|
const loading = ref(false);
|
const gradeStore = useGradeStore();
|
const router = useRouter();
|
|
const checkWrong = (row) => {
|
getGradeInfo(row.id).then((res) => {
|
const {id,examName, score,navbar,titleItems} = res.data;
|
gradeStore.setExamInfo({
|
id,
|
examName,
|
score,
|
navbar
|
});
|
gradeStore.setExamDetail(titleItems);
|
gradeStore.initExam(res.data.titleItems[0].questionType);
|
router.push('/grade');
|
}).catch(err => {
|
|
});
|
};
|
|
// 题目类型格式化
|
const questionTypeFormatter = (row,column,cellValue) => {
|
const typeMap = {
|
1: '单选题',
|
2: '多选题',
|
3: '判断题',
|
4: '填空题',
|
5: '简答题',
|
6: '语音题',
|
7: '计算题',
|
8: '分析题'
|
};
|
return typeMap[cellValue];
|
}
|
|
</script>
|
<style lang="scss" scoped>
|
.item {
|
width: 100%;
|
min-height: 120px;
|
}
|
|
.bottom-item {
|
margin-right: 30px;
|
}
|
</style>
|