提交 e79295c1 authored 作者: 王鹏飞's avatar 王鹏飞

chore: 在线报告支持自动评分

上级 75c0222e
......@@ -36,16 +36,10 @@ function fetchReport() {
getExperimentReport({ experiment_id: route.query.experiment_id, student_id: route.query.student_id }).then(
async res => {
report = res.data.detail
let detail = []
form.comment = report.comment || ''
if (report.score_detail || report.detail) {
try {
detail = JSON.parse(report.score_detail || report.detail)
form.score_detail = detail.map(item => {
item.min_score = parseFloat(item.min_score)
item.commit_score = item.commit_score ? parseFloat(item.commit_score) : 0
item.commit = item.commit || ''
return item
})
form.score_detail = genScoreList(JSON.parse(report.score_detail || report.detail))
} catch (error) {
console.log(error)
await fetchTemplate()
......@@ -53,23 +47,34 @@ function fetchReport() {
} else {
await fetchTemplate()
}
form.comment = report.comment || ''
}
)
}
async function fetchTemplate() {
await getExperimentScoreTemplate({ experiment_id: route.query.experiment_id }).then(res => {
form.score_detail = res.data.detail.rule_list.map(item => {
form.score_detail = genScoreList(res.data.detail.rule_list)
})
}
function genScoreList(list) {
return list.map(item => {
let commitScore = item.commit_score ? parseFloat(item.commit_score) : undefined
// 附件自动评分
if (item.rule_mode === 2 && !commitScore) {
const hasScore = parseFloat(item.has_score)
const noScore = parseFloat(item.no_score)
commitScore = item.files?.length ? hasScore : noScore
}
return {
...item,
min_score: parseFloat(item.min_score),
commit_score: item.commit_score ? parseFloat(item.commit_score) : 0,
commit_score: commitScore,
commit: item.commit || ''
}
})
})
}
onMounted(() => {
fetchInfo()
fetchReport()
......@@ -77,7 +82,7 @@ onMounted(() => {
const score = $computed(() => {
const result = form.score_detail.reduce((result, item) => {
return result + item.commit_score
return result + (item.commit_score || 0)
}, 0)
return parseFloat(result.toFixed(2))
})
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论