Pārlūkot izejas kodu

Merge branch 'develop' of http://106.12.23.251:10080/TEAMMODEL/TEAMModelOS into develop

CrazyIter 5 gadi atpakaļ
vecāks
revīzija
54e4b7794f
18 mainītis faili ar 578 papildinājumiem un 326 dzēšanām
  1. 1 1
      TEAMModelOS/ClientApp/common/loading.vue
  2. 7 6
      TEAMModelOS/ClientApp/components/student-analysis/total/BaseLineBar.vue
  3. 4 2
      TEAMModelOS/ClientApp/components/student-analysis/total/BasePie.vue
  4. 8 7
      TEAMModelOS/ClientApp/components/student-analysis/total/BaseRadar.vue
  5. 7 7
      TEAMModelOS/ClientApp/components/student-analysis/total/BaseScatter.vue
  6. 7 8
      TEAMModelOS/ClientApp/components/student-analysis/total/BaseTestScatter.vue
  7. 123 0
      TEAMModelOS/ClientApp/locale/lang/en-US/totalAnalysis.js
  8. 141 18
      TEAMModelOS/ClientApp/locale/lang/zh-CN/totalAnalysis.js
  9. 123 0
      TEAMModelOS/ClientApp/locale/lang/zh-TW/totalAnalysis.js
  10. 10 10
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/AchievementAnalysis/AchievementAnalysis.vue
  11. 31 83
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/AchievementAnalysis/EarlyWarning.vue
  12. 12 99
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/AchievementAnalysis/EntryTables.vue
  13. 12 10
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/KnowledgeAnalysis/KnowledgeAnalysis.vue
  14. 18 17
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/KnowledgeAnalysis/ScoreDetails.vue
  15. 29 29
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/ScatterAnalysis/ScatterAnalysis.vue
  16. 4 0
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/TestAnalysis/QuestionList.vue
  17. 12 0
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/TestAnalysis/TestAnalysis.css
  18. 29 29
      TEAMModelOS/ClientApp/view/student-analysis/total-analysis/TestAnalysis/TestAnalysis.vue

+ 1 - 1
TEAMModelOS/ClientApp/common/loading.vue

@@ -28,7 +28,7 @@
     display:flex;
     flex-direction:row;
     justify-content:center;
-    background: rgba(102, 102, 102, 0.28);
+    /*background: rgba(102, 102, 102, 0.28);*/
     z-index:9999;
   }
 

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

@@ -21,24 +21,25 @@ export default {
   },
   methods: {
     drawLine(echartData) {
+        let that = this;
         let myBar = this.$echarts.init(document.getElementById("stuAverageBar"));
         var option = {
           legend: {
             data: [{
-              name: '班级得分率',
+              name: that.$t('totalAnalysis.ta_chart_text4'),
               textStyle: {
                 color: '#fff'
               }
             },
             {
-              name: '年级得分率',
+              name: that.$t('totalAnalysis.ta_chart_text5'),
               color: "red",
               textStyle: {
                 color: '#fff'
               }
             },
             {
-              name: '区级得分率',
+              name: that.$t('totalAnalysis.ta_chart_text6'),
               color: "red",
               textStyle: {
                 color: '#fff'
@@ -154,7 +155,7 @@ export default {
           },
           series: [
             {
-              name:'班级得分率',
+              name:that.$t('totalAnalysis.ta_chart_text4'),
               type: "bar",
               itemStyle: {
                 normal: {  //渐变色
@@ -172,7 +173,7 @@ export default {
               data: echartData.map(item => item.entryRate)
             },
             {
-              name:'年级得分率',
+              name:that.$t('totalAnalysis.ta_chart_text5'),
               type: "line",
               itemStyle: {
                 color: "#ff33cc",
@@ -195,7 +196,7 @@ export default {
               data: echartData.map(item => this.gradeRate)
             },
             {
-              name:'区级得分率',
+              name:that.$t('totalAnalysis.ta_chart_text6'),
               type: "line",
               itemStyle: {
                 color: "#66ff99",

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

@@ -16,7 +16,10 @@
       this.drawLine(this.pieData);
     },
     methods: {
+
       drawLine(data) {
+        let that = this;
+
         // 基于准备好的dom,初始化echarts实例
         let myPie = this.$echarts.init(document.getElementById("myPie"), 'chalk');
 
@@ -28,7 +31,7 @@
           },
           calculable: true,
           series: {
-            name: "知识点占比",
+            name: that.$t('totalAnalysis.ka_title1'),
             type: "pie",
             radius: [70, 150],
             center: ["45%", 190],
@@ -44,7 +47,6 @@
         //     myRadar.resize();
         // })
 
-        let that = this;
         myPie.on('click', function (item) {
           that.$emit('handleItemClick', item);
         })

+ 8 - 7
TEAMModelOS/ClientApp/components/student-analysis/total/BaseRadar.vue

@@ -20,6 +20,7 @@
     methods: {
       drawLine(data) {
         // 基于准备好的dom,初始化echarts实例
+        let that = this;
         let myRadar = this.$echarts.init(document.getElementById("myRadar"), 'chalk');
 
         // 指定图表的配置项和数据
@@ -40,12 +41,12 @@
               trigger: 'item'
             },
             indicator: [
-              { name: "知识", max: 100 },
-              { name: "理解", max: 100 },
-              { name: "评鉴", max: 100 },
-              { name: "综合", max: 100 },
-              { name: "分析", max: 100 },
-              { name: "应用", max: 100 }
+              { name:  that.$t('totalAnalysis.ka_radar_text1'), max: 100 },
+              { name: that.$t('totalAnalysis.ka_radar_text2'), max: 100 },
+              { name: that.$t('totalAnalysis.ka_radar_text3'), max: 100 },
+              { name: that.$t('totalAnalysis.ka_radar_text4'), max: 100 },
+              { name: that.$t('totalAnalysis.ka_radar_text5'), max: 100 },
+              { name: that.$t('totalAnalysis.ka_radar_text6'), max: 100 }
             ],
             splitArea: {
               areaStyle: {
@@ -105,7 +106,7 @@
               data:  [
                   {
                     value: data,
-                    name: "认知层次"
+                    name: that.$t('totalAnalysis.ka_table_text2')
                   }
                 ]
             }

+ 7 - 7
TEAMModelOS/ClientApp/components/student-analysis/total/BaseScatter.vue

@@ -101,14 +101,14 @@
             },
             formatter: function (params) {
               const item = params;
-              return `姓名:${item.data[2]}
-                        <br/>通过率:${item.data[1]}%
-                        <br/>稳定度:${item.data[0]}
+              return `${_this.$t('totalAnalysis.base_name')}:${item.data[2]}
+                        <br/>${_this.$t('totalAnalysis.sca_chart_text1')}:${item.data[1]}%
+                        <br/>${_this.$t('totalAnalysis.sca_chart_text2')}:${item.data[0]}
                        `;
               }
           },
           legend: {
-            data: ["学生"]
+            data: [_this.$t('totalAnalysis.sca_text4')]
           },
           toolbox: {
             show: true,
@@ -126,7 +126,7 @@
             {
               type: "value",
               splitNumber: 2,
-              name: "稳定度",
+              name: _this.$t('totalAnalysis.sca_chart_text2'),
               nameTextStyle: {
                 color:"#e4eadb"
               },
@@ -144,7 +144,7 @@
           yAxis: [
             {
               type: "value",
-              name: "通过率",
+              name: _this.$t('totalAnalysis.sca_chart_text1'),
               nameTextStyle: {
                 color:"#e4eadb"
               },
@@ -174,7 +174,7 @@
           ],
           series: [
             {
-              name: "学生",
+              name: _this.$t('totalAnalysis.sca_text4'),
               type: "scatter",
               symbolSize:15,
               data: data,

+ 7 - 8
TEAMModelOS/ClientApp/components/student-analysis/total/BaseTestScatter.vue

@@ -107,15 +107,14 @@
             },
             formatter: function (params) {
               const item = params;
-              return `信息<br/>
-                        题号:${item.data[3]}
-                        <br/>题型:${item.data[2]}
-                        <br/>答对率:${item.data[1]}%
+              return `${_this.$t('totalAnalysis.ta_table_text1')}:${item.data[3]}
+                        <br/>${_this.$t('totalAnalysis.ta_table_text2')}:${item.data[2]}
+                        <br/>${_this.$t('totalAnalysis.ta_chart_text2')}:${item.data[1]}%
                        `;
               }
           },
           legend: {
-            data: ["试题"]
+            data: [_this.$t('totalAnalysis.ta_chart_text1')]
           },
           toolbox: {
             show: true,
@@ -133,7 +132,7 @@
             {
               type: "value",
               splitNumber: 2,
-              name: "稳定度",
+              name:_this.$t('totalAnalysis.ta_chart_text3'),
               nameTextStyle: {
                 color:"#e4eadb"
               },
@@ -151,7 +150,7 @@
           yAxis: [
             {
               type: "value",
-              name: "答对率",
+              name: _this.$t('totalAnalysis.ta_chart_text2'),
               nameTextStyle: {
                 color:"#e4eadb"
               },
@@ -181,7 +180,7 @@
           ],
           series: [
             {
-              name: "试题",
+              name: _this.$t('totalAnalysis.ta_chart_text1'),
               type: "scatter",
               data: data,
               symbolSize: 20,

+ 123 - 0
TEAMModelOS/ClientApp/locale/lang/en-US/totalAnalysis.js

@@ -17,6 +17,12 @@ export default {
   condition6: "Feedback",
   condition7: "Subject",
 
+  //Base Info
+  base_name: "Name",
+  base_class: "Class",
+  base_id: "Seat Number",
+  base_score: "Score",
+
   //ExamList.vue
   newest: "Newest Exams",
   more: "more",
@@ -50,5 +56,122 @@ export default {
   ach_text11: "Total Number",
   ach_text12: "Back",
 
+  ach_table_text1: "Grade Ranking",
+  ach_table_text2: "Total Score",
+  ach_table_text3: "Average Score",
+  ach_table_text4: "Standard Deviation",
+  ach_table_text5: "Super Average Rate",
+  ach_table_text6: "Incoming Line",
+  ach_table_text7: "Planted Line",
+  ach_table_text8: "Class Ranking",
+  ach_table_text9: "Grade Ranking",
+  ach_table_text10: "District Ranking",
+  ach_table_text11: "Class PR Ranking",
+  ach_table_text12: "Grade PR Ranking",
+  ach_table_text13: "District PR Ranking",
+  ach_table_text14: "Progressive Class",
+  ach_table_text15: "Step Back Class",
+  ach_table_text16: "Stable Class",
+
+  ach_chart_text1: "Sort by",
+  ach_chart_text2: "default sort",
+  ach_chart_text3: "score from high to low",
+  ach_chart_text4: "score from low to high",
+
+  //ScatterAnalysis.vue
+  sca_title1: "Learning Ability Distribution",
+  sca_title2: "Student Stability Table",
+  sca_text1: "Region",
+  sca_text2: "Regional Characteristics",
+  sca_text3: "Number",
+  sca_text4: "Student",
+  sca_text5: "good learning, high stability",
+  sca_text6: "carelessness and carelessness lead to mistakes",
+  sca_text7: "learning is still stable and requires further study",
+  sca_text8: "occasional carelessness, insufficient preparation",
+  sca_text9: "learning is not enough, more efforts are needed",
+  sca_text10: "learning is very unstable, not fully prepared for the exam",
+  sca_chart_text1: "Pass Rate",
+  sca_chart_text2: "Stability",
+  sca_table_text1: "Correct Answers Number",
+  sca_table_text2: "Wrong Answers Number",
+  sca_table_text3: "Be Tried No.",
+  sca_table_text4: "Be Careful No.",
+  sca_table_text5: "Stability",
+  sca_table_text6: "Drop Area",
+
+  //TestAnalysis.vue
+  ta_title1: "Test Scatter Analysis",
+  ta_title2: "Score Rate of Single Question in Grade",
+  ta_title3: "Test Analysis Summary Table",
+  ta_title4: "Test Score Rate Table",
+
+  ta_text1: "Region",
+  ta_text2: "Regional Characteristics",
+  ta_text3: "Number",
+  ta_text4: "Question No.",
+  ta_text5: "Selected No.",
+  ta_text6: "The test questions are quite appropriate, which can be used to distinguish different students",
+  ta_text7: "The test questions may contain heterogeneous components and need local correction",
+  ta_text8: "The difficulty of test questions is high, which is suitable for distinguishing students with high achievement",
+  ta_text9: "The test questions contain heterogeneous components, which may be wrong in data or unclear in meaning, and must be modified",
+
+  ta_chart_text1: "Question",
+  ta_chart_text2: "Correct Answer Rate",
+  ta_chart_text3: "Stability",
+  ta_chart_text4: "Class Scoring Rate",
+  ta_chart_text5: "Grade Scoring Rate",
+  ta_chart_text6: "District Scoring Rate",
+
+  ta_table_text1: "No.",
+  ta_table_text2: "Type",
+  ta_table_text3: "Knowledge Point",
+  ta_table_text4: "Score",
+  ta_table_text5: "Difficulty",
+  ta_table_text6: "Identification Degree",
+  ta_table_text7: "Class",
+  ta_table_text8: "Grade",
+  ta_table_text9: "District",
+  ta_table_text10: "High Grouping",
+  ta_table_text11: "Low Grouping",
+
+  ta_table_tip1: "* Unit:Scoring Rate",
+  ta_table_tip2: "* R1-R6:Ranking Range",
+
+  //KnowledgeAnalysis.vue
+  ka_title1: "Proportion of Knowledge Points",
+  ka_title2: "Cognitive Hierarchy Distribution",
+  ka_title3: "Score Rate Relation Table",
+  ka_title4: "Statistics of Score Rate of Knowledge Points",
+  ka_title5: "Knowledge Point Score Details",
+  ka_title6: "Relation Table of Error Rate",
+
+  ka_text1: "Current knowledge block",
+  ka_text2: "Current knowledge point",
+
+  ka_chart_text1: "Switch histogram",
+  ka_chart_text2: "Switch pie",
+
+  ka_radar_text1: "Knowledge",
+  ka_radar_text2: "Application",
+  ka_radar_text3: "Analysis",
+  ka_radar_text4: "Synthesis",
+  ka_radar_text5: "Evaluation",
+  ka_radar_text6: "Understanding",
+
+  ka_table_text1: "Knowledge Point",
+  ka_table_text2: "Cognitive Level",
+  ka_table_text3: "Grade Scoring Rate",
+  ka_table_text4: "Score",
+  ka_table_text5: "Score in this section",
+  ka_table_text6: "Scoring rate",
+  ka_table_text7: "Question Number Involved",
+  ka_table_text8: "Average Score Rate",
+  ka_table_text9: "Number of Wrong Questions",
+  ka_table_text10: "RH Number of Wrong Questions",
+  ka_table_text11: "RL Number of Wrong Questions",
+
+  ka_tip1: "* RH: High partition / RL:Low partition"
+
 
 }

+ 141 - 18
TEAMModelOS/ClientApp/locale/lang/zh-CN/totalAnalysis.js

@@ -17,6 +17,12 @@ export default {
   condition6: "反馈类型",
   condition7: "考试学科",
 
+  //Base Info
+  base_name: "姓名",
+  base_class: "班级",
+  base_id: "座号",
+  base_score: "分数",
+
   //ExamList.vue
   newest: "最新测验",
   more: "查看更多",
@@ -26,32 +32,149 @@ export default {
   module2: "落点分析",
   module3: "试题分析",
   module4: "知识点掌握",
-  exportTable:"导出表格",
+  exportTable: "导出表格",
 
   //AchievementAnalysis.vue
-  ach_title1:"及格率统计",
-  ach_title2:"均分分析",
-  ach_title3:"进线人数统计",
-  ach_title4:"进线情况统计",
-  ach_title5:"进线率统计",
-  ach_title6:"预警统计",
-  ach_title7:"排名统计(PR/成绩)",
+  ach_title1: "及格率统计",
+  ach_title2: "均分分析",
+  ach_title3: "进线人数统计",
+  ach_title4: "进线情况统计",
+  ach_title5: "进线率统计",
+  ach_title6: "预警统计",
+  ach_title7: "排名统计(PR/成绩)",
   ach_title8: "均分分析",
-  ach_text1:"及格率",
-  ach_text2:"年级",
-  ach_text3:"区级",
-  ach_text4:"班级平均分",
-  ach_text5:"校级平均分",
-  ach_text6:"区级平均分",
-  ach_text7:"班级总人数",
-  ach_text8:"进线总人数",
-  ach_text9:"进线率",
-  ach_text10:"当前班级",
+  ach_text1: "及格率",
+  ach_text2: "年级",
+  ach_text3: "区级",
+  ach_text4: "班级平均分",
+  ach_text5: "校级平均分",
+  ach_text6: "区级平均分",
+  ach_text7: "班级总人数",
+  ach_text8: "进线总人数",
+  ach_text9: "进线率",
+  ach_text10: "当前班级",
   ach_text11: "总人数",
   ach_text12: "返回",
 
+  ach_table_text1: "年级排名",
+  ach_table_text2: "总分",
+  ach_table_text3: "平均分",
+  ach_table_text4: "标准差",
+  ach_table_text5: "超均率",
+  ach_table_text6: "进线",
+  ach_table_text7: "踩线",
+  ach_table_text8: "班级排名",
+  ach_table_text9: "年级排名",
+  ach_table_text10: "区级排名",
+  ach_table_text11: "班级PR排名",
+  ach_table_text12: "年级PR排名",
+  ach_table_text13: "区级PR排名",
+  ach_table_text14: "进步班级",
+  ach_table_text15: "退步班级",
+  ach_table_text16: "稳定班级",
+
+  ach_chart_text1:"排序方式",
+  ach_chart_text2:"默认排序",
+  ach_chart_text3:"分数从高到低",
+  ach_chart_text4:"分数从低到高",
+
+
+  //ScatterAnalysis.vue
+  sca_title1: "学生学习力分布",
+  sca_title2: "学生稳定度统计表",
+  sca_text1: "区域",
+  sca_text2: "区域特性",
+  sca_text3: "所占人数",
+  sca_text4: "学生",
+  sca_text5: "学习良好,稳定度高",
+  sca_text6: "粗心大意,不细心造成错误",
+  sca_text7: "学习尚且稳定,需要再用功",
+  sca_text8: "偶尔粗心,准备不够充分",
+  sca_text9: "学习不够充分,需要更加努力",
+  sca_text10: "学习极不稳定, 对考试没有充分准备",
+  sca_chart_text1: "通过率",
+  sca_chart_text2: "稳定度",
+  sca_table_text1: "答对题数",
+  sca_table_text2: "答错题数",
+  sca_table_text3: "应努力题号",
+  sca_table_text4: "需小心题号",
+  sca_table_text5: "稳定程度",
+  sca_table_text6: "落点区域",
+
+
+  //TestAnalysis.vue
+  ta_title1:"试题落点分析",
+  ta_title2:"年级单题得分率统计",
+  ta_title3:"试题分析总表",
+  ta_title4: "试题得分率表",
+
+  ta_text1: "区域",
+  ta_text2: "区域特性",
+  ta_text3: "题数",
+  ta_text4: "题目编号",
+  ta_text5: "所选题号",
+  ta_text6: "试题相当适当,可以用来区分学生的不同",
+  ta_text7: "试题可能含有异质成分在内,需要局部修正",
+  ta_text8: "试题困难度较高,适合区分高成就者学生",
+  ta_text9: "试题含有异质成分,可能数据错误或者题意不清,必须加以修改",
+
+  ta_chart_text1: "试题",
+  ta_chart_text2: "答对率",
+  ta_chart_text3: "稳定度",
+  ta_chart_text4: "班级得分率",
+  ta_chart_text5: "年级得分率",
+  ta_chart_text6: "区级得分率",
+
+  ta_table_text1: "题号",
+  ta_table_text2: "题型",
+  ta_table_text3: "知识点",
+  ta_table_text4: "配分",
+  ta_table_text5: "难易度",
+  ta_table_text6: "鉴别度",
+  ta_table_text7: "班级",
+  ta_table_text8: "年级",
+  ta_table_text9: "区级",
+  ta_table_text10: "高分组",
+  ta_table_text11: "低分组",
+
+  ta_table_tip1: "* 单位:得分率",
+  ta_table_tip2: "* R1-R6:排名区间",
+
+
+  //KnowledgeAnalysis.vue
+  ka_title1:"知识点占比",
+  ka_title2:"认知层次分布",
+  ka_title3:"得分率关系表",
+  ka_title4:"知识点得分率统计",
+  ka_title5:"知识点得分详情",
+  ka_title6: "错题率关系表",
+
+  ka_text1:"当前知识块",
+  ka_text2: "当前知识点",
+
+  ka_chart_text1:"切换柱状图",
+  ka_chart_text2: "切换饼图",
+
+  ka_radar_text1:"知识",
+  ka_radar_text2:"应用",
+  ka_radar_text3:"分析",
+  ka_radar_text4:"综合",
+  ka_radar_text5:"评鉴",
+  ka_radar_text6: "理解",
 
+  ka_table_text1:"知识点",
+  ka_table_text2:"认知层次",
+  ka_table_text3:"年级得分率",
+  ka_table_text4:"分值",
+  ka_table_text5:"本节得分",
+  ka_table_text6:"得分率",
+  ka_table_text7:"涉及题号",
+  ka_table_text8:"平均得分率",
+  ka_table_text9:"错题人数",
+  ka_table_text10:"RH错题人数",
+  ka_table_text11: "RL错题人数",
 
+  ka_tip1:"* RH:高分区段 / RL:低分区段"
 
 
 }

+ 123 - 0
TEAMModelOS/ClientApp/locale/lang/zh-TW/totalAnalysis.js

@@ -17,6 +17,12 @@ export default {
   condition6: "反饋類型",
   condition7: "考試學科",
 
+  //Base Info
+  base_name:"姓名",
+  base_class:"班级",
+  base_id:"座號",
+  base_score:"分數",
+
   //ExamList.vue
   newest: "最新測驗",
   more: "查看更多",
@@ -50,5 +56,122 @@ export default {
   ach_text11: "總人數",
   ach_text12: "返回",
 
+  ach_table_text1: "年級排名",
+  ach_table_text2: "總分",
+  ach_table_text3: "平均分",
+  ach_table_text4: "標準差",
+  ach_table_text5: "超均率",
+  ach_table_text6: "進線",
+  ach_table_text7: "踩線",
+  ach_table_text8: "班級排名",
+  ach_table_text9: "年級排名",
+  ach_table_text10: "區級排名",
+  ach_table_text11: "班級PR排名",
+  ach_table_text12: "年級PR排名",
+  ach_table_text13: "區級PR排名",
+  ach_table_text14: "進步班級",
+  ach_table_text15: "退步班級",
+  ach_table_text16: "穩定班級",
+
+  ach_chart_text1: "排序方式",
+  ach_chart_text2: "默認排序",
+  ach_chart_text3: "分數從高到低",
+  ach_chart_text4: "分數從低到高",
+
+  //ScatterAnalysis.vue
+  sca_title1: "學生學習力分佈",
+  sca_title2: "學生穩定度統計表",
+  sca_text1: "區域",
+  sca_text2: "區域特性",
+  sca_text3: "所占人數",
+  sca_text4: "學生",
+  sca_text5: "學習良好,穩定度高",
+  sca_text6: "粗心大意,不細心造成錯誤",
+  sca_text7: "學習尚且穩定,需要再用功",
+  sca_text8: "偶爾粗心,準備不够充分",
+  sca_text9: "學習不够充分,需要更加努力",
+  sca_text10: "學習極不穩定,對考試沒有充分準備",
+  sca_chart_text1:"通過率",
+  sca_chart_text2: "穩定度",
+  sca_table_text1:"答對題數",
+  sca_table_text2:"答錯題數",
+  sca_table_text3:"應努力題號",
+  sca_table_text4:"需小心題號",
+  sca_table_text5:"穩定程度",
+  sca_table_text6: "落點區域",
+
+  //TestAnalysis.vue
+  ta_title1: "試題落點分析",
+  ta_title2: "年級單題得分率統計",
+  ta_title3: "試題分析總表",
+  ta_title4: "試題得分率錶",
+
+  ta_text1: "區域",
+  ta_text2: "區域特性",
+  ta_text3: "題數",
+  ta_text4: "題目編號",
+  ta_text5: "所選題號",
+  ta_text6: "試題相當適當,可以用來區分學生的不同",
+  ta_text7: "試題可能含有異質成分在內,需要局部修正",
+  ta_text8: "試題困難度較高,適合區分高成就者學生",
+  ta_text9: "試題含有異質成分,可能數據錯誤或者題意不清,必須加以修改",
+
+  ta_chart_text1: "試題",
+  ta_chart_text2: "答對率",
+  ta_chart_text3: "穩定度",
+  ta_chart_text4: "班級得分率",
+  ta_chart_text5: "年級得分率",
+  ta_chart_text6: "區級得分率",
+
+  ta_table_text1: "題號",
+  ta_table_text2: "題型",
+  ta_table_text3: "知識點",
+  ta_table_text4: "配分",
+  ta_table_text5: "難易度",
+  ta_table_text6: "鑒別度",
+  ta_table_text7: "班級",
+  ta_table_text8: "年級",
+  ta_table_text9: "區級",
+  ta_table_text10: "高分组",
+  ta_table_text11: "低分组",
+
+  ta_table_tip1: "* 組織:得分率",
+  ta_table_tip2: "* R1-R6:排名區間",
+
+  //KnowledgeAnalysis.vue
+  ka_title1: "知識點占比",
+  ka_title2: "認知層次分佈",
+  ka_title3: "得分率關係表",
+  ka_title4: "知識點得分率統計",
+  ka_title5: "知識點得分詳情",
+  ka_title6: "錯題率關係表",
+
+  ka_text1: "當前知識塊",
+  ka_text2: "當前知識點",
+
+  ka_chart_text1: "切換柱狀圖",
+  ka_chart_text2: "切換餅圖",
+
+  ka_radar_text1: "知識",
+  ka_radar_text2: "應用",
+  ka_radar_text3: "分析",
+  ka_radar_text4: "綜合",
+  ka_radar_text5: "評鑒",
+  ka_radar_text6: "理解",
+
+  ka_table_text1: "知識點",
+  ka_table_text2: "認知層次",
+  ka_table_text3: "年級得分率",
+  ka_table_text4: "分值",
+  ka_table_text5: "本節得分",
+  ka_table_text6: "得分率",
+  ka_table_text7: "涉及題號",
+  ka_table_text8: "平均得分率",
+  ka_table_text9: "錯題人數",
+  ka_table_text10: "RH錯題人數",
+  ka_table_text11: "RL錯題人數",
+
+  ka_tip1: "* RH:高分區段 / RL:低分區段"
+
 
 }

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

@@ -5,7 +5,7 @@
     </Row>
     <Row class-name="component-percents">
       <div class="percent-item fl-col-center" v-for="(item,index) in subjectPercent" :key="index" v-if="subjectList.length > 3 && item.name" >
-        <span class="percent-name">{{item.name}}{{$t('totalAnalysis.ach_text1')}}</span>
+        <span class="percent-name">{{item.name}}</span>
         <span class="percent-value"><span class="percent-line" :style="{background:colorList[index]}"></span>{{item.classRate}}</span>
         <span class="percent-grade-value">{{$t('totalAnalysis.ach_text2')}}:{{item.gradeRate}}</span>
         <span class="percent-area-value">{{$t('totalAnalysis.ach_text3')}}:{{item.areaRate}}</span>
@@ -74,20 +74,20 @@
         classDatas:[],
         tableColumns: [
           {
-            title: '班级',
+            title: this.$t('totalAnalysis.base_class'),
             key: 'name',
             renderType: "renderClassName",
             filters: [
                 {
-                    label: '进步班级',
+                    label: this.$t('totalAnalysis.ach_table_text14'),
                     value: 1
                 },
                 {
-                    label: '退步班级',
+                    label: this.$t('totalAnalysis.ach_table_text15'),
                     value: 2
                 },
                 {
-                    label: '稳定班级',
+                    label: this.$t('totalAnalysis.ach_table_text16'),
                     value: 3
                 },
 
@@ -104,27 +104,27 @@
             }
           },
           {
-            title: '人数',
+            title: this.$t('totalAnalysis.ach_text7'),
             sortable: true,
             key: 'totalNum'
           },
           {
-            title: '平均分',
+            title: this.$t('totalAnalysis.ach_table_text3'),
             key: 'average',
             sortable: true,
           },
           {
-            title: '标准差',
+            title: this.$t('totalAnalysis.ach_table_text4'),
             key: 'standardDeviation',
             sortable: true,
           },
           {
-            title: '超均率',
+            title: this.$t('totalAnalysis.ach_table_text5'),
             key: 'overAverageRate',
             sortable: true,
           },
           {
-            title: '年级排名',
+            title: this.$t('totalAnalysis.ach_table_text1'),
             key: 'gradeRank',
             sortable: true,
             renderType:function(h, params) {

+ 31 - 83
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/AchievementAnalysis/EarlyWarning.vue

@@ -25,7 +25,7 @@
     <Row class-name="averageBarRow">
       <span class="component-title">{{$t('totalAnalysis.ach_title8')}}</span>
       <div class="sort-box">
-        <span style="font-size:14px;margin-right:10px;color: #a9a9a9;">排序方式:</span>
+        <span style="font-size:14px;margin-right:10px;color: #a9a9a9;">{{$t('totalAnalysis.ach_chart_text1')}}:</span>
         <Select v-model="sortValue" style="width:160px" @on-change="handleSort">
           <Option v-for="(item,index) in sortArr" :value="index" :label="item" :key="index"></Option>
         </Select>
@@ -50,30 +50,30 @@
         warningIndex: 0,
         sortValue: 0,
         className:"",
-        sortArr: ["默认排序", "分数从高到低", "分数从低到高"],
+        sortArr: [this.$t('totalAnalysis.ach_chart_text2'), this.$t('totalAnalysis.ach_chart_text3'), this.$t('totalAnalysis.ach_chart_text4')],
         earlyPercentColumns: [
           {
-            title: '姓名',
+            title: this.$t('totalAnalysis.base_name'),
             key: 'name',
             fixed: "left",
             minWidth:100
           },
           {
-            title: '座号',
+            title: this.$t('totalAnalysis.base_id'),
             key: 'id',
-            minWidth:100
+            minWidth:120
           },
           {
-            title: '得分',
+            title: this.$t('totalAnalysis.ach_table_text2'),
             sortable: true,
             key: 'chinese',
             minWidth:100
           },
           {
-            title: '班级PR值排名',
+            title: this.$t('totalAnalysis.ach_table_text11'),
             key: 'classPR',
             sortable: true,
-            minWidth:150,
+            minWidth:120,
             renderType: function (h, params) {
               const row = params.row;
               return h('span', {
@@ -100,9 +100,9 @@
             }
           },
           {
-            title: '班级排名',
+            title: this.$t('totalAnalysis.ach_table_text8'),
             key: 'classPR',
-            minWidth:150,
+            minWidth:120,
             sortable: true,
             renderType: function (h, params) {
               const row = params.row;
@@ -130,9 +130,9 @@
             }
           },
           {
-            title: '年级PR值排名',
+            title: this.$t('totalAnalysis.ach_table_text12'),
             key: 'gradePR',
-            minWidth:150,
+            minWidth:120,
             sortable: true,
             renderType: function (h, params) {
               const row = params.row;
@@ -160,9 +160,9 @@
             }
           },
           {
-            title: '年级排名',
+            title: this.$t('totalAnalysis.ach_table_text9'),
             key: 'gradePR',
-            minWidth:150,
+            minWidth:120,
             sortable: true,
             renderType: function (h, params) {
               const row = params.row;
@@ -190,9 +190,9 @@
             }
           },
           {
-            title: '区级PR值排名',
+            title: this.$t('totalAnalysis.ach_table_text13'),
             key: 'areaPR',
-            minWidth:150,
+            minWidth:120,
             sortable: true,
             renderType: function (h, params) {
               const row = params.row;
@@ -220,10 +220,10 @@
             }
           },
           {
-            title: '区级排名',
+            title: this.$t('totalAnalysis.ach_table_text10'),
             key: 'areaPR',
             sortable: true,
-            minWidth:150,
+            minWidth:120,
             renderType: function (h, params) {
               const row = params.row;
               return h('span', {
@@ -250,59 +250,6 @@
             }
           },
         ],
-        earlyScoreColumns: [
-          {
-            title: '姓名',
-            key: 'name',
-            fixed: "left"
-          },
-          {
-            title: '班级',
-            key: 'className'
-          },
-          {
-            title: '座号',
-            key: 'id'
-          },
-          {
-            title: '得分',
-            sortable: true,
-            key: 'score'
-          },
-          {
-            title: '班级排名',
-            key: 'classRank',
-            sortable: true,
-            renderType: 'renderRank'
-          },
-          {
-            title: '班级排名变化',
-            key: 'classRank',
-            renderType: 'renderRank'
-          },
-          {
-            title: '年级排名',
-            key: 'gradeRank',
-            sortable: true,
-          },
-          {
-            title: '年级排名变化',
-            key: 'gradeRank',
-            width: 150,
-            renderType: 'renderRank'
-          },
-          {
-            title: '区级排名',
-            key: 'areaRank',
-            sortable: true,
-            renderType: 'renderRank'
-          },
-          {
-            title: '区级排名变化',
-            key: 'areaRank',
-            renderType: 'renderRank'
-          },
-        ],
       }
     },
 
@@ -354,31 +301,32 @@
       },
 
       drawLine(echartData) {
+        let that = this;
         let myBar = this.$echarts.init(document.getElementById("stuAverageBar"));
         var option = {
           legend: {
             data: [{
-              name: '学生得分',
+              name: this.$t('totalAnalysis.ach_table_text2'),
               textStyle: {
                 color: '#fff'
               }
             },
             {
-              name: '班级平均分',
+              name: this.$t('totalAnalysis.ach_text4'),
               color: "red",
               textStyle: {
                 color: '#fff'
               }
             },
             {
-              name: '年级平均分',
+              name: this.$t('totalAnalysis.ach_text5'),
               color: "red",
               textStyle: {
                 color: '#fff'
               }
             },
             {
-              name: '区级平均分',
+              name: this.$t('totalAnalysis.ach_text6'),
               color: "red",
               textStyle: {
                 color: '#fff'
@@ -404,9 +352,9 @@
             },
             formatter: function (params) {
               let name = echartData[params[0].dataIndex].name;
-              return name + '<br>' +  params[0].marker  + '总分:' + params[0].data + '<br>' +  params[1].marker  +'班级平均分:'
-                + params[1].data + '<br>' + params[2].marker  + '年级平均分:' + params[2].data + '<br>'
-                +  params[3].marker  + '区级平均分:' + params[3].data;
+              return name + '<br>' +  params[0].marker  + that.$t('totalAnalysis.ach_table_text2') + ':' + params[0].data + '<br>' +  params[1].marker  + that.$t('totalAnalysis.ach_text4') + ':'
+                + params[1].data + '<br>' + params[2].marker  + that.$t('totalAnalysis.ach_text5') + ':' + params[2].data + '<br>'
+                +  params[3].marker  + that.$t('totalAnalysis.ach_text6') + ':' + params[3].data;
             }
           },
           grid: {
@@ -463,7 +411,7 @@
             nameTextStyle: {
               color: "#a2a2a2"
             },
-            name: "座号",
+            name: this.$t('totalAnalysis.base_id'),
             axisLabel: {
               show: true,
               inside: false,
@@ -495,7 +443,7 @@
           },
           series: [
             {
-              name: "学生得分",
+              name: this.$t('totalAnalysis.ach_table_text2'),
               type: "bar",
               itemStyle: {
                 normal: {  //渐变色
@@ -512,7 +460,7 @@
               data: echartData.map(item => item.score)
             },
             {
-              name: "班级平均分",
+              name: this.$t('totalAnalysis.ach_text4'),
               type: "line",
               itemStyle: {
                 color: "yellow",
@@ -535,7 +483,7 @@
               data: echartData.map(item => 561.87)
             },
             {
-              name: "年级平均分",
+              name: this.$t('totalAnalysis.ach_text5'),
               type: "line",
               itemStyle: {
                 color: "#ff33cc",
@@ -558,7 +506,7 @@
               data: echartData.map(item => 526.35)
             },
             {
-              name: "区级平均分",
+              name: this.$t('totalAnalysis.ach_text6'),
               type: "line",
               itemStyle: {
                 color: "#66ff99",

+ 12 - 99
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/AchievementAnalysis/EntryTables.vue

@@ -31,41 +31,36 @@
         joinNum:0,
         entryNumberColumns: [
           {
-            title: '姓名',
+            title: this.$t('totalAnalysis.base_name'),
             key: 'name',
             width: 100,
             fixed:"left"
           },
           {
-            title: '班级',
+            title: this.$t('totalAnalysis.base_class'),
             width:150,
             key: 'className',
             renderType: function (h, params) {
               return h('span', '初一' + Math.ceil(Math.random() * 10) + '班')
             }
           },
-          //{
-          //  title: '座号',
-          //  width:150,
-          //  key: 'id'
-          //},
           {
-            title: '年级排名',
+            title: this.$t('totalAnalysis.ach_table_text1'), 
             width:150,
             renderType: 'renderRank'
           },
           {
-            title: '总分',
+            title: this.$t('totalAnalysis.ach_table_text2'),
             sortable: true,
             width:150,
             renderType: 'renderEntry',
             filters: [
                 {
-                    label: '进线',
+                    label: this.$t('totalAnalysis.ach_table_text6'),
                     value: 1
                 },
                 {
-                    label: '踩线',
+                    label: this.$t('totalAnalysis.ach_table_text7'),
                     value: 2
                 }
             ],
@@ -138,111 +133,29 @@
             }
           }
         ],
-        footfaultColumns: [
-          {
-            title: '姓名',
-            key: 'name',
-            width: 100,
-            fixed:"left"
-          },
-          {
-            title: '班级',
-            width:150,
-            key: 'className'
-          },
-          {
-            title: '座号',
-            width:150,
-            key: 'id'
-          },
-          {
-            title: '年级排名',
-            width:150,
-            renderType: 'renderRank'
-          },
-          {
-            title: '总分',
-            sortable: true,
-            width:150,
-            renderType: function (h, params) {
-              return h('span', params.row.score);
-            }
-          },
-          {
-            title: '语文',
-            sortable: true,
-            width:150,
-            renderType: function (h, params) {
-              return h('span', params.row.chinese);
-            }
-          },
-          {
-            title: '数学',
-            sortable: true,
-            width:150,
-            renderType: function (h, params) {
-              return h('span', params.row.math);
-            }
-          },
-          {
-            title: '英语',
-            
-            sortable: true,
-            width:150,
-            renderType: function (h, params) {
-              return h('span', params.row.english);
-            }
-          },
-          {
-            title: '化学',
-            
-            sortable: true,
-            width:150,
-            renderType: function (h, params) {
-              return h('span', params.row.chemistry);
-            }
-          },
-          {
-            title: '物理',
-            
-            sortable: true,
-            width:150,
-            renderType: function (h, params) {
-              return h('span', params.row.physics);
-            }
-          },
-          {
-            title: '生物',
-            
-            sortable: true,
-            width:150,
-            renderType: function (h, params) {
-              return h('span', params.row.biology);
-            }
-          }
-        ],
+        
         entryRateColumns: [
           {
-            title: '年级排名',
+            title: this.$t('totalAnalysis.ach_table_text1'),
             key: 'gradeRank',
             sortable: true
           },
           {
-            title: '班级',
+            title: this.$t('totalAnalysis.base_class'),
             key: 'name'
           },
           {
-            title: '进线人数',
+            title: this.$t('totalAnalysis.ach_text8'),
             key: 'entryNum',
             sortable: true
           },
           {
-            title: '班级总人数',
+            title: this.$t('totalAnalysis.ach_text7'),
             key: 'totalNum',
             sortable: true
           },
           {
-            title: '进线率',
+            title: this.$t('totalAnalysis.ach_text9'),
             sortable: true,
             renderType: function (h, params) {
               return h('span', params.row.entryRate + '%');

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

@@ -2,22 +2,24 @@
   <div class="scatter-container">
     <Row>
       <Col span="12" style="position:relative">
-      <span class="component-title">知识点占比</span>
+      <span class="component-title">{{$t('totalAnalysis.ka_title1')}}</span>
       <BasePie v-if="isShowPie" @handleItemClick="handleItemClick"></BasePie>
       <BaseKnowledgeBar v-else-if="!isShowPie" :echartData="barData"></BaseKnowledgeBar>
-      <span class="pie-to-bar" @click="changePieOrBar"><Icon :type="isShowPie ? 'ios-podium' : 'ios-pie'" />{{isShowPie?'切换柱状图':'切换饼图'}}</span>
+      <span class="pie-to-bar" @click="changePieOrBar"><Icon :type="isShowPie ? 'ios-podium' : 'ios-pie'" />{{isShowPie?$t('totalAnalysis.ka_chart_text1'):$t('totalAnalysis.ka_chart_text2')}}</span>
       </Col>
       <Col span="12">
-      <span class="component-title">认知层次分布</span>
+      <span class="component-title">{{$t('totalAnalysis.ka_title2')}}</span>
       <BaseRadar></BaseRadar>
       </Col>
     </Row>
     <Divider />
     <Row>
-      <span class="component-title">得分率关系表
-      <span style="font-size:14px;font-weight:bold;margin-left:20px;color:#66cccc">当前知识块:{{currentBlock}}
-        <Icon type="ios-close-circle-outline" @click="refresh" style="cursor:pointer;" v-show="currentBlock != '全部'"/>
-       </span>
+      <span class="component-title">
+        {{$t('totalAnalysis.ka_title3')}}
+        <span style="font-size:14px;font-weight:bold;margin-left:20px;color:#66cccc">
+          {{$t('totalAnalysis.ka_text1')}}:{{currentBlock}}
+          <Icon type="ios-close-circle-outline" @click="refresh" style="cursor:pointer;" v-show="currentBlock != '全部'" />
+        </span>
       </span>
       <div style="padding:20px 50px;position:relative">
         <!--<span class="btn-class-score" @click="handleGoDetails">查看班级得分<Icon type="ios-arrow-dropright" /></span>-->
@@ -48,17 +50,17 @@
         barData:[],
         tableColumns: [
           {
-            title: '知识点',
+            title: this.$t('totalAnalysis.ka_table_text1'),
             key: 'knowledgePoint',
             width:200
           },
           {
-            title: '认知层次',
+            title: this.$t('totalAnalysis.ka_table_text2'),
             key: 'level',
             width:100
           },
           {
-            title: '年级得分率',
+            title: this.$t('totalAnalysis.ka_table_text3'),
             key: 'gradeScoreRate',
             sortable: true,
             width:150

+ 18 - 17
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/KnowledgeAnalysis/ScoreDetails.vue

@@ -2,11 +2,11 @@
   <div class="scatter-container">
     <Row>
       <Col span="12">
-      <span class="component-title">知识点得分率统计</span>
+      <span class="component-title">{{$t('totalAnalysis.ka_title4')}}</span>
       <BaseDetailBar :echartData="knowledgeData" @handleItemClick="handleItemClick" ref="detailsBar"></BaseDetailBar>
       </Col>
       <Col span="12">
-      <span class="component-title">知识点得分详情<span style="font-size:14px;font-weight:bold;margin-left:20px;color:#66cccc">当前知识点:{{currentPoint}}</span></span>
+      <span class="component-title">{{$t('totalAnalysis.ka_title5')}}<span style="font-size:14px;font-weight:bold;margin-left:20px;color:#66cccc">{{$t('totalAnalysis.ka_text2')}}:{{currentPoint}}</span></span>
       <div style="padding:0 50px;">
         <BaseMyTable :columns="detailsColumns" :tableDatas="tableData" ref="detailsTable"></BaseMyTable>
       </div>
@@ -14,9 +14,9 @@
     </Row>
     <Divider />
     <Row>
-      <span class="component-title">错题率关系表</span>
+      <span class="component-title">{{$t('totalAnalysis.ka_title6')}}</span>
       <div style="padding:20px 50px;">
-        <BaseMyTable :columns="tableColumns" :tableDatas="numData" ref="numTable" :tips="tipContent"></BaseMyTable>
+        <BaseMyTable :columns="tableColumns" :tableDatas="numData" ref="numTable" :tips="$t('totalAnalysis.ka_tip1')"></BaseMyTable>
       </div>
       <!--<span style="/*font-size:14px;font-weight:bold;margin-left:60px;color:#66cccc*/"></span>-->
     </Row>
@@ -46,23 +46,23 @@
           //  width:100
           //},
           {
-            title: '知识点',
+            title: this.$t('totalAnalysis.ka_table_text1'),
             key: 'knowledgePoint',
             minWidth: 150
           },
           {
-            title: '分值',
+            title: this.$t('totalAnalysis.ka_table_text4'),
             key: 'score',
             minWidth: 100
           },
           {
-            title: '涉及题号',
+            title: this.$t('totalAnalysis.ka_table_text7'),
             key: 'hardList',
             renderType: 'renderHard',
             width: 250
           },
           {
-            title: '平均得分率',
+            title: this.$t('totalAnalysis.ka_table_text8'),
             key: 'averageScoreRate',
             renderType: function (h, params) {
               return h('span', params.row.averageScoreRate + '%');
@@ -71,19 +71,19 @@
             minWidth: 100
           },
           {
-            title: '错题人数',
+            title: this.$t('totalAnalysis.ka_table_text9'),
             key: 'falseNum',
             sortable: true,
             minWidth: 100
           },
           {
-            title: 'RH错题人数',
+            title: this.$t('totalAnalysis.ka_table_text10'),
             key: 'RH',
             sortable: true,
             minWidth: 100
           },
           {
-            title: 'RL错题人数',
+            title: this.$t('totalAnalysis.ka_table_text11'),
             key: 'RL',
             sortable: true,
             minWidth: 100
@@ -91,27 +91,27 @@
         ],
         detailsColumns: [
           {
-            title: '姓名',
+            title: this.$t('totalAnalysis.base_name'),
             key: 'name',
             minWidth: 100
           },
           {
-            title: '班级',
+            title: this.$t('totalAnalysis.base_class'),
             key: 'className',
             width: 120
           },
           {
-            title: '座号',
+            title: this.$t('totalAnalysis.base_id'),
             key: 'id',
             width: 120
           },
           {
-            title: '分值',
+            title: this.$t('totalAnalysis.ka_table_text4'),
             key: 'score',
             minWidth: 100
           },
           {
-            title: '本节得分',
+            title: this.$t('totalAnalysis.ka_table_text5'),
             key: 'score',
             minWidth: 100,
             renderType: function (h, params) {
@@ -119,7 +119,7 @@
             }
           },
           {
-            title: '得分率',
+            title: this.$t('totalAnalysis.ka_table_text6'),
             key: 'scoreRate',
             renderType: 'renderPercent',
             minWidth: 100
@@ -133,6 +133,7 @@
       }
     },
     created() {
+
       let memberList = this.$store.state.totalAnalysis.memberList;
       let scatter = this.$store.state.totalAnalysis.scatter;
       let testScatter = this.$store.state.totalAnalysis.testScatter;

+ 29 - 29
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/ScatterAnalysis/ScatterAnalysis.vue

@@ -2,50 +2,50 @@
   <div class="scatter-container">
     <Row>
       <Col span="12">
-      <span class="component-title">学生学习力分布</span>
+      <span class="component-title">{{$t('totalAnalysis.sca_title1')}}</span>
       <BaseScatter @handleItemClick="handleItemClick"></BaseScatter>
       </Col>
       <Col span="12">
       <div class="scatter-statistics">
         <div class="scatter-table-line">
-          <span>区域</span>
-          <span>区域特性</span>
-          <span>所占人数</span>
+          <span>{{$t('totalAnalysis.sca_text1')}}</span>
+          <span>{{$t('totalAnalysis.sca_text2')}}</span>
+          <span>{{$t('totalAnalysis.sca_text3')}}</span>
         </div>
         <Divider />
         <div class="scatter-table-line">
           <span>A</span>
-          <span>学习良好,稳定度高</span>
+          <span>{{$t('totalAnalysis.sca_text5')}}</span>
           <span>8</span>
         </div>
         <Divider />
         <div class="scatter-table-line">
-          <span>A`</span>
-          <span>粗心大意,不细心造成错误</span>
+          <span>A-</span>
+          <span>{{$t('totalAnalysis.sca_text6')}}</span>
           <span>2</span>
         </div>
         <Divider />
         <div class="scatter-table-line">
           <span>B</span>
-          <span>学习尚且稳定,需要再用功</span>
+          <span>{{$t('totalAnalysis.sca_text7')}}</span>
           <span>17</span>
         </div>
         <Divider />
         <div class="scatter-table-line">
-          <span>B`</span>
-          <span>偶尔粗心,准备不够充分</span>
+          <span>B-</span>
+          <span>{{$t('totalAnalysis.sca_text8')}}</span>
           <span>23</span>
         </div>
         <Divider />
         <div class="scatter-table-line">
           <span>C</span>
-          <span>学习不够充分,需要更加努力</span>
+          <span>{{$t('totalAnalysis.sca_text9')}}</span>
           <span>5</span>
         </div>
         <Divider />
         <div class="scatter-table-line">
-          <span>C`</span>
-          <span>学习极不稳定, 对考试没有充分准备</span>
+          <span>C-</span>
+          <span>{{$t('totalAnalysis.sca_text10')}}</span>
           <span>5</span>
         </div>
       </div>
@@ -53,7 +53,7 @@
     </Row>
     <Divider />
     <Row>
-      <span class="component-title">学生稳定度统计表</span>
+      <span class="component-title">{{$t('totalAnalysis.sca_title2')}}</span>
       <div style="padding:20px 50px;">
         <BaseTable :columns="tableColumns" :tableDatas = "tableData" ref="scatterTable" showSelect @onSelectChange="onSelectChange"></BaseTable>
       </div>
@@ -74,56 +74,56 @@ import { Set } from 'core-js';
         tableData:[],
         tableColumns: [
           {
-            title: '姓名',
+            title: this.$t('totalAnalysis.base_name'),
             key: 'name',
             minWidth:100
           },
           {
-            title: '班级',
+            title: this.$t('totalAnalysis.base_class'),
             key: 'className',
             minWidth:100
           },
           {
-            title: '座号',
+            title: this.$t('totalAnalysis.base_id'),
             key: 'id',
-            width:100
+            minWidth:100
           },
           {
-            title: '分数',
+            title: this.$t('totalAnalysis.base_score'),
             sortable: true,
             key: 'score',
             minWidth:100
           },
           {
-            title: '答对题数',
+            title: this.$t('totalAnalysis.sca_table_text1'),
             key: 'trueNum',
-            width:100
+            minWidth:100
           },
           {
-            title: '答错题数',
+            title: this.$t('totalAnalysis.sca_table_text2'),
             key: 'falseNum',
-            width:100
+            minWidth:100
           },
           {
-            title: '应努力题号',
+            title: this.$t('totalAnalysis.sca_table_text3'),
             key: 'hardList',
-            width:220,
+            minWidth:120,
             renderType: 'renderHard'
           },
           {
-            title: '需小心题号',
+            title: this.$t('totalAnalysis.sca_table_text4'),
             key: 'carefulList',
-            width:220,
+            minWidth:120,
             renderType: 'renderCareful'
           },
           {
-            title: '稳定程度',
+            title: this.$t('totalAnalysis.sca_table_text5'),
             key: 'x',
             sortable: true,
             minWidth:120
           },
           {
-            title: '落点区域',
+            title: this.$t('totalAnalysis.sca_table_text6'),
             key: 'areaName',
             minWidth:100
           },

+ 4 - 0
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/TestAnalysis/QuestionList.vue

@@ -439,6 +439,10 @@ import { setTimeout } from 'timers';
         this.$nextTick(() => {
           that.handleItemClick(that.questionList[index], allList[index]);
         });
+
+        setTimeout(function () {
+          that.handleItemClick(that.questionList[index], allList[index]);
+        },200)
       }
     },
   }

+ 12 - 0
TEAMModelOS/ClientApp/view/student-analysis/total-analysis/TestAnalysis/TestAnalysis.css

@@ -47,6 +47,18 @@
         text-align: center;
         width: 150px;
         word-break: break-all;
+        overflow: hidden;
+        text-overflow: ellipsis;
+    }
+
+    .scatter-statistics .scatter-explain {
+        text-overflow: -o-ellipsis-lastline;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        display: -webkit-box;
+        -webkit-line-clamp: 2;
+        line-clamp: 2;
+        -webkit-box-orient: vertical;
     }
 
     .scatter-statistics .scatter-exercise-index {

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

@@ -2,42 +2,42 @@
   <div class="scatter-container">
     <Row>
       <Col span="12">
-      <span class="component-title">试题落点分析</span>
+      <span class="component-title">{{$t('totalAnalysis.ta_title1')}}</span>
       <BaseTestScatter @handleItemClick="handleItemClick"></BaseTestScatter>
       </Col>
       <Col span="12">
       <div class="scatter-statistics">
         <div class="scatter-table-line">
-          <span>区域</span>
-          <span>区域特性</span>
-          <span>题数</span>
-          <span>题目编号</span>
+          <span>{{$t('totalAnalysis.ta_text1')}}</span>
+          <span>{{$t('totalAnalysis.ta_text2')}}</span>
+          <span>{{$t('totalAnalysis.ta_text3')}}</span>
+          <span>{{$t('totalAnalysis.ta_text4')}}</span>
         </div>
         <Divider />
         <div class="scatter-table-line">
           <span>A</span>
-          <span>试题相当适当,可以用来区分学生的不同</span>
+          <span class="scatter-explain" :title="$t('totalAnalysis.ta_text6')">{{$t('totalAnalysis.ta_text6')}}</span>
           <span>{{A1List.length}}</span>
           <span><span v-for="item in A1List" class="scatter-exercise-index" @click="handleIndexClick(item)">{{item}}</span></span>
         </div>
         <Divider />
         <div class="scatter-table-line">
           <span>A`</span>
-          <span>试题可能含有异质成分在内,需要局部修正</span>
+          <span class="scatter-explain" :title="$t('totalAnalysis.ta_text7')">{{$t('totalAnalysis.ta_text7')}}</span>
           <span>{{A2List.length}}</span>
           <span><span v-for="item in A2List" class="scatter-exercise-index" @click="handleIndexClick(item)">{{item}}</span></span>
         </div>
         <Divider />
         <div class="scatter-table-line">
           <span>B</span>
-          <span>试题困难度较高,适合区分高成就者学生</span>
+          <span class="scatter-explain" :title="$t('totalAnalysis.ta_text8')">{{$t('totalAnalysis.ta_text8')}}</span>
           <span>{{B1List.length}}</span>
           <span><span v-for="item in B1List" class="scatter-exercise-index" @click="handleIndexClick(item)">{{item}}</span></span>
         </div>
         <Divider />
         <div class="scatter-table-line">
           <span>B`</span>
-          <span>试题含有异质成分,可能数据错误或者题意不清,必须加以修改</span>
+          <span class="scatter-explain" :title="$t('totalAnalysis.ta_text9')">{{$t('totalAnalysis.ta_text9')}}</span>
           <span>{{B2List.length}}</span>
           <span><span v-for="item in B2List" class="scatter-exercise-index" @click="handleIndexClick(item)">{{item}}</span></span>
         </div>
@@ -46,7 +46,7 @@
     </Row>
     <Divider />
     <Row>
-      <span class="component-title">年级单题得分率统计 <span style="font-size:14px;font-weight:bold;margin-left:20px;color:#66cccc">所选题号:{{currentExerciseIndex}}</span></span>
+      <span class="component-title">{{$t('totalAnalysis.ta_title2')}} <span style="font-size:14px;font-weight:bold;margin-left:20px;color:#66cccc">{{$t('totalAnalysis.ta_text5')}} :{{currentExerciseIndex}}</span></span>
       <div>
         <BaseLineBar :echartData="rightTableData" ref="lineBar"></BaseLineBar>
       </div>
@@ -59,16 +59,16 @@
     </Row>
     <Divider />
     <Row>
-      <span class="component-title">试题分析总表</span>
+      <span class="component-title">{{$t('totalAnalysis.ta_title3')}}</span>
       <div style="padding:20px 50px;">
-        <BaseTable :columns="tableColumns" :tableDatas="tableData" ref="analysisTable" :tips="'* R1-R6:排名区间(模拟数据,仅供参考)'"></BaseTable>
+        <BaseTable :columns="tableColumns" :tableDatas="tableData" ref="analysisTable" :tips="$t('totalAnalysis.ta_table_tip2')"></BaseTable>
       </div>
     </Row>
     <Divider />
     <Row>
-      <span class="component-title">试题得分率表</span>
+      <span class="component-title">{{$t('totalAnalysis.ta_title4')}}</span>
       <div style="padding:20px 50px;">
-        <BaseTable :columns="exerciseColumns" :tableDatas="tableData" ref="scoreRateTable" :tips="'* 单位:得分率 (模拟数据,仅供参考)'"></BaseTable>
+        <BaseTable :columns="exerciseColumns" :tableDatas="tableData" ref="scoreRateTable" :tips="$t('totalAnalysis.ta_table_tip1')"></BaseTable>
       </div>
     </Row>
   </div>
@@ -93,13 +93,13 @@
         B2List:[14,20],
         tableColumns: [
           {
-            title: '题号',
+            title: this.$t('totalAnalysis.ta_table_text1'),
             key: 'id',
             width: 100,
             renderType:'renderEventIndex'
           },
           {
-            title: '题型',
+            title: this.$t('totalAnalysis.ta_table_text2'),
             key: 'type',
             minWidth:100
           },
@@ -108,29 +108,29 @@
           //  key: 'stem',
           //},
           {
-            title: '知识点',
+            title:this.$t('totalAnalysis.ta_table_text3'),
             key: 'knowledgePoint',
             minWidth:150
           },
           {
-            title: '落点区域',
+            title: this.$t('totalAnalysis.sca_table_text6'),
             key: 'areaName',
             minWidth:100
           },
           {
-            title: '配分',
+            title: this.$t('totalAnalysis.ta_table_text4'),
             key: 'score',
-            minWidth:100
+            minWidth:80
           },
           {
-            title: '难易度',
+            title: this.$t('totalAnalysis.ta_table_text5'),
             key: 'diff',
             minWidth:100
           },
           {
-            title: '鉴别度',
+            title: this.$t('totalAnalysis.ta_table_text6'),
             key: 'identify',
-            minWidth:100
+            minWidth:120
           },
           {
             title: 'R1',
@@ -171,37 +171,37 @@
         ],
         exerciseColumns: [
           {
-            title: '题号',
+            title: this.$t('totalAnalysis.ta_table_text1'),
             key: 'id',
             width: 100,
             renderType:'renderEventIndex'
           },
           {
-            title: '班级',
+            title: this.$t('totalAnalysis.ta_table_text7'),
             key: 'classScoreRate',
             sortable: true,
             width:150
           },
           {
-            title: '年级',
+            title: this.$t('totalAnalysis.ta_table_text8'),
             key: 'gradeScoreRate',
             sortable: true,
             width:150
           },
           {
-            title: '区级',
+            title: this.$t('totalAnalysis.ta_table_text9'),
             key: 'areaScoreRate',
             sortable: true,
             width:150
           },
           {
-            title: '高分组',
+            title: this.$t('totalAnalysis.ta_table_text10'),
             key: 'highScoreRate',
             sortable: true,
             width:150
           },
           {
-            title: '低分组',
+            title: this.$t('totalAnalysis.ta_table_text11'),
             key: 'lowScoreRate',
             sortable: true,
             width:150