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

chore: update

上级 d4aa4f79
......@@ -116,6 +116,11 @@ function handlePercentChange(row: any, index: number) {
row.percent = Math.min(100 - otherTotal, row.percent)
})
}
function rowScore(percent = 0) {
const score = parseFloat(props.data.score) || 0
return (percent / 100) * score
}
</script>
<template>
......@@ -126,19 +131,26 @@ function handlePercentChange(row: any, index: number) {
@update:modelValue="$emit('update:modelValue')">
<el-form ref="formRef" :model="form" label-suffix=":">
<el-form-item label="实验名称">{{ data?.name }}</el-form-item>
<el-form-item label="是否允许查看成绩明细" prop="is_show">
<el-radio-group v-model="form.is_show">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="是否允许查看成绩明细" prop="is_show">
<el-radio-group v-model="form.is_show">
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="实验总成绩">{{ data?.score }}</el-form-item>
</el-col>
</el-row>
<el-form-item>
<el-row justify="space-between" style="width: 100%">
<p>实验成绩规则:</p>
<el-button type="primary" :icon="Plus" @click="handleAdd"></el-button>
</el-row>
<el-table :data="form.rule_list" row-key="id">
<el-table-column prop="name" width="250">
<el-table-column prop="name" width="200">
<template #default="{ row }">
<el-input v-model="row.name" :maxlength="20" style="width: 100%" v-if="row.type === 5" />
<el-select
......@@ -158,13 +170,16 @@ function handlePercentChange(row: any, index: number) {
</el-table-column>
<el-table-column prop="rule_mode">
<template #default="{ row }">
<el-radio-group v-model="row.rule_mode">
<el-radio-group v-model="row.rule_mode" size="small">
<el-radio :label="1">手工评分</el-radio>
<el-radio :label="2" v-if="[2, 3].includes(row.type)">自动评分</el-radio>
</el-radio-group>
</template>
</el-table-column>
<el-table-column align="right" width="70">
<el-table-column width="100">
<template #default="{ row }">满分:{{ rowScore(row.percent) }} </template>
</el-table-column>
<el-table-column align="right" width="60">
<template #default="{ $index, row }">
<el-button text type="primary" @click="handleRemove($index)" v-if="row.type !== 1">删除</el-button>
</template>
......@@ -185,7 +200,7 @@ function handlePercentChange(row: any, index: number) {
<style lang="scss" scoped>
.total {
width: 100%;
padding: 10px 250px;
padding: 10px 200px;
box-sizing: border-box;
p {
margin-left: 16px;
......
......@@ -74,7 +74,7 @@ const teacherText = $computed(() => {
</template>
<!-- 附件组件 -->
<template v-else-if="item.type === 2">
<el-table :data="[{}, {}]" stripe :header-cell-style="{ background: '#ededed' }">
<el-table stripe :header-cell-style="{ background: '#ededed' }">
<el-table-column label="序号" type="index" width="80px" align="center"></el-table-column>
<el-table-column label="附件类型" align="center"></el-table-column>
<el-table-column label="附件名称" align="center"></el-table-column>
......
<script setup>
import { getExperimentGradeRule } from '../api'
const props = defineProps({ experiment_id: String })
const props = defineProps({ data: Object })
const detail = reactive({ is_show: undefined, rule_list: [] })
const canViewText = $computed(() => {
const map = { 1: '是', 0: '否' }
......@@ -9,7 +9,7 @@ const canViewText = $computed(() => {
})
function fetchInfo() {
getExperimentGradeRule({ experiment_id: props.experiment_id }).then(res => {
getExperimentGradeRule({ experiment_id: props.data.id }).then(res => {
const data = res.data.detail
let ruleList = []
try {
......@@ -34,7 +34,8 @@ onMounted(() => {
<el-form-item label="实验成绩规则" align="right">
<el-form label-suffix=":">
<el-form-item :label="item.name" v-for="(item, index) in detail.rule_list" :key="index">
{{ item.percent }}%
<span>{{ item.percent }}%</span>
<span style="padding-left: 80px">满分:{{ (data.score * item.percent) / 100 }}</span>
</el-form-item>
</el-form>
</el-form-item>
......
......@@ -144,6 +144,6 @@ const reportRulesVisible = $ref(false)
v-model="studentListVisible"
:data="rowData"
v-if="studentListVisible && rowData"></StudentListDialog>
<ViewGradeRules v-model="gradeRulesVisible" :experiment_id="id" v-if="gradeRulesVisible"></ViewGradeRules>
<ViewGradeRules v-model="gradeRulesVisible" :data="detail" v-if="gradeRulesVisible && detail"></ViewGradeRules>
<ViewReportRules v-model="reportRulesVisible" :experiment_id="id" v-if="reportRulesVisible"></ViewReportRules>
</template>
......@@ -172,7 +172,10 @@ const resultVisible = $ref(false)
</el-row>
</el-form-item>
<div class="score-result">
<p class="score-result__total">{{ scoreValue(score) }}</p>
<div class="score-result__total">
<p class="t1">{{ scoreValue(score) }}</p>
<p class="t2">满分:{{ experiment.score }}</p>
</div>
<el-table
:data="form.score_details"
stripe
......@@ -182,6 +185,7 @@ const resultVisible = $ref(false)
<el-table-column label="权重" prop="percent" align="center">
<template #default="{ row }"> {{ row.percent }}% </template>
</el-table-column>
<el-table-column label="满分" prop="score" align="center"></el-table-column>
<el-table-column label="得分" prop="commit_score" align="center"></el-table-column>
<el-table-column label="操作" prop="commit_score" align="center">
<template #default="{ row }">
......@@ -266,7 +270,9 @@ const resultVisible = $ref(false)
min-width: 120px;
white-space: nowrap;
text-align: center;
font-size: 30px;
color: var(--main-color);
.t1 {
font-size: 30px;
color: var(--main-color);
}
}
</style>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论