diff --git a/paper/core/Widget.js b/paper/core/Widget.js index 795c5b2..3ee9905 100644 --- a/paper/core/Widget.js +++ b/paper/core/Widget.js @@ -32,4 +32,8 @@ class Widget { return this.pureName; } + getWidgetType() { + return this.type; + } + } \ No newline at end of file diff --git a/paper/paper_1.js b/paper/paper_1.js index ba92e91..90e9a98 100644 --- a/paper/paper_1.js +++ b/paper/paper_1.js @@ -21,6 +21,9 @@ class Paper_1 { // 得分点1 - 组件名是xxx的组件 scores.push(this.score_1); + // 评分点2 - 组件名是xxx的组件 + scores.push(this.score_1); + return scores.reduce((pre, cur, curIdx) => { const div = document.createElement("div"); @@ -42,9 +45,18 @@ class Paper_1 { return 0; } -} + /** + * 评分点2-分组表 + */ + score_2(widget) { + if (widget.getWidgetType() === 1) { + return 1; + } -// const paper1 = new Paper_1({ + return 0; + } + +} // "version": 20210913, // "layoutRatio": { // "x": 0.3611, diff --git a/paper/paper_2.js b/paper/paper_2.js index e69de29..f7e41ac 100644 --- a/paper/paper_2.js +++ b/paper/paper_2.js @@ -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; + } + +} \ No newline at end of file diff --git a/readme.md b/readme.md index e69de29..687e0a2 100644 --- a/readme.md +++ b/readme.md @@ -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`的`