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

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

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