瀏覽代碼

考试试题模拟数据以及知识点模拟数据

psycho 5 年之前
父節點
當前提交
e4c767240e
共有 21 個文件被更改,包括 1238 次插入175 次删除
  1. 72 8
      TEAMModelOS/ClientApp/common/BaseExamList.vue
  2. 4 4
      TEAMModelOS/ClientApp/components/student-analysis/total/BaseKnowledgeBar.vue
  3. 5 10
      TEAMModelOS/ClientApp/components/student-analysis/total/BaseKnowledgeDetail.vue
  4. 2 2
      TEAMModelOS/ClientApp/components/student-analysis/total/BaseLineBar.vue
  5. 4 0
      TEAMModelOS/ClientApp/components/student-analysis/total/BaseMyTable.vue
  6. 8 6
      TEAMModelOS/ClientApp/components/student-analysis/total/BasePie.vue
  7. 61 4
      TEAMModelOS/ClientApp/components/student-analysis/total/BaseTestScatter.vue
  8. 24 6
      TEAMModelOS/ClientApp/static/examList.json
  9. 83 0
      TEAMModelOS/ClientApp/static/exerciseList.json
  10. 82 42
      TEAMModelOS/ClientApp/static/knowledgeList.json
  11. 752 0
      TEAMModelOS/ClientApp/static/testScatter.json
  12. 3 1
      TEAMModelOS/ClientApp/store/module/totalAnalysis.js
  13. 1 1
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/AchievementAnalysis/AchievementAnalysis.css
  14. 1 1
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/AchievementAnalysis/AchievementAnalysis.vue
  15. 1 1
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/EvaluationList/EvaluationList.vue
  16. 37 10
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/KnowledgeAnalysis/KnowledgeAnalysis.vue
  17. 37 39
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/KnowledgeAnalysis/ScoreDetails.vue
  18. 6 8
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/TestAnalysis/TestAnalysis.css
  19. 30 25
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/TestAnalysis/TestAnalysis.vue
  20. 1 0
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/index.css
  21. 24 7
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/index.vue

+ 72 - 8
TEAMModelOS/ClientApp/common/BaseExamList.vue

@@ -3,15 +3,18 @@
     <!-- 搜索框区域 -->
     <Input v-model="searchValue" placeholder="请输入测验名称或其他关键字..." />
 
-    <!-- 选择器区域 -->
+    <!-- 选择器 区域 -->
     <div class="ex-select-wrap">
-      <Select v-model="selectGrade">
+      <Select v-model="selectPeriod" @on-change="periodChange">
+        <Option v-for="(item,index) in periodList" :value="index" :key="index">{{ item }}</Option>
+      </Select>
+      <Select v-model="selectGrade" @on-change="gradeChange">
         <Option v-for="(item,index) in gradeList" :value="index" :key="index">{{ item }}</Option>
       </Select>
-      <Select v-model="selectTerm">
+      <Select v-model="selectTerm" @on-change="termChange">
         <Option v-for="(item,index) in termList" :value="index" :key="index">{{ item }}</Option>
       </Select>
-      <Select v-model="selectExamType">
+      <Select v-model="selectExamType" @on-change="examTypeChange">
         <Option v-for="(item,index) in examTypeList" :value="index" :key="index">{{ item }}</Option>
       </Select>
     </div>
@@ -21,7 +24,8 @@
     </div>
     <!-- 测验列表展示区域 -->
     <div class="ex-list-wrap scrollstyle">
-      <div v-for="(item,index) in examList" :class="['list-item',examIndex == index ? 'list-item-active' : '']" :key="index" @click="handleExamClick(index,item)">
+      <div class="no-data-text" v-if="!examList.length">暂无数据</div>
+      <div v-else v-for="(item,index) in examList" :class="['list-item',examIndex == index ? 'list-item-active' : '']" :key="index" @click="handleExamClick(index,item)">
         <p class="list-item-type"><span class="type1" :style="{color:colorTransfer[item.examType],borderColor:colorTransfer[item.examType]}">{{item.examType}}</span></p>
         <span class="list-item-name">{{item.name}}</span>
         <span class="list-item-info">{{item.joinNum}}人 | {{item.date}}</span>
@@ -38,11 +42,13 @@
     data() {
       return {
         searchValue: "",
+        selectPeriod:0,
         selectGrade: 0,
         selectTerm: 0,
         selectExamType: 0,
-        gradeList: ['所有年级','高中','初中'],
-        termList: ['所有学年期','上学期','下学期'],
+        periodList: ['所有学段','高中','初中'],
+        gradeList: [],
+        termList: [],
         examTypeList: ['所有测验类型','模拟测验','校内测验','全国测验'],
         examList: [],
         examIndex: 0,
@@ -66,6 +72,54 @@
       })
     },
     methods: {
+
+      //学段选择
+      periodChange(val) {
+        if (val == 0) {
+          this.selectGrade = 0;
+          this.gradeChange(0);
+        } else if (val == 1) {
+          this.gradeList = ['所有年级', '高一', '高二', '高三'];
+          this.selectGrade = 1;
+          this.gradeChange(1);
+        } else {
+          this.gradeList = ['所有年级', '初一', '初二', '初三'];
+          this.selectGrade = 1;
+          this.gradeChange(1);
+        }
+
+      },
+      //年级选择
+      gradeChange(val) {
+        this.termList = ['所有学年期', '上学期', '下学期'];
+        this.selectTerm = val == 0 ? 0 : 1;
+        this.termChange(this.selectTerm);
+      },
+      //学期选择
+      termChange(val) {
+        console.log(this.gradeList[this.selectGrade]);
+        let currentGrade = this.gradeList[this.selectGrade];
+        let currentTerm = this.termList[val];
+        this.handleFilterExam(currentGrade, currentTerm);
+      },
+      //测验类型选择
+      examTypeChange(val) {
+
+      },
+
+
+      handleFilterExam(grade, term) {
+        if (this.selectPeriod == 0 && grade == "所有年级" && term == "所有学年期") {
+          this.examList = examList;
+        } else {
+          console.log(grade, term);
+        this.examList = examList.filter(item => item.grade == grade && item.term == term);
+        console.log(this.examList);
+
+        }
+              },
+
+
       handleExamClick(index, item) {
         console.log(item);
         this.examIndex = index;
@@ -98,6 +152,15 @@
     border-bottom: 1px solid rgba(128,128,128,.3);
   }
 
+  .ex-list-container .no-data-text {
+        width: 100%;
+        font-size: 20px;
+        font-weight: bold;
+        color: #777777;
+        text-align: center;
+        padding-top: 30px;
+  }
+
   .ex-list-wrap {
     width: 100%;
     overflow-y: auto;
@@ -145,7 +208,8 @@
     flex-direction:row;
     justify-content:space-between;
     cursor:pointer;
-    }
+    box-shadow: 0px 1px 3px 0px #5a5a5a;
+  }
   .ex-list-container .btn-more .ivu-icon {
     font-size:16px;
     margin-left:2px;

+ 4 - 4
TEAMModelOS/ClientApp/components/student-analysis/total/BaseKnowledgeBar.vue

@@ -4,11 +4,11 @@
 
 <script>
 export default {
-    name: "hello",
     props: ['echartData'],
   data() {
     return {
-      msg: "Welcome to Your Vue.js App"
+      x: ['方程与不等式', '图形的性质', '统计与概率', '函数', '图形的相似', '锐角三角函数', '几何图形初步', '投影与视图'],
+      y:[28,10,23,25,11,10,12,10]
     };
   },
   mounted() {
@@ -81,7 +81,7 @@ export default {
           splitArea: {
             show: false // 是否显示,默认为false
           },
-          data:this.echartData.map(item => item.name)
+          data: this.x
         },
         yAxis: {
           show: true, // 是否显示
@@ -130,7 +130,7 @@ export default {
               width: 20,
             },
             barWidth:30,
-            data:this.echartData.map(item => item.entryRate)
+            data:this.y
           }]
       };
 

+ 5 - 10
TEAMModelOS/ClientApp/components/student-analysis/total/BaseKnowledgeDetail.vue

@@ -8,7 +8,8 @@ export default {
     props: ['echartData'],
   data() {
     return {
-      msg: "Welcome to Your Vue.js App"
+      x: ['方程与不等式', '图形的性质', '统计与概率', '函数', '图形的相似', '锐角三角函数', '几何图形初步', '投影与视图'],
+      y:[28,10,23,25,11,10,12,10]
     };
   },
   mounted() {
@@ -81,7 +82,7 @@ export default {
           splitArea: {
             show: false // 是否显示,默认为false
           },
-          data:this.echartData.map(item => item.name)
+          data:this.x
         },
         yAxis: {
           show: true, // 是否显示
@@ -130,7 +131,7 @@ export default {
               width: 20,
             },
             barWidth:30,
-            data:this.echartData.map(item => item.entryRate)
+            data:this.y
           }]
       };
 
@@ -142,13 +143,7 @@ export default {
 
       let that = this;
       myBar.on('click', function (params) {
-        let className = params.name;
-        if (className == "高二5班") {
-          //that.$router.push('')
-          that.$router.push({path: '/total/achievement/entryTables', replace: true})
-        } else {
-          that.$Message.warning("暂不支持查看其它班级数据!")
-        }
+        that.$emit('handleItemClick', params);
       })
     }
   }

+ 2 - 2
TEAMModelOS/ClientApp/components/student-analysis/total/BaseLineBar.vue

@@ -168,7 +168,7 @@ export default {
                   type: "dashed"
                 }
               },
-              data: echartData.map(item => item.entryRate - 20)
+              data: echartData.map(item => 60)
             },
             {
               name:'区级得分率',
@@ -191,7 +191,7 @@ export default {
                   type: "dashed"
                 }
               },
-              data: echartData.map(item => item.entryRate - 30)
+              data: echartData.map(item => 88)
             },
           ]
         };

+ 4 - 0
TEAMModelOS/ClientApp/components/student-analysis/total/BaseMyTable.vue

@@ -329,6 +329,10 @@
       background:#282828;
     }
 
+    .myTable .ivu-select-arrow {
+      top:72%;
+    }
+
     .myTable .ivu-table-fixed-right::before, .ivu-table-fixed::before {
       height:0;
     }

+ 8 - 6
TEAMModelOS/ClientApp/components/student-analysis/total/BasePie.vue

@@ -41,15 +41,17 @@ export default {
             type: "pie",
             radius: [30, 150],
             center: ["45%", 190],
-            roseType: "area",
             max: 100, // for funnel
             sort: "ascending", // for funnel
             data: [
-              { value: 28, name: "图形的性质",itemStyle:{color:'#2cc7cb'} },
-              { value: 25, name: "函数",itemStyle:{color:'#b6a2df'} },
-              { value: 33, name: "图形的变化",itemStyle:{color:'#59b2ef'} },
-              { value: 35, name: "统计与概率",itemStyle:{color:'#ffba82'} },
-              { value: 30, name: "数学表达式",itemStyle:{color:'#db7982'} },
+              { value: 28, name: "方程与不等式",itemStyle:{color:'#00cc66'} },
+              { value: 10, name: "图形的性质",itemStyle:{color:'#b6a2df'} },
+              { value: 23, name: "统计与概率",itemStyle:{color:'#59b2ef'} },
+              { value: 25, name: "函数",itemStyle:{color:'#ffba82'} },
+              { value: 11, name: "图形的相似",itemStyle:{color:'#2cc7cb'} },
+              { value: 10, name: "锐角三角函数",itemStyle:{color:'#66cc33'} },
+              { value: 12, name: "几何图形初步",itemStyle:{color:'#db7984'} },
+              { value: 10, name: "投影与视图",itemStyle:{color:'#66ccff'} },
             ]
           }
       };

+ 61 - 4
TEAMModelOS/ClientApp/components/student-analysis/total/BaseTestScatter.vue

@@ -3,12 +3,39 @@
 </template>
 
 <script>
+  import testScatter from '@/static/testScatter.json'
+  import knowledgeList from '@/static/knowledgeList.json'
+
   export default {
     name: "hello",
     data() {
       return {
+        originArr:[],
+        dataArr:[]
       };
     },
+    created(){
+      this.originArr = testScatter;
+      this.originArr.forEach(item => {
+        let arr = [];
+        arr.push(item.x);
+        arr.push(item.y);
+        arr.push(item.type);
+        arr.push(item.id);
+        this.dataArr.push(arr);
+      })
+
+      let list = testScatter.map(item => item.tableData);
+      let knowList = ['方程与不等式','图形的性质','统计与概率','函数','图形的相似','锐角三角函数','几何图形初步','投影与视图']
+
+      //list.forEach((item, index) => {
+      //  item.knowledgePoint = knowList[Math.ceil(Math.random() * 7)];
+      //  item.areaName = this.areaName(testScatter[index].x, testScatter[index].y);
+      //})
+
+      //console.log(JSON.stringify(testScatter));
+
+    },
     mounted() {
       this.drawLine();
 
@@ -18,6 +45,35 @@
         var r = Math.floor(Math.random() * 100 );
         return r;
       },
+
+      
+      areaName(x, y) {
+        if (x <= 0.5 && y <= 50) {
+          return 'B';
+        } else if (x <= 1 && x > 0.5 && y <= 50) {
+          return 'B -'
+        } else if (x <= 0.5 && y > 50 && y <= 100) {
+          return 'A'
+        } else {
+          return 'A -'
+        }
+      },
+
+
+      randomNum(minNum, maxNum) {
+        switch (arguments.length) {
+          case 1:
+            return parseInt(Math.random() * minNum + 1, 10);
+            break;
+          case 2:
+            return parseInt(Math.random() * ( maxNum - minNum + 1 ) + minNum, 10);
+            //或者 Math.floor(Math.random()*( maxNum - minNum + 1 ) + minNum );
+            break;
+          default:
+            return 0;
+            break;
+        }
+      }, 
        
       randomDataArray() {
         var d = [];
@@ -25,6 +81,7 @@
         while (len--) {
           d.push([Number(Math.random().toFixed(3)), this.random(), "张三"]);
         }
+        console.log(d);
         return d;
       },
       drawLine() {
@@ -49,9 +106,9 @@
             formatter: function (params) {
               const item = params;
               return `信息<br/>
-                        题号:${item.data[2]}
-                        <br/>题型:${item.data[1]}%
-                        <br/>答对率:${item.data[0]}
+                        题号:${item.data[3]}
+                        <br/>题型:${item.data[2]}
+                        <br/>答对率:${item.data[1]}%
                        `;
               }
           },
@@ -127,7 +184,7 @@
             {
               name: "试题",
               type: "scatter",
-              data: this.randomDataArray(),
+              data: this.dataArr,
               itemStyle: {
                 color:"#79c8e8"
               },

+ 24 - 6
TEAMModelOS/ClientApp/static/examList.json

@@ -4,42 +4,60 @@
     "name": "成都新川外国语学校2019年5月期中考试",
     "joinNum": "1580",
     "date": "2019-06-11",
-    "examType": "A"
+    "examType": "A",
+    "period": "初中",
+    "grade": "初一",
+    "term": "上学期"
   },
   {
     "id": "2",
     "name": "成都新川外国语学校2019年6月期中考试",
     "joinNum": "1380",
     "date": "2019-06-11",
-    "examType": "A"
+    "examType": "A",
+    "period": "高中",
+    "grade": "高一",
+    "term": "下学期"
   },
   {
     "id": "3",
     "name": "成都新川外国语学校2019年7月期中考试",
     "joinNum": "1280",
     "date": "2019-06-11",
-    "examType": "B"
+    "examType": "B",
+    "period": "初中",
+    "grade": "初一",
+    "term": "上学期"
   },
   {
     "id": "4",
     "name": "成都新川外国语学校2019年8月期中考试",
     "joinNum": "2580",
     "date": "2019-06-11",
-    "examType": "A"
+    "examType": "A",
+    "period": "初中",
+    "grade": "初一",
+    "term": "上学期"
   },
   {
     "id": "5",
     "name": "成都新川外国语学校2019年9月期中考试",
     "joinNum": "1580",
     "date": "2019-06-11",
-    "examType": "C"
+    "examType": "C",
+    "period": "高中",
+    "grade": "高一",
+    "term": "上学期"
   },
   {
     "id": "6",
     "name": "成都新川外国语学校2019年10月期中考试",
     "joinNum": "1540",
     "date": "2019-06-11",
-    "examType": "B"
+    "examType": "B",
+    "period": "初中",
+    "grade": "初一",
+    "term": "上学期"
   }
 
 ]

+ 83 - 0
TEAMModelOS/ClientApp/static/exerciseList.json

@@ -0,0 +1,83 @@
+[
+  {
+    "id": "1",
+    "name": "求复平面内对应的坐标",
+    "type": "问答",
+    "knowledgePoint": "函数",
+    "level": "评鉴",
+    "gradeScoreRate": "90%",
+    "poperData": [ 14, 50, 44 ]
+  },
+  {
+    "id": "2",
+    "name": "求复平面内对应的坐标",
+    "type": "多选",
+    "knowledgePoint": "锐角三角函数",
+    "level": "理解",
+    "gradeScoreRate": "77%",
+    "poperData": [ 18, 46, 60 ]
+  },
+  {
+    "id": "3",
+    "name": "求复平面内对应的坐标",
+    "type": "判断",
+    "knowledgePoint": "图形的相似",
+    "level": "评鉴",
+    "gradeScoreRate": "85%",
+    "poperData": [ 24, 87, 69 ]
+  },
+  {
+    "id": "4",
+    "name": "求复平面内对应的坐标",
+    "type": "判断",
+    "knowledgePoint": "几何图形初步",
+    "level": "评鉴",
+    "gradeScoreRate": "70%",
+    "poperData": [ 34, 9, 63 ]
+  },
+  {
+    "id": "5",
+    "name": "求复平面内对应的坐标",
+    "type": "多选",
+    "knowledgePoint": "投影与视图",
+    "level": "应用",
+    "gradeScoreRate": "62%",
+    "poperData": [ 40, 40, 68 ]
+  },
+  {
+    "id": "6",
+    "name": "求复平面内对应的坐标",
+    "type": "判断",
+    "knowledgePoint": "函数",
+    "level": "应用",
+    "gradeScoreRate": "71%",
+    "poperData": [ 33, 45, 22 ]
+  },
+  {
+    "id": "7",
+    "name": "求复平面内对应的坐标",
+    "type": "问答",
+    "knowledgePoint": "锐角三角函数",
+    "level": "应用",
+    "gradeScoreRate": "83%",
+    "poperData": [ 23, 43, 25 ]
+  },
+  {
+    "id": "8",
+    "name": "求复平面内对应的坐标",
+    "type": "判断",
+    "knowledgePoint": "投影与视图",
+    "level": "应用",
+    "gradeScoreRate": "77%",
+    "poperData": [ 46, 4, 63 ]
+  },
+  {
+    "id": "9",
+    "name": "求复平面内对应的坐标",
+    "type": "判断",
+    "knowledgePoint": "图形的性质",
+    "level": "综合",
+    "gradeScoreRate": "81%",
+    "poperData": [ 41, 73, 55 ]
+  }
+]

+ 82 - 42
TEAMModelOS/ClientApp/static/knowledgeList.json

@@ -2,11 +2,16 @@
   {
     "id": "1",
     "name": "算法平均值",
-    "classId": "140015511001",
-    "average": "580",
-    "totalNum": "100",
-    "entryNum": "95",
-    "gradeRank": "1",
+    "type": "填空",
+    "areaName": "A",
+    "score": "6",
+    "diff": "0.5",
+    "identify": "0.6",
+    "classScoreRate": "80%",
+    "gradeScoreRate": "80%",
+    "areaScoreRate": "80%",
+    "highScoreRate": "80%",
+    "lowScoreRate": "80%",
     "entryRate": "95",
     "standardDeviation": "55",
     "rankStatus": "1"
@@ -14,11 +19,16 @@
   {
     "id": "2",
     "name": "一元二次方程",
-    "classId": "140015511001",
-    "average": "580",
-    "totalNum": "90",
-    "entryNum": "85",
-    "gradeRank": "2",
+    "type": "填空",
+    "areaName": "A",
+    "score": "6",
+    "diff": "0.5",
+    "identify": "0.6",
+    "classScoreRate": "80%",
+    "gradeScoreRate": "80%",
+    "areaScoreRate": "80%",
+    "highScoreRate": "80%",
+    "lowScoreRate": "80%",
     "entryRate": "75",
     "standardDeviation": "55",
     "rankStatus": "1"
@@ -26,23 +36,33 @@
   {
     "id": "3",
     "name": "全等三角形性质",
-    "classId": "140015511003",
-    "average": "580",
-    "totalNum": "103",
-    "entryNum": "93",
-    "gradeRank": "3",
+    "type": "填空",
+    "areaName": "A",
+    "score": "6",
+    "diff": "0.5",
+    "identify": "0.6",
+    "classScoreRate": "80%",
+    "gradeScoreRate": "80%",
+    "areaScoreRate": "80%",
+    "highScoreRate": "80%",
+    "lowScoreRate": "80%",
     "entryRate": "93",
     "standardDeviation": "55",
     "rankStatus": "0"
   },
   {
     "id": "4",
-    "name": "等腰三角形的周长计算",
-    "classId": "140015511004",
-    "average": "580",
-    "totalNum": "140",
-    "entryNum": "125",
-    "gradeRank": "4",
+    "name": "全等三角形性质",
+    "type": "填空",
+    "areaName": "A",
+    "score": "6",
+    "diff": "0.5",
+    "identify": "0.6",
+    "classScoreRate": "80%",
+    "gradeScoreRate": "80%",
+    "areaScoreRate": "80%",
+    "highScoreRate": "80%",
+    "lowScoreRate": "80%",
     "entryRate": "90",
     "standardDeviation": "45",
     "rankStatus": "2"
@@ -50,11 +70,16 @@
   {
     "id": "5",
     "name": "二元二次方程",
-    "classId": "140015511005",
-    "average": "550",
-    "totalNum": "90",
-    "entryNum": "85",
-    "gradeRank": "5",
+    "type": "填空",
+    "areaName": "A",
+    "score": "6",
+    "diff": "0.5",
+    "identify": "0.6",
+    "classScoreRate": "80%",
+    "gradeScoreRate": "80%",
+    "areaScoreRate": "80%",
+    "highScoreRate": "80%",
+    "lowScoreRate": "80%",
     "entryRate": "75",
     "standardDeviation": "55",
     "rankStatus": "0"
@@ -62,11 +87,16 @@
   {
     "id": "6",
     "name": "等边三角形的面积",
-    "classId": "140015511006",
-    "average": "580",
-    "totalNum": "160",
-    "entryNum": "155",
-    "gradeRank": "6",
+    "type": "填空",
+    "areaName": "A",
+    "score": "6",
+    "diff": "0.5",
+    "identify": "0.6",
+    "classScoreRate": "80%",
+    "gradeScoreRate": "80%",
+    "areaScoreRate": "80%",
+    "highScoreRate": "80%",
+    "lowScoreRate": "80%",
     "entryRate": "95",
     "standardDeviation": "55",
     "rankStatus": "1"
@@ -74,23 +104,33 @@
   {
     "id": "7",
     "name": "全等三角形的性质",
-    "classId": "140015511007",
-    "average": "560",
-    "totalNum": "120",
-    "entryNum": "80",
-    "gradeRank": "7",
+    "type": "填空",
+    "areaName": "A",
+    "score": "6",
+    "diff": "0.5",
+    "identify": "0.6",
+    "classScoreRate": "80%",
+    "gradeScoreRate": "80%",
+    "areaScoreRate": "80%",
+    "highScoreRate": "80%",
+    "lowScoreRate": "80%",
     "entryRate": "65",
     "standardDeviation": "55",
     "rankStatus": "1"
   },
   {
-    "id": "7",
+    "id": "8",
     "name": "多元多次方程",
-    "classId": "140015511007",
-    "average": "560",
-    "totalNum": "120",
-    "entryNum": "80",
-    "gradeRank": "7",
+    "type": "填空",
+    "areaName": "A",
+    "score": "6",
+    "diff": "0.5",
+    "identify": "0.6",
+    "classScoreRate": "80%",
+    "gradeScoreRate": "80%",
+    "areaScoreRate": "80%",
+    "highScoreRate": "80%",
+    "lowScoreRate": "80%",
     "entryRate": "65",
     "standardDeviation": "55",
     "rankStatus": "1"

+ 752 - 0
TEAMModelOS/ClientApp/static/testScatter.json

@@ -0,0 +1,752 @@
+[
+  {
+    "id": 1,
+    "type": "问答",
+    "y": 93.618,
+    "x": 0.47,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "问答",
+      "areaName": "A",
+      "score": 4,
+      "diff": 0.47,
+      "identify": "0.20",
+      "classScoreRate": "52%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "统计与概率",
+      "poperData": [ 47, 92, 36 ]
+    }
+  },
+  {
+    "id": 2,
+    "type": "判断",
+    "y": 79.742,
+    "x": 0.08,
+    "tableData": {
+      "id": "2",
+      "name": "一元二次方程",
+      "type": "判断",
+      "areaName": "A",
+      "score": 7,
+      "diff": 0.08,
+      "identify": "0.60",
+      "classScoreRate": "66%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "75",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "几何图形初步",
+      "poperData": [ 34, 57, 37 ]
+    }
+  },
+  {
+    "id": 3,
+    "type": "多选",
+    "y": 67.322,
+    "x": 0.05,
+    "tableData": {
+      "id": "3",
+      "name": "全等三角形性质",
+      "type": "多选",
+      "areaName": "A",
+      "score": 3,
+      "diff": 0.05,
+      "identify": "0.70",
+      "classScoreRate": "73%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "93",
+      "standardDeviation": "55",
+      "rankStatus": "0",
+      "knowledgePoint": "图形的相似",
+      "poperData": [ 30, 10, 26 ]
+    }
+  },
+  {
+    "id": 4,
+    "type": "多选",
+    "y": 51.714,
+    "x": 0.42,
+    "tableData": {
+      "id": "4",
+      "name": "全等三角形性质",
+      "type": "多选",
+      "areaName": "A",
+      "score": 12,
+      "diff": 0.42,
+      "identify": "0.20",
+      "classScoreRate": "87%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "90",
+      "standardDeviation": "45",
+      "rankStatus": "2",
+      "knowledgePoint": "统计与概率",
+      "poperData": [ 22, 19, 28 ]
+    }
+  },
+  {
+    "id": 5,
+    "type": "单选",
+    "y": 76.833,
+    "x": 0.5,
+    "tableData": {
+      "id": "5",
+      "name": "二元二次方程",
+      "type": "单选",
+      "areaName": "A",
+      "score": 5,
+      "diff": 0.5,
+      "identify": "0.50",
+      "classScoreRate": "69%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "75",
+      "standardDeviation": "55",
+      "rankStatus": "0",
+      "knowledgePoint": "几何图形初步",
+      "poperData": [ 15, 73, 63 ]
+    }
+  },
+  {
+    "id": 6,
+    "type": "填空",
+    "y": 67.349,
+    "x": 0.5,
+    "tableData": {
+      "id": "6",
+      "name": "等边三角形的面积",
+      "type": "填空",
+      "areaName": "A",
+      "score": 11,
+      "diff": 0.5,
+      "identify": "0.50",
+      "classScoreRate": "57%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "统计与概率",
+      "poperData": [ 12, 36, 54 ]
+    }
+  },
+  {
+    "id": 7,
+    "type": "单选",
+    "y": 76.238,
+    "x": 0.28,
+    "tableData": {
+      "id": "7",
+      "name": "全等三角形的性质",
+      "type": "单选",
+      "areaName": "A",
+      "score": 10,
+      "diff": 0.28,
+      "identify": "0.50",
+      "classScoreRate": "75%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "65",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "图形的性质",
+      "poperData": [ 38, 87, 25 ]
+    }
+  },
+  {
+    "id": 8,
+    "type": "判断",
+    "y": 61.213,
+    "x": 0.16,
+    "tableData": {
+      "id": "8",
+      "name": "多元多次方程",
+      "type": "判断",
+      "areaName": "A",
+      "score": 6,
+      "diff": 0.16,
+      "identify": "0.30",
+      "classScoreRate": "68%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "65",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "图形的性质",
+      "poperData": [ 33, 92, 17 ]
+    }
+  },
+  {
+    "id": 9,
+    "type": "判断",
+    "y": 82.888,
+    "x": 0.23,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "判断",
+      "areaName": "A",
+      "score": 4,
+      "diff": 0.23,
+      "identify": "0.60",
+      "classScoreRate": "67%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "统计与概率",
+      "poperData": [ 33, 23, 2 ]
+    }
+  },
+  {
+    "id": 10,
+    "type": "多选",
+    "y": 57.022,
+    "x": 0.33,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "多选",
+      "areaName": "A",
+      "score": 5,
+      "diff": 0.33,
+      "identify": "1.00",
+      "classScoreRate": "87%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "锐角三角函数",
+      "poperData": [ 40, 83, 12 ]
+    }
+  },
+  {
+    "id": 11,
+    "type": "判断",
+    "y": 50.597,
+    "x": 0.13,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "判断",
+      "areaName": "A",
+      "score": 2,
+      "diff": 0.13,
+      "identify": "0.60",
+      "classScoreRate": "78%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "统计与概率",
+      "poperData": [ 41, 42, 5 ]
+    }
+  },
+  {
+    "id": 12,
+    "type": "多选",
+    "y": 56.657,
+    "x": 0.22,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "多选",
+      "areaName": "A",
+      "score": 3,
+      "diff": 0.22,
+      "identify": "0.80",
+      "classScoreRate": "74%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "锐角三角函数",
+      "poperData": [ 5, 6, 21 ]
+    }
+  },
+  {
+    "id": 13,
+    "type": "多选",
+    "y": 61.516,
+    "x": 0.44,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "多选",
+      "areaName": "A",
+      "score": 7,
+      "diff": 0.44,
+      "identify": "0.30",
+      "classScoreRate": "79%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "锐角三角函数",
+      "poperData": [ 10, 26, 25 ]
+    }
+  },
+  {
+    "id": 14,
+    "type": "多选",
+    "y": 98.757,
+    "x": 0.08,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "多选",
+      "areaName": "A",
+      "score": 2,
+      "diff": 0.08,
+      "identify": "0.40",
+      "classScoreRate": "72%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "几何图形初步",
+      "poperData": [ 49, 84, 63 ]
+    }
+  },
+  {
+    "id": 15,
+    "type": "单选",
+    "y": 87.139,
+    "x": 0.21,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "单选",
+      "areaName": "A",
+      "score": 2,
+      "diff": 0.21,
+      "identify": "0.30",
+      "classScoreRate": "73%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "函数",
+      "poperData": [ 21, 8, 27 ]
+    }
+  },
+  {
+    "id": 16,
+    "type": "多选",
+    "y": 54.914,
+    "x": 0.03,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "多选",
+      "areaName": "A",
+      "score": 2,
+      "diff": 0.03,
+      "identify": "0.90",
+      "classScoreRate": "53%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "几何图形初步",
+      "poperData": [ 37, 62, 13 ]
+    }
+  },
+  {
+    "id": 17,
+    "type": "问答",
+    "y": 54.212,
+    "x": 0.16,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "问答",
+      "areaName": "A",
+      "score": 2,
+      "diff": 0.16,
+      "identify": "0.80",
+      "classScoreRate": "65%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "函数",
+      "poperData": [ 36, 3, 20 ]
+    }
+  },
+  {
+    "id": 18,
+    "type": "填空",
+    "y": 82.468,
+    "x": 0.13,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "填空",
+      "areaName": "A",
+      "score": 8,
+      "diff": 0.13,
+      "identify": "0.30",
+      "classScoreRate": "51%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "图形的性质",
+      "poperData": [ 11, 98, 36 ]
+    }
+  },
+  {
+    "id": 19,
+    "type": "判断",
+    "y": 80.553,
+    "x": 0.44,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "判断",
+      "areaName": "A",
+      "score": 1,
+      "diff": 0.44,
+      "identify": "0.90",
+      "classScoreRate": "83%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "图形的相似",
+      "poperData": [ 22, 70, 68 ]
+    }
+  },
+  {
+    "id": 20,
+    "type": "多选",
+    "y": 81.154,
+    "x": 0.84,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "多选",
+      "areaName": "A -",
+      "score": 3,
+      "diff": 0.84,
+      "identify": "0.20",
+      "classScoreRate": "73%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "图形的相似",
+      "poperData": [ 23, 59, 6 ]
+    }
+  },
+  {
+    "id": 21,
+    "type": "填空",
+    "y": 82.468,
+    "x": 0.73,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "填空",
+      "areaName": "A -",
+      "score": 10,
+      "diff": 0.73,
+      "identify": "0.80",
+      "classScoreRate": "72%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "几何图形初步",
+      "poperData": [ 47, 39, 29 ]
+    }
+  },
+  {
+    "id": 22,
+    "type": "判断",
+    "y": 80.553,
+    "x": 0.64,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "判断",
+      "areaName": "A -",
+      "score": 3,
+      "diff": 0.64,
+      "identify": "0.30",
+      "classScoreRate": "57%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "锐角三角函数",
+      "poperData": [ 34, 60, 40 ]
+    }
+  },
+  {
+    "id": 23,
+    "type": "多选",
+    "y": 31.154,
+    "x": 0.54,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "多选",
+      "areaName": "B -",
+      "score": 2,
+      "diff": 0.54,
+      "identify": "0.40",
+      "classScoreRate": "64%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "统计与概率",
+      "poperData": [ 44, 44, 30 ]
+    }
+  },
+  {
+    "id": 24,
+    "type": "填空",
+    "y": 42.468,
+    "x": 0.13,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "填空",
+      "areaName": "B",
+      "score": 3,
+      "diff": 0.13,
+      "identify": "0.40",
+      "classScoreRate": "53%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "图形的性质",
+      "poperData": [ 43, 8, 46 ]
+    }
+  },
+  {
+    "id": 25,
+    "type": "判断",
+    "y": 40.553,
+    "x": 0.24,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "判断",
+      "areaName": "B",
+      "score": 8,
+      "diff": 0.24,
+      "identify": "0.60",
+      "classScoreRate": "70%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "图形的性质",
+      "poperData": [ 40, 15, 5 ]
+    }
+  },
+  {
+    "id": 26,
+    "type": "多选",
+    "y": 31.154,
+    "x": 0.34,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "多选",
+      "areaName": "B",
+      "score": 6,
+      "diff": 0.34,
+      "identify": "1.00",
+      "classScoreRate": "80%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "函数",
+      "poperData": [ 1, 68, 53 ]
+    }
+  },
+  {
+    "id": 27,
+    "type": "多选",
+    "y": 71.154,
+    "x": 0.34,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "多选",
+      "areaName": "A",
+      "score": 12,
+      "diff": 0.34,
+      "identify": "0.30",
+      "classScoreRate": "63%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "图形的相似",
+      "poperData": [ 3, 82, 28 ]
+    }
+  },
+  {
+    "id": 28,
+    "type": "填空",
+    "y": 42.468,
+    "x": 0.13,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "填空",
+      "areaName": "B",
+      "score": 12,
+      "diff": 0.13,
+      "identify": "1.00",
+      "classScoreRate": "65%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "图形的相似",
+      "poperData": [ 26, 98, 10 ]
+    }
+  },
+  {
+    "id": 29,
+    "type": "判断",
+    "y": 40.553,
+    "x": 0.64,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "判断",
+      "areaName": "B -",
+      "score": 12,
+      "diff": 0.64,
+      "identify": "0.70",
+      "classScoreRate": "86%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "函数",
+      "poperData": [ 40, 38, 5 ]
+    }
+  },
+  {
+    "id": 30,
+    "type": "多选",
+    "y": 51.154,
+    "x": 0.74,
+    "tableData": {
+      "id": "1",
+      "name": "算法平均值",
+      "type": "多选",
+      "areaName": "A -",
+      "score": 1,
+      "diff": 0.74,
+      "identify": "1.00",
+      "classScoreRate": "90%",
+      "gradeScoreRate": "80%",
+      "areaScoreRate": "80%",
+      "highScoreRate": "80%",
+      "lowScoreRate": "80%",
+      "entryRate": "95",
+      "standardDeviation": "55",
+      "rankStatus": "1",
+      "knowledgePoint": "投影与视图",
+      "poperData": [ 10, 7, 70 ]
+    }
+  }
+]

+ 3 - 1
TEAMModelOS/ClientApp/store/module/totalAnalysis.js

@@ -5,6 +5,7 @@ import memberList from '@/static/studentsInfo.json' //模拟学生数据
 import scatter from '@/static/scatter.json' //模拟学生数据
 import examList from '@/static/examList.json' //模拟评测数据
 import knowledgeList from '@/static/knowledgeList.json' //模拟知识点数据
+import exerciseList from '@/static/exerciseList.json' //模拟知识点数据
 import questions from '@/view/evaluation/index/list.json' //模拟题目数据
 
 
@@ -15,7 +16,8 @@ export default {
     examList: examList,
     knowledgeList: knowledgeList,
     questions: questions,
-    scatter: scatter
+    scatter: scatter,
+    exerciseList: exerciseList
   },
   getters: {
 

+ 1 - 1
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/AchievementAnalysis/AchievementAnalysis.css

@@ -46,7 +46,7 @@
         }
 
     .achievement-container .award-class {
-        width: 100%;
+        width: 85%;
         height: 100%;
         border: 1px solid rgba(212, 212, 212, 0.2);
         background:rgba(239, 239, 239, 0.1);

+ 1 - 1
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/AchievementAnalysis/AchievementAnalysis.vue

@@ -96,7 +96,7 @@
 
       </div>
       </Col>
-      <Col span="15" class-name="achievement-table">
+      <Col span="16" class-name="achievement-table">
       <BaseTable :columns="tableColumns" :tableDatas="tableData" ref="achievementTable"></BaseTable>
       </Col>
     </Row>

+ 1 - 1
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/EvaluationList/EvaluationList.vue

@@ -3,7 +3,7 @@
     <div class="el-title-wrap">
       <div>
         <span style="width:4px;height:20px;display:inline-block;background:#447a94"></span>
-        <span class="el-title">成都市高新区芳草小学历次考试汇总</span>
+        <span class="el-title">成都新川外国语学校历次考试汇总</span>
       </div>
       <div class="el-tools">
         <Input v-model="searchValue" placeholder="输入学生姓名或学号..." style="width: 200px" search />

+ 37 - 10
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/KnowledgeAnalysis/KnowledgeAnalysis.vue

@@ -46,7 +46,7 @@
           },
           {
             title: '题型',
-            key: 'name',
+            key: 'type',
             width:100
           },
           {
@@ -56,41 +56,41 @@
           },
           {
             title: '知识点',
-            key: 'name',
+            key: 'knowledgePoint',
             width:250
           },
           {
             title: '认知层次',
-            key: 'name',
+            key: 'level',
             width:100
           },
           {
             title: '年级得分率',
-            key: 'entryRate',
+            key: 'gradeScoreRate',
             sortable: true,
             width:150
           },
           {
             title: '1班/100人',
-            key: 'entryRate',
+            key: 'gradeScoreRate',
             sortable: true,
             width:120
           },
           {
             title: '2班/100人',
-            key: 'entryRate',
+            key: 'gradeScoreRate',
             sortable: true,
             width:120
           },
           {
             title: '3班/100人',
-            key: 'entryRate',
+            key: 'gradeScoreRate',
             sortable: true,
             width:120
           },
           {
             title: '4班/100人',
-            key: 'entryRate',
+            key: 'gradeScoreRate',
             sortable: true,
             width:120
           },
@@ -99,12 +99,39 @@
     },
     created() {
       let classList = this.$store.state.totalAnalysis.classList;
-      let knowledgeList = this.$store.state.totalAnalysis.knowledgeList;
+      let exerciseList = this.$store.state.totalAnalysis.exerciseList;
       this.tableData = classList;
-      this.knowledgeData = knowledgeList;
+      this.knowledgeData = exerciseList;
+
+      let knowList = ['方程与不等式','图形的性质','统计与概率','函数','图形的相似','锐角三角函数','几何图形初步','投影与视图']
+      let levelList = ['知识','理解','评鉴','综合','分析','应用']
+      let typeList = ['单选','多选','判断','问答','填空','问答']
+      //exerciseList.forEach(item => {
+      //  item.knowledgePoint = knowList[Math.ceil(Math.random() * 7)]
+      //  item.level = levelList[Math.ceil(Math.random() * 5)]
+      //  item.type = typeList[Math.ceil(Math.random() * 5)]
+      //  item.gradeScoreRate = this.randomNum(60,90).toString() + '%'
+      //})
+
+      console.log(JSON.stringify(exerciseList));
+
     },
 
     methods: {
+            randomNum(minNum, maxNum) {
+        switch (arguments.length) {
+          case 1:
+            return parseInt(Math.random() * minNum + 1, 10);
+            break;
+          case 2:
+            return parseInt(Math.random() * ( maxNum - minNum + 1 ) + minNum, 10);
+            //或者 Math.floor(Math.random()*( maxNum - minNum + 1 ) + minNum );
+            break;
+          default:
+            return 0;
+            break;
+        }
+      }, 
       changePieOrBar() {
         this.isShowPie = ! this.isShowPie;
       },

+ 37 - 39
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/KnowledgeAnalysis/ScoreDetails.vue

@@ -3,10 +3,10 @@
     <Row>
       <Col span="12">
         <span class="component-title">知识点得分率统计</span>
-        <BaseDetailBar :echartData="knowledgeData"></BaseDetailBar>
+        <BaseDetailBar :echartData="knowledgeData" @handleItemClick="handleItemClick"></BaseDetailBar>
       </Col>
       <Col span="12">
-      <span class="component-title">知识点得分详情</span>
+      <span class="component-title">知识点得分详情<span style="font-size:14px;font-weight:bold;margin-left:20px;color:#66cccc">当前知识点:{{currentPoint}}</span></span>
       <div style="padding:0 50px;">
         <BaseMyTable :columns="detailsColumns" :tableDatas="tableData" ref="detailsTable"></BaseMyTable>
       </div>
@@ -16,13 +16,14 @@
     <Row>
       <span class="component-title">班级得分明细表</span>
       <div style="padding:20px 50px;">
-        <BaseMyTable :columns="tableColumns" :tableDatas="knowledgeData"></BaseMyTable>
+        <BaseMyTable :columns="tableColumns" :tableDatas="numData" ref="numTable"></BaseMyTable>
       </div>
     </Row>
   </div>
 </template>
 
 <script>
+  import Mock from 'mockjs'
   import BaseDetailBar from '@/components/student-analysis/total/BaseKnowledgeDetail.vue'
   import BaseMyTable from '@/components/student-analysis/total/BaseMyTable.vue'
   export default {
@@ -33,62 +34,44 @@
       return {
         tableData: [],
         classDatas: [],
-        knowledgeData:[],
+        currentPoint:"",
+        knowledgeData: [],
+        numData:[],
         tableColumns: [
           {
             title: '题号',
             key: 'id',
-            width:100
-          },
-          {
-            title: '题型',
-            key: 'name',
-            width:100
-          },
-          {
-            title: '题目',
-            key: 'name',
-            width:250
           },
           {
             title: '知识点',
-            key: 'name',
-            width:250
+            key: 'knowledgePoint',
           },
           {
-            title: '认知层次',
-            key: 'name',
-            width:100
+            title: '分值',
+            key: 'score',
           },
           {
-            title: '年级得分率',
-            key: 'entryRate',
-            sortable: true,
-            width:150
+            title: '平均得分率',
+            key: 'averageScoreRate',
           },
           {
-            title: '1班/100人',
-            key: 'entryRate',
-            sortable: true,
-            width:200
+            title: '错题人数',
+            key: 'falseNum',
           },
           {
-            title: '2班/100人',
-            key: 'entryRate',
+            title: '120以上错题',
+            key: 'falseNum',
             sortable: true,
-            width:200
           },
           {
-            title: '3班/100人',
-            key: 'entryRate',
+            title: '90-120分错题人数',
+            key: 'falseNum',
             sortable: true,
-            width:200
           },
           {
-            title: '4班/100人',
-            key: 'entryRate',
+            title: '90分以下错题人数',
+            key: 'falseNum',
             sortable: true,
-            width:200
           },
         ],
         detailsColumns: [
@@ -126,14 +109,29 @@
       let knowledgeList = this.$store.state.totalAnalysis.knowledgeList;
       this.tableData = memberList.slice(0,7);
       this.knowledgeData = knowledgeList;
-    },
 
-    methods: {
+      this.numData = Mock.mock({
+        'list|10': [{
+          "id|+1": 1,   
+          "knowledgePoint|1": ['算法平均值','一元二次方程','全等三角形性质'],  
+          "score|5-20": 20,     
+          "averageScoreRate|40-80": 40,    
+          "falseNum|10-20":20
+        }], 
+      }).list;
 
+    },
 
+    methods: {
+       //点击柱状图某个点事件
+      handleItemClick(item) {
+        console.log(item);
+        this.currentPoint = item.name;
+      }
     },
     mounted() {
       this.$refs.detailsTable.$el.childNodes[0].style.borderRight = "0";
+      this.$refs.numTable.$el.childNodes[0].style.borderRight = "0";
     },
   }
 </script>

+ 6 - 8
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/TestAnalysis/TestAnalysis.css

@@ -39,17 +39,15 @@
     color: #e4eadb;
     height: 40px;
     font-size: 14px;
+    margin:20px 15px;
     /*border-bottom:1px solid #595959;*/
 }
 
-.scatter-statistics .scatter-table-line span {
-    text-align:center;
-    width:250px;
-}
-
-
-
-
+    .scatter-statistics .scatter-table-line span {
+        text-align: center;
+        width: 250px;
+        word-break: break-all;
+    }
 
 .fl-col-center {
     display: flex;

+ 30 - 25
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/TestAnalysis/TestAnalysis.vue

@@ -16,30 +16,30 @@
         <Divider />
         <div class="scatter-table-line">
           <span>A</span>
-          <span>学习良好,稳定度高</span>
-          <span>20</span>
-          <span>20</span>
+          <span>试题相当适当,可以用来区分学生的不同</span>
+          <span>11</span>
+          <span>1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19</span>
         </div>
         <Divider />
         <div class="scatter-table-line">
           <span>A`</span>
-          <span>粗心大意,不细心造成错误</span>
-          <span>20</span>
-          <span>20</span>
+          <span>试题可能含有异质成分在内,需要局部修正</span>
+          <span>4</span>
+          <span>20,21,22,30</span>
         </div>
         <Divider />
         <div class="scatter-table-line">
           <span>B</span>
-          <span>学习尚且稳定,需要再用功</span>
-          <span>10</span>
-          <span>10</span>
+          <span>试题困难度较高,适合区分高成就者学生</span>
+          <span>3</span>
+          <span>25,26,28</span>
         </div>
         <Divider />
         <div class="scatter-table-line">
           <span>B`</span>
-          <span>偶尔粗心,准备不够充分</span>
-          <span>10</span>
-          <span>10</span>
+          <span>试题含有异质成分,可能数据错误或者题意不清,必须加以修改</span>
+          <span>2</span>
+          <span>23,29</span>
         </div>
       </div>
       </Col>
@@ -47,7 +47,7 @@
     <Divider />
     <Row>
       <Col span="12">
-      <span class="component-title">年级单题得分率统计</span>
+      <span class="component-title">年级单题得分率统计 <span style="font-size:14px;font-weight:bold;margin-left:20px;color:#66cccc">所选题号:{{currentExerciseIndex}}</span></span>
       <div>
         <BaseLineBar :echartData="rightTableData"></BaseLineBar>
       </div>
@@ -70,6 +70,7 @@
 </template>
 
 <script>
+  import testScatter from '@/static/testScatter.json'
   import BaseTestScatter from '@/components/student-analysis/total/BaseTestScatter.vue'
   import BaseTable from '@/components/student-analysis/total/BaseMyTable.vue'
   import BaseLineBar from '@/components/student-analysis/total/BaseLineBar.vue'
@@ -80,7 +81,8 @@
     data() {
       return {
         tableData: [],
-        rightTableData:[],
+        rightTableData: [],
+        currentExerciseIndex:0,
         tableColumns: [
           {
             title: '题号',
@@ -94,56 +96,56 @@
           },
           {
             title: '知识点',
-            key: 'name',
+            key: 'knowledgePoint',
             width:200
           },
           {
             title: '落点区域',
-            key: 'name',
+            key: 'areaName',
             width:100
           },
           {
             title: '配分',
-            key: 'id',
+            key: 'score',
             width:100
           },
           {
             title: '难易度',
-            key: 'id',
+            key: 'diff',
             width:100
           },
           {
             title: '鉴别度',
-            key: 'score',
+            key: 'identify',
             width:100
           },
           {
             title: '班级得分率',
-            key: 'id',
+            key: 'classScoreRate',
             sortable: true,
             width:150
           },
           {
             title: '年级得分率',
-            key: 'id',
+            key: 'gradeScoreRate',
             sortable: true,
             width:150
           },
           {
             title: '区级得分率',
-            key: 'id',
+            key: 'areaScoreRate',
             sortable: true,
             width:150
           },
           {
             title: '高分得分率',
-            key: 'id',
+            key: 'highScoreRate',
             sortable: true,
             width:150
           },
           {
             title: '低分组得分率',
-            key: 'id',
+            key: 'lowScoreRate',
             sortable: true,
             width:150
           },
@@ -199,7 +201,9 @@
       let memberList = this.$store.state.totalAnalysis.memberList;
       let classList = this.$store.state.totalAnalysis.classList;
       let knowledgeList = this.$store.state.totalAnalysis.knowledgeList;
-      this.tableData = knowledgeList;
+
+      let knowledgeArr = testScatter.map(item => item.tableData);
+      this.tableData = knowledgeArr;
       this.rightTableData = classList;
     },
 
@@ -207,6 +211,7 @@
        //点击落点图某个点事件
       handleItemClick(item) {
         console.log(item);
+        this.currentExerciseIndex = item.data[item.data.length - 1];
       }
 
     },

+ 1 - 0
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/index.css

@@ -73,6 +73,7 @@ body, html, .total-container {
 }
 
 .total-body .total-content {
+    position:relative;
     width: -webkit-calc(100% - 383px);
     width: -moz-calc(100% - 383px);
     width: calc(100% - 383px);

+ 24 - 7
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/index.vue

@@ -54,7 +54,8 @@
       <BaseExamList @chooseExam="chooseExam" @showEvaluationList="showEvaluationList" ref="examListRef"></BaseExamList>
 
       <!-- 右侧数据展示区域 -->
-      <div class="total-content"  ref="dataContainer">
+      <div class="total-content" ref="dataContainer">
+        <Spin fix v-show="contentLoading"></Spin>
         <div class="basic-info" v-if="!isShowEvaluations">
           <p>
             <span class="info-type" :style="{color:colorTransfer[currentExamItem.examType],borderColor:colorTransfer[currentExamItem.examType]}">{{currentExamItem.examType}}</span>
@@ -69,16 +70,16 @@
             <Select v-show="dataSelectIndex != 0" v-model="subjectSelectVal" style="width:150px">
               <Option v-for="(item,index) in subjectList" :value="index" :key="index">{{ item.name }}</Option>
             </Select>
-            <Input v-show="dataSelectIndex != 0" v-model="searchValue" placeholder="输入学生姓名或学号..." style="width: 200px" search @on-search="handleSearch"/>
+            <Input v-show="dataSelectIndex != 0" v-model="searchValue" placeholder="输入学生姓名或学号..." style="width: 200px" search @on-search="handleSearch" />
             <span class="basic-tool-export" @click="handleExportTables"> 导出表格 <Icon type="md-archive" /></span>
 
           </div>
         </div>
         <div class="data-select" v-if="!isShowQuestions">
-          <span :class="dataSelectIndex == 0 ? 'data-select-active' : ''" @click="handleDataSelect('0')">成绩分析</span>
-          <span :class="dataSelectIndex == 1 ? 'data-select-active' : ''" @click="handleDataSelect('1')">落点分析</span>
-          <span :class="dataSelectIndex == 2 ? 'data-select-active' : ''" @click="handleDataSelect('2')">试题分析</span>
-          <span :class="dataSelectIndex == 3 ? 'data-select-active' : ''" @click="handleDataSelect('3')">知识点掌握</span>
+          <span :class="this.$route.path == '/total' || this.$route.path.indexOf('/total/achievement') > -1 ? 'data-select-active' : ''" @click="handleDataSelect('0')">成绩分析</span>
+          <span :class="this.$route.path.indexOf('/total/scatter') > -1 ? 'data-select-active' : ''" @click="handleDataSelect('1')">落点分析</span>
+          <span :class="this.$route.path.indexOf('/total/test') > -1 ? 'data-select-active' : ''" @click="handleDataSelect('2')">试题分析</span>
+          <span :class="this.$route.path.indexOf('/total/knowledge') > -1 ? 'data-select-active' : ''" @click="handleDataSelect('3')">知识点掌握</span>
         </div>
         <div class="data-container">
           <transition name="fade">
@@ -112,7 +113,8 @@
     },
     data() {
       return {
-        searchValue:"",
+        searchValue: "",
+        contentLoading:false,
         dataSelectIndex: 0 ,
         menuIndex: 0,
         isShowQuestions:false,
@@ -146,6 +148,7 @@
       }
     },
     created() {
+      console.log(this.$route.path);
       //console.log(this.$route.params);
     },
 
@@ -187,11 +190,16 @@
 
       //选中某次测验
       chooseExam(item) {
+        let that = this;
+        this.contentLoading = true;
         this.isShowQuestions = false;
         this.isShowEvaluations = false;
         this.currentExamItem = item;
         //this.handleDataSelect(0);
         this.scrollToTop(this.$refs.dataContainer, 0, 100);
+        setTimeout(function () {
+          that.contentLoading = false;
+        },1000)
 
       },
 
@@ -298,6 +306,15 @@
       font-size: 16px;
   }
 
+  .total-content .ivu-spin-fix {
+    background:rgba(209, 209, 209, 0.51);
+  }
+
+  .total-content .ivu-spin-dot {
+     width:100px;
+     height:100px;
+  }
+
   .export-modal .ivu-modal-content {
     background:#757575;
     color:#fff;