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

bug fixes

上级 3b3fb049
...@@ -171,7 +171,7 @@ function rowScore(percent = 0) { ...@@ -171,7 +171,7 @@ function rowScore(percent = 0) {
<el-table-column prop="rule_mode"> <el-table-column prop="rule_mode">
<template #default="{ row }"> <template #default="{ row }">
<el-radio-group v-model="row.rule_mode" size="small"> <el-radio-group v-model="row.rule_mode" size="small">
<el-radio :label="1">工评分</el-radio> <el-radio :label="1">工评分</el-radio>
<el-radio :label="2" v-if="[2, 3].includes(row.type)">自动评分</el-radio> <el-radio :label="2" v-if="[2, 3].includes(row.type)">自动评分</el-radio>
</el-radio-group> </el-radio-group>
</template> </template>
......
...@@ -49,6 +49,9 @@ function handleChange(data: any, index: number) { ...@@ -49,6 +49,9 @@ function handleChange(data: any, index: number) {
datalist[index] = data datalist[index] = data
emit('update:modelValue', datalist) emit('update:modelValue', datalist)
} }
function handleDraggableUpdate() {
emit('update:modelValue', datalist)
}
</script> </script>
<template> <template>
...@@ -63,13 +66,14 @@ function handleChange(data: any, index: number) { ...@@ -63,13 +66,14 @@ function handleChange(data: any, index: number) {
<slot name="header"></slot> <slot name="header"></slot>
</div> </div>
<div class="report-design-bd"> <div class="report-design-bd">
<draggable v-model="datalist" item-key="id"> <draggable v-model="datalist" item-key="id" @update="handleDraggableUpdate">
<template #item="{ element, index }"> <template #item="{ element, index }">
<div class="report-design-item-card"> <div class="report-design-item-card">
<component <component
:is="getComponent(element.type)" :is="getComponent(element.type)"
:index="index" :index="index"
:data="element" :data="element"
:key="index"
@change="(data:any) => handleChange(data, index)" /> @change="(data:any) => handleChange(data, index)" />
<el-button type="danger" :icon="Delete" circle @click="handleRemove(index)" /> <el-button type="danger" :icon="Delete" circle @click="handleRemove(index)" />
</div> </div>
......
...@@ -55,11 +55,7 @@ function handleScoreChange(value: number) { ...@@ -55,11 +55,7 @@ function handleScoreChange(value: number) {
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item <el-form-item label="组件提示信息" label-width="130px" :prop="'detail_list.' + index + '.notice_message'">
label="组件提示信息"
label-width="130px"
:prop="'detail_list.' + index + '.notice_message'"
:rules="[{ required: true, message: '请输入' }]">
<el-input <el-input
type="textarea" type="textarea"
v-model="form.notice_message" v-model="form.notice_message"
......
...@@ -55,11 +55,7 @@ function handleScoreChange(value: number) { ...@@ -55,11 +55,7 @@ function handleScoreChange(value: number) {
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item <el-form-item label="思考题题干内容" label-width="130px" :prop="'detail_list.' + index + '.question_stem'">
label="思考题题干内容"
label-width="130px"
:prop="'detail_list.' + index + '.question_stem'"
:rules="[{ required: true, message: '请输入' }]">
<el-input <el-input
type="textarea" type="textarea"
v-model="form.question_stem" v-model="form.question_stem"
......
...@@ -30,12 +30,14 @@ onMounted(() => { ...@@ -30,12 +30,14 @@ onMounted(() => {
<template> <template>
<el-dialog title="实验成绩规则" width="500px"> <el-dialog title="实验成绩规则" width="500px">
<el-form :column="1" label-width="170px" label-position="right" label-suffix=":" v-if="detail"> <el-form :column="1" label-width="170px" label-position="right" label-suffix=":" v-if="detail">
<el-form-item label="是否允许查看成绩明细" align="right">{{ canViewText }}</el-form-item> <el-form-item label="是否允许查看成绩明细">{{ canViewText }}</el-form-item>
<el-form-item label="实验成绩规则" align="right"> <el-form-item label="实验成绩规则">
<el-form label-suffix=":"> <el-form label-suffix=":" style="width: 100%">
<el-form-item :label="item.name" v-for="(item, index) in detail.rule_list" :key="index"> <el-form-item :label="item.name" v-for="(item, index) in detail.rule_list" :key="index">
<span>{{ item.percent }}%</span> <div style="width: 100%; display: flex; text-align: left">
<span style="padding-left: 80px">满分:{{ (data.score * item.percent) / 100 }}</span> <span style="flex: 1">{{ item.percent }}%</span>
<span style="min-width: 80px">满分:{{ (data.score * item.percent) / 100 }}</span>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-form-item> </el-form-item>
......
...@@ -60,6 +60,13 @@ const total = $computed(() => { ...@@ -60,6 +60,13 @@ const total = $computed(() => {
return result + (item.score || 0) return result + (item.score || 0)
}, 0) }, 0)
}) })
watch(
form.detail_list,
() => {
console.log(1)
},
{ deep: true }
)
// 保存 // 保存
function handleSubmit() { function handleSubmit() {
......
...@@ -33,7 +33,7 @@ export const gradeRuleList = json2Array(gradeRule) ...@@ -33,7 +33,7 @@ export const gradeRuleList = json2Array(gradeRule)
// 实验报告评分规则 // 实验报告评分规则
export const reportScoreRule: Record<number, any> = { export const reportScoreRule: Record<number, any> = {
1: '工评分', 1: '工评分',
2: '自动评分' 2: '自动评分'
} }
export const reportScoreRuleList = json2Array(reportScoreRule) export const reportScoreRuleList = json2Array(reportScoreRule)
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论