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