yujialong 2 months ago
parent da0a310c1b
commit 1b50a851b9
  1. 12
      src/pages/allocationReview/list/index.vue
  2. 52
      src/pages/allocationReview/list/setup.vue
  3. 12
      src/pages/allocationReview/records/allocation.vue
  4. 2
      src/pages/allocationReview/records/index.vue

@ -55,7 +55,7 @@
<el-table-column prop="taskAllocationStatus" label="任务分配情况" align="center" width="100"></el-table-column> <el-table-column prop="taskAllocationStatus" label="任务分配情况" align="center" width="100"></el-table-column>
<el-table-column label="操作" align="center" width="220" fixed="right"> <el-table-column label="操作" align="center" width="220" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<template v-if="scope.row.evaluationId && (scope.row.hasManualScoreType || scope.row.allowManualGrading)"> <template v-if="scope.row.seted">
<el-button type="text" @click="toProgress(scope.row)">评阅进度</el-button> <el-button type="text" @click="toProgress(scope.row)">评阅进度</el-button>
<el-button type="text" @click="toSetup(scope.row)">修改评阅设置</el-button> <el-button type="text" @click="toSetup(scope.row)">修改评阅设置</el-button>
<el-button type="text" @click="toTask(scope.row)">任务分配</el-button> <el-button type="text" @click="toTask(scope.row)">任务分配</el-button>
@ -121,7 +121,7 @@ export default {
}, },
{ {
id: 2, id: 2,
name: '已完成' name: '已结束'
}, },
], ],
reviewStatus: [ reviewStatus: [
@ -226,11 +226,9 @@ export default {
const list = pageList.records const list = pageList.records
list.forEach(e => { list.forEach(e => {
// e.reviewStageName = this.reviewStage.find(n => n.id === e.reviewStage).name
// if (e.reviewStatus !== null) e.reviewStatusName = this.reviewStatus.find(n => n.id === e.reviewStatus).name
// e.reviewStageName = this.reviewStage.find(n => n.id === e.reviewStage).name
e.stage = '-' e.stage = '-'
e.time = e.evaluationId && e.hasManualScoreType ? e.seted = e.evaluationId && (e.hasManualScoreType || e.allowManualGrading) //
e.time = e.seted ?
e.isTimed ? e.isTimed ?
e.startTime + ' ~ ' + e.endTime : e.startTime + ' ~ ' + e.endTime :
'不限时' : '不限时' :
@ -262,7 +260,7 @@ export default {
async handleStage () { async handleStage () {
this.list.forEach(e => { this.list.forEach(e => {
let stage = '-' let stage = '-'
if (e.evaluationId && e.hasManualScoreType) { if (e.seted) {
if (e.isTimed) { if (e.isTimed) {
if (e.startTime && e.endTime) { if (e.startTime && e.endTime) {
const startTime = new Date(e.startTime) const startTime = new Date(e.startTime)

@ -3,7 +3,7 @@
<el-drawer title="评阅设置" :visible.sync="setupVisible" size="1200px" :close-on-click-modal="false" <el-drawer title="评阅设置" :visible.sync="setupVisible" size="1200px" :close-on-click-modal="false"
custom-class="setup-dia" @closed="closeDia"> custom-class="setup-dia" @closed="closeDia">
<div class="flex h-full"> <div class="flex h-full">
<el-form class="p-r-10" :model="form" ref="form" label-width="220px" label-suffix=""> <el-form class="flex-1 p-r-10" :model="form" ref="form" label-width="220px" label-suffix="">
<el-form-item prop="name" label="是否隐藏学生信息"> <el-form-item prop="name" label="是否隐藏学生信息">
<el-radio-group v-model="form.anonymizeStudents"> <el-radio-group v-model="form.anonymizeStudents">
<el-radio :label="1"></el-radio> <el-radio :label="1"></el-radio>
@ -11,34 +11,33 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item v-if="row.hasAutoScoreType" prop="name" label="自动判分题是否允许人工评阅"> <el-form-item v-if="row.hasAutoScoreType" prop="name" label="自动判分题是否允许人工评阅">
<div class="relative">
<el-radio-group v-model="form.allowManualGrading"> <el-radio-group v-model="form.allowManualGrading">
<el-radio :label="1"></el-radio> <el-radio :label="1"></el-radio>
<el-tooltip placement="top">
<div slot="content">自动判分题最终得分取最新一次评分</div>
<i class="el-icon-question explain"></i>
</el-tooltip>
<el-radio :label="0"></el-radio> <el-radio :label="0"></el-radio>
</el-radio-group> </el-radio-group>
<p class="tips" style="margin-top: -5px">自动判分题最终得分取最新一次评分</p>
</div>
</el-form-item> </el-form-item>
<template v-if="row.hasManualScoreType"> <el-form-item v-if="row.hasManualScoreType || form.allowManualGrading" prop="name" label="评阅的时间限制">
<el-form-item prop="name" label="评阅的时间限制"> <div class="relative">
<el-radio-group v-model="form.isTimed"> <el-radio-group :disabled="!row.resultsDetails" v-model="form.isTimed">
<el-radio :label="0" :disabled="!row.resultsDetails">不限时</el-radio> <el-radio :label="0">不限时</el-radio>
<el-tooltip placement="top"> <el-radio :label="1">限时</el-radio>
<div slot="content">成绩不公布时可设置评阅时间不限时</div>
<i class="el-icon-question explain"></i>
</el-tooltip>
<el-radio :label="1" :disabled="!row.resultsDetails">限时</el-radio>
</el-radio-group> </el-radio-group>
<el-date-picker v-show="form.isTimed" class="m-l-10" v-model="timed" align="right" unlink-panels <el-date-picker v-show="form.isTimed" class="m-l-10" v-model="timed" align="right" unlink-panels
type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期" clearable type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期" clearable
:picker-options="pickerOptions"></el-date-picker> :picker-options="pickerOptions"></el-date-picker>
<p class="tips">成绩不公布时可设置评阅时间不限时</p>
</div>
</el-form-item> </el-form-item>
<template v-if="row.hasManualScoreType">
<el-form-item prop="name" label="评阅人数"> <el-form-item prop="name" label="评阅人数">
<el-input class="hide-spin" style="width: 200px;" placeholder="请输入" type="number" <el-input class="hide-spin" style="width: 200px;" placeholder="请输入" type="number"
v-model.number="form.reviewersPerQuestion" />&emsp;<span class="fs-12">人工判分题和整体评分表的评阅人数</span> v-model.number="form.reviewersPerQuestion" />&emsp;<span class="tips">人工判分题和整体评分表的评阅人数</span>
</el-form-item> </el-form-item>
<el-form-item prop="name" label="人工判分题最终得分"> <el-form-item class="relative" prop="name" label="最终得分">
<p class="tips exp">人工判分题和整体评分表</p>
<el-radio-group v-model="form.scoreAggregationRule"> <el-radio-group v-model="form.scoreAggregationRule">
<el-radio :label="0">取平均分</el-radio> <el-radio :label="0">取平均分</el-radio>
<el-radio :label="1">取修剪平均分</el-radio> <el-radio :label="1">取修剪平均分</el-radio>
@ -76,7 +75,8 @@
</el-form-item> </el-form-item>
<el-form-item prop="name" label="成绩是否公布"> <el-form-item prop="name" label="成绩是否公布">
<el-radio v-model="row.resultsDetails" :label="0"></el-radio> <el-radio v-model="row.resultsDetails" :label="0"></el-radio>
<span style="margin: 0 10px 0 -20px;font-size: 12px;color: #333;">公布时间{{ row.resultAnnouncementTime <span v-if="!row.resultsDetails" style="margin: 0 10px 0 -20px;font-size: 12px;color: #333;">公布时间{{
row.resultAnnouncementTime
}}</span> }}</span>
<el-radio v-model="row.resultsDetails" style="margin-top: 10px" :label="1"></el-radio> <el-radio v-model="row.resultsDetails" style="margin-top: 10px" :label="1"></el-radio>
</el-form-item> </el-form-item>
@ -110,7 +110,7 @@ export default {
allowManualGrading: 0, allowManualGrading: 0,
anonymizeStudents: 0, anonymizeStudents: 0,
evaluationId: '', evaluationId: '',
isTimed: '', isTimed: 0,
reviewersPerQuestion: '', reviewersPerQuestion: '',
scoreAggregationRule: 0, scoreAggregationRule: 0,
}, },
@ -160,8 +160,9 @@ export default {
if (!this.row.resultsDetails && this.row.hasManualScoreType) { if (!this.row.resultsDetails && this.row.hasManualScoreType) {
const now = await Util.getNow() const now = await Util.getNow()
this.timed = [dayjs(now).format('YYYY-MM-DD HH:mm:ss'), ''] this.timed = [dayjs(now).format('YYYY-MM-DD HH:mm:ss'), '']
this.form.isTimed = 1 //
} }
this.form.isTimed = this.row.resultsDetails ? 0 : 1 //
this.getDetail() this.getDetail()
}, },
// //
@ -240,6 +241,17 @@ export default {
margin-bottom: 10px; margin-bottom: 10px;
} }
.tips {
font-size: 12px;
color: #545454;
&.exp {
position: absolute;
top: 20px;
left: -170px;
}
}
.explain { .explain {
margin: 0 20px 0 -20px; margin: 0 20px 0 -20px;
font-size: 16px; font-size: 16px;
@ -248,7 +260,7 @@ export default {
} }
.info { .info {
flex: 1; width: 362px;
height: 100%; height: 100%;
border-left: 1px solid #ccc; border-left: 1px solid #ccc;

@ -9,10 +9,11 @@
<label>分配方式</label> <label>分配方式</label>
<div> <div>
<el-radio v-model="taskType" label="whole_report" :disabled="!this.manualJudgeCount">按整卷分配</el-radio> <el-radio v-model="taskType" label="whole_report" :disabled="!this.manualJudgeCount">按整卷分配</el-radio>
<p class="tips m-b-20">每份答卷将从以下已选的评阅人员中按照评阅设置的每题评阅人数随机挑选评阅人员对整卷进行评阅且以下已选的每位评阅人员分配到的答卷数量基本平均</p> <p class="tips m-b-20">每份答卷将从以下已选的评阅人员中按评阅设置的评阅人数随机挑选评阅人员进行评阅纯自动判分题的答卷直接由已选评阅人员评阅且每位评阅人员分配到的答卷数量基本平均
</p>
<el-radio v-model="taskType" label="partial_questions" <el-radio v-model="taskType" label="partial_questions"
:disabled="!this.manualJudgeCount">按每道人工判分题分配</el-radio> :disabled="!this.manualJudgeCount">按每道人工判分题分配</el-radio>
<p class="tips">每份答卷的每道人工判分题将从以下题目已选的评阅人员中评阅设置的每题评阅人数随机挑选评阅人员对该题进行评阅以下已选的每位评阅人员分配到的该题答卷数量基本平均</p> <p class="tips">每份答卷的每道人工判分题将从以下已选的评阅人员中按评阅设置的每题评阅人数随机挑选评阅人员进行评阅且每位评阅人员分配到的该题答卷数量基本平均</p>
</div> </div>
</li> </li>
</ul> </ul>
@ -151,8 +152,10 @@ export default {
let i = 0 let i = 0
const allIds = [] const allIds = []
const essays = [] const essays = []
const outlines = []
// const disabledQuesIds = [] // const disabledQuesIds = []
paper.forEach(e => { paper.forEach(e => {
if (e.questionVersions && e.questionVersions.length) {
e.id = e.outlineId e.id = e.outlineId
allIds.push(e.id) allIds.push(e.id)
e.label = e.outlineName e.label = e.outlineName
@ -170,8 +173,11 @@ export default {
}) })
e.children = e.questionVersions e.children = e.questionVersions
delete e.questionVersions delete e.questionVersions
outlines.push(e)
}
}) })
this.outlines = paper this.outlines = outlines
this.allQuesIds = allIds this.allQuesIds = allIds
this.essays = essays this.essays = essays
// this.disabledQuesIds = disabledQuesIds // this.disabledQuesIds = disabledQuesIds

@ -46,7 +46,7 @@
</li> </li>
</ul> </ul>
<div> <div>
<el-button type="primary" @click="batchAlloc">修改分配评阅人员</el-button> <el-button type="primary" @click="batchAlloc">批量分配评阅人员</el-button>
<el-button type="primary" @click="toSetup">修改评阅设置</el-button> <el-button type="primary" @click="toSetup">修改评阅设置</el-button>
<!-- <el-button type="primary">批量导出评分表</el-button> --> <!-- <el-button type="primary">批量导出评分表</el-button> -->
<el-button type="primary">批量导出列表</el-button> <el-button type="primary">批量导出列表</el-button>

Loading…
Cancel
Save