ソースを参照

feat: 达成度报告新增达成系数

zhangjie 8 ヶ月 前
コミット
299dd826bf

+ 18 - 8
src/modules/target/components/target-statistics/DetailTargetStatistics.vue

@@ -356,6 +356,12 @@
             align="center"
             width="100"
           ></el-table-column>
+          <el-table-column
+            label="达成系数"
+            prop="targetRate"
+            align="center"
+            width="100"
+          ></el-table-column>
         </el-table>
       </div>
 
@@ -371,11 +377,12 @@
           class="target-suggest mb-4"
         >
           <h4 class="part-title">{{ item.targetName }}</h4>
-          <div class="chart-box" style="height: 400px; margin-top: 20px">
-            <v-chart
-              v-if="item.chartOption"
-              :option="item.chartOption"
-            ></v-chart>
+          <div
+            v-if="item.chartOption"
+            class="chart-box"
+            style="height: 400px; margin: 10px 0"
+          >
+            <v-chart :option="item.chartOption"></v-chart>
           </div>
 
           <el-form label-position="top">
@@ -434,7 +441,7 @@ import {
   targetStatisticsChangeCheck,
 } from "../../api";
 import { downloadByApi } from "@/plugins/download";
-import { calcSum } from "@/plugins/utils";
+import { calcSum, toPrecision } from "@/plugins/utils";
 import timeMixin from "@/mixins/timeMixin";
 
 export default {
@@ -531,7 +538,7 @@ export default {
           courseSuggest: item.courseSuggest,
         };
       });
-      const courseTargetScatterMap = data.courseTargetScatterMap;
+      const courseTargetScatterMap = data.courseTargetScatterMap || {};
 
       this.courseSuggest = data.courseEvaluationResultInfo.targetList.map(
         (target) => {
@@ -847,6 +854,8 @@ export default {
       return options;
     },
     getTargetChartOption(data, targetName) {
+      if (!data.length) return null;
+
       const dataList = data.map((item, index) => {
         const val = Object.entries(item)[0];
         return {
@@ -1008,6 +1017,7 @@ export default {
           name: student.name,
           studentCode: student.studentCode,
           score: student.score,
+          targetRate: toPrecision(student.score / 100, 2),
         };
 
         const finalScoreKey =
@@ -1050,7 +1060,7 @@ export default {
         if (columnIndex === 0) {
           return [1, 2];
         } else if (columnIndex === 2) {
-          return [1, maxTargetColumnCount + 1];
+          return [1, maxTargetColumnCount + 2];
         } else {
           return [0, 0];
         }

+ 86 - 65
src/modules/target/components/target-statistics/data.json

@@ -1,25 +1,25 @@
 {
-  "commonInfo": { //公共信息
-    "examId": "460482797140705280", //考试id
-    "courseCode": "0400", //课程编码
-    "courseName": "微观经济学1", //课程名称
-    "paperNumber": "0400-001" //试卷编号
+  "commonInfo": {
+    "examId": "460482797140705280",
+    "courseCode": "0400",
+    "courseName": "微观经济学1",
+    "paperNumber": "0400-001"
   },
-  "courseBasicInfo": { //课程基本情况
-    "courseType": "测试课程类别2", //课程基本情况
-    "credit": "22", //学分
-    "period": "23", //学时
-    "evaluationMode": "测试考核方式1", //考核方式
-    "openTime": "测试学期1", //开课时间
-    "teachingObject": "测试授课对象1", //授课对象
-    "selectionCount": 5, //选课人数
-    "participantCount": 3, //参评人数
-    "courseDegree": 1, //课程目标达成度期望值
-    "teacher": "测试任课老师1", //任课老师
-    "director": "测试评价责任人1", //评价责任人
-    "participant": "测试评价参与人1" //评价参与人
+  "courseBasicInfo": {
+    "courseType": "测试课程类别2",
+    "credit": "22",
+    "period": "23",
+    "evaluationMode": "测试考核方式1",
+    "openTime": "测试学期1",
+    "teachingObject": "测试授课对象1",
+    "selectionCount": 5,
+    "participantCount": 3,
+    "courseDegree": 1,
+    "teacher": "测试任课老师1",
+    "director": "测试评价责任人1",
+    "participant": "测试评价参与人1"
   },
-  "courseEvaluationSpreadInfo": { //课程目标考核分布,参考json结构,试卷蓝图json,https://doc.qmth.com.cn/pages/viewpage.action?pageId=65373196
+  "courseEvaluationSpreadInfo": {
     "questionInfo": [
       {
         "mainNumber": 1,
@@ -597,10 +597,10 @@
         ]
       }
     ],
-    "scoreList": { //成绩分布图
-      "failCount": 3, //不及格人数
-      "failRate": 6, //不及格比率
-      "scoreRange": [ //分数范围
+    "scoreList": {
+      "failCount": 3,
+      "failRate": 6,
+      "scoreRange": [
         {
           "studentCount": 1,
           "minScore": 60,
@@ -640,25 +640,25 @@
       ]
     }
   },
-  "courseEvaluationResultInfo": { //课程目标达成评价结果
-    "targetEvaluationSumValue": 1.25, //课程总目标达成度评价值
+  "courseEvaluationResultInfo": {
+    "targetEvaluationSumValue": 1.25,
     "targetList": [
       {
         "targetId": "1",
         "targetName": "课程目标1",
         "graduationRequirement": "测试毕业要求1",
         "graduationRequirementPoint": "测试毕业要求1",
-        "targetSumWeight": 50, //总权重
-        "targetSumScore": 50, //总目标分值
-        "evaluationValue": 0.71, //目标达成评价值
-        "evaluationList": [ //评价环节列表
+        "targetSumWeight": 50,
+        "targetSumScore": 50,
+        "evaluationValue": 0.71,
+        "evaluationList": [
           {
             "targetId": "1",
             "evaluationId": "498886642380050432",
-            "evaluation": "作业1-1", //名称
-            "targetWeight": 20, //权重
-            "targetScore": 2.4, //目标分值
-            "targetAvgScore": 2.23 //实际平均分
+            "evaluation": "作业1-1",
+            "targetWeight": 20,
+            "targetScore": 2.4,
+            "targetAvgScore": 2.23
           },
           {
             "targetId": "1",
@@ -771,34 +771,34 @@
       }
     ]
   },
-  "courseEvaluationResultDetailInfo": { //课程考核成绩评价明细结果
+  "courseEvaluationResultDetailInfo": {
     "examStudentList": [
       {
-        "name": "刘雪蕾", //考生姓名
-        "studentCode": "Z20310143", //学号
-        "administrativeClass": "班级一", //班级
-        "score": 64.91, //综合成绩
+        "name": "刘雪蕾",
+        "studentCode": "Z20310143",
+        "administrativeClass": "班级一",
+        "score": 64.91,
         "targetList": [
           {
             "targetId": "1",
             "targetName": "课程目标1",
             "graduationRequirement": "测试毕业要求1",
-            "targetSumWeight": 50, //目标总权重
-            "targetSumScore": 50, //目标总分值
+            "targetSumWeight": 50,
+            "targetSumScore": 50,
             "finalScore": {
               "evaluationId": "498886642380050437",
               "evaluation": "期末考试",
-              "targetWeight": 70, //目标权重
-              "targetScore": 28, //目标分值
-              "targetMatrixSumScore": 22.05, //目标总换算分
+              "targetWeight": 70,
+              "targetScore": 28,
+              "targetMatrixSumScore": 22.05,
               "dimensionList": [
                 {
                   "targetId": "1",
                   "dimensionId": "10001",
                   "dimensionCode": "A1",
                   "dimensionName": "第一节 映射与函数",
-                  "dimensionScore": 6, //卷面分
-                  "dimensionMatrixScore": 4.2 //知识点换算分
+                  "dimensionScore": 6,
+                  "dimensionMatrixScore": 4.2
                 },
                 {
                   "targetId": "1",
@@ -859,18 +859,18 @@
               ]
             },
             "usualScore": {
-              "targetWeight": 30, //目标权重
+              "targetWeight": 30,
               "scoreList": [
                 {
                   "targetId": "1",
                   "evaluationId": "498886642380050432",
                   "evaluation": "作业1-1",
-                  "targetWeight": 20, //目标权重
-                  "targetScore": 2.4, //目标分值
-                  "targetSumWeight": 30, //目标总权重
-                  "targetSumScore": 12, //目标总分值
-                  "score": 95, //卷面分
-                  "matrixScore": 2.28 //目标换算分
+                  "targetWeight": 20,
+                  "targetScore": 2.4,
+                  "targetSumWeight": 30,
+                  "targetSumScore": 12,
+                  "score": 95,
+                  "matrixScore": 2.28
                 },
                 {
                   "targetId": "1",
@@ -1339,7 +1339,7 @@
           }
         ]
       },
-      { //目标分,web报表不展示
+      {
         "name": "目标分",
         "studentCode": "目标分",
         "administrativeClass": null,
@@ -1354,8 +1354,8 @@
             "finalScore": {
               "evaluationId": "498886642380050437",
               "evaluation": "期末考试",
-              "targetWeight": 70, //目标权重
-              "targetScore": 28, //目标分
+              "targetWeight": 70,
+              "targetScore": 28,
               "dimensionList": [
                 {
                   "targetId": "1",
@@ -1423,7 +1423,7 @@
                   "evaluationId": "498886642380050432",
                   "evaluation": "作业1-1",
                   "targetWeight": 20,
-                  "targetScore": 2.4, //目标分
+                  "targetScore": 2.4,
                   "targetSumWeight": 30,
                   "targetSumScore": 12,
                   "score": 95,
@@ -1617,7 +1617,7 @@
           }
         ]
       },
-      { //web报表和word报表需展示
+      {
         "name": "平均分",
         "studentCode": "平均分",
         "administrativeClass": null,
@@ -1635,7 +1635,7 @@
               "evaluation": "期末考试",
               "targetWeight": 70,
               "targetScore": 28,
-              "targetMatrixSumScore": 35.7, //word报表展示课程目标转换总分
+              "targetMatrixSumScore": 35.7,
               "dimensionList": [
                 {
                   "targetId": "1",
@@ -1644,7 +1644,7 @@
                   "dimensionName": "第一节 映射与函数",
                   "dimensionScore": 6,
                   "dimensionMatrixScore": 8.4,
-                  "dimensionMatrixAvgScore": 4.2 //web报表展示知识点平均分
+                  "dimensionMatrixAvgScore": 4.2
                 },
                 {
                   "targetId": "1",
@@ -1710,7 +1710,7 @@
                   "dimensionMatrixAvgScore": 1.05
                 }
               ],
-              "matrixAvgScore": 17.85 //word报表展示期末考试总平均分
+              "matrixAvgScore": 17.85
             },
             "usualScore": {
               "targetWeight": 30,
@@ -1725,7 +1725,7 @@
                   "targetSumScore": 12,
                   "score": 95,
                   "matrixScore": 4.46,
-                  "matrixAvgScore": 2.23 //web和word报表展示平时成绩总平均分
+                  "matrixAvgScore": 2.23
                 },
                 {
                   "targetId": "1",
@@ -1929,7 +1929,7 @@
           }
         ]
       },
-      { //word报表展示
+      {
         "name": "各课程目标平均分",
         "studentCode": "各课程目标平均分",
         "administrativeClass": null,
@@ -1941,7 +1941,7 @@
             "graduationRequirement": "测试毕业要求1",
             "targetSumWeight": 50,
             "targetSumScore": 50,
-            "targetMatrixAvgScore": 56.63 //课程目标总平均分
+            "targetMatrixAvgScore": 56.63
           },
           {
             "targetId": "2",
@@ -1955,8 +1955,29 @@
       }
     ]
   },
-  "courseSuggest": "[{"targetId":"535826170927648768","targetName":"m课程目标01","finishPoints":"123","requirementPoints":"456","courseSuggest":"789"},{"targetId":"535826276053684224","targetName":"m课程目标02","finishPoints":"111","requirementPoints":"222","courseSuggest":"333"},{"targetId":"535826394274336768","targetName":"m课程目标03","finishPoints":"444","requirementPoints":"555","courseSuggest":"666"}]",
-  //2024-10-08新增
+  "courseSuggest": [
+    {
+      "targetId": "535826170927648768",
+      "targetName": "m课程目标01",
+      "finishPoints": "123",
+      "requirementPoints": "456",
+      "courseSuggest": "789"
+    },
+    {
+      "targetId": "535826276053684224",
+      "targetName": "m课程目标02",
+      "finishPoints": "111",
+      "requirementPoints": "222",
+      "courseSuggest": "333"
+    },
+    {
+      "targetId": "535826394274336768",
+      "targetName": "m课程目标03",
+      "finishPoints": "444",
+      "requirementPoints": "555",
+      "courseSuggest": "666"
+    }
+  ],
   "courseTargetScatterMap": {
     "535826170927648768": [
       {