imp
2 years ago
4 changed files with 90 additions and 2 deletions
@ -0,0 +1,45 @@
|
||||
class Paper_2 { |
||||
|
||||
constructor(report) { |
||||
this.report = new Report(report); |
||||
} |
||||
|
||||
/** |
||||
* 评分 |
||||
*/ |
||||
score() { |
||||
// 总分数
|
||||
let scores = []; |
||||
|
||||
// 获取需要进行配置对比的组件
|
||||
const wName1 = "名校区消费情况"; |
||||
const widget = this.report.getWidgetByName(wName1); |
||||
if (!widget) { |
||||
alert("未找到" + wName1 + "对应组件"); |
||||
return 0; |
||||
} |
||||
|
||||
// 评分点1 - 组件名是xxx的组件
|
||||
scores.push(this.score_1); |
||||
|
||||
return scores.reduce((pre, cur, curIdx) => { |
||||
const div = document.createElement("div"); |
||||
const curScore = cur(widget); |
||||
div.innerText = "评分点" + (curIdx + 1) + ":" + curScore + "分"; |
||||
document.getElementById("console").append(div); |
||||
return pre + curScore; |
||||
}, 0); |
||||
} |
||||
|
||||
/** |
||||
* 评分点1-标题名称为 "名校区消费情况" |
||||
*/ |
||||
score_1(widget) { |
||||
if (widget.getPlainWidgetName() === '名校区消费情况') { |
||||
return 1;
|
||||
}
|
||||
|
||||
return 0; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,27 @@
|
||||
# 使用方法 |
||||
|
||||
打开根目录下的index.html即可看到评分页面 |
||||
|
||||
# 开发教程 |
||||
|
||||
## 评分思路 |
||||
|
||||
每套试卷都需要一个类处理该套评分规则,每个评分点通过配置的对比,来判断是否给分。 |
||||
|
||||
### 如何知道评分点对应的配置 |
||||
|
||||
方式1:页面上操作查看模板的`save`请求,通过前后JSON配置的对比知道操作对应的配置,从而在开发过程中知道按照什么配置对比给分 |
||||
方式2:做完一个操作前后,如改变图表类型,都进行资源迁移导出配置,解压zip,查看`dashboard\xxx.fbi`文件,文件中配置需要经过JSON.stringify(xxx),转成JSON格式,通过JSON配置对比,知道操作对应的配置 |
||||
|
||||
注意:JSON配置对比可用[https://www.diffchecker.com/] |
||||
|
||||
### 评分点对应的配置有几种类型 |
||||
|
||||
1. 直接配置变化,如切换成分组表,对应的 widget.type 变化,对比widget.getWidgetType()是否等于1即可,参考`paper\paper_1.js`中`score_2`方法 |
||||
2. 一个评分点对应了多个配置,如添加了三个字段,对应的widget.dimensions中多了三个维度,且顺序存在widget.view[10000]中,需要通过多分配置计算对比,才能知道是否得分 |
||||
|
||||
## 如果添加一套试卷的评分点 |
||||
|
||||
1. 在`index.html`的`<select>`中添加一个`<options>` |
||||
2. 在`paper/`目录下添加一套试卷评分的处理类,格式和逻辑见`paper_1.js` |
||||
3. 在`index.js`中`startButton.onclick`方法里添加一条`case`,用于处理新添加的试卷 |
Loading…
Reference in new issue