diff --git a/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js b/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js index 616c86f33..77317792e 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkAppraise.js @@ -180,6 +180,12 @@ class CommonWorkAppraise extends Component{ */}
+ +
{(description || (attachments && attachments.length != 0)) &&
内容 @@ -286,6 +292,7 @@ class CommonWorkAppraise extends Component{
} +
{/* task_type={datalist&&datalist.task_type} */} diff --git a/public/react/src/modules/courses/busyWork/CommonWorkList.js b/public/react/src/modules/courses/busyWork/CommonWorkList.js index 1e8c634f6..a9090a02e 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkList.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkList.js @@ -228,7 +228,7 @@ function buildColumns(that, student_works) { -
{`${record.student_comment_count}名学生进行了匿评`}
+ {record.student_comment_count &&
{`${record.student_comment_count}名学生进行了匿评`}
}
有效平均分:{record.student_score}分
) diff --git a/public/react/src/modules/courses/busyWork/CommonWorkSetting.js b/public/react/src/modules/courses/busyWork/CommonWorkSetting.js index 1574d692d..181a34b1b 100644 --- a/public/react/src/modules/courses/busyWork/CommonWorkSetting.js +++ b/public/react/src/modules/courses/busyWork/CommonWorkSetting.js @@ -259,15 +259,20 @@ class CommonWorkSetting extends Component{ unified_setting: checked }) } + // 启用匿评 anonymous_comment_change = (e) => { const checked = e.target.checked; - const { end_time } = this.state; + const currentEndTime = this._getCurrentEndTime() let evaluation_start, evaluation_end, evaluation_num = 0, absence_penalty = 0; if (checked) { - if (end_time) { - evaluation_start = moment(end_time).add(7, 'days').format(dateFormat) - evaluation_end = moment(end_time).add(21, 'days').format(dateFormat) + if (currentEndTime) { + evaluation_start = moment(currentEndTime).add(7, 'days').format(dateFormat) + evaluation_end = moment(currentEndTime).add(21, 'days').format(dateFormat) + } + if (!this.state.evaluation_num) { evaluation_num = 3 + } + if (!this.state.absence_penalty) { absence_penalty = 2 } } else { @@ -310,6 +315,7 @@ class CommonWorkSetting extends Component{ absence_penalty:value }) } + // 启用匿评申诉 anonymous_appeal_change = (e) => { const { evaluation_end } = this.state; const anonymous_appeal = e.target.checked @@ -389,9 +395,10 @@ class CommonWorkSetting extends Component{ this.setState({ late_penalty: 5 }) - if (this.state.end_time && !this.state.late_time) { + const currentEndTime = this._getCurrentEndTime(); + if (currentEndTime && !this.state.late_time) { this.setState({ - late_time: moment(handleDateString(this.state.end_time)).add(1, 'months').format(dateFormat) + late_time: moment(handleDateString(currentEndTime)).add(1, 'months').format(dateFormat) }) } } @@ -469,6 +476,20 @@ class CommonWorkSetting extends Component{ // } } + _getCurrentEndTime = () => { + const { unified_setting, end_time, rules } = this.state; + if (unified_setting) { + return end_time + } else { + let max_un_unified_setting_end_time = null; + rules.map(item => { + if (!max_un_unified_setting_end_time || moment(item.end_time) > moment(max_un_unified_setting_end_time)) { + max_un_unified_setting_end_time = item.end_time; + } + }) + return max_un_unified_setting_end_time + } + } saveWorkSetting=()=>{ let workId=this.props.match.params.workId; @@ -1077,6 +1098,7 @@ class CommonWorkSetting extends Component{ course_group={adaptered_group_settings} rulesCheckInfo={(info)=>this.rulesCheckInfo(info)} flagPageEdit={true} + moduleName="作业" > } @@ -1254,7 +1276,7 @@ class CommonWorkSetting extends Component{ margin-left: 18px; } `} - +

允许学生对自己作品的匿评评分进行申诉,由教师和助教处理申诉
@@ -1297,7 +1319,7 @@ class CommonWorkSetting extends Component{ - + (学生提交匿评申诉的时间截点) {

{appeal_time_tip}
} @@ -1311,7 +1333,7 @@ class CommonWorkSetting extends Component{ /> - + (学生违规匿评TA人作品时,其成绩将被扣减的分值) {this.state.appeal_penalty_tip &&
{this.state.appeal_penalty_tip}
} @@ -1346,21 +1368,17 @@ class CommonWorkSetting extends Component{ 多项评分配比(选中,则按照比例计算最终成绩) - +

计算说明:
- 优先顺序排前的非零评分 * 100% -
- ( 迟交扣分 + 缺评扣分 * 缺评数 + 违规匿评扣分 * 违规匿评数 )
- 例:有教师评分则教师评分100%,否则教辅评分100%,依次类推 - {/* 教师评分 * 其百分比 + 助教评分 * 其百分比 + 学生匿评平均分 * 其百分比 -
- ( 迟交扣分 + 缺评扣分 * 缺评数 + 违规匿评扣分 * 违规匿评数 )
- -
+ 教师评分 * 其百分比 + 助教评分 * 其百分比 + 学生匿评平均分 * 其百分比 - (
+ 迟交扣分 + 缺评扣分 * 缺评数 + 违规匿评扣分 * 违规匿评数 )

注意
- 非零百分比的评分选项,在没有评分记录的情况下,其百分比平摊到另外的评
- 分选项上。例如:教师评分40% + 助教评分35% + 学生匿评25%,学生A没
- 有得到教师评分,则最终成绩将按照助教评分55% + 学生匿评45%进行计算 */} + 非零百分比的评分选项,若评分记录为空,则其百分比将自动平摊到其它非零
+ 评分选项上。
+ 例:教师评分40% + 助教评分35% + 学生匿评25%,学生A没有教师评分记
+ 录,则其最终成绩按照助教评分55% + 学生匿评45%进行计算

@@ -1392,12 +1410,30 @@ class CommonWorkSetting extends Component{ {
{final_mode_false_tip}
} 单项评分优先(选中,则按照优先顺序计算最终成绩) + +

+ 计算说明:
+ + 优先顺序排前的非零评分 * 100% -
+ ( 迟交扣分 + 缺评扣分 * 缺评数 + 违规匿评扣分 * 违规匿评数 )
+ 例:有教师评分则教师评分100%,否则教辅评分100%,依次类推 + {/* 教师评分 * 其百分比 + 助教评分 * 其百分比 + 学生匿评平均分 * 其百分比 -
+ ( 迟交扣分 + 缺评扣分 * 缺评数 + 违规匿评扣分 * 违规匿评数 )
+ +
+ 注意
+ 非零百分比的评分选项,在没有评分记录的情况下,其百分比平摊到另外的评
+ 分选项上。例如:教师评分40% + 助教评分35% + 学生匿评25%,学生A没
+ 有得到教师评分,则最终成绩将按照助教评分55% + 学生匿评45%进行计算 */} + +

+
教师评分 → 教辅评分 → 学生匿评评分 - (有教师评分则教师评分100%,否则教辅评分100%,依次类推 ) + {/* (有教师评分则教师评分100%,否则教辅评分100%,依次类推 ) */}
diff --git a/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraiseMainEditor.js b/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraiseMainEditor.js index e722ac00b..15300c628 100644 --- a/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraiseMainEditor.js +++ b/public/react/src/modules/courses/graduation/tasks/GraduationTasksappraiseMainEditor.js @@ -197,7 +197,6 @@ class GraduationTasksappraiseMainEditor extends Component{ .mainEditor { padding: 0 10px; padding-bottom: 8px; - height: 288px; } .mainEditorTitle { margin-bottom: 6px; @@ -218,7 +217,7 @@ class GraduationTasksappraiseMainEditor extends Component{ -
+

  - (学生收到{this.props.type==="Exercise"?"试卷":"问卷"}的时间) - (学生可以答题的时间截点) + (学生收到{this.props.moduleName || (this.props.type==="Exercise"?"试卷":"问卷")}的时间) + ({this.props.moduleName == '作业' ? '学生“按时”提交作品的时间截点' : '学生可以答题的时间截点'})

{