feat(exam): 新增词条结果详情查看功能

- 新增后端接口获取指定试卷词条判定结果详情
- 新增前端API调用对应接口
- 在上传结果列表页面点击表格行可弹出详情弹窗
- 新建ExamWordsDetailCard组件展示详细信息
- 显示正确词条和错误词条列表及相关统计信息
- 完善后端数据层及服务层支持详情查询功能
This commit is contained in:
lbw
2025-12-14 15:39:41 +08:00
parent c1b3c92244
commit 1ace63cbe0
10 changed files with 222 additions and 4 deletions

View File

@@ -24,6 +24,7 @@
border
class="w-full"
v-loading="loading"
@row-click="handleRowClick"
>
<el-table-column prop="id" label="ID" width="80" />
<el-table-column prop="studentId" label="学生ID" width="100" />
@@ -53,6 +54,7 @@
</div>
</div>
</div>
<ExamWordsDetailCard v-model="showDetail" :id="selectedId" />
</el-main>
</el-container>
@@ -62,6 +64,7 @@
<script setup>
import Header from '@/layouts/components/Header.vue'
import ExamWordsDetailCard from '@/layouts/components/ExamWordsDetailCard.vue'
import { ref, onMounted } from 'vue'
import { uploadExamWordsPng, getExamWordsResult } from '@/api/exam'
@@ -70,6 +73,8 @@ const pageNo = ref(1)
const pageSize = ref(10)
const totalCount = ref(0)
const loading = ref(false)
const showDetail = ref(false)
const selectedId = ref(null)
async function fetchList() {
loading.value = true
@@ -104,6 +109,11 @@ async function doUpload(options) {
fetchList()
}
function handleRowClick(row) {
selectedId.value = row.id
showDetail.value = true
}
onMounted(() => {
fetchList()
})