Browse Source

add : 加入 ESLINT

OnePsycho 5 years ago
parent
commit
dcad462836
100 changed files with 5181 additions and 5276 deletions
  1. 24 0
      TEAMModelOS/ClientApp/.eslintrc.js
  2. 1 16
      TEAMModelOS/ClientApp/package.json
  3. 7 7
      TEAMModelOS/ClientApp/src/App.vue
  4. 3 4
      TEAMModelOS/ClientApp/src/api/classMgmt.js
  5. 211 216
      TEAMModelOS/ClientApp/src/api/index.js
  6. 9 9
      TEAMModelOS/ClientApp/src/api/schoolSetting.js
  7. 12 12
      TEAMModelOS/ClientApp/src/api/stuAccount.js
  8. 3 4
      TEAMModelOS/ClientApp/src/api/talMgmt.js
  9. 4 4
      TEAMModelOS/ClientApp/src/api/totalAnalysis.js
  10. 54 61
      TEAMModelOS/ClientApp/src/boot-app.js
  11. 16 20
      TEAMModelOS/ClientApp/src/common/BaseExamList.vue
  12. 4 6
      TEAMModelOS/ClientApp/src/common/BaseHeader.vue
  13. 3 3
      TEAMModelOS/ClientApp/src/common/CreateLink.vue
  14. 17 17
      TEAMModelOS/ClientApp/src/common/EditableLabel.vue
  15. 4 4
      TEAMModelOS/ClientApp/src/common/Loading.vue
  16. 10 10
      TEAMModelOS/ClientApp/src/common/headers.vue
  17. 1 1
      TEAMModelOS/ClientApp/src/components/SignedInUser.vue
  18. 1 1
      TEAMModelOS/ClientApp/src/components/app-root.vue
  19. 7 7
      TEAMModelOS/ClientApp/src/components/evaluation/IconText.vue
  20. 22 23
      TEAMModelOS/ClientApp/src/components/evaluation/SyllabusTree.vue
  21. 66 67
      TEAMModelOS/ClientApp/src/components/graph/ringPie.vue
  22. 5 5
      TEAMModelOS/ClientApp/src/components/nav-menu.vue
  23. 22 22
      TEAMModelOS/ClientApp/src/components/public/main/index.vue
  24. 70 72
      TEAMModelOS/ClientApp/src/components/smartclassdashboard/ClassBar.vue
  25. 32 32
      TEAMModelOS/ClientApp/src/components/smartclassdashboard/ClassLine.vue
  26. 80 81
      TEAMModelOS/ClientApp/src/components/smartclassdashboard/FloorPlan.vue
  27. 24 24
      TEAMModelOS/ClientApp/src/components/smartclassdashboard/LegendPie.vue
  28. 84 85
      TEAMModelOS/ClientApp/src/components/smartclassdashboard/RingPie.vue
  29. 38 38
      TEAMModelOS/ClientApp/src/components/smartschooldashboard/AccountLine.vue
  30. 28 28
      TEAMModelOS/ClientApp/src/components/smartschooldashboard/ClassResourceBar.vue
  31. 52 52
      TEAMModelOS/ClientApp/src/components/smartschooldashboard/ClasstypePie.vue
  32. 32 32
      TEAMModelOS/ClientApp/src/components/smartschooldashboard/CourseBar.vue
  33. 98 98
      TEAMModelOS/ClientApp/src/components/smartschooldashboard/FinishPercentPie.vue
  34. 66 67
      TEAMModelOS/ClientApp/src/components/smartschooldashboard/RingPie.vue
  35. 45 31
      TEAMModelOS/ClientApp/src/components/smartschooldashboard/TeachScienceBar.vue
  36. 45 45
      TEAMModelOS/ClientApp/src/components/smartschooldashboard/TotalLine.vue
  37. 30 30
      TEAMModelOS/ClientApp/src/components/student-analysis/SAannulus.vue
  38. 144 144
      TEAMModelOS/ClientApp/src/components/student-analysis/SAbargraph.vue
  39. 42 42
      TEAMModelOS/ClientApp/src/components/student-analysis/SAbarline.vue
  40. 11 11
      TEAMModelOS/ClientApp/src/components/student-analysis/SAbasics.vue
  41. 97 98
      TEAMModelOS/ClientApp/src/components/student-analysis/SAchooseattention.vue
  42. 49 50
      TEAMModelOS/ClientApp/src/components/student-analysis/SAchooseexam.vue
  43. 106 108
      TEAMModelOS/ClientApp/src/components/student-analysis/SAlinechart.vue
  44. 47 48
      TEAMModelOS/ClientApp/src/components/student-analysis/SApercent.vue
  45. 32 32
      TEAMModelOS/ClientApp/src/components/student-analysis/SAradargraph.vue
  46. 134 137
      TEAMModelOS/ClientApp/src/components/student-analysis/SAsubjectsmanifestation.vue
  47. 130 131
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseBar.vue
  48. 27 30
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseChangeLine.vue
  49. 46 48
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseCircle.vue
  50. 105 117
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseEntryBar.vue
  51. 25 27
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseEntryLine.vue
  52. 57 59
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseKnowledgeBar.vue
  53. 73 75
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseKnowledgeDetail.vue
  54. 141 142
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseLine.vue
  55. 77 78
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseLineBar.vue
  56. 102 118
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseMyTable.vue
  57. 65 65
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BasePie.vue
  58. 26 27
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseRadar.vue
  59. 43 44
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseRateLine.vue
  60. 377 384
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseScatter.vue
  61. 53 53
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseTable.vue
  62. 336 347
      TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseTestScatter.vue
  63. 24 25
      TEAMModelOS/ClientApp/src/components/student-analysis/total/ExportTables.vue
  64. 77 77
      TEAMModelOS/ClientApp/src/components/syllabus/KnowTree.vue
  65. 4 4
      TEAMModelOS/ClientApp/src/components/syllabus/SelectModule.vue
  66. 72 77
      TEAMModelOS/ClientApp/src/components/syllabus/SelectSchool.vue
  67. 153 153
      TEAMModelOS/ClientApp/src/components/syllabus/Tree.vue
  68. 151 153
      TEAMModelOS/ClientApp/src/components/syllabus/newTree.vue
  69. 59 59
      TEAMModelOS/ClientApp/src/components/talmgmtdashboard/Bubble.vue
  70. 38 38
      TEAMModelOS/ClientApp/src/components/talmgmtdashboard/InteractiveBarLine.vue
  71. 30 30
      TEAMModelOS/ClientApp/src/components/talmgmtdashboard/InteractiveLine.vue
  72. 66 67
      TEAMModelOS/ClientApp/src/components/talmgmtdashboard/RingPie.vue
  73. 42 42
      TEAMModelOS/ClientApp/src/components/talmgmtdashboard/TechnologyBar.vue
  74. 6 6
      TEAMModelOS/ClientApp/src/config/oidc.js
  75. 43 45
      TEAMModelOS/ClientApp/src/filters/http.js
  76. 1 1
      TEAMModelOS/ClientApp/src/icons.js
  77. 6 6
      TEAMModelOS/ClientApp/src/locale/index.js
  78. 1 2
      TEAMModelOS/ClientApp/src/locale/lang/en-US/classMgmt.js
  79. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/en-US/common.js
  80. 18 18
      TEAMModelOS/ClientApp/src/locale/lang/en-US/index.js
  81. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/en-US/menu.js
  82. 75 75
      TEAMModelOS/ClientApp/src/locale/lang/en-US/schoolBaseInfo.js
  83. 1 2
      TEAMModelOS/ClientApp/src/locale/lang/en-US/schoolMgmt.js
  84. 74 74
      TEAMModelOS/ClientApp/src/locale/lang/en-US/stuAccount.js
  85. 65 65
      TEAMModelOS/ClientApp/src/locale/lang/en-US/talMgmt.js
  86. 189 190
      TEAMModelOS/ClientApp/src/locale/lang/en-US/totalAnalysis.js
  87. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/en-US/unit.js
  88. 3 3
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/classMgmt.js
  89. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/common.js
  90. 18 18
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/index.js
  91. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/menu.js
  92. 75 75
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/schoolBaseInfo.js
  93. 13 13
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/schoolMgmt.js
  94. 76 76
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/stuAccount.js
  95. 19 19
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/talMgmt.js
  96. 189 195
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/totalAnalysis.js
  97. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/zh-CN/unit.js
  98. 4 5
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/classMgmt.js
  99. 2 2
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/common.js
  100. 0 0
      TEAMModelOS/ClientApp/src/locale/lang/zh-TW/index.js

+ 24 - 0
TEAMModelOS/ClientApp/.eslintrc.js

@@ -0,0 +1,24 @@
+module.exports = {
+  'root': true,
+  'env': {
+    'browser': true,
+    'node': true,
+    'jquery': true
+  },
+  'plugins': ['vue'],
+  'extends': [
+    'plugin:vue/essential',
+    '@vue/standard'
+  ],
+  'rules': {
+    'indent': 'off',
+    'no-console': 'off',
+    'space-before-function-paren': [2, 'never'],
+    'vue/no-parsing-error': [2, {
+      'x-invalid-end-tag': false
+    }]
+  },
+  'parserOptions': {
+    'parser': 'babel-eslint'
+  }
+}

+ 1 - 16
TEAMModelOS/ClientApp/package.json

@@ -9,6 +9,7 @@
   },
   },
   "dependencies": {
   "dependencies": {
     "@ckeditor/ckeditor5-build-inline": "^12.3.1",
     "@ckeditor/ckeditor5-build-inline": "^12.3.1",
+    "@vue/eslint-config-standard": "^4.0.0",
     "animate.css": "^3.7.2",
     "animate.css": "^3.7.2",
     "axios": "^0.19.0",
     "axios": "^0.19.0",
     "bcryptjs": "^2.4.3",
     "bcryptjs": "^2.4.3",
@@ -99,22 +100,6 @@
     "eslint-plugin-promise": "^4.2.1",
     "eslint-plugin-promise": "^4.2.1",
     "eslint-plugin-standard": "^4.0.0"
     "eslint-plugin-standard": "^4.0.0"
   },
   },
-  "eslintConfig": {
-    "root": true,
-    "env": {
-      "node": true
-    },
-    "extends": [
-      "plugin:vue/essential",
-      "eslint:recommended"
-    ],
-    "rules": {
-      "no-console": "off"
-    },
-    "parserOptions": {
-      "parser": "babel-eslint"
-    }
-  },
   "postcss": {
   "postcss": {
     "plugins": {
     "plugins": {
       "autoprefixer": {}
       "autoprefixer": {}

+ 7 - 7
TEAMModelOS/ClientApp/src/App.vue

@@ -19,7 +19,7 @@
             ...mapGetters('oidcStore', [
             ...mapGetters('oidcStore', [
                 'oidcIsAuthenticated'
                 'oidcIsAuthenticated'
             ]),
             ]),
-            hasAccess: function () {
+            hasAccess: function() {
                 return this.oidcIsAuthenticated || this.$route.meta.isPublic
                 return this.oidcIsAuthenticated || this.$route.meta.isPublic
             }
             }
         },
         },
@@ -29,19 +29,19 @@
                 'removeOidcUser',
                 'removeOidcUser',
                 'signOutOidc'
                 'signOutOidc'
             ]),
             ]),
-            userLoaded: function (e) {
+            userLoaded: function(e) {
                 console.log('I am listening to the user loaded event in vuex-oidc', e.detail)
                 console.log('I am listening to the user loaded event in vuex-oidc', e.detail)
             },
             },
-            oidcError: function (e) {
+            oidcError: function(e) {
                 console.log('I am listening to the oidc error event in vuex-oidc', e.detail)
                 console.log('I am listening to the oidc error event in vuex-oidc', e.detail)
             },
             },
-            signOut: function () {
+            signOut: function() {
                 this.signOutOidc().then(() => {
                 this.signOutOidc().then(() => {
                     this.$router.push('/')
                     this.$router.push('/')
                 })
                 })
-                //this.removeOidcUser().then(() => {
+                // this.removeOidcUser().then(() => {
                 //    this.$router.push('/')
                 //    this.$router.push('/')
-                //})
+                // })
             }
             }
         },
         },
         mounted() {
         mounted() {
@@ -76,4 +76,4 @@
             #nav a.router-link-exact-active {
             #nav a.router-link-exact-active {
                 color: #42b983;
                 color: #42b983;
             }
             }
-</style>
+</style>

+ 3 - 4
TEAMModelOS/ClientApp/src/api/classMgmt.js

@@ -1,7 +1,6 @@
 import { fetch, post } from '@/filters/http'
 import { fetch, post } from '@/filters/http'
 export default {
 export default {
-  GetTestIoTData: function (item) {
-    return fetch('/api/testAPI/GetTestIoTData/' + item.schoolshortcode);
-  },
+  GetTestIoTData: function(item) {
+    return fetch('/api/testAPI/GetTestIoTData/' + item.schoolshortcode)
+  }
 }
 }
-  

+ 211 - 216
TEAMModelOS/ClientApp/src/api/index.js

@@ -12,297 +12,292 @@ export default {
   totalAnalysis,
   totalAnalysis,
   talMgmt,
   talMgmt,
   cloudApi,
   cloudApi,
-  //获取登录跳转链接
-  getLoginLink: function (data) {
-    return post('api/login/login', data);
+  // 获取登录跳转链接
+  getLoginLink: function(data) {
+    return post('api/login/login', data)
   },
   },
-  //验证登录
-  checkLogin: function (data) {
-    return post('api/login/CheckLogin', data);
+  // 验证登录
+  checkLogin: function(data) {
+    return post('api/login/CheckLogin', data)
   },
   },
-  //获取登录人员角色列表
-  getLoginRoles: function (data) {
-    return post('api/role/GetLoginRoles', data);
+  // 获取登录人员角色列表
+  getLoginRoles: function(data) {
+    return post('api/role/GetLoginRoles', data)
   },
   },
-  //查找地区对应学校列表
-  getSchoolList: function (data) {
-    return post('api/School/getSchool', data);
+  // 查找地区对应学校列表
+  getSchoolList: function(data) {
+    return post('api/School/getSchool', data)
   },
   },
-  //根据当前登录用户获取已授权的AI智慧学校
-  getAuthSchool: function (data) {
-    return post('api/School/AuthorizedAISchool', data);
+  // 根据当前登录用户获取已授权的AI智慧学校
+  getAuthSchool: function(data) {
+    return post('api/School/AuthorizedAISchool', data)
   },
   },
-  //获取全部科目
-  FindSubjectsByDict: function (data) {
-    return post('api/subject/FindSubjectsByDict', data);
+  // 获取全部科目
+  FindSubjectsByDict: function(data) {
+    return post('api/subject/FindSubjectsByDict', data)
   },
   },
-  //获取当前学校全部科目
-  FindSchoolSubjectsByDict: function (data) {
-    return post('api/subject/FindSchoolSubjectsByDict', data);
+  // 获取当前学校全部科目
+  FindSchoolSubjectsByDict: function(data) {
+    return post('api/subject/FindSchoolSubjectsByDict', data)
   },
   },
-  //获取当前学校全部册别
-  FindSchoolVolumesByDict: function (data) {
-    return post('api/volume/FindSchoolVolumesByDict', data);
+  // 获取当前学校全部册别
+  FindSchoolVolumesByDict: function(data) {
+    return post('api/volume/FindSchoolVolumesByDict', data)
   },
   },
-  //获取当前学校全部学段
-  FindSchoolPeriodsByDict: function (data) {
-    return post('api/period/FindSchoolPeriodsByDict', data);
+  // 获取当前学校全部学段
+  FindSchoolPeriodsByDict: function(data) {
+    return post('api/period/FindSchoolPeriodsByDict', data)
   },
   },
-  //获取当前学校全部年级
-  FindSchoolGradesByDict: function (data) {
-    return post('api/grade/FindSchoolGradesByDict', data);
+  // 获取当前学校全部年级
+  FindSchoolGradesByDict: function(data) {
+    return post('api/grade/FindSchoolGradesByDict', data)
   },
   },
-  //获取当前学校全部学期
-  FindSchoolTermsByDict: function (data) {
-    return post('api/term/FindSchoolTermsByDict', data);
+  // 获取当前学校全部学期
+  FindSchoolTermsByDict: function(data) {
+    return post('api/term/FindSchoolTermsByDict', data)
   },
   },
-  //保存或更新学校科目
-  SaveOrUpdateSchoolSubject: function (data) {
-    return post('api/subject/SaveOrUpdateSchoolSubject', data);
+  // 保存或更新学校科目
+  SaveOrUpdateSchoolSubject: function(data) {
+    return post('api/subject/SaveOrUpdateSchoolSubject', data)
   },
   },
-  //保存或更新学校册别
-  SaveOrUpdateSchoolVolume: function (data) {
-    return post('api/volume/SaveOrUpdateSchoolVolume', data);
+  // 保存或更新学校册别
+  SaveOrUpdateSchoolVolume: function(data) {
+    return post('api/volume/SaveOrUpdateSchoolVolume', data)
   },
   },
-  //根据册别及其他条件获取课纲树形结构
-  FindSyllabusByVolumeCode: function (data) {
-    return post('api/syllabus/FindSyllabusByVolumeCode', data);
+  // 根据册别及其他条件获取课纲树形结构
+  FindSyllabusByVolumeCode: function(data) {
+    return post('api/syllabus/FindSyllabusByVolumeCode', data)
   },
   },
-  //保存单个课纲节点
-  SaveOrUpdateSingleNode: function (data) {
-    return post('api/Syllabus/SaveOrUpdate', data);
+  // 保存单个课纲节点
+  SaveOrUpdateSingleNode: function(data) {
+    return post('api/Syllabus/SaveOrUpdate', data)
   },
   },
-  //根据条件获取模板知识点
-  FindKnowledgePointByDict: function (data) {
-    return post('api/Knowledge/FindKnowledgePointByDict', data);
+  // 根据条件获取模板知识点
+  FindKnowledgePointByDict: function(data) {
+    return post('api/Knowledge/FindKnowledgePointByDict', data)
   },
   },
-  //根据条件获取知识块及知识点树形结构
-  FindKnowledgeBlockAndPointByDict: function (data) {
-    return post('api/Knowledge/FindKnowledgeBlockAndPointByDict', data);
+  // 根据条件获取知识块及知识点树形结构
+  FindKnowledgeBlockAndPointByDict: function(data) {
+    return post('api/Knowledge/FindKnowledgeBlockAndPointByDict', data)
   },
   },
-  //根据标准知识点知识块关联生成学校的知识点,知识块
-  SaveOrUpdateSchoolKnowledgeAsStdKnowledge: function (data) {
-    return post('api/Knowledge/SaveOrUpdateSchoolKnowledgeAsStdKnowledge', data);
+  // 根据标准知识点知识块关联生成学校的知识点,知识块
+  SaveOrUpdateSchoolKnowledgeAsStdKnowledge: function(data) {
+    return post('api/Knowledge/SaveOrUpdateSchoolKnowledgeAsStdKnowledge', data)
   },
   },
-  //获取学校的知识块及知识点结构
-  FindSchoolBlockAndPointByDict: function (data) {
-    return post('api/Knowledge/FindSchoolBlockAndPointByDict', data);
+  // 获取学校的知识块及知识点结构
+  FindSchoolBlockAndPointByDict: function(data) {
+    return post('api/Knowledge/FindSchoolBlockAndPointByDict', data)
   },
   },
-  //获取学校知识点
-  FindSchoolPointByDict: function (data) {
-    return post('api/Knowledge/FindSchoolPointByDict', data);
+  // 获取学校知识点
+  FindSchoolPointByDict: function(data) {
+    return post('api/Knowledge/FindSchoolPointByDict', data)
   },
   },
-  //手动创建学校知识块
-  SaveOrUpdateSchoolBlock: function (data) {
-    return post('api/Knowledge/SaveOrUpdateSchoolBlock', data);
+  // 手动创建学校知识块
+  SaveOrUpdateSchoolBlock: function(data) {
+    return post('api/Knowledge/SaveOrUpdateSchoolBlock', data)
   },
   },
-  //手动创建学校知识点
-  SaveOrUpdateAllSchoolPoint: function (data) {
-    return post('api/Knowledge/SaveOrUpdateAllSchoolPoint', data);
+  // 手动创建学校知识点
+  SaveOrUpdateAllSchoolPoint: function(data) {
+    return post('api/Knowledge/SaveOrUpdateAllSchoolPoint', data)
   },
   },
-  //手动引入学校知识块包含的知识点
-  SaveOrUpdateAllSchoolBlockPoint: function (data) {
-    return post('api/Knowledge/SaveOrUpdateAllSchoolBlockPoint', data);
+  // 手动引入学校知识块包含的知识点
+  SaveOrUpdateAllSchoolBlockPoint: function(data) {
+    return post('api/Knowledge/SaveOrUpdateAllSchoolBlockPoint', data)
   },
   },
-  //移除学校知识块中的知识点
-  RemoveSchoolBlockPoint: function (data) {
-    return post('api/Knowledge/RemoveSchoolBlockPoint', data);
+  // 移除学校知识块中的知识点
+  RemoveSchoolBlockPoint: function(data) {
+    return post('api/Knowledge/RemoveSchoolBlockPoint', data)
   },
   },
 
 
-  //获取登录人员身份信息
-  getLoginClaim: function (data) {
-    return post('api/role/GetLoginClaim', data);
+  // 获取登录人员身份信息
+  getLoginClaim: function(data) {
+    return post('api/role/GetLoginClaim', data)
   },
   },
 
 
-
-  //新建习题保存到题库
-  SaveItemBank: function (data) {
-    return post('api/evaluation/ItemBank', data);
+  // 新建习题保存到题库
+  SaveItemBank: function(data) {
+    return post('api/evaluation/ItemBank', data)
   },
   },
 
 
-  //新建试卷到试卷库
-  SaveTestPaper: function (data) {
-    return post('api/Evaluation/testPaper', data);
+  // 新建试卷到试卷库
+  SaveTestPaper: function(data) {
+    return post('api/Evaluation/testPaper', data)
   },
   },
 
 
-  //新建试卷到试卷库
-  SaveAnalyzeHtml: function (data) {
-    return post('api/ImportExercise/AnalyzeHtml', data);
+  // 新建试卷到试卷库
+  SaveAnalyzeHtml: function(data) {
+    return post('api/ImportExercise/AnalyzeHtml', data)
   },
   },
 
 
-  //获取所有学校信息
-  GetAllSchool: function (data) {
-    return post('api/school/GetAllSchool', data);
+  // 获取所有学校信息
+  GetAllSchool: function(data) {
+    return post('api/school/GetAllSchool', data)
   },
   },
 
 
-  //根据条件获取学段
-  FindPeriodsByDict: function (data) {
-    return post('api/period/FindPeriodsByDict', data);
+  // 根据条件获取学段
+  FindPeriodsByDict: function(data) {
+    return post('api/period/FindPeriodsByDict', data)
   },
   },
 
 
-  //根据条件获取年级
-  FindGradesByDict: function (data) {
-    return post('api/grade/FindGradesByDict', data);
+  // 根据条件获取年级
+  FindGradesByDict: function(data) {
+    return post('api/grade/FindGradesByDict', data)
   },
   },
-  //根据条件获取学科
-  FindSubjectsByDict: function (data) {
-    return post('api/subject/FindSubjectsByDict', data);
+  // 根据条件获取学科
+  FindSubjectsByDict: function(data) {
+    return post('api/subject/FindSubjectsByDict', data)
   },
   },
 
 
-  //学情分析API
-  //查询班年级数据
-  FindGrade: function () {
-    return fetch('/api/class/getGrade?identity=Grade');
+  // 学情分析API
+  // 查询班年级数据
+  FindGrade: function() {
+    return fetch('/api/class/getGrade?identity=Grade')
   },
   },
-  //查询学年期数据
-  FindTerm: function () {
-    return fetch('/api/class/getTerm?identity=term');
+  // 查询学年期数据
+  FindTerm: function() {
+    return fetch('/api/class/getTerm?identity=term')
   },
   },
-  //查询考试情况
-  FindExam: function () {
-    return fetch('/api/class/getExam?identity=Exam');
+  // 查询考试情况
+  FindExam: function() {
+    return fetch('/api/class/getExam?identity=Exam')
   },
   },
-  //查询基础数据
-  FindBasics: function () {
-    return fetch('/api/class/getBase?identity=Base');
+  // 查询基础数据
+  FindBasics: function() {
+    return fetch('/api/class/getBase?identity=Base')
   },
   },
-  //查询各校成绩排名(堆叠柱状图)
-  FindBargraph: function () {
-    return fetch('/api/class/getExam?identity=EcharsZ');
+  // 查询各校成绩排名(堆叠柱状图)
+  FindBargraph: function() {
+    return fetch('/api/class/getExam?identity=EcharsZ')
   },
   },
-  //查询各项科目表现(雷达图)
-  FindRadargraph: function () {
-    return fetch('/api/class/getExam?identity=EcharsL');
+  // 查询各项科目表现(雷达图)
+  FindRadargraph: function() {
+    return fetch('/api/class/getExam?identity=EcharsL')
   },
   },
-  //查询科目表现对比(饼图)
-  FindSubjectsManifestation: function () {
-    return fetch('/api/class/getExam?identity=EcharsY');
+  // 查询科目表现对比(饼图)
+  FindSubjectsManifestation: function() {
+    return fetch('/api/class/getExam?identity=EcharsY')
   },
   },
-  //查询历次总分统计表(折线图)
-  FindLinechart: function () {
-    return fetch('/api/class/getExam?identity=EcharsZx');
+  // 查询历次总分统计表(折线图)
+  FindLinechart: function() {
+    return fetch('/api/class/getExam?identity=EcharsZx')
   },
   },
-  //查询考试类型
-  FindExamtype: function () {
-    return fetch('/api/class/getExam?identity=ExamType');
+  // 查询考试类型
+  FindExamtype: function() {
+    return fetch('/api/class/getExam?identity=ExamType')
   },
   },
 
 
-
-  //动态数据
-  //关注年级变化数据
-  FindSelectGrade: function () {
-    return fetch('/api/class/getChange?identity=Changegrade');
-  },
-  //关注学年期变化数据
-  FindSelectTerm: function () {
-    return fetch('/api/class/getChangeterm?identity=Changeterm');
-  },
-  //点击某次考试详情 变化数据
-  FindSelectExam: function () {
-    return fetch('/api/class/getChangeExam?identity=Changeexam');
-  },
-  //筛选考试类型 变化数据
-  FindSelectExamType: function () {
-    return fetch('/api/class/getChangeExamType?identity=Changeexamtype');
-  },
-  //显示文科数据  变化数据
-  FindSelectArts: function () {
-    return fetch('/api/class/getChangeArts?identity=Changarts');
-  },
-  //显示理科数据  变化数据
-  FindSelectScience: function () {
-    return fetch('/api/class/getChangeScience?identity=Changscience');
-  },
-  //点击柱状图 赋值到雷达图
-  //成都七中
-  Findcdqz: function () {
-    return fetch('/api/class/getExam?identity=cdqz');
-  },
-  //成都四中
-  Findcdsz: function () {
-    return fetch('/api/class/getExam?identity=cdsz');
-  },
-  //成都九中
-  Findcdjz: function () {
+  // 动态数据
+  // 关注年级变化数据
+  FindSelectGrade: function() {
+    return fetch('/api/class/getChange?identity=Changegrade')
+  },
+  // 关注学年期变化数据
+  FindSelectTerm: function() {
+    return fetch('/api/class/getChangeterm?identity=Changeterm')
+  },
+  // 点击某次考试详情 变化数据
+  FindSelectExam: function() {
+    return fetch('/api/class/getChangeExam?identity=Changeexam')
+  },
+  // 筛选考试类型 变化数据
+  FindSelectExamType: function() {
+    return fetch('/api/class/getChangeExamType?identity=Changeexamtype')
+  },
+  // 显示文科数据  变化数据
+  FindSelectArts: function() {
+    return fetch('/api/class/getChangeArts?identity=Changarts')
+  },
+  // 显示理科数据  变化数据
+  FindSelectScience: function() {
+    return fetch('/api/class/getChangeScience?identity=Changscience')
+  },
+  // 点击柱状图 赋值到雷达图
+  // 成都七中
+  Findcdqz: function() {
+    return fetch('/api/class/getExam?identity=cdqz')
+  },
+  // 成都四中
+  Findcdsz: function() {
+    return fetch('/api/class/getExam?identity=cdsz')
+  },
+  // 成都九中
+  Findcdjz: function() {
     return fetch('/api/class/getExam?identity=cdjz')
     return fetch('/api/class/getExam?identity=cdjz')
   },
   },
-  //成都树德
-  Findcdsd: function () {
+  // 成都树德
+  Findcdsd: function() {
     return fetch('/api/class/getExam?identity=cdsd')
     return fetch('/api/class/getExam?identity=cdsd')
   },
   },
-  //师大一中
-  Findsdyz: function () {
+  // 师大一中
+  Findsdyz: function() {
     return fetch('/api/class/getExam?identity=sdyz')
     return fetch('/api/class/getExam?identity=sdyz')
   },
   },
-  //西川中学
-  Findxczx: function () {
-    return fetch('/api/class/getExam?identity=xczx');
+  // 西川中学
+  Findxczx: function() {
+    return fetch('/api/class/getExam?identity=xczx')
   },
   },
-  //石室中学
-  Findsszx: function () {
-    return fetch('/api/class/getExam?identity=sszx');
+  // 石室中学
+  Findsszx: function() {
+    return fetch('/api/class/getExam?identity=sszx')
   },
   },
 
 
-  //任教老师页面
-  //查询关注学年期
-  FindTeachTerm: function () {
-    return fetch('/api/class/getTerm?identity=Teachterm');
+  // 任教老师页面
+  // 查询关注学年期
+  FindTeachTerm: function() {
+    return fetch('/api/class/getTerm?identity=Teachterm')
   },
   },
-  //查询数据对比
-  FindTeachContrast: function () {
-    return fetch('/api/class/getTerm?identity=Teachcontrast');
+  // 查询数据对比
+  FindTeachContrast: function() {
+    return fetch('/api/class/getTerm?identity=Teachcontrast')
   },
   },
-  //查询考试信息
-  FindTeachExam: function () {
-    return fetch('/api/class/getExam?identity=TeachExam');
+  // 查询考试信息
+  FindTeachExam: function() {
+    return fetch('/api/class/getExam?identity=TeachExam')
   },
   },
-  //查询基础数据
-  FindTeachBasics: function () {
-    return fetch('/api/class/getTerm?identity=TeachBase');
+  // 查询基础数据
+  FindTeachBasics: function() {
+    return fetch('/api/class/getTerm?identity=TeachBase')
   },
   },
-  //查询各班平均分数排名(柱状图)
-  FindTeachbargraph: function () {
-    return fetch('/api/class/getExam?identity=TeachEcharsZ');
+  // 查询各班平均分数排名(柱状图)
+  FindTeachbargraph: function() {
+    return fetch('/api/class/getExam?identity=TeachEcharsZ')
   },
   },
-  //查询及格率比较
-  FindTeachAnnulus: function () {
-    return fetch('/api/class/getExam?identity=TeachAnnulus');
+  // 查询及格率比较
+  FindTeachAnnulus: function() {
+    return fetch('/api/class/getExam?identity=TeachAnnulus')
   },
   },
-  //查询历次总分统计图
-  FindTeachHistory: function () {
-    return fetch('/api/class/getExam?identity=TeachEcharsZx');
+  // 查询历次总分统计图
+  FindTeachHistory: function() {
+    return fetch('/api/class/getExam?identity=TeachEcharsZx')
   },
   },
-  //查询PR值
-  FindTeachPR: function () {
-    return fetch('/api/class/getExam?identity=TeachPie');
+  // 查询PR值
+  FindTeachPR: function() {
+    return fetch('/api/class/getExam?identity=TeachPie')
   },
   },
 
 
-
-  //动态数据
-  //选择关注学年期
-  FindDynamicTerm: function () {
-    return fetch('/api/class/getExam?identity=TeachChangeterm');
+  // 动态数据
+  // 选择关注学年期
+  FindDynamicTerm: function() {
+    return fetch('/api/class/getExam?identity=TeachChangeterm')
   },
   },
-  //选择数据比较
-  FindDatacompare: function () {
-    return fetch('/api/class/getExam?identity=TeachChangeDatacompare');
+  // 选择数据比较
+  FindDatacompare: function() {
+    return fetch('/api/class/getExam?identity=TeachChangeDatacompare')
   },
   },
-  //选择考试数据
-  FindClickExam: function () {
-    return fetch('/api/class/getExam?identity=TeachChangeExam');
+  // 选择考试数据
+  FindClickExam: function() {
+    return fetch('/api/class/getExam?identity=TeachChangeExam')
   },
   },
-  //点击班级 联动 RP值
-  FindClickPR: function () {
-    return fetch('/api/class/getExam?identity=TeachClickPR');
+  // 点击班级 联动 RP值
+  FindClickPR: function() {
+    return fetch('/api/class/getExam?identity=TeachClickPR')
   },
   },
 
 
-
-
   /*
   /*
    *评测
    *评测
    */
    */
-  //上传图片
-  UploadFile: function (data) {
-    return post('/api/file/uploadFile',data);
+  // 上传图片
+  UploadFile: function(data) {
+    return post('/api/file/uploadFile', data)
   }
   }
 }
 }

+ 9 - 9
TEAMModelOS/ClientApp/src/api/schoolSetting.js

@@ -1,15 +1,15 @@
 import { fetch, post } from '@/filters/http'
 import { fetch, post } from '@/filters/http'
 export default {
 export default {
-  schoolSettingSaveOrUpdate: function (data) {
-    return post('/api/School/SaveOrUpdateAll',data);
+  schoolSettingSaveOrUpdate: function(data) {
+    return post('/api/School/SaveOrUpdateAll', data)
   },
   },
-  classroomSettingSaveOrUpdate: function (data) {
-    return post('/api/Classroom/SaveOrUpdateAll', data);
+  classroomSettingSaveOrUpdate: function(data) {
+    return post('/api/Classroom/SaveOrUpdateAll', data)
   },
   },
-  findSchoolSystem: function (data) {
-    return post('/api/School/FindSchool', data);
-  },
-  findClassInfo: function (data) {
-    return post('/api/Classroom/FindClassInfo', data);
+  findSchoolSystem: function(data) {
+    return post('/api/School/FindSchool', data)
   },
   },
+  findClassInfo: function(data) {
+    return post('/api/Classroom/FindClassInfo', data)
+  }
 }
 }

+ 12 - 12
TEAMModelOS/ClientApp/src/api/stuAccount.js

@@ -1,21 +1,21 @@
 import { fetch, post } from '@/filters/http'
 import { fetch, post } from '@/filters/http'
 export default {
 export default {
-  saveStudentInfo: function (data) {
-        return post('api/Student/SaveStudent', data);
+  saveStudentInfo: function(data) {
+        return post('api/Student/SaveStudent', data)
   },
   },
-  findStudentInfo: function (data) {
-      return post('api/Student/FindStudent', data);
+  findStudentInfo: function(data) {
+      return post('api/Student/FindStudent', data)
   },
   },
-  saveAllStudentInfo: function (data) {
-      return post('api/StudentInfo/SaveAllStudent', data);
+  saveAllStudentInfo: function(data) {
+      return post('api/StudentInfo/SaveAllStudent', data)
   },
   },
-  updateAllStudentInfo: function (data) {
-      return post('api/StudentInfo/UpdateStudent', data);
+  updateAllStudentInfo: function(data) {
+      return post('api/StudentInfo/UpdateStudent', data)
   },
   },
-  updateStudentInfo: function (data) {
-      return post('api/StudentInfo/UpdateAllStudent', data);
+  updateStudentInfo: function(data) {
+      return post('api/StudentInfo/UpdateAllStudent', data)
   },
   },
-  deleteStudentInfo: function (data) {
-      return post('api/StudentInfo/DeleteStudent', data);
+  deleteStudentInfo: function(data) {
+      return post('api/StudentInfo/DeleteStudent', data)
   }
   }
 }
 }

+ 3 - 4
TEAMModelOS/ClientApp/src/api/talMgmt.js

@@ -1,7 +1,6 @@
 import { fetch, post } from '@/filters/http'
 import { fetch, post } from '@/filters/http'
 export default {
 export default {
-    GetTALData: function () {
-        return fetch('/api/testAPI/GetTestData');
-    },
+    GetTALData: function() {
+        return fetch('/api/testAPI/GetTestData')
+    }
 }
 }
-  

+ 4 - 4
TEAMModelOS/ClientApp/src/api/totalAnalysis.js

@@ -1,7 +1,7 @@
-//全科学情分析API列表
-import { fetch, post } from '@/filters/http'
+// 全科学情分析API列表
+import { post } from '@/filters/http'
 export default {
 export default {
-  getExamData: function (data) {
-    return post('api/StudentInfo/SaveStudentInfo', data);
+  getExamData: function(data) {
+    return post('api/StudentInfo/SaveStudentInfo', data)
   }
   }
 }
 }

+ 54 - 61
TEAMModelOS/ClientApp/src/boot-app.js

@@ -1,62 +1,58 @@
 import Vue from 'vue'
 import Vue from 'vue'
-import axios from 'axios'
-import i18n from '@/locale';
+import i18n from '@/locale'
 import router from './router/index'
 import router from './router/index'
 import store from './store'
 import store from './store'
 import { sync } from 'vuex-router-sync'
 import { sync } from 'vuex-router-sync'
 import App from './components/app-root'
 import App from './components/app-root'
 import { FontAwesomeIcon } from './icons'
 import { FontAwesomeIcon } from './icons'
-//import iView from 'iview';
-//import 'iview/dist/styles/iview.css';
-import ViewUI from 'view-design';
-import 'view-design/dist/styles/iview.css';
-import tools from "@/utils/public.js";
-import apiTools from '@/api';
-import mockTools from '@/mock';
-import { fetch, post } from '@/filters/http';
-import VideoPlayer from 'vue-video-player';
-import jwtDecode from 'jwt-decode';
-import JSONPath from 'jsonpath';
-import Loading from '@/common/Loading';
+// import iView from 'iview';
+// import 'iview/dist/styles/iview.css';
+import ViewUI from 'view-design'
+import 'view-design/dist/styles/iview.css'
+import tools from '@/utils/public.js'
+import apiTools from '@/api'
+import mockTools from '@/mock'
+import { fetch, post } from '@/filters/http'
+import VideoPlayer from 'vue-video-player'
+import jwtDecode from 'jwt-decode'
+import JSONPath from 'jsonpath'
+import Loading from '@/common/Loading'
 import BaseChangeLine from '@/components/student-analysis/total/BaseChangeLine.vue'
 import BaseChangeLine from '@/components/student-analysis/total/BaseChangeLine.vue'
+import echarts from 'echarts'
+import vuescroll from 'vuescroll/dist/vuescroll-native'
 
 
-require('video.js/dist/video-js.css');
-require('vue-video-player/src/custom-theme.css');
-Vue.use(VideoPlayer);
-Vue.use(Loading);
-
-Vue.component('BaseChangeLine', BaseChangeLine);
+require('video.js/dist/video-js.css')
+require('vue-video-player/src/custom-theme.css')
+Vue.use(VideoPlayer)
+Vue.use(Loading)
+Vue.component('BaseChangeLine', BaseChangeLine)
 
 
-//新添加的
-import echarts from 'echarts'
-import vuescroll from 'vuescroll/dist/vuescroll-native';
-// 你可以在这里设置全局配置
+// 设置全局VueScroll配置
 Vue.use(vuescroll, {
 Vue.use(vuescroll, {
     ops: tools.vueScrollOpt, // 在这里设置全局默认配置
     ops: tools.vueScrollOpt, // 在这里设置全局默认配置
-    name: 'vuescroll' // 在这里自定义组件名字,默认是vueScroll
-});
-
-//全局API请求
-Vue.prototype.$api = apiTools;
-Vue.prototype.$post = post;
-Vue.prototype.$get = fetch;
-
-//mock数据工具
-Vue.prototype.$Mock = mockTools;
-Vue.prototype.$jwtDecode = jwtDecode;
-Vue.prototype.$JSONPath = JSONPath;
+    name: 'vuescroll'
+})
+
+// 全局API请求
+Vue.prototype.$api = apiTools
+Vue.prototype.$post = post
+Vue.prototype.$get = fetch
+
+// 工具类
+Vue.prototype.$Mock = mockTools
+Vue.prototype.$jwtDecode = jwtDecode
+Vue.prototype.$JSONPath = JSONPath
 Vue.prototype.$echarts = echarts
 Vue.prototype.$echarts = echarts
-//ZXJ
-Vue.prototype.$tools = tools;
+Vue.prototype.$tools = tools
 
 
 // Registration of global components
 // Registration of global components
-Vue.component('icon', FontAwesomeIcon);
+Vue.component('icon', FontAwesomeIcon)
 
 
-const _import = require('./router/_import_file.js')//获取组件的方法
-var getRouter //用来获取后台拿到的路由
+const _import = require('./router/_import_file.js')// 获取组件的方法
+var getRouter // 用来获取后台拿到的路由
 
 
 // 動態加路由
 // 動態加路由
-//if (!getRouter) {
+// if (!getRouter) {
 //    if (!getObjArr('router')) {
 //    if (!getObjArr('router')) {
 //        axios.get('/api/testAPI/GetTestAuth').then(res => {
 //        axios.get('/api/testAPI/GetTestAuth').then(res => {
 //            getRouter = res.data.data;
 //            getRouter = res.data.data;
@@ -73,24 +69,24 @@ var getRouter //用来获取后台拿到的路由
 //        store.state.authorization.antRouter = getRouter;
 //        store.state.authorization.antRouter = getRouter;
 //        router.addRoutes(getRouter) //动态添加路由
 //        router.addRoutes(getRouter) //动态添加路由
 //    }
 //    }
-//}
+// }
 
 
 router.beforeEach((to, from, next) => {
 router.beforeEach((to, from, next) => {
-    document.body.scrollTop = 0;
-    next();
-});
+    document.body.scrollTop = 0
+    next()
+})
 
 
 function saveObjArr(name, data) { // 存储数组对象的方法
 function saveObjArr(name, data) { // 存储数组对象的方法
     sessionStorage.setItem(name, JSON.stringify(data))
     sessionStorage.setItem(name, JSON.stringify(data))
 }
 }
 
 
 function getObjArr(name) { // 获取数组对象的方法
 function getObjArr(name) { // 获取数组对象的方法
-    return JSON.parse(window.sessionStorage.getItem(name));
+    return JSON.parse(window.sessionStorage.getItem(name))
 }
 }
 
 
 function filterAsyncRouter(routers) {
 function filterAsyncRouter(routers) {
-    let newRouter = [];
-    routers.forEach(function (item) {
+    let newRouter = []
+    routers.forEach(function(item) {
         let page = {
         let page = {
             name: '',
             name: '',
             path: '',
             path: '',
@@ -98,22 +94,19 @@ function filterAsyncRouter(routers) {
             meta: {
             meta: {
                 access: []
                 access: []
             }
             }
-        };
-        page.name = item.component;
-        page.path = item.path;
-        page.meta.access = item.access;
-        page.component = _import(item.component);
+        }
+        page.name = item.component
+        page.path = item.path
+        page.meta.access = item.access
+        page.component = _import(item.component)
         newRouter.push(page)
         newRouter.push(page)
-    });
-    return newRouter;
+    })
+    return newRouter
 }
 }
 
 
 router.afterEach((to, from, next) => {
 router.afterEach((to, from, next) => {
-    document.body.scrollTop = 0;
-});
-
-
-
+    document.body.scrollTop = 0
+})
 
 
 Vue.use(ViewUI, {
 Vue.use(ViewUI, {
     i18n: (key, value) => i18n.t(key, value)
     i18n: (key, value) => i18n.t(key, value)

+ 16 - 20
TEAMModelOS/ClientApp/src/common/BaseExamList.vue

@@ -39,19 +39,19 @@
 <script>
 <script>
   import examList from '@/static/examList.json'
   import examList from '@/static/examList.json'
   export default {
   export default {
-    name: "headers",
+    name: 'headers',
     props: ['getExamIndex'],
     props: ['getExamIndex'],
     data() {
     data() {
       return {
       return {
-        searchValue: "",
-        selectPeriod:0,
+        searchValue: '',
+        selectPeriod: 0,
         selectGrade: 0,
         selectGrade: 0,
         selectTerm: 0,
         selectTerm: 0,
         selectExamType: 0,
         selectExamType: 0,
-        periodList: ['所有学段','高中','初中'],
+        periodList: ['所有学段', '高中', '初中'],
         gradeList: [],
         gradeList: [],
         termList: [],
         termList: [],
-        examTypeList: ['所有测验类型','区域测验','校内测验','全国测验'],
+        examTypeList: ['所有测验类型', '区域测验', '校内测验', '全国测验'],
         examList: [],
         examList: [],
         examIndex: 0,
         examIndex: 0,
         typesTransfer: {
         typesTransfer: {
@@ -60,31 +60,31 @@
           'C': '全国测验'
           'C': '全国测验'
         },
         },
         colorTransfer: {
         colorTransfer: {
-          '模拟测验':'#fbd103',
-          '诊断测验':'#baecff',
-          '全国测验':'#00ff8a'
+          '模拟测验': '#fbd103',
+          '诊断测验': '#baecff',
+          '全国测验': '#00ff8a'
         }
         }
 
 
       }
       }
     },
     },
     created() {
     created() {
-      this.examList = examList;
+      this.examList = examList
     },
     },
     methods: {
     methods: {
       handleExamClick(index, item) {
       handleExamClick(index, item) {
-        let that = this;
-        this.examIndex = index;
-        this.$emit('chooseExam', item);
-        that.$router.push({ path: '/total', query: { index:index }});
+        let that = this
+        this.examIndex = index
+        this.$emit('chooseExam', item)
+        that.$router.push({ path: '/total', query: { index: index } })
       },
       },
 
 
-      //查看更多评测列表
+      // 查看更多评测列表
       goEvaluationList() {
       goEvaluationList() {
-        this.$router.push('/totalindex');
+        this.$router.push('/totalindex')
       }
       }
     },
     },
     mounted() {
     mounted() {
-      //this.$emit('chooseExam', this.examList[0]);
+      // this.$emit('chooseExam', this.examList[0]);
     }
     }
   }
   }
 </script>
 </script>
@@ -143,7 +143,6 @@
       border: 1px solid #fbd103;
       border: 1px solid #fbd103;
     }
     }
 
 
-
     .ex-list-wrap .list-item .list-item-name {
     .ex-list-wrap .list-item .list-item-name {
       font-size: 16px;
       font-size: 16px;
       font-weight: 300;
       font-weight: 300;
@@ -174,7 +173,6 @@
     vertical-align:middle;
     vertical-align:middle;
     }
     }
 
 
-
   /*滚动条样式重写*/
   /*滚动条样式重写*/
   .scrollstyle::-webkit-scrollbar {
   .scrollstyle::-webkit-scrollbar {
     width: 5px;
     width: 5px;
@@ -274,5 +272,3 @@
   }
   }
 
 
 </style>
 </style>
-
-

+ 4 - 6
TEAMModelOS/ClientApp/src/common/BaseHeader.vue

@@ -90,7 +90,7 @@
 
 
 <script>
 <script>
   export default {
   export default {
-    name: "headers",
+    name: 'headers',
     props: ['parentToChild', 'identityselect'],
     props: ['parentToChild', 'identityselect'],
     data() {
     data() {
       return {
       return {
@@ -103,9 +103,9 @@
     },
     },
     methods: {
     methods: {
       handleQuit() {
       handleQuit() {
-        this.$router.push('/selectModule');
+        this.$router.push('/selectModule')
       }
       }
-    },
+    }
   }
   }
 </script>
 </script>
 
 
@@ -154,7 +154,6 @@
       border: 2px solid #595959;
       border: 2px solid #595959;
     }
     }
 
 
-
   .drawer-header {
   .drawer-header {
     height: 83px;
     height: 83px;
     width: 100%;
     width: 100%;
@@ -271,6 +270,5 @@
   .scrollstyle::-webkit-scrollbar-button {
   .scrollstyle::-webkit-scrollbar-button {
     display: none;
     display: none;
   }
   }
-    
-</style>
 
 
+</style>

+ 3 - 3
TEAMModelOS/ClientApp/src/common/CreateLink.vue

@@ -7,14 +7,14 @@
 </template>
 </template>
 <script>
 <script>
   export default {
   export default {
-    name: "CreateLink",
-    props: ["path","tips"],
+    name: 'CreateLink',
+    props: ['path', 'tips'],
     data() {
     data() {
       return {
       return {
       }
       }
     },
     },
     created() {
     created() {
-      //console.log(this.top);
+      // console.log(this.top);
     },
     },
     methods: {
     methods: {
 
 

+ 17 - 17
TEAMModelOS/ClientApp/src/common/EditableLabel.vue

@@ -8,37 +8,37 @@
 
 
 <script>
 <script>
     export default {
     export default {
-    name: "EditableLabel",
-    props: ["content"],
+    name: 'EditableLabel',
+    props: ['content'],
     data() {
     data() {
       return {
       return {
-        editContent: "",
+        editContent: '',
         isEdit: false,
         isEdit: false,
-        textWidth:20,
+        textWidth: 20
       }
       }
     },
     },
     created() {
     created() {
-      //this.content = content;
+      // this.content = content;
     },
     },
     methods: {
     methods: {
       getWidth() {
       getWidth() {
-        let dom = document.getElementById("test");
-        dom.innerText = this.editContent;
-        console.log(dom);
-        this.textWidth = dom.clientWidth+25 ;
-        console.log(this.textWidth);
+        let dom = document.getElementById('test')
+        dom.innerText = this.editContent
+        console.log(dom)
+        this.textWidth = dom.clientWidth + 25
+        console.log(this.textWidth)
       },
       },
       handleEdit() {
       handleEdit() {
-        this.isEdit = true;
-        this.editContent = this.content;
-         let dom = document.getElementById("test");
-        dom.innerText = this.editContent;
-        this.textWidth = dom.clientWidth+25;
+        this.isEdit = true
+        this.editContent = this.content
+         let dom = document.getElementById('test')
+        dom.innerText = this.editContent
+        this.textWidth = dom.clientWidth + 25
       },
       },
 
 
       handleComplete() {
       handleComplete() {
-        this.isEdit = false;
-        this.$emit('editComplete', this.editContent);
+        this.isEdit = false
+        this.$emit('editComplete', this.editContent)
       }
       }
     }
     }
     }
     }

+ 4 - 4
TEAMModelOS/ClientApp/src/common/Loading.vue

@@ -8,17 +8,17 @@
 
 
 <script>
 <script>
     export default {
     export default {
-    name: "loadingBox",
-    props: ["top","borderColor","color","borderWidth","borderTopWidth"],
+    name: 'loadingBox',
+    props: ['top', 'borderColor', 'color', 'borderWidth', 'borderTopWidth'],
     data() {
     data() {
       return {
       return {
       }
       }
     },
     },
     created() {
     created() {
-      //console.log(this.top);
+      // console.log(this.top);
     },
     },
     methods: {
     methods: {
-      
+
     }
     }
     }
     }
 </script>
 </script>

+ 10 - 10
TEAMModelOS/ClientApp/src/common/headers.vue

@@ -79,14 +79,14 @@
 
 
 <script>
 <script>
     export default {
     export default {
-    name: "headers",
+    name: 'headers',
     props: ['parentToChild', 'identityselect'],
     props: ['parentToChild', 'identityselect'],
     data() {
     data() {
       return {
       return {
         value3: false,
         value3: false,
         itemstitle: '',
         itemstitle: '',
         fordatamodel: '',
         fordatamodel: '',
-        fordatamodelSelect:'',
+        fordatamodelSelect: '',
         styles: {
         styles: {
           height: 'calc(100% - 55px)',
           height: 'calc(100% - 55px)',
           overflow: 'auto',
           overflow: 'auto',
@@ -101,29 +101,29 @@
           approver: '',
           approver: '',
           date: '',
           date: '',
           desc: ''
           desc: ''
-        },
+        }
 
 
       }
       }
     },
     },
     created() {
     created() {
-      this.itemstitle = this.parentToChild;
-      this.fordatamodel = this.identityselect;
-      this.fordatamodelSelect = this.identityselect[0].name;
+      this.itemstitle = this.parentToChild
+      this.fordatamodel = this.identityselect
+      this.fordatamodelSelect = this.identityselect[0].name
     },
     },
     methods: {
     methods: {
       popup() {
       popup() {
-        
+
       },
       },
       handleOpen() {
       handleOpen() {
-        this.visible = true;
+        this.visible = true
       },
       },
       handleClose() {
       handleClose() {
-        this.visible = false;
+        this.visible = false
       },
       },
       quitbtn() {
       quitbtn() {
         this.$router.push({ path: '/selectModule' })
         this.$router.push({ path: '/selectModule' })
       }
       }
-    },
+    }
     }
     }
 </script>
 </script>
 <style>
 <style>

+ 1 - 1
TEAMModelOS/ClientApp/src/components/SignedInUser.vue

@@ -37,7 +37,7 @@ export default {
       'oidcIdToken',
       'oidcIdToken',
       'oidcIdTokenExp'
       'oidcIdTokenExp'
     ]),
     ]),
-    userDisplay: function () {
+    userDisplay: function() {
       return jsonMarkup(this.oidcUser)
       return jsonMarkup(this.oidcUser)
     }
     }
   },
   },

+ 1 - 1
TEAMModelOS/ClientApp/src/components/app-root.vue

@@ -12,7 +12,7 @@
         'nav-menu': NavMenu
         'nav-menu': NavMenu
       },
       },
 
 
-      data () {
+      data() {
         return {}
         return {}
       }
       }
     }
     }

+ 7 - 7
TEAMModelOS/ClientApp/src/components/evaluation/IconText.vue

@@ -9,29 +9,29 @@
     props: {
     props: {
       icon: {
       icon: {
         type: String,
         type: String,
-        default:'md-apps'
+        default: 'md-apps'
       },
       },
       color: {
       color: {
         type: String,
         type: String,
-        default:'blue'
+        default: 'blue'
       },
       },
       text: {
       text: {
         type: String,
         type: String,
-        default:'文本内容'
+        default: '文本内容'
       },
       },
       textSize: {
       textSize: {
         type: Number,
         type: Number,
-        default:16
+        default: 16
       },
       },
       iconSize: {
       iconSize: {
         type: Number,
         type: Number,
-        default:25
+        default: 25
       }
       }
     },
     },
     computed: {
     computed: {
       myStyle() {
       myStyle() {
-        return "font-size:" + this.textSize + "px;";
-        //return "";
+        return 'font-size:' + this.textSize + 'px;'
+        // return "";
       }
       }
     }
     }
   }
   }

+ 22 - 23
TEAMModelOS/ClientApp/src/components/evaluation/SyllabusTree.vue

@@ -5,61 +5,61 @@
 </template>
 </template>
 <script>
 <script>
   export default {
   export default {
-    props: ["treeDatas"],
+    props: ['treeDatas'],
     data() {
     data() {
       return {
       return {
         treeData: []
         treeData: []
-      };
+      }
     },
     },
     created() {
     created() {
-      this.treeData = this.treeDatas;
+      this.treeData = this.treeDatas
     },
     },
 
 
-    //监听树形数据源变化
+    // 监听树形数据源变化
     watch: {
     watch: {
       treeDatas: {
       treeDatas: {
         handler(newValue) {
         handler(newValue) {
-          this.treeData = newValue;
+          this.treeData = newValue
         },
         },
         deep: true
         deep: true
       }
       }
     },
     },
     methods: {
     methods: {
-      //自定义渲染树形工具
+      // 自定义渲染树形工具
        renderContent(h, { root, node, data }) {
        renderContent(h, { root, node, data }) {
         return h(
         return h(
-          "span",
+          'span',
           {
           {
             domProps: {
             domProps: {
-              className: "singleClass"
+              className: 'singleClass'
             },
             },
             on: {
             on: {
               click: () => {
               click: () => {
-                this.titleClick(root, node, data, event);
-              },
+                this.titleClick(root, node, data, event)
+              }
             }
             }
           },
           },
           [
           [
-            h("span", [
-              h("span", {
+            h('span', [
+              h('span', {
                 domProps: {
                 domProps: {
-                  className: "syllabus-name"
-                },
+                  className: 'syllabus-name'
+                }
               }, data.title)
               }, data.title)
             ])
             ])
           ]
           ]
-        );
+        )
       },
       },
       // 标题点击收缩展开
       // 标题点击收缩展开
       titleClick(root, node, data, event) {
       titleClick(root, node, data, event) {
-        data.expand = !data.expand;
+        data.expand = !data.expand
       },
       },
       // 根目录点击事件
       // 根目录点击事件
       rootClick(data) {
       rootClick(data) {
-        data.expand = !data.expand;
+        data.expand = !data.expand
       }
       }
-    },
-  };
+    }
+  }
 </script>
 </script>
 <style scoped>
 <style scoped>
   .tree-main {
   .tree-main {
@@ -118,11 +118,10 @@
      margin:0;
      margin:0;
   }
   }
 
 
-
   .tree-main /deep/ .singleClass .syllabus-name{
   .tree-main /deep/ .singleClass .syllabus-name{
-    width:100px;    
-    overflow: hidden;    
-    text-overflow:ellipsis;    
+    width:100px;
+    overflow: hidden;
+    text-overflow:ellipsis;
     white-space: nowrap;
     white-space: nowrap;
     display:inline-block;
     display:inline-block;
     vertical-align:middle;
     vertical-align:middle;

+ 66 - 67
TEAMModelOS/ClientApp/src/components/graph/ringPie.vue

@@ -4,96 +4,96 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {
         return {
             mychat: '',
             mychat: '',
             total: 0,
             total: 0,
-            heightlightIndex: 0,
+            heightlightIndex: 0
         }
         }
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         },
         },
-        pieData:{
+        pieData: {
             type: Array,
             type: Array,
-            default: function(){
+            default: function() {
                 return [
                 return [
-                    {value:335, name:'新增檔案'},
-                    {value:310, name:'書面問答'},
-                    {value:234, name:'匯入.pptx'},
-                    {value:135, name:'PowerClick'},
-                    {value:1548, name:'開啟.hte'},
-                    {value:123, name:'其他'},
+                    { value: 335, name: '新增檔案' },
+                    { value: 310, name: '書面問答' },
+                    { value: 234, name: '匯入.pptx' },
+                    { value: 135, name: 'PowerClick' },
+                    { value: 1548, name: '開啟.hte' },
+                    { value: 123, name: '其他' }
                 ]
                 ]
-            },
+            }
         },
         },
         defaultActive: {
         defaultActive: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         },
         },
-        singleColor:{
+        singleColor: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         },
         },
         title: {
         title: {
             type: String
             type: String
         },
         },
-        tooltip:{
+        tooltip: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    created(){
+    created() {
         this.pieData.forEach(item => {
         this.pieData.forEach(item => {
             this.total += item.value
             this.total += item.value
-        });
+        })
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            this.myChart = this.$echarts.init(document.getElementById(this.id));
-            this.myChart.setOption({                
-                title:{
-                    show: _this.title ? true : false,
+            this.myChart = this.$echarts.init(document.getElementById(this.id))
+            this.myChart.setOption({
+                title: {
+                    show: !!_this.title,
                     text: _this.title ? _this.title : '',
                     text: _this.title ? _this.title : '',
                     left: 'center',
                     left: 'center',
                     top: 'middle',
                     top: 'middle',
-                    textStyle:{
+                    textStyle: {
                         color: '#fafafa',
                         color: '#fafafa',
                         fontWeight: 100
                         fontWeight: 100
-                    }                    
+                    }
                 },
                 },
                 color: _this.singleColor ? 'rgba(228, 233, 220, 0.9)' : ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76'],
                 color: _this.singleColor ? 'rgba(228, 233, 220, 0.9)' : ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76'],
                 tooltip: {
                 tooltip: {
                     show: _this.tooltip,
                     show: _this.tooltip,
-                    trigger: 'item',
-                    // formatter: function(p){                        
+                    trigger: 'item'
+                    // formatter: function(p){
                     //     // 故意不填可用來觸發HighLight
                     //     // 故意不填可用來觸發HighLight
                     // }
                     // }
                 },
                 },
                 series: [
                 series: [
                     {
                     {
-                        type:'pie',
+                        type: 'pie',
                         hoverOffset: 5,
                         hoverOffset: 5,
                         radius: _this.singleColor ? ['30%', '70%'] : ['50%', '70%'],
                         radius: _this.singleColor ? ['30%', '70%'] : ['50%', '70%'],
                         avoidLabelOverlap: false,
                         avoidLabelOverlap: false,
                         label: {
                         label: {
                             normal: {
                             normal: {
-                                show: false,
+                                show: false
                             },
                             },
                             emphasis: {
                             emphasis: {
-                                show: false,
+                                show: false
                             }
                             }
                         },
                         },
                         labelLine: {
                         labelLine: {
@@ -104,65 +104,64 @@ export default {
                         data: _this.pieData,
                         data: _this.pieData,
                         itemStyle: _this.singleColor ? {
                         itemStyle: _this.singleColor ? {
                             emphasis: {
                             emphasis: {
-                                color: '#1CD0A1',
+                                color: '#1CD0A1'
                             }
                             }
                         } : ''
                         } : ''
                     }
                     }
                 ]
                 ]
-            });
+            })
             // mouseover觸發項
             // mouseover觸發項
-            this.myChart.on('mouseover', function (params) {
-                if(_this.pieData[_this.heightlightIndex].name != params.name){
+            this.myChart.on('mouseover', function(params) {
+                if (_this.pieData[_this.heightlightIndex].name != params.name) {
                     _this.myChart.dispatchAction({
                     _this.myChart.dispatchAction({
                         type: 'downplay',
                         type: 'downplay',
-                        dataIndex: _this.heightlightIndex,
-                    });
+                        dataIndex: _this.heightlightIndex
+                    })
                 }
                 }
-                _this.$emit('highLightInfo', params);
-            });
-            if(this.defaultActive){
+                _this.$emit('highLightInfo', params)
+            })
+            if (this.defaultActive) {
                 // 預設先給第一筆初始值
                 // 預設先給第一筆初始值
-                let now = this.pieData[0].value;
-                let params = {'value': this.pieData[0].value, 'name': this.pieData[0].name,'percent': Number((now/this.total)*100).toFixed(2)}
-                this.$emit('extraInfo', params);            
-                this.$emit('highLightInfo', params);  
+                let now = this.pieData[0].value
+                let params = { 'value': this.pieData[0].value, 'name': this.pieData[0].name, 'percent': Number((now / this.total) * 100).toFixed(2) }
+                this.$emit('extraInfo', params)
+                this.$emit('highLightInfo', params)
                 // 預設第一個
                 // 預設第一個
                 this.myChart.dispatchAction({
                 this.myChart.dispatchAction({
                     type: 'highlight',
                     type: 'highlight',
-                    dataIndex: _this.heightlightIndex,
-                });
+                    dataIndex: _this.heightlightIndex
+                })
             }
             }
         },
         },
         // 供外部呼叫用
         // 供外部呼叫用
-        heightlight: function(dName){    
-            let _this = this;
-            if(this.pieData[this.heightlightIndex].name != dName){
+        heightlight: function(dName) {
+            let _this = this
+            if (this.pieData[this.heightlightIndex].name != dName) {
                 this.myChart.dispatchAction({
                 this.myChart.dispatchAction({
                     type: 'downplay',
                     type: 'downplay',
-                    dataIndex: _this.heightlightIndex,
-                });
+                    dataIndex: _this.heightlightIndex
+                })
             }
             }
 
 
             this.myChart.dispatchAction({
             this.myChart.dispatchAction({
                 type: 'highlight',
                 type: 'highlight',
                 name: dName
                 name: dName
-            });
-            let now = 0;
+            })
+            let now = 0
             this.pieData.forEach(item => {
             this.pieData.forEach(item => {
-                if(item.name == dName){
+                if (item.name == dName) {
                     now = item.value
                     now = item.value
                 }
                 }
-            });
-            let params = {'percent': Number((now/this.total)*100).toFixed(2)}
-
+            })
+            let params = { 'percent': Number((now / this.total) * 100).toFixed(2) }
 
 
-            this.$emit('extraInfo', params);
+            this.$emit('extraInfo', params)
         },
         },
-        downplay: function(dname){
+        downplay: function(dname) {
             this.myChart.dispatchAction({
             this.myChart.dispatchAction({
                 type: 'downplay',
                 type: 'downplay',
                 name: dname
                 name: dname
-            });
+            })
         }
         }
     }
     }
 }
 }

+ 5 - 5
TEAMModelOS/ClientApp/src/components/nav-menu.vue

@@ -1,4 +1,4 @@
-<template>
+<template>
     <div class="main-nav">
     <div class="main-nav">
     </div>
     </div>
 </template>
 </template>
@@ -7,14 +7,14 @@
     import { routes } from '../router/routes'
     import { routes } from '../router/routes'
 
 
     export default {
     export default {
-      data () {
+      data() {
         return {
         return {
           routes,
           routes,
           collapsed: true
           collapsed: true
         }
         }
       },
       },
       methods: {
       methods: {
-        toggleCollapsed: function (event) {
+        toggleCollapsed: function(event) {
           this.collapsed = !this.collapsed
           this.collapsed = !this.collapsed
         }
         }
       }
       }
@@ -22,5 +22,5 @@
 </script>
 </script>
 
 
 <style scoped>
 <style scoped>
-  
-</style>
+
+</style>

+ 22 - 22
TEAMModelOS/ClientApp/src/components/public/main/index.vue

@@ -136,59 +136,59 @@
                             <DropdownItem divided style="text-align: left;"><Icon size="15" type="md-log-out" style="margin-right: 15px;" />登出</DropdownItem>
                             <DropdownItem divided style="text-align: left;"><Icon size="15" type="md-log-out" style="margin-right: 15px;" />登出</DropdownItem>
                         </DropdownMenu>
                         </DropdownMenu>
                     </Dropdown>
                     </Dropdown>
-                </Header>              
+                </Header>
                 <Content :style="{background: '#fff', minHeight: '260px'}">
                 <Content :style="{background: '#fff', minHeight: '260px'}">
                     <router-view/>
                     <router-view/>
                 </Content>
                 </Content>
-            </Layout>      
-        </Layout> 
+            </Layout>
+        </Layout>
     </div>
     </div>
 </template>
 </template>
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {
         return {
             isCollapsed: false,
             isCollapsed: false,
             value2: false,
             value2: false,
             switch1: false,
             switch1: false,
-            collapse1: '0',
+            collapse1: '0'
         }
         }
     },
     },
     computed: {
     computed: {
-        rotateIcon () {
+        rotateIcon() {
             return [
             return [
                 'menu-icon',
                 'menu-icon',
                 this.isCollapsed ? 'rotate-icon' : ''
                 this.isCollapsed ? 'rotate-icon' : ''
-            ];
+            ]
         },
         },
-        menuitemClasses () {
+        menuitemClasses() {
             return [
             return [
                 'menu-item',
                 'menu-item',
                 this.isCollapsed ? 'collapsed-menu' : ''
                 this.isCollapsed ? 'collapsed-menu' : ''
             ]
             ]
         }
         }
     },
     },
-    created(){
-      
+    created() {
+
     },
     },
-    methods:{
-        themeChange (status) {
-            if(status){
-                let x = document.getElementsByTagName("html")[0]; // 抓取html TAG
-                x.setAttribute("white", true); // 設定新屬性 並給值
+    methods: {
+        themeChange(status) {
+            if (status) {
+                let x = document.getElementsByTagName('html')[0] // 抓取html TAG
+                x.setAttribute('white', true) // 設定新屬性 並給值
             } else {
             } else {
-                let x = document.getElementsByTagName("html")[0]; // 抓取html TAG
-                x.removeAttribute("white"); // 刪除屬性
+                let x = document.getElementsByTagName('html')[0] // 抓取html TAG
+                x.removeAttribute('white') // 刪除屬性
             }
             }
         },
         },
-        collapsedSider () {
-            this.$refs.side1.toggleCollapse();
+        collapsedSider() {
+            this.$refs.side1.toggleCollapse()
         }
         }
     },
     },
-    mounted(){
-    
-    },
+    mounted() {
+
+    }
 }
 }
 
 
 </script>
 </script>

+ 70 - 72
TEAMModelOS/ClientApp/src/components/smartclassdashboard/ClassBar.vue

@@ -4,18 +4,18 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
       return {
       return {
-        myChart: '',
+        myChart: ''
       }
       }
     },
     },
-    props:{
-      id:{
+    props: {
+      id: {
         type: String
         type: String
       },
       },
-      todayData:{
+      todayData: {
       },
       },
-      lastWeekData:{
+      lastWeekData: {
       },
       },
       callBack: {
       callBack: {
         type: String
         type: String
@@ -23,77 +23,75 @@ export default {
     },
     },
     watch: {
     watch: {
       todayData(val) {
       todayData(val) {
-        if(val != null)
-          this.drawLine()
+        if (val != null) { this.drawLine() }
       }
       }
     },
     },
-    methods:{
-      drawLine(){
+    methods: {
+      drawLine() {
           let _this = this
           let _this = this
-          if(this.todayData == null) return false;
+          if (this.todayData == null) return false
 
 
-          let lastWeekKeys = Object.keys(this.lastWeekData);
-          let todayKeys = Object.keys(this.todayData);        
-          let yLabel = [];
+          let lastWeekKeys = Object.keys(this.lastWeekData)
+          let todayKeys = Object.keys(this.todayData)
+          let yLabel = []
 
 
           // 取得Y軸Label
           // 取得Y軸Label
           function my_unique(a) {
           function my_unique(a) {
-            var a = a.concat();//使用concat()再複製一份陣列,避免影響原陣列
-            for(var i=0; i<a.length; ++i) {
-                for(var j=i+1; j<a.length; ++j) {
-                    if(a[i] === a[j])
-                        a.splice(j, 1);
+            var a = a.concat()// 使用concat()再複製一份陣列,避免影響原陣列
+            for (var i = 0; i < a.length; ++i) {
+                for (var j = i + 1; j < a.length; ++j) {
+                    if (a[i] === a[j]) { a.splice(j, 1) }
                 }
                 }
             }
             }
-        
-            return a;
+
+            return a
           };
           };
-          let temp = my_unique(lastWeekKeys.concat(todayKeys));
+          let temp = my_unique(lastWeekKeys.concat(todayKeys))
           temp.sort(function(a, b) {
           temp.sort(function(a, b) {
-            return a - b;
-          });
+            return a - b
+          })
+
+          temp.forEach(function(item) {
+            yLabel.push(_this.$t('classMgmt.grade' + item))
+          })
 
 
-          temp.forEach(function(item){
-            yLabel.push(_this.$t('classMgmt.grade'+ item))
-          });
-          
-          let todayDataArray = [];
-          let lastWeekDataArray = [];
+          let todayDataArray = []
+          let lastWeekDataArray = []
 
 
-          Object.keys(this.lastWeekData).forEach(function(item){
-            if(_this.isInteger(item)){
-              let newKey = _this.$t('classMgmt.grade'+ item);
-              _this.lastWeekData[newKey] = _this.lastWeekData[item];
-              delete _this.lastWeekData[item];
-            }            
+          Object.keys(this.lastWeekData).forEach(function(item) {
+            if (_this.isInteger(item)) {
+              let newKey = _this.$t('classMgmt.grade' + item)
+              _this.lastWeekData[newKey] = _this.lastWeekData[item]
+              delete _this.lastWeekData[item]
+            }
           })
           })
 
 
-          Object.keys(this.todayData).forEach(function(item){
-            if(_this.isInteger(item)){
-              let newKey = _this.$t('classMgmt.grade'+ item);
-              _this.todayData[newKey] = _this.todayData[item];
-              delete _this.todayData[item];
+          Object.keys(this.todayData).forEach(function(item) {
+            if (_this.isInteger(item)) {
+              let newKey = _this.$t('classMgmt.grade' + item)
+              _this.todayData[newKey] = _this.todayData[item]
+              delete _this.todayData[item]
             }
             }
           })
           })
 
 
           // 今日資料
           // 今日資料
           yLabel.map(function(key) {
           yLabel.map(function(key) {
-            todayDataArray.push(_this.todayData[key]);
-          });
+            todayDataArray.push(_this.todayData[key])
+          })
           // 上週資料
           // 上週資料
           yLabel.map(function(key) {
           yLabel.map(function(key) {
-            lastWeekDataArray.push(_this.lastWeekData[key]);
-          });
+            lastWeekDataArray.push(_this.lastWeekData[key])
+          })
 
 
           // 基于准备好的dom,初始化echarts实例
           // 基于准备好的dom,初始化echarts实例
-          this.myChart = this.$echarts.init(document.getElementById(this.id));
+          this.myChart = this.$echarts.init(document.getElementById(this.id))
           this.myChart.setOption({
           this.myChart.setOption({
             backgroundColor: '#343a4073',
             backgroundColor: '#343a4073',
             tooltip: {
             tooltip: {
               trigger: 'axis',
               trigger: 'axis',
               axisPointer: {
               axisPointer: {
                 type: 'shadow'
                 type: 'shadow'
-              },
+              }
               // formatter: function(params){
               // formatter: function(params){
               //   // 故意開啟 但不設定使ToolTip 沒有彈跳的作用 但有Hover 功能
               //   // 故意開啟 但不設定使ToolTip 沒有彈跳的作用 但有Hover 功能
               // }
               // }
@@ -102,7 +100,7 @@ export default {
               left: '5%',
               left: '5%',
               right: '0',
               right: '0',
               bottom: '0',
               bottom: '0',
-              top:'0',
+              top: '0',
               containLabel: true
               containLabel: true
             },
             },
             xAxis: {
             xAxis: {
@@ -111,7 +109,7 @@ export default {
               axisLabel: {
               axisLabel: {
                   inside: true,
                   inside: true,
                   textStyle: {
                   textStyle: {
-                      color:'transparent'
+                      color: 'transparent'
                   }
                   }
               },
               },
               splitLine: {
               splitLine: {
@@ -131,32 +129,32 @@ export default {
               },
               },
               splitLine: {
               splitLine: {
                 lineStyle: {
                 lineStyle: {
-                  color: 'rgba(185, 193, 173, 0.63)',
+                  color: 'rgba(185, 193, 173, 0.63)'
                 },
                 },
                 show: true
                 show: true
               },
               },
               axisLine: {
               axisLine: {
                 lineStyle: {
                 lineStyle: {
                   color: 'rgba(185, 193, 173, 0.63)',
                   color: 'rgba(185, 193, 173, 0.63)',
-                  width: 1,
+                  width: 1
                 }
                 }
               },
               },
-              data: yLabel,
+              data: yLabel
             },
             },
             series: [
             series: [
               {
               {
                 name: _this.$t('classMgmt.today'),
                 name: _this.$t('classMgmt.today'),
                 type: 'bar',
                 type: 'bar',
                 data: todayDataArray,
                 data: todayDataArray,
-                barWidth: 13, //柱子宽度
+                barWidth: 13, // 柱子宽度
                 itemStyle: {
                 itemStyle: {
-                  normal: {  //渐变色
+                  normal: { // 渐变色
                     color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                     color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       offset: 0,
                       offset: 0,
-                      color: "rgba(28, 208, 161, 1)" // 0% 处的颜色
-                    },{
+                      color: 'rgba(28, 208, 161, 1)' // 0% 处的颜色
+                    }, {
                       offset: 1,
                       offset: 1,
-                      color: "rgba(28, 208, 161, 0.5)" // 100% 处的颜色
+                      color: 'rgba(28, 208, 161, 0.5)' // 100% 处的颜色
                     }], false)
                     }], false)
                   }
                   }
                 }
                 }
@@ -165,36 +163,36 @@ export default {
                 name: _this.$t('classMgmt.lastweek'),
                 name: _this.$t('classMgmt.lastweek'),
                 type: 'bar',
                 type: 'bar',
                 data: lastWeekDataArray,
                 data: lastWeekDataArray,
-                barWidth: 13, //柱子宽度
+                barWidth: 13, // 柱子宽度
                 itemStyle: {
                 itemStyle: {
-                  normal: {  //渐变色
+                  normal: { // 渐变色
                     color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                     color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       offset: 0,
                       offset: 0,
-                      color: "rgba(228, 233, 220, 1)" // 0% 处的颜色
-                    },{
+                      color: 'rgba(228, 233, 220, 1)' // 0% 处的颜色
+                    }, {
                       offset: 1,
                       offset: 1,
-                      color: "rgba(228, 233, 220, 0.5)" // 100% 处的颜色
+                      color: 'rgba(228, 233, 220, 0.5)' // 100% 处的颜色
                     }], false)
                     }], false)
                   }
                   }
                 }
                 }
               }
               }
             ]
             ]
           })
           })
-          //highlight觸發項
-          this.myChart.on('highlight', function (params) {
-            _this.$emit('highLightInfo', {'id': yLabel[params.batch[0].dataIndex], 'today': todayDataArray[params.batch[0].dataIndex], 'lastWeek': lastWeekDataArray[params.batch[1].dataIndex]});            
-          });            
-          this.myChart.on('downplay', function (params) {            
+          // highlight觸發項
+          this.myChart.on('highlight', function(params) {
+            _this.$emit('highLightInfo', { 'id': yLabel[params.batch[0].dataIndex], 'today': todayDataArray[params.batch[0].dataIndex], 'lastWeek': lastWeekDataArray[params.batch[1].dataIndex] })
+          })
+          this.myChart.on('downplay', function(params) {
             _this.$emit('downplay', yLabel[params.batch[0].dataIndex])
             _this.$emit('downplay', yLabel[params.batch[0].dataIndex])
-          });
+          })
       },
       },
       isInteger(obj) {
       isInteger(obj) {
-        return  Math.floor(obj) === obj
+        return Math.floor(obj) === obj
       }
       }
     },
     },
-    mounted(){
-      this.drawLine();
-    },
+    mounted() {
+      this.drawLine()
+    }
 }
 }
 
 
 </script>
 </script>

+ 32 - 32
TEAMModelOS/ClientApp/src/components/smartclassdashboard/ClassLine.vue

@@ -4,43 +4,43 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {}
         return {}
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         },
         },
-        time:{
+        time: {
             type: Array,
             type: Array,
-             default: function(){
-                return ["00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"]
-            },
+             default: function() {
+                return ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00', '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00']
+            }
         },
         },
-        data:{
+        data: {
             type: Array
             type: Array
-        },
+        }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
     watch: {
     watch: {
         data() {
         data() {
             this.drawLine()
             this.drawLine()
         }
         }
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            let myChart = this.$echarts.init(document.getElementById(this.id));
-            let arrlabel = this.time;
-            let arrTotal = this.data;
+            let myChart = this.$echarts.init(document.getElementById(this.id))
+            let arrlabel = this.time
+            let arrTotal = this.data
             myChart.setOption({
             myChart.setOption({
                 backgroundColor: 'rgba(17, 17, 17, 0.14)',
                 backgroundColor: 'rgba(17, 17, 17, 0.14)',
                 tooltip: {
                 tooltip: {
                     trigger: 'axis',
                     trigger: 'axis',
-                    borderRadius: 0,
+                    borderRadius: 0
                     // backgroundColor:'#7AD1A8',
                     // backgroundColor:'#7AD1A8',
                     // formatter: function(pm) {
                     // formatter: function(pm) {
                     //     var param = pm[0];
                     //     var param = pm[0];
@@ -59,11 +59,11 @@ export default {
                     right: '0',
                     right: '0',
                     bottom: '5%',
                     bottom: '5%',
                     top: '0',
                     top: '0',
-                    containLabel: true,
+                    containLabel: true
                 },
                 },
                 xAxis: [{
                 xAxis: [{
                     axisTick: {
                     axisTick: {
-                        show: false,
+                        show: false
                     },
                     },
                     type: 'category',
                     type: 'category',
                     axisLabel: {
                     axisLabel: {
@@ -77,14 +77,14 @@ export default {
                     boundaryGap: true,
                     boundaryGap: true,
                     splitLine: {
                     splitLine: {
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         },
                         },
                         show: true
                         show: true
                     },
                     },
                     axisLine: {
                     axisLine: {
                         lineStyle: {
                         lineStyle: {
                             color: 'rgba(185, 193, 173, 0.63)',
                             color: 'rgba(185, 193, 173, 0.63)',
-                            width: 1,
+                            width: 1
                         }
                         }
                     },
                     },
                     data: arrlabel
                     data: arrlabel
@@ -99,7 +99,7 @@ export default {
                     axisLine: {
                     axisLine: {
                         show: true,
                         show: true,
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         }
                         }
                     },
                     },
                     axisLabel: {
                     axisLabel: {
@@ -107,13 +107,13 @@ export default {
                         inside: true,
                         inside: true,
                         textStyle: {
                         textStyle: {
                             fontSize: 14,
                             fontSize: 14,
-                            color:'transparent'
+                            color: 'transparent'
                         }
                         }
                     },
                     },
                     splitLine: {
                     splitLine: {
                         show: true,
                         show: true,
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         }
                         }
                     }
                     }
                 }],
                 }],
@@ -121,7 +121,7 @@ export default {
                     // name: '实名率',
                     // name: '实名率',
                     type: 'line',
                     type: 'line',
                     // symbol: 'circle',
                     // symbol: 'circle',
-                    //symbolSize: 5,
+                    // symbolSize: 5,
                     // showSymbol: false,
                     // showSymbol: false,
                     // markPoint: { // markLine 也是同理
                     // markPoint: { // markLine 也是同理
                     //   data: [{
                     //   data: [{
@@ -141,30 +141,30 @@ export default {
                             // 渐变色
                             // 渐变色
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                 offset: 0,
                                 offset: 0,
-                                color: "rgba(28, 208, 161, 1)" // 0% 处的颜色
-                            },{
+                                color: 'rgba(28, 208, 161, 1)' // 0% 处的颜色
+                            }, {
                                 offset: 1,
                                 offset: 1,
-                                color: "rgba(28, 208, 161, 0.5)" // 100% 处的颜色
+                                color: 'rgba(28, 208, 161, 0.5)' // 100% 处的颜色
                             }], false)
                             }], false)
-                        },
+                        }
                     },
                     },
                     itemStyle: {
                     itemStyle: {
                         normal: {
                         normal: {
                             areaStyle: {
                             areaStyle: {
                                 type: 'default'
                                 type: 'default'
                             },
                             },
-                            color: '#1CD0A1',
+                            color: '#1CD0A1'
                         },
                         },
                         emphasis: {
                         emphasis: {
                             // color: 'rgb(0,196,132)',
                             // color: 'rgb(0,196,132)',
                             borderColor: 'rgba(0,196,132,0.2)',
                             borderColor: 'rgba(0,196,132,0.2)',
-                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);',
+                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);'
                             // borderWidth: 10
                             // borderWidth: 10
                         }
                         }
                     },
                     },
                     data: arrTotal
                     data: arrTotal
                 }]
                 }]
-            });
+            })
         }
         }
     }
     }
 }
 }

+ 80 - 81
TEAMModelOS/ClientApp/src/components/smartclassdashboard/FloorPlan.vue

@@ -12,26 +12,25 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {
         return {
 
 
         }
         }
     },
     },
-    mounted(){
+    mounted() {
         this.$nextTick(() => {
         this.$nextTick(() => {
-            var redpin=document.getElementById("redriangle");    
-            var pin=document.getElementById("wihiteriangle");
-            var greenpin=document.getElementById("greenriangle");
-        
-        
-            var canvas = document.getElementById("canvasBOX"),
-                graphs = [],
-                graphAttr = [
-                    {id:1, x:60 , y :60 , w:35 , h:35 , canvasObj:canvas,  pin: pin},
-                    {id:2, x:350 , y :120 , w:35 , h:35 , canvasObj:canvas ,  pin: redpin},
-                    {id:3, x:200 , y :130 , w:35 , h:35 , canvasObj:canvas ,  pin: greenpin}
-                ],
-                tempGraphArr = [];
+            var redpin = document.getElementById('redriangle')
+            var pin = document.getElementById('wihiteriangle')
+            var greenpin = document.getElementById('greenriangle')
+
+            var canvas = document.getElementById('canvasBOX')
+                var graphs = []
+                var graphAttr = [
+                    { id: 1, x: 60, y: 60, w: 35, h: 35, canvasObj: canvas, pin: pin },
+                    { id: 2, x: 350, y: 120, w: 35, h: 35, canvasObj: canvas, pin: redpin },
+                    { id: 3, x: 200, y: 130, w: 35, h: 35, canvasObj: canvas, pin: greenpin }
+                ]
+                var tempGraphArr = []
 
 
                 // sessionStorage.classPlan = [
                 // sessionStorage.classPlan = [
                 //     {id:1, x:60 , y :60 , w:35 , h:35 , canvasObj:canvas,  pin: pin},
                 //     {id:1, x:60 , y :60 , w:35 , h:35 , canvasObj:canvas,  pin: pin},
@@ -40,103 +39,103 @@ export default {
                 // ];
                 // ];
                 // graphAttr = sessionStorage.classPlan;
                 // graphAttr = sessionStorage.classPlan;
 
 
-            var img=document.getElementById("floorplanImg");
-            var ctx=canvas.getContext("2d");
-            ctx.drawImage(img,0,0);
-            var dragGraph = function(x , y , w , h , canvas, pin, id){
-                this.id = id;
-                this.x = x;
-                this.y = y;
-                this.w = w;
-                this.h = h;
-                this.pin = pin;            
-                this.canvas = canvas;
-                this.context = canvas.getContext("2d");
-                this.canvasPos = canvas.getBoundingClientRect();
+            var img = document.getElementById('floorplanImg')
+            var ctx = canvas.getContext('2d')
+            ctx.drawImage(img, 0, 0)
+            var dragGraph = function(x, y, w, h, canvas, pin, id) {
+                this.id = id
+                this.x = x
+                this.y = y
+                this.w = w
+                this.h = h
+                this.pin = pin
+                this.canvas = canvas
+                this.context = canvas.getContext('2d')
+                this.canvasPos = canvas.getBoundingClientRect()
             }
             }
 
 
             dragGraph.prototype = {
             dragGraph.prototype = {
-                paint : function(){                
-                    this.context.drawImage(this.pin, this.x ,this.y , this.w, this.h);                
+                paint: function() {
+                    this.context.drawImage(this.pin, this.x, this.y, this.w, this.h)
                 },
                 },
-                isMouseInGraph : function(mouse){
-                    this.context.beginPath();
-                    this.shapeDraw();
-                    return  this.context.isPointInPath(mouse.x , mouse.y);
+                isMouseInGraph: function(mouse) {
+                    this.context.beginPath()
+                    this.shapeDraw()
+                    return this.context.isPointInPath(mouse.x, mouse.y)
                 },
                 },
-                shapeDraw : function(){
-                    this.context.rect( this.x , this.y , this.w , this.h);
+                shapeDraw: function() {
+                    this.context.rect(this.x, this.y, this.w, this.h)
                 },
                 },
                 erase: function() {
                 erase: function() {
-                    this.context.clearRect(0,0,this.canvas.width,this.canvas.height);
+                    this.context.clearRect(0, 0, this.canvas.width, this.canvas.height)
                 }
                 }
             }
             }
 
 
-            canvas.addEventListener( "mousedown" , function(e){
+            canvas.addEventListener('mousedown', function(e) {
                 var mouse = {
                 var mouse = {
-                    x : e.clientX - canvas.getBoundingClientRect().left,
-                    y : e.clientY - canvas.getBoundingClientRect().top
-                };
-                graphs.forEach( function (shape, index, array) {
+                    x: e.clientX - canvas.getBoundingClientRect().left,
+                    y: e.clientY - canvas.getBoundingClientRect().top
+                }
+                graphs.forEach(function(shape, index, array) {
                     var offset = {
                     var offset = {
-                        x : mouse.x - shape.x,
-                        y : mouse.y - shape.y
-                    };
+                        x: mouse.x - shape.x,
+                        y: mouse.y - shape.y
+                    }
                     if (shape.isMouseInGraph(mouse)) {
                     if (shape.isMouseInGraph(mouse)) {
-                        tempGraphArr.push(shape);
-                        canvas.addEventListener("mousemove" , function(e){
+                        tempGraphArr.push(shape)
+                        canvas.addEventListener('mousemove', function(e) {
                             mouse = {
                             mouse = {
-                                x : e.clientX - canvas.getBoundingClientRect().left,
-                                y : e.clientY - canvas.getBoundingClientRect().top
-                            };
+                                x: e.clientX - canvas.getBoundingClientRect().left,
+                                y: e.clientY - canvas.getBoundingClientRect().top
+                            }
 
 
-                            if(shape === tempGraphArr[tempGraphArr.length-1]){
-                                shape.x = mouse.x - offset.x;
-                                shape.y = mouse.y - offset.y;
+                            if (shape === tempGraphArr[tempGraphArr.length - 1]) {
+                                shape.x = mouse.x - offset.x
+                                shape.y = mouse.y - offset.y
 
 
-                                shape.erase();
-                                drawGraph(shape.id);
+                                shape.erase()
+                                drawGraph(shape.id)
                             }
                             }
-                        } , false);
-                        canvas.addEventListener("mouseup" , function(){
-                            let xPecent = shape.x / this.width                        
+                        }, false)
+                        canvas.addEventListener('mouseup', function() {
+                            let xPecent = shape.x / this.width
                             console.log(xPecent.toFixed(3))
                             console.log(xPecent.toFixed(3))
-                            tempGraphArr = [];
-                        } , false);
+                            tempGraphArr = []
+                        }, false)
                     }
                     }
-                });
-                e.preventDefault();
-            } , false);
+                })
+                e.preventDefault()
+            }, false)
 
 
-            for(var i = 0 ; i < graphAttr.length ; i++){
-                var graph = new dragGraph( graphAttr[i].x , graphAttr[i].y , graphAttr[i].w , graphAttr[i].h ,
-                                        graphAttr[i].canvasObj, graphAttr[i].pin, graphAttr[i].id);
-                graphs.push(graph);
+            for (var i = 0; i < graphAttr.length; i++) {
+                var graph = new dragGraph(graphAttr[i].x, graphAttr[i].y, graphAttr[i].w, graphAttr[i].h,
+                                        graphAttr[i].canvasObj, graphAttr[i].pin, graphAttr[i].id)
+                graphs.push(graph)
             }
             }
 
 
-            var test;
-            function drawGraph(id){
-                ctx.drawImage(img,0,0);
-                for(var i = 0 ; i < graphAttr.length ; i++){
-                    if(!isNaN(id) && graphs[i].id == id){
-                        test = graphs[i];
+            var test
+            function drawGraph(id) {
+                ctx.drawImage(img, 0, 0)
+                for (var i = 0; i < graphAttr.length; i++) {
+                    if (!isNaN(id) && graphs[i].id == id) {
+                        test = graphs[i]
                     } else {
                     } else {
-                        graphs[i].paint();
+                        graphs[i].paint()
                     }
                     }
                 }
                 }
 
 
-                if(id){
-                    test.paint();
+                if (id) {
+                    test.paint()
                 }
                 }
             }
             }
-            drawGraph();
+            drawGraph()
         })
         })
         // var c=document.getElementById("canvasBOX");
         // var c=document.getElementById("canvasBOX");
         // var ctx=c.getContext("2d");
         // var ctx=c.getContext("2d");
         // var img=document.getElementById("floorplanImg");
         // var img=document.getElementById("floorplanImg");
         // var pin=document.getElementById("wihiteriangle");
         // var pin=document.getElementById("wihiteriangle");
         // var greenpin=document.getElementById("greenriangle");
         // var greenpin=document.getElementById("greenriangle");
-        // var redpin=document.getElementById("redriangle");    
+        // var redpin=document.getElementById("redriangle");
         // c.width = img.width;
         // c.width = img.width;
         // c.height = img.height
         // c.height = img.height
         // var pinW = 35;
         // var pinW = 35;
@@ -155,12 +154,12 @@ export default {
         // ctx.drawImage(pin, (c.width*0.525) ,(c.height * 0.79) , pinW, pinH);
         // ctx.drawImage(pin, (c.width*0.525) ,(c.height * 0.79) , pinW, pinH);
         // ctx.drawImage(pin, (c.width*0.455) ,(c.height * 0.73) , pinW, pinH);
         // ctx.drawImage(pin, (c.width*0.455) ,(c.height * 0.73) , pinW, pinH);
     },
     },
-    created(){
+    created() {
     },
     },
     watch: {
     watch: {
-      
+
     },
     },
-    methods:{
+    methods: {
     }
     }
 }
 }
 
 

+ 24 - 24
TEAMModelOS/ClientApp/src/components/smartclassdashboard/LegendPie.vue

@@ -4,31 +4,31 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {}
         return {}
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            let myChart = this.$echarts.init(document.getElementById(this.id));
+            let myChart = this.$echarts.init(document.getElementById(this.id))
             myChart.setOption({
             myChart.setOption({
                 tooltip: {
                 tooltip: {
                     trigger: 'item',
                     trigger: 'item',
-                    formatter: "{a} <br/>{b}: {c} ({d}%)"
+                    formatter: '{a} <br/>{b}: {c} ({d}%)'
                 },
                 },
                 series: [
                 series: [
                     {
                     {
-                        name:'访问来源',
-                        type:'pie',
+                        name: '访问来源',
+                        type: 'pie',
                         radius: ['50%', '70%'],
                         radius: ['50%', '70%'],
                         avoidLabelOverlap: false,
                         avoidLabelOverlap: false,
                         label: {
                         label: {
@@ -38,24 +38,24 @@ export default {
                                 formatter: '{text|{b}}\n{value|{d}%}',
                                 formatter: '{text|{b}}\n{value|{d}%}',
                                 rich: {
                                 rich: {
                                     text: {
                                     text: {
-                                        color: "#fefefe",
+                                        color: '#fefefe',
                                         // fontSize: 14,
                                         // fontSize: 14,
                                         align: 'center',
                                         align: 'center',
                                         verticalAlign: 'middle',
                                         verticalAlign: 'middle',
                                         padding: 5
                                         padding: 5
                                     },
                                     },
                                     value: {
                                     value: {
-                                        color: "#fefefe",
+                                        color: '#fefefe',
                                         // fontSize: 24,
                                         // fontSize: 24,
                                         align: 'center',
                                         align: 'center',
-                                        verticalAlign: 'middle',
-                                    },
+                                        verticalAlign: 'middle'
+                                    }
                                 }
                                 }
                             },
                             },
                             emphasis: {
                             emphasis: {
                                 show: true,
                                 show: true,
                                 textStyle: {
                                 textStyle: {
-                                    fontSize: 46,
+                                    fontSize: 46
                                 }
                                 }
                             }
                             }
                         },
                         },
@@ -64,21 +64,21 @@ export default {
                                 show: false
                                 show: false
                             }
                             }
                         },
                         },
-                        data:[
-                            {value:335, name:'直接访问'},
-                            {value:310, name:'邮件营销'},
-                            {value:234, name:'联盟广告'},
-                            {value:135, name:'视频广告'},
-                            {value:1548, name:'搜索引擎'}
+                        data: [
+                            { value: 335, name: '直接访问' },
+                            { value: 310, name: '邮件营销' },
+                            { value: 234, name: '联盟广告' },
+                            { value: 135, name: '视频广告' },
+                            { value: 1548, name: '搜索引擎' }
                         ]
                         ]
                     }
                     }
                 ]
                 ]
-            });
+            })
             myChart.dispatchAction({
             myChart.dispatchAction({
                 type: 'highlight',
                 type: 'highlight',
                 // seriesIndex: 1,
                 // seriesIndex: 1,
                 dataIndex: 2
                 dataIndex: 2
-            });
+            })
         }
         }
     }
     }
 }
 }

+ 84 - 85
TEAMModelOS/ClientApp/src/components/smartclassdashboard/RingPie.vue

@@ -4,110 +4,110 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {
         return {
             mychat: '',
             mychat: '',
             total: 0,
             total: 0,
             heightlightIndex: 0,
             heightlightIndex: 0,
-            data:[],
+            data: []
         }
         }
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         },
         },
-        pieData:{
+        pieData: {
             type: Object,
             type: Object,
-            default: function(){
+            default: function() {
                 return {
                 return {
-                    "1": 0, // 一年級
-                    "2": 0, // 二年級
-                    "3": 0,
-                    "4": 0,
-                    "5": 0,
+                    '1': 0, // 一年級
+                    '2': 0, // 二年級
+                    '3': 0,
+                    '4': 0,
+                    '5': 0
                 }
                 }
-            },
+            }
         },
         },
         defaultActive: {
         defaultActive: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         },
         },
-        singleColor:{
+        singleColor: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         },
         },
         title: {
         title: {
             type: String
             type: String
         },
         },
-        tooltip:{
+        tooltip: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    created(){
+    created() {
     },
     },
     watch: {
     watch: {
         pieData() {
         pieData() {
             this.drawLine()
             this.drawLine()
         }
         }
     },
     },
-    methods:{
-        drawLine(){
-            let _this = this;
-            this.data = [];
+    methods: {
+        drawLine() {
+            let _this = this
+            this.data = []
             Object.keys(this.pieData).forEach(function(key) {
             Object.keys(this.pieData).forEach(function(key) {
-                _this.data.push({'name': key, 'value': _this.pieData[key]})
-            });
+                _this.data.push({ 'name': key, 'value': _this.pieData[key] })
+            })
             this.data.forEach(item => {
             this.data.forEach(item => {
                 _this.total += item.value
                 _this.total += item.value
-            });
+            })
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            this.myChart = this.$echarts.init(document.getElementById(this.id));
-            let color =  ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76', '#b682f8']; // 大於2
-            let color2 =  ['#FF6B6A', '#48DBFC']; // 小於2
-            if(Object.keys(this.pieData).length <=2){
+            this.myChart = this.$echarts.init(document.getElementById(this.id))
+            let color = ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76', '#b682f8'] // 大於2
+            let color2 = ['#FF6B6A', '#48DBFC'] // 小於2
+            if (Object.keys(this.pieData).length <= 2) {
                 color = color2
                 color = color2
             }
             }
-            this.myChart.setOption({                
-                title:{
-                    show: _this.title ? true : false,
+            this.myChart.setOption({
+                title: {
+                    show: !!_this.title,
                     text: _this.title ? _this.title : '',
                     text: _this.title ? _this.title : '',
                     left: 'center',
                     left: 'center',
                     top: 'middle',
                     top: 'middle',
-                    textStyle:{
+                    textStyle: {
                         color: '#fafafa',
                         color: '#fafafa',
                         fontWeight: 100
                         fontWeight: 100
-                    }                    
+                    }
                 },
                 },
                 color: _this.singleColor ? 'rgba(228, 233, 220, 0.9)' : color,
                 color: _this.singleColor ? 'rgba(228, 233, 220, 0.9)' : color,
                 tooltip: {
                 tooltip: {
                     show: _this.tooltip,
                     show: _this.tooltip,
-                    trigger: 'item',
-                    // formatter: function(p){                        
+                    trigger: 'item'
+                    // formatter: function(p){
                     //     // 故意不填可用來觸發HighLight
                     //     // 故意不填可用來觸發HighLight
                     // }
                     // }
                 },
                 },
                 series: [
                 series: [
                     {
                     {
-                        type:'pie',
+                        type: 'pie',
                         hoverOffset: 5,
                         hoverOffset: 5,
                         radius: _this.singleColor ? ['30%', '70%'] : ['50%', '70%'],
                         radius: _this.singleColor ? ['30%', '70%'] : ['50%', '70%'],
                         avoidLabelOverlap: false,
                         avoidLabelOverlap: false,
                         label: {
                         label: {
                             normal: {
                             normal: {
-                                show: false,
+                                show: false
                             },
                             },
                             emphasis: {
                             emphasis: {
-                                show: false,
+                                show: false
                             }
                             }
                         },
                         },
                         labelLine: {
                         labelLine: {
@@ -118,86 +118,85 @@ export default {
                         data: _this.data,
                         data: _this.data,
                         itemStyle: _this.singleColor ? {
                         itemStyle: _this.singleColor ? {
                             emphasis: {
                             emphasis: {
-                                color: '#1CD0A1',
+                                color: '#1CD0A1'
                             }
                             }
                         } : ''
                         } : ''
                     }
                     }
                 ]
                 ]
-            });
+            })
             // mouseover觸發項
             // mouseover觸發項
-            this.myChart.on('mouseover', function (params) {
-                if(_this.data[_this.heightlightIndex].name != params.name){
+            this.myChart.on('mouseover', function(params) {
+                if (_this.data[_this.heightlightIndex].name != params.name) {
                     _this.myChart.dispatchAction({
                     _this.myChart.dispatchAction({
                         type: 'downplay',
                         type: 'downplay',
-                        dataIndex: _this.heightlightIndex,
-                    });
+                        dataIndex: _this.heightlightIndex
+                    })
                 }
                 }
                 params.name = _this.resName(params.name)
                 params.name = _this.resName(params.name)
-                _this.$emit('highLightInfo', params);
-            });
-            if(this.defaultActive){
-                if(this.data.length == 0) return false;
-                // 預設先給第一筆初始值                
-                let now = this.data[0].value;
+                _this.$emit('highLightInfo', params)
+            })
+            if (this.defaultActive) {
+                if (this.data.length == 0) return false
+                // 預設先給第一筆初始值
+                let now = this.data[0].value
                 let name = this.resName(this.data[0].name)
                 let name = this.resName(this.data[0].name)
-                let params = {'value': this.data[0].value, 'name': name ,'percent': Number((now/this.total)*100).toFixed(2)}
-                this.$emit('extraInfo', params);            
-                this.$emit('highLightInfo', params);  
+                let params = { 'value': this.data[0].value, 'name': name, 'percent': Number((now / this.total) * 100).toFixed(2) }
+                this.$emit('extraInfo', params)
+                this.$emit('highLightInfo', params)
                 // 預設第一個
                 // 預設第一個
                 this.myChart.dispatchAction({
                 this.myChart.dispatchAction({
                     type: 'highlight',
                     type: 'highlight',
-                    dataIndex: _this.heightlightIndex,
-                });
+                    dataIndex: _this.heightlightIndex
+                })
             }
             }
         },
         },
         // 供外部呼叫用
         // 供外部呼叫用
-        heightlight: function(dName){    
-            let _this = this;
-            if(this.data[this.heightlightIndex].name != dName){
+        heightlight: function(dName) {
+            let _this = this
+            if (this.data[this.heightlightIndex].name != dName) {
                 this.myChart.dispatchAction({
                 this.myChart.dispatchAction({
                     type: 'downplay',
                     type: 'downplay',
-                    dataIndex: _this.heightlightIndex,
-                });
+                    dataIndex: _this.heightlightIndex
+                })
             }
             }
 
 
             this.myChart.dispatchAction({
             this.myChart.dispatchAction({
                 type: 'highlight',
                 type: 'highlight',
                 name: dName
                 name: dName
-            });
-            let now = 0;
+            })
+            let now = 0
             this.data.forEach(item => {
             this.data.forEach(item => {
-                if(item.name == dName){
+                if (item.name == dName) {
                     now = item.value
                     now = item.value
                 }
                 }
-            });
-            let params = {'percent': Number((now/this.total)*100).toFixed(2)}
-
+            })
+            let params = { 'percent': Number((now / this.total) * 100).toFixed(2) }
 
 
-            this.$emit('extraInfo', params);
+            this.$emit('extraInfo', params)
         },
         },
-        downplay: function(dname){
+        downplay: function(dname) {
             this.myChart.dispatchAction({
             this.myChart.dispatchAction({
                 type: 'downplay',
                 type: 'downplay',
                 name: dname
                 name: dname
-            });
+            })
         },
         },
-        resName: function(name){
+        resName: function(name) {
             switch (name) {
             switch (name) {
                 case 'Orther':
                 case 'Orther':
-                    return this.$t('classMgmt.Other');
-                    break;
+                    return this.$t('classMgmt.Other')
+                    break
                 case 'UnKnown':
                 case 'UnKnown':
-                    return this.$t('classMgmt.Other');
-                    break;
+                    return this.$t('classMgmt.Other')
+                    break
                 case 'smartClass':
                 case 'smartClass':
-                    return this.$t('classMgmt.smartClass');
-                    break;
+                    return this.$t('classMgmt.smartClass')
+                    break
                 case 'sokratesClass':
                 case 'sokratesClass':
-                    return this.$t('classMgmt.sokratesClass');
-                    break;
+                    return this.$t('classMgmt.sokratesClass')
+                    break
                 default:
                 default:
                     return name
                     return name
-                    break;
+                    break
             }
             }
         }
         }
     }
     }

+ 38 - 38
TEAMModelOS/ClientApp/src/components/smartschooldashboard/AccountLine.vue

@@ -4,30 +4,30 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {}
         return {}
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            let myChart = this.$echarts.init(document.getElementById(this.id));
-            let arrlabel = ["3/15", "3/16", "3/17", "3/18", "3/19", "3/20", "3/21", "3/22", "3/23", "3/24", "TODAY"];
-            let arrTotal1 = ["22", "17", "0", "26", "22", "24", "18", "30", "15", "10", "30"];
-            let arrTotal2 = ["26", "20", "2", "18", "27", "22", "26", "33", "9", "0", "40"];
+            let myChart = this.$echarts.init(document.getElementById(this.id))
+            let arrlabel = ['3/15', '3/16', '3/17', '3/18', '3/19', '3/20', '3/21', '3/22', '3/23', '3/24', 'TODAY']
+            let arrTotal1 = ['22', '17', '0', '26', '22', '24', '18', '30', '15', '10', '30']
+            let arrTotal2 = ['26', '20', '2', '18', '27', '22', '26', '33', '9', '0', '40']
             myChart.setOption({
             myChart.setOption({
                 backgroundColor: 'rgba(17, 17, 17, 0.14)',
                 backgroundColor: 'rgba(17, 17, 17, 0.14)',
                 tooltip: {
                 tooltip: {
                     trigger: 'axis',
                     trigger: 'axis',
-                    borderRadius: 0,
+                    borderRadius: 0
                     // backgroundColor:'#7AD1A8',
                     // backgroundColor:'#7AD1A8',
                     // formatter: function(pm) {
                     // formatter: function(pm) {
                     //     var param = pm[0];
                     //     var param = pm[0];
@@ -46,11 +46,11 @@ export default {
                     right: '0',
                     right: '0',
                     bottom: '0',
                     bottom: '0',
                     top: '0',
                     top: '0',
-                    containLabel: true,
+                    containLabel: true
                 },
                 },
                 xAxis: [{
                 xAxis: [{
                     axisTick: {
                     axisTick: {
-                        show: false,
+                        show: false
                     },
                     },
                     type: 'category',
                     type: 'category',
                     axisLabel: {
                     axisLabel: {
@@ -59,12 +59,12 @@ export default {
                             fontSize: 11,
                             fontSize: 11,
                             color: '#94998a'
                             color: '#94998a'
                         },
                         },
-                        interval:0,
-                        formatter:function(val){
-                            let firstOne = arrlabel[0];
+                        interval: 0,
+                        formatter: function(val) {
+                            let firstOne = arrlabel[0]
                             let labellength = arrlabel.length
                             let labellength = arrlabel.length
-                            let lastOne = arrlabel[labellength-1];
-                            if(firstOne != val && lastOne != val){
+                            let lastOne = arrlabel[labellength - 1]
+                            if (firstOne != val && lastOne != val) {
                                 return val
                                 return val
                             }
                             }
                         }
                         }
@@ -72,14 +72,14 @@ export default {
                     boundaryGap: false,
                     boundaryGap: false,
                     splitLine: {
                     splitLine: {
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         },
                         },
                         show: true
                         show: true
                     },
                     },
                     axisLine: {
                     axisLine: {
                         lineStyle: {
                         lineStyle: {
                             color: 'rgba(185, 193, 173, 0.63)',
                             color: 'rgba(185, 193, 173, 0.63)',
-                            width: 1,
+                            width: 1
                         }
                         }
                     },
                     },
                     data: arrlabel
                     data: arrlabel
@@ -94,7 +94,7 @@ export default {
                     axisLine: {
                     axisLine: {
                         show: true,
                         show: true,
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         }
                         }
                     },
                     },
                     axisLabel: {
                     axisLabel: {
@@ -102,13 +102,13 @@ export default {
                         inside: true,
                         inside: true,
                         textStyle: {
                         textStyle: {
                             fontSize: 14,
                             fontSize: 14,
-                            color:'transparent'
+                            color: 'transparent'
                         }
                         }
                     },
                     },
                     splitLine: {
                     splitLine: {
                         show: true,
                         show: true,
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         }
                         }
                     }
                     }
                 }],
                 }],
@@ -116,7 +116,7 @@ export default {
                     // name: '实名率',
                     // name: '实名率',
                     type: 'line',
                     type: 'line',
                     // symbol: 'circle',
                     // symbol: 'circle',
-                    //symbolSize: 5,
+                    // symbolSize: 5,
                     // showSymbol: false,
                     // showSymbol: false,
                     // markPoint: { // markLine 也是同理
                     // markPoint: { // markLine 也是同理
                     //   data: [{
                     //   data: [{
@@ -136,24 +136,24 @@ export default {
                             // 渐变色
                             // 渐变色
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                 offset: 0,
                                 offset: 0,
-                                color: "rgba(28, 208, 161, 1)" // 0% 处的颜色
-                            },{
+                                color: 'rgba(28, 208, 161, 1)' // 0% 处的颜色
+                            }, {
                                 offset: 1,
                                 offset: 1,
-                                color: "rgba(28, 208, 161, 0.5)" // 100% 处的颜色
+                                color: 'rgba(28, 208, 161, 0.5)' // 100% 处的颜色
                             }], false)
                             }], false)
-                        },
+                        }
                     },
                     },
                     itemStyle: {
                     itemStyle: {
                         normal: {
                         normal: {
                             areaStyle: {
                             areaStyle: {
                                 type: 'default'
                                 type: 'default'
                             },
                             },
-                            color: '#1CD0A1',
+                            color: '#1CD0A1'
                         },
                         },
                         emphasis: {
                         emphasis: {
                             // color: 'rgb(0,196,132)',
                             // color: 'rgb(0,196,132)',
                             borderColor: 'rgba(0,196,132,0.2)',
                             borderColor: 'rgba(0,196,132,0.2)',
-                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);',
+                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);'
                             // borderWidth: 10
                             // borderWidth: 10
                         }
                         }
                     },
                     },
@@ -171,31 +171,31 @@ export default {
                             // 渐变色
                             // 渐变色
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                 offset: 0,
                                 offset: 0,
-                                color: "rgba(72, 219, 252, 1)" // 0% 处的颜色
-                            },{
+                                color: 'rgba(72, 219, 252, 1)' // 0% 处的颜色
+                            }, {
                                 offset: 1,
                                 offset: 1,
-                                color: "rgba(72, 219, 252, 0.5)" // 100% 处的颜色
+                                color: 'rgba(72, 219, 252, 0.5)' // 100% 处的颜色
                             }], false)
                             }], false)
-                        },
+                        }
                     },
                     },
                     itemStyle: {
                     itemStyle: {
                         normal: {
                         normal: {
                             areaStyle: {
                             areaStyle: {
                                 type: 'default'
                                 type: 'default'
                             },
                             },
-                            color: '#48DBFC',
+                            color: '#48DBFC'
                         },
                         },
                         emphasis: {
                         emphasis: {
                             // color: 'rgb(0,196,132)',
                             // color: 'rgb(0,196,132)',
                             borderColor: 'rgba(0,196,132,0.2)',
                             borderColor: 'rgba(0,196,132,0.2)',
-                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);',
+                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);'
                             // borderWidth: 10
                             // borderWidth: 10
                         }
                         }
                     },
                     },
                     data: arrTotal2
                     data: arrTotal2
                 }
                 }
                 ]
                 ]
-            });
+            })
         }
         }
     }
     }
 }
 }

+ 28 - 28
TEAMModelOS/ClientApp/src/components/smartschooldashboard/ClassResourceBar.vue

@@ -4,19 +4,19 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
       return {
       return {
-        myChart: '',
+        myChart: ''
       }
       }
     },
     },
-    props:{
-      id:{
+    props: {
+      id: {
         type: String
         type: String
       },
       },
-      todayData:{
+      todayData: {
         type: Object,
         type: Object,
-        default: function(){
-          let demo = {};
+        default: function() {
+          let demo = {}
           demo[this.$t('schoolMgmt .text44')] = 9
           demo[this.$t('schoolMgmt .text44')] = 9
           demo[this.$t('schoolMgmt .text45')] = 11
           demo[this.$t('schoolMgmt .text45')] = 11
           demo[this.$t('schoolMgmt .text46')] = 16
           demo[this.$t('schoolMgmt .text46')] = 16
@@ -30,30 +30,30 @@ export default {
         type: String
         type: String
       }
       }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 取得Y軸Label
             // 取得Y軸Label
-            let yLabel = Object.keys(this.todayData);
-            let todayDataArray = [];
+            let yLabel = Object.keys(this.todayData)
+            let todayDataArray = []
 
 
             // 今日資料
             // 今日資料
             yLabel.map(function(key) {
             yLabel.map(function(key) {
-              todayDataArray.push(_this.todayData[key]);
-            });
+              todayDataArray.push(_this.todayData[key])
+            })
 
 
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            this.myChart = this.$echarts.init(document.getElementById(this.id));
+            this.myChart = this.$echarts.init(document.getElementById(this.id))
             this.myChart.setOption({
             this.myChart.setOption({
               backgroundColor: '#343a4073',
               backgroundColor: '#343a4073',
               tooltip: {
               tooltip: {
                 trigger: 'axis',
                 trigger: 'axis',
                 axisPointer: {
                 axisPointer: {
                   type: 'shadow'
                   type: 'shadow'
-                },
+                }
                 // formatter: function(params){
                 // formatter: function(params){
                 //   // 故意開啟 但不設定使ToolTip 沒有彈跳的作用 但有Hover 功能
                 //   // 故意開啟 但不設定使ToolTip 沒有彈跳的作用 但有Hover 功能
                 // }
                 // }
@@ -62,7 +62,7 @@ export default {
                 left: '5%',
                 left: '5%',
                 right: '0',
                 right: '0',
                 bottom: '0',
                 bottom: '0',
-                top:'0',
+                top: '0',
                 containLabel: true
                 containLabel: true
               },
               },
               xAxis: {
               xAxis: {
@@ -71,7 +71,7 @@ export default {
                 axisLabel: {
                 axisLabel: {
                     inside: true,
                     inside: true,
                     textStyle: {
                     textStyle: {
-                        color:'transparent'
+                        color: 'transparent'
                     }
                     }
                 },
                 },
                 splitLine: {
                 splitLine: {
@@ -91,36 +91,36 @@ export default {
                 },
                 },
                 splitLine: {
                 splitLine: {
                   lineStyle: {
                   lineStyle: {
-                    color: 'rgba(185, 193, 173, 0.63)',
+                    color: 'rgba(185, 193, 173, 0.63)'
                   },
                   },
                   show: true
                   show: true
                 },
                 },
                 axisLine: {
                 axisLine: {
                   lineStyle: {
                   lineStyle: {
                     color: 'rgba(185, 193, 173, 0.63)',
                     color: 'rgba(185, 193, 173, 0.63)',
-                    width: 1,
+                    width: 1
                   }
                   }
                 },
                 },
-                data: yLabel,
+                data: yLabel
               },
               },
               series: [
               series: [
                 {
                 {
                   name: 'today',
                   name: 'today',
                   type: 'bar',
                   type: 'bar',
                   data: todayDataArray,
                   data: todayDataArray,
-                  barWidth: 15, //柱子宽度
+                  barWidth: 15, // 柱子宽度
                   itemStyle: {
                   itemStyle: {
-                    normal: {  //渐变色
+                    normal: { // 渐变色
                       color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                         offset: 0,
                         offset: 0,
-                        color: "rgba(228, 233, 220, 1)" // 0% 处的颜色
-                      },{
+                        color: 'rgba(228, 233, 220, 1)' // 0% 处的颜色
+                      }, {
                         offset: 1,
                         offset: 1,
-                        color: "rgba(228, 233, 220, 0.5)" // 100% 处的颜色
+                        color: 'rgba(228, 233, 220, 0.5)' // 100% 处的颜色
                       }], false)
                       }], false)
                     }
                     }
                   }
                   }
-                },
+                }
               ]
               ]
             })
             })
         }
         }

+ 52 - 52
TEAMModelOS/ClientApp/src/components/smartschooldashboard/ClasstypePie.vue

@@ -4,74 +4,74 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {}
         return {}
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             let rich = {
             let rich = {
                 b: {
                 b: {
-                    color: "#94998a",
+                    color: '#94998a',
                     fontSize: 10,
                     fontSize: 10,
                     align: 'left',
                     align: 'left',
-                    padding: [3, 0],
+                    padding: [3, 0]
                 },
                 },
                 c: {
                 c: {
-                    color: "#FAFAFA",
+                    color: '#FAFAFA',
                     fontSize: 10,
                     fontSize: 10,
-                    fontWeight: 100,
+                    fontWeight: 100
                 },
                 },
                 d: {
                 d: {
-                    color: "#FAFAFA",
+                    color: '#FAFAFA',
                     fontSize: 15,
                     fontSize: 15,
-                    fontWeight: 100,
+                    fontWeight: 100
                 }
                 }
             }
             }
-            let color = ['#FF6B6A', '#48DBFC', '#1CD0A1', '#FDC958'];
+            let color = ['#FF6B6A', '#48DBFC', '#1CD0A1', '#FDC958']
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            let myChart = this.$echarts.init(document.getElementById(this.id));
+            let myChart = this.$echarts.init(document.getElementById(this.id))
             myChart.setOption({
             myChart.setOption({
                 tooltip: {
                 tooltip: {
-                    formatter: function(p){
+                    formatter: function(p) {
 
 
                     }
                     }
                 },
                 },
     series: [
     series: [
         {
         {
             // name:'访问来源',
             // name:'访问来源',
-            type:'pie',
+            type: 'pie',
             selectedMode: 'single',
             selectedMode: 'single',
             radius: [0, '46%'],
             radius: [0, '46%'],
             center: ['50%', '50%'],
             center: ['50%', '50%'],
-            itemStyle:{
-                color: function(p){
+            itemStyle: {
+                color: function(p) {
                     return color[p.data.type]
                     return color[p.data.type]
                 }
                 }
             },
             },
             label: {
             label: {
                 normal: {
                 normal: {
                     position: 'inner',
                     position: 'inner',
-                    formatter: function(p){
+                    formatter: function(p) {
                         let percent = Math.round(p.percent)
                         let percent = Math.round(p.percent)
-                        return '{title|' + p.name + '}\n{num|' + percent +'%}';
+                        return '{title|' + p.name + '}\n{num|' + percent + '%}'
                     },
                     },
-                    rich: { 
-                        title:{
-                            color: "#fafafa",
-                            fontSize: 10,
+                    rich: {
+                        title: {
+                            color: '#fafafa',
+                            fontSize: 10
                         },
                         },
-                        num:{
-                            color: "#fafafa",
-                            fontSize: 10,
+                        num: {
+                            color: '#fafafa',
+                            fontSize: 10
                         }
                         }
                     }
                     }
                 }
                 }
@@ -81,29 +81,29 @@ export default {
                     show: false
                     show: false
                 }
                 }
             },
             },
-            data:[
-                {value:300, name: _this.$t('schoolMgmt .text17'), type: 0},
-                {value:500, name: _this.$t('schoolMgmt .text18'), type: 1},
-                {value:270, name: _this.$t('schoolMgmt .text19'), type: 2},
-                {value:250, name: _this.$t('schoolMgmt .text20'), type: 3}
+            data: [
+                { value: 300, name: _this.$t('schoolMgmt .text17'), type: 0 },
+                { value: 500, name: _this.$t('schoolMgmt .text18'), type: 1 },
+                { value: 270, name: _this.$t('schoolMgmt .text19'), type: 2 },
+                { value: 250, name: _this.$t('schoolMgmt .text20'), type: 3 }
             ]
             ]
         },
         },
         {
         {
             color: ['#FF6B6A', '#48DBFC', '#1CD0A1', '#FDC958'],
             color: ['#FF6B6A', '#48DBFC', '#1CD0A1', '#FDC958'],
-            name:'访问来源',
-            type:'pie',
+            name: '访问来源',
+            type: 'pie',
             radius: ['55%', '69%'],
             radius: ['55%', '69%'],
             center: ['50%', '50%'],
             center: ['50%', '50%'],
-            itemStyle : {
-                color:function(p){
+            itemStyle: {
+                color: function(p) {
                     return color[p.data.type]
                     return color[p.data.type]
-    	        },
+    	        }
             },
             },
             label: {
             label: {
                 normal: {
                 normal: {
-                    formatter: function(p){
+                    formatter: function(p) {
                         let percent = Math.round(p.percent).toFixed(1)
                         let percent = Math.round(p.percent).toFixed(1)
-                        return '{b|' + p.name + '}\n{d|' + percent +'% }{c|('+ p.value +')}';
+                        return '{b|' + p.name + '}\n{d|' + percent + '% }{c|(' + p.value + ')}'
                     },
                     },
                     rich: rich
                     rich: rich
                 },
                 },
@@ -113,21 +113,21 @@ export default {
                     }
                     }
                 }
                 }
             },
             },
-            data:[
-                {value:200, name: _this.$t('schoolMgmt .text21'), type: 0},
-                {value:100, name: _this.$t('schoolMgmt .text22'), type: 0},
-                {value:100, name: _this.$t('schoolMgmt .text23'), type: 1},
-                {value:140, name: _this.$t('schoolMgmt .text24'), type: 1},
-                {value:70, name: _this.$t('schoolMgmt .text25'), type: 1},
-                {value:190, name: _this.$t('schoolMgmt .text26'), type: 1},
-                {value:190, name: _this.$t('schoolMgmt .text27'), type: 2},
-                {value:80, name: _this.$t('schoolMgmt .text28'), type: 2},
-                {value:125, name: _this.$t('schoolMgmt .text29'), type: 3},
-                {value:125, name: _this.$t('schoolMgmt .text30'), type: 3}
+            data: [
+                { value: 200, name: _this.$t('schoolMgmt .text21'), type: 0 },
+                { value: 100, name: _this.$t('schoolMgmt .text22'), type: 0 },
+                { value: 100, name: _this.$t('schoolMgmt .text23'), type: 1 },
+                { value: 140, name: _this.$t('schoolMgmt .text24'), type: 1 },
+                { value: 70, name: _this.$t('schoolMgmt .text25'), type: 1 },
+                { value: 190, name: _this.$t('schoolMgmt .text26'), type: 1 },
+                { value: 190, name: _this.$t('schoolMgmt .text27'), type: 2 },
+                { value: 80, name: _this.$t('schoolMgmt .text28'), type: 2 },
+                { value: 125, name: _this.$t('schoolMgmt .text29'), type: 3 },
+                { value: 125, name: _this.$t('schoolMgmt .text30'), type: 3 }
             ]
             ]
         }
         }
     ]
     ]
-            });
+            })
         }
         }
     }
     }
 }
 }

+ 32 - 32
TEAMModelOS/ClientApp/src/components/smartschooldashboard/CourseBar.vue

@@ -4,44 +4,44 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
       return {
       return {
-        myChart: '',
+        myChart: ''
       }
       }
     },
     },
-    props:{
-      id:{
+    props: {
+      id: {
         type: String
         type: String
       },
       },
-      data:{
+      data: {
         type: Object,
         type: Object,
-        default: function(){
-          return {'模擬測驗': 0, '成績登錄': 5, '線上測驗': 16, 'HiTeach': 150, '合併活動':6, '班級競賽':23, '網路閱卷':21}
+        default: function() {
+          return { '模擬測驗': 0, '成績登錄': 5, '線上測驗': 16, 'HiTeach': 150, '合併活動': 6, '班級競賽': 23, '網路閱卷': 21 }
         }
         }
       },
       },
       callBack: {
       callBack: {
         type: String
         type: String
       }
       }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 取得x軸Label
             // 取得x軸Label
-            let xLabel = Object.keys(this.data);
-            let courseDataArray = [];
-            let max;
+            let xLabel = Object.keys(this.data)
+            let courseDataArray = []
+            let max
             // 資料統整
             // 資料統整
             xLabel.map(function(key) {
             xLabel.map(function(key) {
-              courseDataArray.push(_this.data[key]);
-            });
-            
-            max = Math.max(...courseDataArray) + 20;
+              courseDataArray.push(_this.data[key])
+            })
+
+            max = Math.max(...courseDataArray) + 20
 
 
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            this.myChart = this.$echarts.init(document.getElementById(this.id));
+            this.myChart = this.$echarts.init(document.getElementById(this.id))
             this.myChart.setOption({
             this.myChart.setOption({
               backgroundColor: '#343a4073',
               backgroundColor: '#343a4073',
               tooltip: {
               tooltip: {
@@ -49,7 +49,7 @@ export default {
                 axisPointer: {
                 axisPointer: {
                   type: 'shadow'
                   type: 'shadow'
                 },
                 },
-                formatter: function(params){
+                formatter: function(params) {
                   // 故意開啟 但不設定使ToolTip 沒有彈跳的作用 但有Hover 功能
                   // 故意開啟 但不設定使ToolTip 沒有彈跳的作用 但有Hover 功能
                 }
                 }
               },
               },
@@ -57,7 +57,7 @@ export default {
                 left: '0',
                 left: '0',
                 right: '2%',
                 right: '2%',
                 bottom: '1px',
                 bottom: '1px',
-                top:'0',
+                top: '0',
                 containLabel: true
                 containLabel: true
               },
               },
               xAxis: {
               xAxis: {
@@ -68,7 +68,7 @@ export default {
                 axisLabel: {
                 axisLabel: {
                     inside: true,
                     inside: true,
                     textStyle: {
                     textStyle: {
-                        color:'transparent'
+                        color: 'transparent'
                     }
                     }
                 },
                 },
                 axisLine: {
                 axisLine: {
@@ -76,7 +76,7 @@ export default {
                     lineStyle: {
                     lineStyle: {
                       width: 1,
                       width: 1,
                       color: 'rgba(185, 193, 173, 0.63)'
                       color: 'rgba(185, 193, 173, 0.63)'
-                    }                  
+                    }
                 },
                 },
                 splitLine: {
                 splitLine: {
                     show: true,
                     show: true,
@@ -93,7 +93,7 @@ export default {
                 axisLabel: {
                 axisLabel: {
                   inside: true,
                   inside: true,
                   textStyle: {
                   textStyle: {
-                      color:'transparent'
+                      color: 'transparent'
                   }
                   }
                 },
                 },
                 axisLine: {
                 axisLine: {
@@ -101,7 +101,7 @@ export default {
                     lineStyle: {
                     lineStyle: {
                       width: 1,
                       width: 1,
                       color: 'rgba(185, 193, 173, 0.63)'
                       color: 'rgba(185, 193, 173, 0.63)'
-                    }                  
+                    }
                 },
                 },
                 splitLine: {
                 splitLine: {
                     show: true,
                     show: true,
@@ -109,23 +109,23 @@ export default {
                       width: 1,
                       width: 1,
                       color: 'rgba(185, 193, 173, 0.63)'
                       color: 'rgba(185, 193, 173, 0.63)'
                     }
                     }
-                },
+                }
               },
               },
               series: [
               series: [
                 {
                 {
                   // name: 'today',
                   // name: 'today',
                   type: 'bar',
                   type: 'bar',
                   data: courseDataArray,
                   data: courseDataArray,
-                  barWidth: 10, //柱子宽度
-                  barGap: 1, //柱子之间间距
+                  barWidth: 10, // 柱子宽度
+                  barGap: 1, // 柱子之间间距
                   itemStyle: {
                   itemStyle: {
-                    normal: {  //渐变色
+                    normal: { // 渐变色
                       color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                         offset: 0,
                         offset: 0,
-                        color: "rgba(228, 233, 220, 1)" // 0% 处的颜色
-                      },{
+                        color: 'rgba(228, 233, 220, 1)' // 0% 处的颜色
+                      }, {
                         offset: 1,
                         offset: 1,
-                        color: "rgba(228, 233, 220, 0.5)" // 100% 处的颜色
+                        color: 'rgba(228, 233, 220, 0.5)' // 100% 处的颜色
                       }], false)
                       }], false)
                     }
                     }
                   }
                   }

+ 98 - 98
TEAMModelOS/ClientApp/src/components/smartschooldashboard/FinishPercentPie.vue

@@ -4,86 +4,86 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {
         return {
             mychat: '',
             mychat: '',
             realPercent: 100,
             realPercent: 100,
-            pieFinishPercent: 75,
+            pieFinishPercent: 75
         }
         }
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         },
         },
-        pieData:{
+        pieData: {
             type: Object,
             type: Object,
-            default: function(){
-                return {total:175, value: 128}      
-            },
-        },
+            default: function() {
+                return { total: 175, value: 128 }
+            }
+        }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    created(){
-        this.realPercent = Math.round((this.pieData.value / this.pieData.total)* 100);
+    created() {
+        this.realPercent = Math.round((this.pieData.value / this.pieData.total) * 100)
         this.pieFinishPercent = (this.realPercent / 100.00) * 75
         this.pieFinishPercent = (this.realPercent / 100.00) * 75
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            this.myChart = this.$echarts.init(document.getElementById(this.id));
-            this.myChart.setOption({                
+            this.myChart = this.$echarts.init(document.getElementById(this.id))
+            this.myChart.setOption({
                 title: {
                 title: {
-                    "text": _this.$t('schoolMgmt .text50') + ' : ' + _this.pieData.total + '\n' + _this.$t('schoolMgmt .text51') +' : ' + _this.pieData.value,
-                    "x": '50%',
-                    "y": '75%',
-                    "textAlign": "center",
-                    "textStyle": {
-                        "fontWeight": 'lighter',
-                        "fontSize": 11,
-                        "color": "#A9B2B8",
-                    },
+                    'text': _this.$t('schoolMgmt .text50') + ' : ' + _this.pieData.total + '\n' + _this.$t('schoolMgmt .text51') + ' : ' + _this.pieData.value,
+                    'x': '50%',
+                    'y': '75%',
+                    'textAlign': 'center',
+                    'textStyle': {
+                        'fontWeight': 'lighter',
+                        'fontSize': 11,
+                        'color': '#A9B2B8'
+                    }
                 },
                 },
                 series: [{
                 series: [{
-                  "name": ' ',
-                  "type": 'pie',
-                  "radius": ['50%', '68.1%'],
-                  "avoidLabelOverlap": false,
-                  "startAngle": 225,
-                  "color": ["#fff", "transparent"],
-                  "hoverAnimation": false,
-                  "legendHoverLink": false,
-                  "label": {
-                      "normal": {
-                          "show": false,
-                          "position": 'center'
+                  'name': ' ',
+                  'type': 'pie',
+                  'radius': ['50%', '68.1%'],
+                  'avoidLabelOverlap': false,
+                  'startAngle': 225,
+                  'color': ['#fff', 'transparent'],
+                  'hoverAnimation': false,
+                  'legendHoverLink': false,
+                  'label': {
+                      'normal': {
+                          'show': false,
+                          'position': 'center'
                       },
                       },
-                      "emphasis": {
-                          "show": true,
-                          "textStyle": {
-                              "fontSize": '30',
-                              "fontWeight": 'bold'
+                      'emphasis': {
+                          'show': true,
+                          'textStyle': {
+                              'fontSize': '30',
+                              'fontWeight': 'bold'
                           }
                           }
                       }
                       }
                   },
                   },
-                  "labelLine": {
-                      "normal": {
-                          "show": false
+                  'labelLine': {
+                      'normal': {
+                          'show': false
                       }
                       }
                   },
                   },
-                  "data": [{
-                      "value": 75,
-                      "name": '',
-                      "itemStyle": {
+                  'data': [{
+                      'value': 75,
+                      'name': '',
+                      'itemStyle': {
                         normal: {
                         normal: {
                                 color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                 color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                 offset: 0,
                                 offset: 0,
-                                color: "rgba(228, 233, 220, 0.14)" // 0% 处的颜色
-                            },{
+                                color: 'rgba(228, 233, 220, 0.14)' // 0% 处的颜色
+                            }, {
                                 offset: 1,
                                 offset: 1,
-                                color: "rgba(228, 233, 220, 0.14)" // 100% 处的颜色
+                                color: 'rgba(228, 233, 220, 0.14)' // 100% 处的颜色
                             }], false),
                             }], false),
                             label: {
                             label: {
                                 show: false
                                 show: false
@@ -91,61 +91,61 @@ export default {
                             labelLine: {
                             labelLine: {
                                 show: false
                                 show: false
                             }
                             }
-                        },
+                        }
                       }
                       }
                   }, {
                   }, {
-                      "value": 25,
-                      "name": '',
-                      "itemStyle": {
-                          "normal": {
+                      'value': 25,
+                      'name': '',
+                      'itemStyle': {
+                          'normal': {
                               color: 'rgba(0,0,0,0)'
                               color: 'rgba(0,0,0,0)'
                           }
                           }
                       }
                       }
                   }]
                   }]
               }, {
               }, {
-                  "name": '',
-                  "type": 'pie',
-                  "radius": ['50%', '68.1%'],
-                  "avoidLabelOverlap": false,
-                  "startAngle": 225,
-                  "color": ["#fff", "transparent"],
-                  "hoverAnimation": false,
-                  "legendHoverLink": false,
-                  "z": 10,
-                  "label": {
-                      "normal": {
-                          "show": false,
-                          "position": 'center'
-                      },
+                  'name': '',
+                  'type': 'pie',
+                  'radius': ['50%', '68.1%'],
+                  'avoidLabelOverlap': false,
+                  'startAngle': 225,
+                  'color': ['#fff', 'transparent'],
+                  'hoverAnimation': false,
+                  'legendHoverLink': false,
+                  'z': 10,
+                  'label': {
+                      'normal': {
+                          'show': false,
+                          'position': 'center'
+                      }
                   },
                   },
-                  "labelLine": {
-                      "normal": {
-                          "show": false
+                  'labelLine': {
+                      'normal': {
+                          'show': false
                       }
                       }
                   },
                   },
-                  "data": [{
-                      "name": _this.realPercent.toString(), //完成数实际值
-                      "value": _this.pieFinishPercent, // PIE完成数
-                      "label": {
-                          "normal": {
-                              "show": true,
-                              "formatter": '{b} %',
-                              "textStyle": {
-                                  "fontSize": 20,
-                                  "fontWeight": "100",
-                                  "color": "#ffffff",
+                  'data': [{
+                      'name': _this.realPercent.toString(), // 完成数实际值
+                      'value': _this.pieFinishPercent, // PIE完成数
+                      'label': {
+                          'normal': {
+                              'show': true,
+                              'formatter': '{b} %',
+                              'textStyle': {
+                                  'fontSize': 20,
+                                  'fontWeight': '100',
+                                  'color': '#ffffff'
                               },
                               },
-                              "position": "center"
+                              'position': 'center'
                           }
                           }
                       },
                       },
-                      "itemStyle": {
+                      'itemStyle': {
                         normal: {
                         normal: {
                         color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                         color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                         offset: 0,
                         offset: 0,
-                        color: "rgba(228, 233, 220, 1)" // 0% 处的颜色
-                      },{
+                        color: 'rgba(228, 233, 220, 1)' // 0% 处的颜色
+                      }, {
                         offset: 1,
                         offset: 1,
-                        color: "rgba(228, 233, 220, 0.5)" // 100% 处的颜色
+                        color: 'rgba(228, 233, 220, 0.5)' // 100% 处的颜色
                       }], false),
                       }], false),
                             label: {
                             label: {
                                 show: false
                                 show: false
@@ -153,20 +153,20 @@ export default {
                             labelLine: {
                             labelLine: {
                                 show: false
                                 show: false
                             }
                             }
-                        },
+                        }
                       }
                       }
                   }, {
                   }, {
-                      "name": '',
-                      "value": (100 - _this.pieFinishPercent), // PIE未完成数 100% 是75
-                      "itemStyle": {
-                          "normal": {
+                      'name': '',
+                      'value': (100 - _this.pieFinishPercent), // PIE未完成数 100% 是75
+                      'itemStyle': {
+                          'normal': {
                               color: 'rgba(0,0,0,0)'
                               color: 'rgba(0,0,0,0)'
                           }
                           }
                       }
                       }
                   }]
                   }]
               }]
               }]
-            });
-        },
+            })
+        }
     }
     }
 }
 }
 
 

+ 66 - 67
TEAMModelOS/ClientApp/src/components/smartschooldashboard/RingPie.vue

@@ -4,96 +4,96 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {
         return {
             mychat: '',
             mychat: '',
             total: 0,
             total: 0,
-            heightlightIndex: 0,
+            heightlightIndex: 0
         }
         }
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         },
         },
-        pieData:{
+        pieData: {
             type: Array,
             type: Array,
-            default: function(){
+            default: function() {
                 return [
                 return [
-                    {value:335, name:'新增檔案'},
-                    {value:310, name:'書面問答'},
-                    {value:234, name:'匯入.pptx'},
-                    {value:135, name:'PowerClick'},
-                    {value:1548, name:'開啟.hte'},
-                    {value:123, name:'其他'},
+                    { value: 335, name: '新增檔案' },
+                    { value: 310, name: '書面問答' },
+                    { value: 234, name: '匯入.pptx' },
+                    { value: 135, name: 'PowerClick' },
+                    { value: 1548, name: '開啟.hte' },
+                    { value: 123, name: '其他' }
                 ]
                 ]
-            },
+            }
         },
         },
         defaultActive: {
         defaultActive: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         },
         },
-        singleColor:{
+        singleColor: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         },
         },
         title: {
         title: {
             type: String
             type: String
         },
         },
-        tooltip:{
+        tooltip: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    created(){
+    created() {
         this.pieData.forEach(item => {
         this.pieData.forEach(item => {
             this.total += item.value
             this.total += item.value
-        });
+        })
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            this.myChart = this.$echarts.init(document.getElementById(this.id));
-            this.myChart.setOption({                
-                title:{
-                    show: _this.title ? true : false,
+            this.myChart = this.$echarts.init(document.getElementById(this.id))
+            this.myChart.setOption({
+                title: {
+                    show: !!_this.title,
                     text: _this.title ? _this.title : '',
                     text: _this.title ? _this.title : '',
                     left: 'center',
                     left: 'center',
                     top: 'middle',
                     top: 'middle',
-                    textStyle:{
+                    textStyle: {
                         color: '#fafafa',
                         color: '#fafafa',
                         fontWeight: 100
                         fontWeight: 100
-                    }                    
+                    }
                 },
                 },
                 color: _this.singleColor ? 'rgba(228, 233, 220, 0.9)' : ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76'],
                 color: _this.singleColor ? 'rgba(228, 233, 220, 0.9)' : ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76'],
                 tooltip: {
                 tooltip: {
                     show: _this.tooltip,
                     show: _this.tooltip,
-                    trigger: 'item',
-                    // formatter: function(p){                        
+                    trigger: 'item'
+                    // formatter: function(p){
                     //     // 故意不填可用來觸發HighLight
                     //     // 故意不填可用來觸發HighLight
                     // }
                     // }
                 },
                 },
                 series: [
                 series: [
                     {
                     {
-                        type:'pie',
+                        type: 'pie',
                         hoverOffset: 5,
                         hoverOffset: 5,
                         radius: _this.singleColor ? ['30%', '70%'] : ['50%', '70%'],
                         radius: _this.singleColor ? ['30%', '70%'] : ['50%', '70%'],
                         avoidLabelOverlap: false,
                         avoidLabelOverlap: false,
                         label: {
                         label: {
                             normal: {
                             normal: {
-                                show: false,
+                                show: false
                             },
                             },
                             emphasis: {
                             emphasis: {
-                                show: false,
+                                show: false
                             }
                             }
                         },
                         },
                         labelLine: {
                         labelLine: {
@@ -104,65 +104,64 @@ export default {
                         data: _this.pieData,
                         data: _this.pieData,
                         itemStyle: _this.singleColor ? {
                         itemStyle: _this.singleColor ? {
                             emphasis: {
                             emphasis: {
-                                color: '#1CD0A1',
+                                color: '#1CD0A1'
                             }
                             }
                         } : ''
                         } : ''
                     }
                     }
                 ]
                 ]
-            });
+            })
             // mouseover觸發項
             // mouseover觸發項
-            this.myChart.on('mouseover', function (params) {
-                if(_this.pieData[_this.heightlightIndex].name != params.name){
+            this.myChart.on('mouseover', function(params) {
+                if (_this.pieData[_this.heightlightIndex].name != params.name) {
                     _this.myChart.dispatchAction({
                     _this.myChart.dispatchAction({
                         type: 'downplay',
                         type: 'downplay',
-                        dataIndex: _this.heightlightIndex,
-                    });
+                        dataIndex: _this.heightlightIndex
+                    })
                 }
                 }
-                _this.$emit('highLightInfo', params);
-            });
-            if(this.defaultActive){
+                _this.$emit('highLightInfo', params)
+            })
+            if (this.defaultActive) {
                 // 預設先給第一筆初始值
                 // 預設先給第一筆初始值
-                let now = this.pieData[0].value;
-                let params = {'value': this.pieData[0].value, 'name': this.pieData[0].name,'percent': Number((now/this.total)*100).toFixed(2)}
-                this.$emit('extraInfo', params);            
-                this.$emit('highLightInfo', params);  
+                let now = this.pieData[0].value
+                let params = { 'value': this.pieData[0].value, 'name': this.pieData[0].name, 'percent': Number((now / this.total) * 100).toFixed(2) }
+                this.$emit('extraInfo', params)
+                this.$emit('highLightInfo', params)
                 // 預設第一個
                 // 預設第一個
                 this.myChart.dispatchAction({
                 this.myChart.dispatchAction({
                     type: 'highlight',
                     type: 'highlight',
-                    dataIndex: _this.heightlightIndex,
-                });
+                    dataIndex: _this.heightlightIndex
+                })
             }
             }
         },
         },
         // 供外部呼叫用
         // 供外部呼叫用
-        heightlight: function(dName){    
-            let _this = this;
-            if(this.pieData[this.heightlightIndex].name != dName){
+        heightlight: function(dName) {
+            let _this = this
+            if (this.pieData[this.heightlightIndex].name != dName) {
                 this.myChart.dispatchAction({
                 this.myChart.dispatchAction({
                     type: 'downplay',
                     type: 'downplay',
-                    dataIndex: _this.heightlightIndex,
-                });
+                    dataIndex: _this.heightlightIndex
+                })
             }
             }
 
 
             this.myChart.dispatchAction({
             this.myChart.dispatchAction({
                 type: 'highlight',
                 type: 'highlight',
                 name: dName
                 name: dName
-            });
-            let now = 0;
+            })
+            let now = 0
             this.pieData.forEach(item => {
             this.pieData.forEach(item => {
-                if(item.name == dName){
+                if (item.name == dName) {
                     now = item.value
                     now = item.value
                 }
                 }
-            });
-            let params = {'percent': Number((now/this.total)*100).toFixed(2)}
-
+            })
+            let params = { 'percent': Number((now / this.total) * 100).toFixed(2) }
 
 
-            this.$emit('extraInfo', params);
+            this.$emit('extraInfo', params)
         },
         },
-        downplay: function(dname){
+        downplay: function(dname) {
             this.myChart.dispatchAction({
             this.myChart.dispatchAction({
                 type: 'downplay',
                 type: 'downplay',
                 name: dname
                 name: dname
-            });
+            })
         }
         }
     }
     }
 }
 }

+ 45 - 31
TEAMModelOS/ClientApp/src/components/smartschooldashboard/TeachScienceBar.vue

@@ -4,43 +4,57 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
       return {
       return {
-        myChart: '',
+        myChart: ''
       }
       }
     },
     },
-    props:{
-      id:{
+    props: {
+      id: {
         type: String
         type: String
       },
       },
-      data:{
+      data: {
         type: Object,
         type: Object,
-        default: function(){
-          return {'挑人': 9, '计时器': 11, '计分板': 16, 'I R S':14, '即问即答':9, '二次作答':5, '翻牌':3, '统计图':10, 
-                  '抢权':11, '飞讯处理':3, '推送':6, 'L I V E':13, '微影片':7, '播放影片':10, '作品观摩':7, '作品点评':6}
+        default: function() {
+          return { '挑人': 9,
+'计时器': 11,
+'计分板': 16,
+'I R S': 14,
+'即问即答': 9,
+'二次作答': 5,
+'翻牌': 3,
+'统计图': 10,
+                  '抢权': 11,
+'飞讯处理': 3,
+'推送': 6,
+'L I V E': 13,
+'微影片': 7,
+'播放影片': 10,
+'作品观摩': 7,
+'作品点评': 6 }
         }
         }
       },
       },
       callBack: {
       callBack: {
         type: String
         type: String
       }
       }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 取得Y軸Label
             // 取得Y軸Label
-            let yLabel = Object.keys(this.data);
-            let todayDataArray = [];
+            let yLabel = Object.keys(this.data)
+            let todayDataArray = []
 
 
             // 今日資料
             // 今日資料
             yLabel.map(function(key) {
             yLabel.map(function(key) {
-              todayDataArray.push(_this.data[key]);
-            });            
+              todayDataArray.push(_this.data[key])
+            })
 
 
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            this.myChart = this.$echarts.init(document.getElementById(this.id));
+            this.myChart = this.$echarts.init(document.getElementById(this.id))
             this.myChart.setOption({
             this.myChart.setOption({
               backgroundColor: '#343a4073',
               backgroundColor: '#343a4073',
               tooltip: {
               tooltip: {
@@ -48,7 +62,7 @@ export default {
                 axisPointer: {
                 axisPointer: {
                   type: 'shadow'
                   type: 'shadow'
                 },
                 },
-                formatter: function(params){
+                formatter: function(params) {
                   // 故意開啟 但不設定使ToolTip 沒有彈跳的作用 但有Hover 功能
                   // 故意開啟 但不設定使ToolTip 沒有彈跳的作用 但有Hover 功能
                 }
                 }
               },
               },
@@ -56,7 +70,7 @@ export default {
                 left: '5%',
                 left: '5%',
                 right: '0',
                 right: '0',
                 bottom: '0',
                 bottom: '0',
-                top:'0',
+                top: '0',
                 containLabel: true
                 containLabel: true
               },
               },
               xAxis: {
               xAxis: {
@@ -65,7 +79,7 @@ export default {
                 axisLabel: {
                 axisLabel: {
                     inside: true,
                     inside: true,
                     textStyle: {
                     textStyle: {
-                        color:'transparent'
+                        color: 'transparent'
                     }
                     }
                 },
                 },
                 splitLine: {
                 splitLine: {
@@ -80,7 +94,7 @@ export default {
                 axisLabel: {
                 axisLabel: {
                     textStyle: {
                     textStyle: {
                       fontSize: '13px',
                       fontSize: '13px',
-                      color:'#94998a'
+                      color: '#94998a'
                     }
                     }
                 },
                 },
                 splitLine: {
                 splitLine: {
@@ -89,23 +103,23 @@ export default {
                         color: 'rgba(185, 193, 173, 0.63)'
                         color: 'rgba(185, 193, 173, 0.63)'
                     }
                     }
                 },
                 },
-                data: yLabel,
+                data: yLabel
               },
               },
               series: [
               series: [
                 {
                 {
                   // name: 'today',
                   // name: 'today',
                   type: 'bar',
                   type: 'bar',
                   data: todayDataArray,
                   data: todayDataArray,
-                  barWidth: 7, //柱子宽度
-                  barGap: 1, //柱子之间间距
+                  barWidth: 7, // 柱子宽度
+                  barGap: 1, // 柱子之间间距
                   itemStyle: {
                   itemStyle: {
-                    normal: {  //渐变色
+                    normal: { // 渐变色
                       color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                         offset: 0,
                         offset: 0,
-                        color: "rgba(228, 233, 220, 1)" // 0% 处的颜色
-                      },{
+                        color: 'rgba(228, 233, 220, 1)' // 0% 处的颜色
+                      }, {
                         offset: 1,
                         offset: 1,
-                        color: "rgba(228, 233, 220, 0)" // 100% 处的颜色
+                        color: 'rgba(228, 233, 220, 0)' // 100% 处的颜色
                       }], false)
                       }], false)
                     }
                     }
                   }
                   }
@@ -114,9 +128,9 @@ export default {
             })
             })
             // //highlight觸發項
             // //highlight觸發項
             // this.myChart.on('highlight', function (params) {
             // this.myChart.on('highlight', function (params) {
-            //   _this.$emit('highLightInfo', {'id': yLabel[params.batch[0].dataIndex], 'today': todayDataArray[params.batch[0].dataIndex], 'lastWeek': lastWeekDataArray[params.batch[1].dataIndex]});            
-            // });            
-            // this.myChart.on('downplay', function (params) {            
+            //   _this.$emit('highLightInfo', {'id': yLabel[params.batch[0].dataIndex], 'today': todayDataArray[params.batch[0].dataIndex], 'lastWeek': lastWeekDataArray[params.batch[1].dataIndex]});
+            // });
+            // this.myChart.on('downplay', function (params) {
             //   _this.$emit('downplay', yLabel[params.batch[0].dataIndex])
             //   _this.$emit('downplay', yLabel[params.batch[0].dataIndex])
             // });
             // });
             // //預設顯示第一個
             // //預設顯示第一個

+ 45 - 45
TEAMModelOS/ClientApp/src/components/smartschooldashboard/TotalLine.vue

@@ -4,31 +4,31 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {}
         return {}
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            let myChart = this.$echarts.init(document.getElementById(this.id));
-            let arrlabel = ["3/15", "3/16", "3/17", "3/18", "3/19", "3/20", "3/21", "3/22", "3/23", "3/24", "TODAY"];
-            let arrTotal1 = ["22", "17", "0", "26", "22", "24", "18", "30", "15", "10", "30"];
-            let arrTotal2 = ["26", "20", "2", "18", "27", "22", "26", "33", "9", "0", "40"];
-            let arrTotal3 = ["40", "26", "8", "1", "34", "8", "54", "16", "16", "25", "20"];
+            let myChart = this.$echarts.init(document.getElementById(this.id))
+            let arrlabel = ['3/15', '3/16', '3/17', '3/18', '3/19', '3/20', '3/21', '3/22', '3/23', '3/24', 'TODAY']
+            let arrTotal1 = ['22', '17', '0', '26', '22', '24', '18', '30', '15', '10', '30']
+            let arrTotal2 = ['26', '20', '2', '18', '27', '22', '26', '33', '9', '0', '40']
+            let arrTotal3 = ['40', '26', '8', '1', '34', '8', '54', '16', '16', '25', '20']
             myChart.setOption({
             myChart.setOption({
                 backgroundColor: 'rgba(17, 17, 17, 0.14)',
                 backgroundColor: 'rgba(17, 17, 17, 0.14)',
                 tooltip: {
                 tooltip: {
                     trigger: 'axis',
                     trigger: 'axis',
-                    borderRadius: 0,
+                    borderRadius: 0
                     // backgroundColor:'#7AD1A8',
                     // backgroundColor:'#7AD1A8',
                     // formatter: function(pm) {
                     // formatter: function(pm) {
                     //     var param = pm[0];
                     //     var param = pm[0];
@@ -47,11 +47,11 @@ export default {
                     right: '0',
                     right: '0',
                     bottom: '5%',
                     bottom: '5%',
                     top: '0',
                     top: '0',
-                    containLabel: true,
+                    containLabel: true
                 },
                 },
                 xAxis: [{
                 xAxis: [{
                     axisTick: {
                     axisTick: {
-                        show: false,
+                        show: false
                     },
                     },
                     type: 'category',
                     type: 'category',
                     axisLabel: {
                     axisLabel: {
@@ -60,12 +60,12 @@ export default {
                             fontSize: 11,
                             fontSize: 11,
                             color: '#94998a'
                             color: '#94998a'
                         },
                         },
-                        interval:0,
-                        formatter:function(val){
-                            let firstOne = arrlabel[0];
+                        interval: 0,
+                        formatter: function(val) {
+                            let firstOne = arrlabel[0]
                             let labellength = arrlabel.length
                             let labellength = arrlabel.length
-                            let lastOne = arrlabel[labellength-1];
-                            if(firstOne != val && lastOne != val){
+                            let lastOne = arrlabel[labellength - 1]
+                            if (firstOne != val && lastOne != val) {
                                 return val
                                 return val
                             }
                             }
                         }
                         }
@@ -73,14 +73,14 @@ export default {
                     boundaryGap: false,
                     boundaryGap: false,
                     splitLine: {
                     splitLine: {
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         },
                         },
                         show: true
                         show: true
                     },
                     },
                     axisLine: {
                     axisLine: {
                         lineStyle: {
                         lineStyle: {
                             color: 'rgba(185, 193, 173, 0.63)',
                             color: 'rgba(185, 193, 173, 0.63)',
-                            width: 1,
+                            width: 1
                         }
                         }
                     },
                     },
                     data: arrlabel
                     data: arrlabel
@@ -95,7 +95,7 @@ export default {
                     axisLine: {
                     axisLine: {
                         show: true,
                         show: true,
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         }
                         }
                     },
                     },
                     axisLabel: {
                     axisLabel: {
@@ -103,13 +103,13 @@ export default {
                         inside: true,
                         inside: true,
                         textStyle: {
                         textStyle: {
                             fontSize: 14,
                             fontSize: 14,
-                            color:'transparent'
+                            color: 'transparent'
                         }
                         }
                     },
                     },
                     splitLine: {
                     splitLine: {
                         show: true,
                         show: true,
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         }
                         }
                     }
                     }
                 }],
                 }],
@@ -117,7 +117,7 @@ export default {
                     // name: '实名率',
                     // name: '实名率',
                     type: 'line',
                     type: 'line',
                     // symbol: 'circle',
                     // symbol: 'circle',
-                    //symbolSize: 5,
+                    // symbolSize: 5,
                     // showSymbol: false,
                     // showSymbol: false,
                     // markPoint: { // markLine 也是同理
                     // markPoint: { // markLine 也是同理
                     //   data: [{
                     //   data: [{
@@ -137,24 +137,24 @@ export default {
                             // 渐变色
                             // 渐变色
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                 offset: 0,
                                 offset: 0,
-                                color: "rgba(28, 208, 161, 1)" // 0% 处的颜色
-                            },{
+                                color: 'rgba(28, 208, 161, 1)' // 0% 处的颜色
+                            }, {
                                 offset: 1,
                                 offset: 1,
-                                color: "rgba(28, 208, 161, 0.5)" // 100% 处的颜色
+                                color: 'rgba(28, 208, 161, 0.5)' // 100% 处的颜色
                             }], false)
                             }], false)
-                        },
+                        }
                     },
                     },
                     itemStyle: {
                     itemStyle: {
                         normal: {
                         normal: {
                             areaStyle: {
                             areaStyle: {
                                 type: 'default'
                                 type: 'default'
                             },
                             },
-                            color: '#1CD0A1',
+                            color: '#1CD0A1'
                         },
                         },
                         emphasis: {
                         emphasis: {
                             // color: 'rgb(0,196,132)',
                             // color: 'rgb(0,196,132)',
                             borderColor: 'rgba(0,196,132,0.2)',
                             borderColor: 'rgba(0,196,132,0.2)',
-                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);',
+                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);'
                             // borderWidth: 10
                             // borderWidth: 10
                         }
                         }
                     },
                     },
@@ -172,24 +172,24 @@ export default {
                             // 渐变色
                             // 渐变色
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                 offset: 0,
                                 offset: 0,
-                                color: "rgba(255, 107, 106, 1)" // 0% 处的颜色
-                            },{
+                                color: 'rgba(255, 107, 106, 1)' // 0% 处的颜色
+                            }, {
                                 offset: 1,
                                 offset: 1,
-                                color: "rgba(255, 107, 106, 0.5)" // 100% 处的颜色
+                                color: 'rgba(255, 107, 106, 0.5)' // 100% 处的颜色
                             }], false)
                             }], false)
-                        },
+                        }
                     },
                     },
                     itemStyle: {
                     itemStyle: {
                         normal: {
                         normal: {
                             areaStyle: {
                             areaStyle: {
                                 type: 'default'
                                 type: 'default'
                             },
                             },
-                            color: '#FF6B6A',
+                            color: '#FF6B6A'
                         },
                         },
                         emphasis: {
                         emphasis: {
                             // color: 'rgb(0,196,132)',
                             // color: 'rgb(0,196,132)',
                             borderColor: 'rgba(0,196,132,0.2)',
                             borderColor: 'rgba(0,196,132,0.2)',
-                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);',
+                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);'
                             // borderWidth: 10
                             // borderWidth: 10
                         }
                         }
                     },
                     },
@@ -207,31 +207,31 @@ export default {
                             // 渐变色
                             // 渐变色
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                 offset: 0,
                                 offset: 0,
-                                color: "rgba(72, 219, 252, 1)" // 0% 处的颜色
-                            },{
+                                color: 'rgba(72, 219, 252, 1)' // 0% 处的颜色
+                            }, {
                                 offset: 1,
                                 offset: 1,
-                                color: "rgba(72, 219, 252, 0.5)" // 100% 处的颜色
+                                color: 'rgba(72, 219, 252, 0.5)' // 100% 处的颜色
                             }], false)
                             }], false)
-                        },
+                        }
                     },
                     },
                     itemStyle: {
                     itemStyle: {
                         normal: {
                         normal: {
                             areaStyle: {
                             areaStyle: {
                                 type: 'default'
                                 type: 'default'
                             },
                             },
-                            color: '#48DBFC',
+                            color: '#48DBFC'
                         },
                         },
                         emphasis: {
                         emphasis: {
                             // color: 'rgb(0,196,132)',
                             // color: 'rgb(0,196,132)',
                             borderColor: 'rgba(0,196,132,0.2)',
                             borderColor: 'rgba(0,196,132,0.2)',
-                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);',
+                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);'
                             // borderWidth: 10
                             // borderWidth: 10
                         }
                         }
                     },
                     },
                     data: arrTotal3
                     data: arrTotal3
                 }
                 }
                 ]
                 ]
-            });
+            })
         }
         }
     }
     }
 }
 }

+ 30 - 30
TEAMModelOS/ClientApp/src/components/student-analysis/SAannulus.vue

@@ -8,61 +8,61 @@
   export default {
   export default {
     data() {
     data() {
       return {
       return {
-      
+
       }
       }
     },
     },
     created() {
     created() {
-      this.init();
+      this.init()
     },
     },
     computed: {
     computed: {
       annulus() {
       annulus() {
         return this.$store.state.annulus
         return this.$store.state.annulus
-      },
+      }
     },
     },
     methods: {
     methods: {
       drawLine(obj) {
       drawLine(obj) {
-        let title = '';
-        let num = '';
-        console.log(title,456789)
+        let title = ''
+        let num = ''
+        console.log(title, 456789)
         var dataStyle = {
         var dataStyle = {
           normal: {
           normal: {
             label: { show: false },
             label: { show: false },
             labelLine: { show: false },
             labelLine: { show: false },
             // shadowBlur: 40,
             // shadowBlur: 40,
-            shadowColor: 'rgba(40, 40, 40, 0.5)',
+            shadowColor: 'rgba(40, 40, 40, 0.5)'
           }
           }
-        };
-        let myChart_lei = this.$echarts.init(document.getElementById('pie_duo'));
+        }
+        let myChart_lei = this.$echarts.init(document.getElementById('pie_duo'))
         myChart_lei.setOption({
         myChart_lei.setOption({
-           title:{
-             text:title   ,
+           title: {
+             text: title,
              subtext: this.num,
              subtext: this.num,
-             x:'center',
-             y:'35%',
+             x: 'center',
+             y: '35%',
              itemGap: 0,
              itemGap: 0,
              textStyle: {
              textStyle: {
                fontSize: 28,
                fontSize: 28,
                fontWeight: 'bolder',
                fontWeight: 'bolder',
                color: '#000080'
                color: '#000080'
-             },
-             //subtextStyle: {
+             }
+             // subtextStyle: {
              //  fontSize: 19,
              //  fontSize: 19,
              //  fontWeight: 'bolder',
              //  fontWeight: 'bolder',
              //  color: '#333'
              //  color: '#333'
-             //},
-          
+             // },
+
            },
            },
           backgroundColor: '#fff',
           backgroundColor: '#fff',
           color: obj.primarycolor,
           color: obj.primarycolor,
           tooltip: {
           tooltip: {
             show: true,
             show: true,
             position: ['33%', '41%'],
             position: ['33%', '41%'],
-            fontSize:'30',
-            formatter: function (value) {
+            fontSize: '30',
+            formatter: function(value) {
               var res = '<div style="text-align:center;width:120px;"><p style="font-size:16px;">' + value.name + '</p></div>' + '<br/>' +
               var res = '<div style="text-align:center;width:120px;"><p style="font-size:16px;">' + value.name + '</p></div>' + '<br/>' +
                 '<div style="text-align:center;width:120px;"><p style="color:#00FFFF;font-size:20px;">' + value.value + '%' + '</p></div>'
                 '<div style="text-align:center;width:120px;"><p style="color:#00FFFF;font-size:20px;">' + value.value + '%' + '</p></div>'
-              return res;
-            },
+              return res
+            }
           },
           },
           legend: {
           legend: {
             show: false,
             show: false,
@@ -98,10 +98,10 @@
                   name: '本区未及格率',
                   name: '本区未及格率',
                   itemStyle: {
                   itemStyle: {
                     normal: {
                     normal: {
-                      color: '#BFEFFF',
+                      color: '#BFEFFF'
                     }
                     }
                   }
                   }
-                },
+                }
               ]
               ]
             },
             },
             {
             {
@@ -121,7 +121,7 @@
                   name: '本校未及格率',
                   name: '本校未及格率',
                   itemStyle: {
                   itemStyle: {
                     normal: {
                     normal: {
-                      color: '#B2DFEE',
+                      color: '#B2DFEE'
                     }
                     }
                   }
                   }
                 }
                 }
@@ -144,12 +144,12 @@
                   name: '任教班未及格率',
                   name: '任教班未及格率',
                   itemStyle: {
                   itemStyle: {
                     normal: {
                     normal: {
-                      color: '#F2F2F2',
+                      color: '#F2F2F2'
                     }
                     }
                   }
                   }
                 }
                 }
               ]
               ]
-            },
+            }
           ]
           ]
         })
         })
       },
       },
@@ -157,16 +157,16 @@
       init() {
       init() {
         this.$api.FindTeachAnnulus({})
         this.$api.FindTeachAnnulus({})
           .then((response) => {
           .then((response) => {
-            //console.log(response.result.data, 777777)
+            // console.log(response.result.data, 777777)
             this.$store.state.annulus = response.result.data
             this.$store.state.annulus = response.result.data
           })
           })
-      },
+      }
     },
     },
     watch: {
     watch: {
       // 		监听指令
       // 		监听指令
       annulus(a) {
       annulus(a) {
           this.drawLine(a)
           this.drawLine(a)
-      },
+      }
     }
     }
   }
   }
 </script>
 </script>
@@ -182,6 +182,6 @@
     color:#333;
     color:#333;
     padding-left:3%;
     padding-left:3%;
     padding-top:1%;
     padding-top:1%;
-    
+
   }
   }
 </style>
 </style>

+ 144 - 144
TEAMModelOS/ClientApp/src/components/student-analysis/SAbargraph.vue

@@ -6,204 +6,204 @@
 </template>
 </template>
 <script>
 <script>
     export default {
     export default {
-        name: "bargraph",
-        data(){
-          return{
-            now_url: this.$route.path,
+        name: 'bargraph',
+        data() {
+          return {
+            now_url: this.$route.path
           }
           }
     },
     },
     created() {
     created() {
-      this.init();
+      this.init()
             },
             },
-        computed:{
+        computed: {
 
 
-        zhuxhuang () {
+        zhuxhuang() {
           return this.$store.state.zhuxhuang
           return this.$store.state.zhuxhuang
-          },
-        
+          }
+
        },
        },
-      methods:{
+      methods: {
         drawLine(obj) {
         drawLine(obj) {
-          let _this = this;
-          this.$store.state.zhuxhuang.mode = false;
-          let myChart = this.$echarts.init(document.getElementById('myChart'));
+          let _this = this
+          this.$store.state.zhuxhuang.mode = false
+          let myChart = this.$echarts.init(document.getElementById('myChart'))
           myChart.setOption({
           myChart.setOption({
             title: {
             title: {
               text: obj.titlename,
               text: obj.titlename,
-              left: "left",
-              top:"0%",
-              y: "10",
-              textStyle:{
-                fontSize:18
+              left: 'left',
+              top: '0%',
+              y: '10',
+              textStyle: {
+                fontSize: 18
               }
               }
             },
             },
-            tooltip : {
+            tooltip: {
               trigger: 'axis',
               trigger: 'axis',
-              axisPointer : {            // 坐标轴指示器,坐标轴触发有效
-                type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
+              axisPointer: { // 坐标轴指示器,坐标轴触发有效
+                type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
               },
               },
-              formatter: function (value) {
-                let arr = '';
+              formatter: function(value) {
+                let arr = ''
                 for (var i = 0; i < value.length / 2; i++) {
                 for (var i = 0; i < value.length / 2; i++) {
-                  //console.log(value[i].seriesName,666666)
-                  var datalist = value[i].seriesName + ' : ' + value[i].data+'<br>';
-                  arr += datalist;
+                  // console.log(value[i].seriesName,666666)
+                  var datalist = value[i].seriesName + ' : ' + value[i].data + '<br>'
+                  arr += datalist
                 };
                 };
-                let one_average = obj.one_average.name + ' : ' + obj.one_average.data + '<br/>';
-                let two_average = obj.two_average.name + ' : ' + obj.two_average.data;
-                arr+=(one_average);
-                arr+=(two_average);
-                return arr;
+                let one_average = obj.one_average.name + ' : ' + obj.one_average.data + '<br/>'
+                let two_average = obj.two_average.name + ' : ' + obj.two_average.data
+                arr += (one_average)
+                arr += (two_average)
+                return arr
                 }
                 }
             },
             },
             legend: {
             legend: {
-              data:obj.titledata,
-              top:"5%"
+              data: obj.titledata,
+              top: '5%'
             },
             },
             grid: {
             grid: {
               left: '2%',
               left: '2%',
               right: '4%',
               right: '4%',
               bottom: '3.5%',
               bottom: '3.5%',
               containLabel: true,
               containLabel: true,
-              x:100,
-              y2:100,
+              x: 100,
+              y2: 100
             },
             },
-            xAxis : [
+            xAxis: [
               {
               {
-                type : 'category',
-                data : obj.object_name,
+                type: 'category',
+                data: obj.object_name,
                 axisLabel: {
                 axisLabel: {
-                  interval: 0,    //强制文字产生间隔
-                  rotate: 45,     //文字逆时针旋转50°
-                  textStyle: {    //文字样式
-                    color: "#333",
+                  interval: 0, // 强制文字产生间隔
+                  rotate: 45, // 文字逆时针旋转50°
+                  textStyle: { // 文字样式
+                    color: '#333',
                     fontSize: 12,
                     fontSize: 12,
-                    fontFamily: 'Microsoft YaHei',
+                    fontFamily: 'Microsoft YaHei'
                   }
                   }
-                },
+                }
 
 
               }
               }
             ],
             ],
             dataZoom: {
             dataZoom: {
               show: true,
               show: true,
               realtime: true,
               realtime: true,
-              backgroundColor: "rgba(0,0,0,0)",
+              backgroundColor: 'rgba(0,0,0,0)',
               handleSize: 15,
               handleSize: 15,
               backgroundColor: '#fff',
               backgroundColor: '#fff',
               showDataShadow: false,
               showDataShadow: false,
               handleIcon: 'M-292,322.2c-3.2,0-6.4-0.6-9.3-1.9c-2.9-1.2-5.4-2.9-7.6-5.1s-3.9-4.8-5.1-7.6c-1.3-3-1.9-6.1-1.9-9.3c0-3.2,0.6-6.4,1.9-9.3c1.2-2.9,2.9-5.4,5.1-7.6s4.8-3.9,7.6-5.1c3-1.3,6.1-1.9,9.3-1.9c3.2,0,6.4,0.6,9.3,1.9c2.9,1.2,5.4,2.9,7.6,5.1s3.9,4.8,5.1,7.6c1.3,3,1.9,6.1,1.9,9.3c0,3.2-0.6,6.4-1.9,9.3c-1.2,2.9-2.9,5.4-5.1,7.6s-4.8,3.9-7.6,5.1C-285.6,321.5-288.8,322.2-292,322.2z',
               handleIcon: 'M-292,322.2c-3.2,0-6.4-0.6-9.3-1.9c-2.9-1.2-5.4-2.9-7.6-5.1s-3.9-4.8-5.1-7.6c-1.3-3-1.9-6.1-1.9-9.3c0-3.2,0.6-6.4,1.9-9.3c1.2-2.9,2.9-5.4,5.1-7.6s4.8-3.9,7.6-5.1c3-1.3,6.1-1.9,9.3-1.9c3.2,0,6.4,0.6,9.3,1.9c2.9,1.2,5.4,2.9,7.6,5.1s3.9,4.8,5.1,7.6c1.3,3,1.9,6.1,1.9,9.3c0,3.2-0.6,6.4-1.9,9.3c-1.2,2.9-2.9,5.4-5.1,7.6s-4.8,3.9-7.6,5.1C-285.6,321.5-288.8,322.2-292,322.2z',
               fillerColor: new this.$echarts.graphic.LinearGradient(1, 0, 0, 0, [{
               fillerColor: new this.$echarts.graphic.LinearGradient(1, 0, 0, 0, [{
-                //给颜色设置渐变色 前面4个参数,给第一个设置1,第四个设置0 ,就是水平渐变
-                //给第一个设置0,第四个设置1,就是垂直渐变
+                // 给颜色设置渐变色 前面4个参数,给第一个设置1,第四个设置0 ,就是水平渐变
+                // 给第一个设置0,第四个设置1,就是垂直渐变
                 offset: 0,
                 offset: 0,
                 color: '#1eb5e5'
                 color: '#1eb5e5'
               }, {
               }, {
                   offset: 1,
                   offset: 1,
                   color: '#5ccbb1'
                   color: '#5ccbb1'
                 }]),
                 }]),
-              handleColor: '#ddd',//h滑动图标的颜色
+              handleColor: '#ddd', // h滑动图标的颜色
               handleStyle: {
               handleStyle: {
-                borderColor: "#cacaca",
-                borderWidth: "1",
+                borderColor: '#cacaca',
+                borderWidth: '1',
                 shadowBlur: 0,
                 shadowBlur: 0,
-                background: "#ddd",
-                shadowColor: "#ddd",
+                background: '#ddd',
+                shadowColor: '#ddd'
               },
               },
-              backgroundColor: '#eee',//两边未选中的滑动条区域的颜色
+              backgroundColor: '#eee', // 两边未选中的滑动条区域的颜色
               y: 420,
               y: 420,
               height: 8,
               height: 8,
               start: 0,
               start: 0,
-              end: 45,
+              end: 45
             },
             },
-            yAxis : [
+            yAxis: [
               {
               {
-                type : 'value',
+                type: 'value'
               }
               }
             ],
             ],
-            series : [
+            series: [
               {
               {
-                name:obj.one_data.name,
-                type:'bar',
+                name: obj.one_data.name,
+                type: 'bar',
                 stack: '本校',
                 stack: '本校',
-                data:obj.one_data.data,
-                barWidth : 20,
-                itemStyle:{
-                  normal:{
-                    color:'#ffb5f6'
+                data: obj.one_data.data,
+                barWidth: 20,
+                itemStyle: {
+                  normal: {
+                    color: '#ffb5f6'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
                 name: obj.two_data.name,
                 name: obj.two_data.name,
-                type:'bar',
+                type: 'bar',
                 stack: '本校',
                 stack: '本校',
                 data: obj.two_data.data,
                 data: obj.two_data.data,
-                barWidth : 20,
-                itemStyle:{
-                  normal:{
-                    color:'#fdd57e'
+                barWidth: 20,
+                itemStyle: {
+                  normal: {
+                    color: '#fdd57e'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
                 name: obj.three_data.name,
                 name: obj.three_data.name,
-                type:'bar',
+                type: 'bar',
                 stack: '本校',
                 stack: '本校',
-                data:obj.three_data.data,
-                barWidth : 20,
-                itemStyle:{
-                  normal:{
-                    color:'#ff8d8c'
+                data: obj.three_data.data,
+                barWidth: 20,
+                itemStyle: {
+                  normal: {
+                    color: '#ff8d8c'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
-                name:obj.four_data.name,
-                type:'bar',
+                name: obj.four_data.name,
+                type: 'bar',
                 stack: '本校',
                 stack: '本校',
                 data: obj.four_data.data,
                 data: obj.four_data.data,
-                barWidth : 20,
-                itemStyle:{
-                  normal:{
-                    color:'#73e2fd'
+                barWidth: 20,
+                itemStyle: {
+                  normal: {
+                    color: '#73e2fd'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
                 name: obj.five_data.name,
                 name: obj.five_data.name,
-                type:'bar',
+                type: 'bar',
                 stack: '本校',
                 stack: '本校',
-                data:obj.five_data.data,
-                barWidth : 20,
-                itemStyle:{
-                  normal:{
-                    color:'#50dab6'
+                data: obj.five_data.data,
+                barWidth: 20,
+                itemStyle: {
+                  normal: {
+                    color: '#50dab6'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
                 name: obj.six_data.name,
                 name: obj.six_data.name,
-                type:'bar',
+                type: 'bar',
                 stack: '本校',
                 stack: '本校',
                 data: obj.six_data.data,
                 data: obj.six_data.data,
-                barWidth : 20,
-                itemStyle:{
-                  normal:{
-                    color:'#6489da'
+                barWidth: 20,
+                itemStyle: {
+                  normal: {
+                    color: '#6489da'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
                 name: obj.quyudata.anotherone_data.name,
                 name: obj.quyudata.anotherone_data.name,
                 type: 'bar',
                 type: 'bar',
                 stack: '区域',
                 stack: '区域',
                 data: obj.quyudata.anotherone_data.datalist,
                 data: obj.quyudata.anotherone_data.datalist,
-                barWidth : 20,
-                itemStyle:{
-                  normal:{
-                    color:'#c4cbd1'
+                barWidth: 20,
+                itemStyle: {
+                  normal: {
+                    color: '#c4cbd1'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
                 name: obj.quyudata.anothertwo_data.name,
                 name: obj.quyudata.anothertwo_data.name,
@@ -215,7 +215,7 @@
                   normal: {
                   normal: {
                     color: '#c4cbd1'
                     color: '#c4cbd1'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
                 name: obj.quyudata.anotherthree_data.name,
                 name: obj.quyudata.anotherthree_data.name,
@@ -227,7 +227,7 @@
                   normal: {
                   normal: {
                     color: '#c4cbd1'
                     color: '#c4cbd1'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
                 name: obj.quyudata.anotherfour_data.name,
                 name: obj.quyudata.anotherfour_data.name,
@@ -239,7 +239,7 @@
                   normal: {
                   normal: {
                     color: '#c4cbd1'
                     color: '#c4cbd1'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
                 name: obj.quyudata.anotherfive_data.name,
                 name: obj.quyudata.anotherfive_data.name,
@@ -251,7 +251,7 @@
                   normal: {
                   normal: {
                     color: '#c4cbd1'
                     color: '#c4cbd1'
                   }
                   }
-                },
+                }
               },
               },
               {
               {
                 name: obj.quyudata.anothersix_data.name,
                 name: obj.quyudata.anothersix_data.name,
@@ -263,99 +263,99 @@
                   normal: {
                   normal: {
                     color: '#c4cbd1'
                     color: '#c4cbd1'
                   }
                   }
-                },
-              },
+                }
+              }
             ]
             ]
           }),
           }),
-            myChart.on('click', function (param) {
-            let schoolname = param.name;
+            myChart.on('click', function(param) {
+            let schoolname = param.name
             if (schoolname == '成都七中') {
             if (schoolname == '成都七中') {
-              _this.cdqz();
+              _this.cdqz()
             } else if (schoolname == '成都四中') {
             } else if (schoolname == '成都四中') {
-              _this.cdsz();
+              _this.cdsz()
             } else if (schoolname == '成都九中') {
             } else if (schoolname == '成都九中') {
-              _this.cdjz();
+              _this.cdjz()
             } else if (schoolname == '成都树德中学') {
             } else if (schoolname == '成都树德中学') {
-              _this.cdsd();
+              _this.cdsd()
             } else if (schoolname == '师大一中') {
             } else if (schoolname == '师大一中') {
-              _this.sdyz();
+              _this.sdyz()
             } else if (schoolname == '西川中学') {
             } else if (schoolname == '西川中学') {
-              _this.xczx();
+              _this.xczx()
             } else if (schoolname == '成都市石室中学') {
             } else if (schoolname == '成都市石室中学') {
-              _this.sszx();
+              _this.sszx()
             }
             }
             })
             })
         },
         },
-        //七中
+        // 七中
         cdqz() {
         cdqz() {
           this.$api.Findcdqz({})
           this.$api.Findcdqz({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.leida = response.result.data;
-              this.$store.state.pie = response.result.data.pie;
+              this.$store.state.leida = response.result.data
+              this.$store.state.pie = response.result.data.pie
             })
             })
         },
         },
-        //四中
+        // 四中
         cdsz() {
         cdsz() {
           this.$api.Findcdsz({})
           this.$api.Findcdsz({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.leida = response.result.data;
-              this.$store.state.pie = response.result.data.pie;
+              this.$store.state.leida = response.result.data
+              this.$store.state.pie = response.result.data.pie
             })
             })
         },
         },
-        //九中
+        // 九中
         cdjz() {
         cdjz() {
           this.$api.Findcdjz({})
           this.$api.Findcdjz({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.leida = response.result.data;
-              this.$store.state.pie = response.result.data.pie;
+              this.$store.state.leida = response.result.data
+              this.$store.state.pie = response.result.data.pie
             })
             })
         },
         },
-        //树德
+        // 树德
         cdsd() {
         cdsd() {
           this.$api.Findcdsd({})
           this.$api.Findcdsd({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.leida = response.result.data;
-              this.$store.state.pie = response.result.data.pie;
+              this.$store.state.leida = response.result.data
+              this.$store.state.pie = response.result.data.pie
             })
             })
         },
         },
-        //师大一中
+        // 师大一中
         sdyz() {
         sdyz() {
           this.$api.Findsdyz({})
           this.$api.Findsdyz({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.leida = response.result.data;
-              this.$store.state.pie = response.result.data.pie;
+              this.$store.state.leida = response.result.data
+              this.$store.state.pie = response.result.data.pie
             })
             })
         },
         },
-        //西川中学
+        // 西川中学
         xczx() {
         xczx() {
           this.$api.Findxczx({})
           this.$api.Findxczx({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.leida = response.result.data;
-              this.$store.state.pie = response.result.data.pie;
+              this.$store.state.leida = response.result.data
+              this.$store.state.pie = response.result.data.pie
             })
             })
         },
         },
-        //石室中学
+        // 石室中学
         sszx() {
         sszx() {
           this.$api.Findsszx({})
           this.$api.Findsszx({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.leida = response.result.data;
-              this.$store.state.pie = response.result.data.pie;
+              this.$store.state.leida = response.result.data
+              this.$store.state.pie = response.result.data.pie
             })
             })
         },
         },
         init() {
         init() {
             this.$api.FindBargraph({})
             this.$api.FindBargraph({})
               .then((response) => {
               .then((response) => {
-                this.$store.state.zhuxhuang = response.result.data;
+                this.$store.state.zhuxhuang = response.result.data
               })
               })
-        },
+        }
       },
       },
-      watch:{
+      watch: {
 // 		监听指令
 // 		监听指令
-        zhuxhuang(a){
+        zhuxhuang(a) {
           if (a) {
           if (a) {
             this.drawLine(a)
             this.drawLine(a)
           }
           }
-        },
+        }
       }
       }
     }
     }
 </script>
 </script>

+ 42 - 42
TEAMModelOS/ClientApp/src/components/student-analysis/SAbarline.vue

@@ -8,11 +8,11 @@
   export default {
   export default {
     data() {
     data() {
       return {
       return {
-        now_url: this.$route.path,
+        now_url: this.$route.path
       }
       }
     },
     },
     created() {
     created() {
-      this.init();
+      this.init()
     },
     },
     computed: {
     computed: {
       barline() {
       barline() {
@@ -21,23 +21,23 @@
     },
     },
     methods: {
     methods: {
       drawLine(obj) {
       drawLine(obj) {
-        let myChart = this.$echarts.init(document.getElementById('barline'));
-        let _this = this;
+        let myChart = this.$echarts.init(document.getElementById('barline'))
+        let _this = this
         myChart.setOption({
         myChart.setOption({
           title: {
           title: {
             text: obj.titlename,
             text: obj.titlename,
-            top: "0%",
+            top: '0%'
           },
           },
           tooltip: {
           tooltip: {
             trigger: 'axis',
             trigger: 'axis',
-            axisPointer: {            // 坐标轴指示器,坐标轴触发有效
-              type: 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
+            axisPointer: { // 坐标轴指示器,坐标轴触发有效
+              type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
             }
             }
           },
           },
           legend: {
           legend: {
             data: obj.titledata,
             data: obj.titledata,
             x: 'center',
             x: 'center',
-            top: "3%"
+            top: '3%'
           },
           },
           grid: {
           grid: {
             left: '1.5%',
             left: '1.5%',
@@ -45,16 +45,16 @@
             bottom: '4.5%',
             bottom: '4.5%',
             containLabel: true,
             containLabel: true,
             x: 100,
             x: 100,
-            y2: 200,
+            y2: 200
           },
           },
           toolbox: {
           toolbox: {
             show: true,
             show: true,
             orient: 'horizontal',
             orient: 'horizontal',
-            y:"2%",
+            y: '2%',
             feature: {
             feature: {
               mark: { show: true },
               mark: { show: true },
               dataView: { show: true, readOnly: false },
               dataView: { show: true, readOnly: false },
-              magicType: { show: true, type: ['bar', 'line',] },
+              magicType: { show: true, type: ['bar', 'line'] },
               restore: { show: false },
               restore: { show: false },
               saveAsImage: { show: true }
               saveAsImage: { show: true }
             }
             }
@@ -66,46 +66,46 @@
               boundaryGap: true,
               boundaryGap: true,
               data: obj.object_name,
               data: obj.object_name,
               axisLabel: {
               axisLabel: {
-                interval: 0,    //强制文字产生间隔
-                rotate: 50,     //文字逆时针旋转50°
-                textStyle: {    //文字样式
-                  color: "#333",
+                interval: 0, // 强制文字产生间隔
+                rotate: 50, // 文字逆时针旋转50°
+                textStyle: { // 文字样式
+                  color: '#333',
                   fontSize: 11,
                   fontSize: 11,
-                  fontFamily: 'Microsoft YaHei',
+                  fontFamily: 'Microsoft YaHei'
                 }
                 }
-              },
+              }
             }
             }
           ],
           ],
           dataZoom: {
           dataZoom: {
             show: true,
             show: true,
             realtime: true,
             realtime: true,
-            backgroundColor: "rgba(0,0,0,0)",
+            backgroundColor: 'rgba(0,0,0,0)',
             handleSize: 15,
             handleSize: 15,
             backgroundColor: '#fff',
             backgroundColor: '#fff',
             showDataShadow: false,
             showDataShadow: false,
             handleIcon: 'M-292,322.2c-3.2,0-6.4-0.6-9.3-1.9c-2.9-1.2-5.4-2.9-7.6-5.1s-3.9-4.8-5.1-7.6c-1.3-3-1.9-6.1-1.9-9.3c0-3.2,0.6-6.4,1.9-9.3c1.2-2.9,2.9-5.4,5.1-7.6s4.8-3.9,7.6-5.1c3-1.3,6.1-1.9,9.3-1.9c3.2,0,6.4,0.6,9.3,1.9c2.9,1.2,5.4,2.9,7.6,5.1s3.9,4.8,5.1,7.6c1.3,3,1.9,6.1,1.9,9.3c0,3.2-0.6,6.4-1.9,9.3c-1.2,2.9-2.9,5.4-5.1,7.6s-4.8,3.9-7.6,5.1C-285.6,321.5-288.8,322.2-292,322.2z',
             handleIcon: 'M-292,322.2c-3.2,0-6.4-0.6-9.3-1.9c-2.9-1.2-5.4-2.9-7.6-5.1s-3.9-4.8-5.1-7.6c-1.3-3-1.9-6.1-1.9-9.3c0-3.2,0.6-6.4,1.9-9.3c1.2-2.9,2.9-5.4,5.1-7.6s4.8-3.9,7.6-5.1c3-1.3,6.1-1.9,9.3-1.9c3.2,0,6.4,0.6,9.3,1.9c2.9,1.2,5.4,2.9,7.6,5.1s3.9,4.8,5.1,7.6c1.3,3,1.9,6.1,1.9,9.3c0,3.2-0.6,6.4-1.9,9.3c-1.2,2.9-2.9,5.4-5.1,7.6s-4.8,3.9-7.6,5.1C-285.6,321.5-288.8,322.2-292,322.2z',
             fillerColor: new this.$echarts.graphic.LinearGradient(1, 0, 0, 0, [{
             fillerColor: new this.$echarts.graphic.LinearGradient(1, 0, 0, 0, [{
-              //给颜色设置渐变色 前面4个参数,给第一个设置1,第四个设置0 ,就是水平渐变
-              //给第一个设置0,第四个设置1,就是垂直渐变
+              // 给颜色设置渐变色 前面4个参数,给第一个设置1,第四个设置0 ,就是水平渐变
+              // 给第一个设置0,第四个设置1,就是垂直渐变
               offset: 0,
               offset: 0,
               color: '#1eb5e5'
               color: '#1eb5e5'
             }, {
             }, {
               offset: 1,
               offset: 1,
               color: '#5ccbb1'
               color: '#5ccbb1'
             }]),
             }]),
-            handleColor: '#ddd',//h滑动图标的颜色
+            handleColor: '#ddd', // h滑动图标的颜色
             handleStyle: {
             handleStyle: {
-              borderColor: "#cacaca",
-              borderWidth: "1",
+              borderColor: '#cacaca',
+              borderWidth: '1',
               shadowBlur: 0,
               shadowBlur: 0,
-              background: "#ddd",
-              shadowColor: "#ddd",
+              background: '#ddd',
+              shadowColor: '#ddd'
             },
             },
-            backgroundColor: '#eee',//两边未选中的滑动条区域的颜色
+            backgroundColor: '#eee', // 两边未选中的滑动条区域的颜色
             y: 420,
             y: 420,
             height: 8,
             height: 8,
             start: 0,
             start: 0,
-            end: 45,
+            end: 45
           },
           },
           yAxis: [
           yAxis: [
             {
             {
@@ -135,7 +135,7 @@
                 itemStyle: {
                 itemStyle: {
                   normal: { lineStyle: { type: 'solid' }, label: { show: true, position: 'middle' } }
                   normal: { lineStyle: { type: 'solid' }, label: { show: true, position: 'middle' } }
                 },
                 },
-                large: true,   
+                large: true,
                 effect: {
                 effect: {
                   show: false,
                   show: false,
                   loop: true,
                   loop: true,
@@ -152,7 +152,7 @@
                     // 单独配置每条线的样式
                     // 单独配置每条线的样式
                     yAxis: 86,
                     yAxis: 86,
                     lineStyle: {
                     lineStyle: {
-                      color: 'blue',
+                      color: 'blue'
                     },
                     },
                     label: {
                     label: {
                       formatter: '区级平均分'
                       formatter: '区级平均分'
@@ -166,7 +166,7 @@
                       color: 'red'
                       color: 'red'
                     },
                     },
                     label: {
                     label: {
-                      formatter:'校级平均分'
+                      formatter: '校级平均分'
                     }
                     }
                   },
                   },
                   {
                   {
@@ -179,7 +179,7 @@
                     label: {
                     label: {
                       formatter: '任教班级平均分'
                       formatter: '任教班级平均分'
                     }
                     }
-                  },
+                  }
                 ]
                 ]
               }
               }
             },
             },
@@ -194,15 +194,15 @@
                 normal: {
                 normal: {
                   color: '#7AB6FE'
                   color: '#7AB6FE'
                 }
                 }
-              },
+              }
             }
             }
           ]
           ]
         })
         })
-        myChart.on('click', function (param) {
-          console.log(param, 123456789);
-          console.log(param.seriesName);
-          console.log(param.name);
-          _this.barclick();
+        myChart.on('click', function(param) {
+          console.log(param, 123456789)
+          console.log(param.seriesName)
+          console.log(param.name)
+          _this.barclick()
         })
         })
       },
       },
 
 
@@ -210,15 +210,15 @@
         this.$api.FindTeachbargraph({})
         this.$api.FindTeachbargraph({})
           .then((response) => {
           .then((response) => {
            // console.log(response.result.data, '老师测试页面');
            // console.log(response.result.data, '老师测试页面');
-            this.$store.state.barline = response.result.data;
+            this.$store.state.barline = response.result.data
                 })
                 })
       },
       },
-      //点击班级 联动PR值
+      // 点击班级 联动PR值
       barclick() {
       barclick() {
         this.$api.FindClickPR({})
         this.$api.FindClickPR({})
           .then((response) => {
           .then((response) => {
-           //console.log(response.result.data,77777)
-            this.$store.state.accuracyPR = response.result.data;
+           // console.log(response.result.data,77777)
+            this.$store.state.accuracyPR = response.result.data
           })
           })
       }
       }
 
 
@@ -229,7 +229,7 @@
         if (a) {
         if (a) {
           this.drawLine(a)
           this.drawLine(a)
         }
         }
-      },
+      }
     }
     }
               }
               }
 </script>
 </script>

+ 11 - 11
TEAMModelOS/ClientApp/src/components/student-analysis/SAbasics.vue

@@ -19,39 +19,39 @@
 </template>
 </template>
 <script>
 <script>
     export default {
     export default {
-        name: "basics",
-        data(){
-          return{
+        name: 'basics',
+        data() {
+          return {
            // basicsdata:[],
            // basicsdata:[],
             now_url: this.$route.path,
             now_url: this.$route.path,
             icon_show: false
             icon_show: false
           }
           }
     },
     },
     created() {
     created() {
-      this.init();
+      this.init()
     },
     },
     computed: {
     computed: {
       basicsdata() {
       basicsdata() {
         return this.$store.state.basicsdata
         return this.$store.state.basicsdata
                   }
                   }
                 },
                 },
-    methods:{
+    methods: {
       init() {
       init() {
         if (this.now_url == '/saindex') {
         if (this.now_url == '/saindex') {
           this.$api.FindBasics({})
           this.$api.FindBasics({})
             .then((response) => {
             .then((response) => {
-              //console.log(response.result.data, 11111);
-              this.icon_show = true;
-              this.$store.state.basicsdata = response.result.data;
-              //console.log(this.xueduan,333333)
+              // console.log(response.result.data, 11111);
+              this.icon_show = true
+              this.$store.state.basicsdata = response.result.data
+              // console.log(this.xueduan,333333)
             })
             })
         } else if (this.now_url == '/teach') {
         } else if (this.now_url == '/teach') {
           this.$api.FindTeachBasics({})
           this.$api.FindTeachBasics({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.basicsdata = response.result.data;
+              this.$store.state.basicsdata = response.result.data
             })
             })
             }
             }
-         },
+         }
       }
       }
     }
     }
 </script>
 </script>

+ 97 - 98
TEAMModelOS/ClientApp/src/components/student-analysis/SAchooseattention.vue

@@ -42,7 +42,7 @@
 </template>
 </template>
 <script>
 <script>
   export default {
   export default {
-    name: "ChooseAttention",
+    name: 'ChooseAttention',
     data() {
     data() {
       return {
       return {
         isCollapsed: false,
         isCollapsed: false,
@@ -50,170 +50,169 @@
         grade: [],
         grade: [],
         semester: [],
         semester: [],
         cityList: [],
         cityList: [],
-        model1:[],
-        now_url:this.$route.path,
+        model1: [],
+        now_url: this.$route.path
       }
       }
     },
     },
     created() {
     created() {
-      this.init();
-      this.inits();
-      this.contrast();
+      this.init()
+      this.inits()
+      this.contrast()
     },
     },
     computed: {
     computed: {
       //  	命令发布监听
       //  	命令发布监听
       selectgrade() {
       selectgrade() {
         return this.$store.state.selectgrade
         return this.$store.state.selectgrade
       },
       },
-      selectterm(){
+      selectterm() {
         return this.$store.state.selectterm
         return this.$store.state.selectterm
       },
       },
       selectcontrast() {
       selectcontrast() {
         return this.$store.state.selectcontrast
         return this.$store.state.selectcontrast
-      },
+      }
     },
     },
     methods: {
     methods: {
-      //获取关注年级数据
-      init(){
+      // 获取关注年级数据
+      init() {
           this.$api.FindGrade({})
           this.$api.FindGrade({})
             .then((response) => {
             .then((response) => {
-              //console.log(response.result.data, 11111);
-              this.$store.state.selectgrade = response.result.data;
-              //console.log(this.$store.state.selectgrade, 888855)
+              // console.log(response.result.data, 11111);
+              this.$store.state.selectgrade = response.result.data
+              // console.log(this.$store.state.selectgrade, 888855)
             })
             })
       },
       },
-      //获取关注学年期
+      // 获取关注学年期
       inits() {
       inits() {
         if (this.now_url == '/saindex') {
         if (this.now_url == '/saindex') {
           this.$api.FindTerm({})
           this.$api.FindTerm({})
             .then((response) => {
             .then((response) => {
-              //console.log(response.result.data,11111);
+              // console.log(response.result.data,11111);
               this.$store.state.selectterm = response.result.data
               this.$store.state.selectterm = response.result.data
             })
             })
         } else if (this.now_url == '/teach') {
         } else if (this.now_url == '/teach') {
           this.$api.FindTeachTerm({})
           this.$api.FindTeachTerm({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.selectterm = response.result.data;
+              this.$store.state.selectterm = response.result.data
             })
             })
         } else if (this.now_url == '/total') {
         } else if (this.now_url == '/total') {
           this.$api.FindTeachTerm({})
           this.$api.FindTeachTerm({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.selectterm = response.result.data;
+              this.$store.state.selectterm = response.result.data
             })
             })
-        } 
+        }
       },
       },
-      //获取数据比较
-   contrast(){
+      // 获取数据比较
+   contrast() {
     this.$api.FindTeachContrast({})
     this.$api.FindTeachContrast({})
       .then((response) => {
       .then((response) => {
-        this.$store.state.selectcontrast=response.result.data
+        this.$store.state.selectcontrast = response.result.data
               })
               })
           },
           },
-      //获取关注年级值
+      // 获取关注年级值
       listchange(value, selectedData) {
       listchange(value, selectedData) {
-        //console.log(value,33333)
-        let xueduan = value[0];
-        let nianjinum = value[1];
+        // console.log(value,33333)
+        let xueduan = value[0]
+        let nianjinum = value[1]
         if (xueduan == 'gaozhong' && nianjinum != 1) {
         if (xueduan == 'gaozhong' && nianjinum != 1) {
-          this.$store.state.wenli_show = true;
+          this.$store.state.wenli_show = true
         } else {
         } else {
-          this.$store.state.wenli_show = false;
+          this.$store.state.wenli_show = false
         }
         }
-        //console.log(value,33333);
+        // console.log(value,33333);
         this.$api.FindSelectGrade({})
         this.$api.FindSelectGrade({})
           .then((response) => {
           .then((response) => {
-            //console.log(response.result.data, 789789789);
-            //获取新的年级选择
+            // console.log(response.result.data, 789789789);
+            // 获取新的年级选择
             this.$store.state.selectgrade = response.result.data.selectgrade
             this.$store.state.selectgrade = response.result.data.selectgrade
-            //获取新的学年期
+            // 获取新的学年期
             this.$store.state.selectterm = response.result.data.term
             this.$store.state.selectterm = response.result.data.term
-            //获取新的考试次数情况
-            this.$store.state.selectexam = response.result.data.exam[0].data;
-            //获取新的基础信息
-            this.$store.state.basicsdata = response.result.data.base;
-            //获取新的各校成绩排名
-            this.$store.state.zhuxhuang = response.result.data.barecharts;
-            //获取新的各项科目表现
-            this.$store.state.leida = response.result.data.leida;
-            //获取新的科目表现对比
+            // 获取新的考试次数情况
+            this.$store.state.selectexam = response.result.data.exam[0].data
+            // 获取新的基础信息
+            this.$store.state.basicsdata = response.result.data.base
+            // 获取新的各校成绩排名
+            this.$store.state.zhuxhuang = response.result.data.barecharts
+            // 获取新的各项科目表现
+            this.$store.state.leida = response.result.data.leida
+            // 获取新的科目表现对比
             this.$store.state.pie = response.result.data.pie
             this.$store.state.pie = response.result.data.pie
-            //获取新的考试类型
-            this.$store.state.examtype = response.result.data.examtype;
-            //获取新的各校历次总分统计图
-            this.$store.state.linechart = response.result.data.linechart;
+            // 获取新的考试类型
+            this.$store.state.examtype = response.result.data.examtype
+            // 获取新的各校历次总分统计图
+            this.$store.state.linechart = response.result.data.linechart
                   })
                   })
       },
       },
-      //获取关注学年期
+      // 获取关注学年期
       listterm(value, selectedData) {
       listterm(value, selectedData) {
         if (this.now_url == '/saindex') {
         if (this.now_url == '/saindex') {
           this.$api.FindSelectTerm({})
           this.$api.FindSelectTerm({})
             .then((response) => {
             .then((response) => {
-              //console.log(response.result.data);
-              //获取新的关注年级
+              // console.log(response.result.data);
+              // 获取新的关注年级
               this.$store.state.selectgrade = response.result.data.selectgrade
               this.$store.state.selectgrade = response.result.data.selectgrade
-              //获取新的学年期
+              // 获取新的学年期
               this.$store.state.selectterm = response.result.data.term
               this.$store.state.selectterm = response.result.data.term
-              //获取新的考试次数情况
-              this.$store.state.selectexam = response.result.data.exam[0].data;
-              //获取新的基础信息
-              this.$store.state.basicsdata = response.result.data.base;
-              //获取新的各校成绩排名
-              this.$store.state.zhuxhuang = response.result.data.barecharts;
-              //获取新的各项科目表现
-              this.$store.state.leida = response.result.data.leida;
-              //获取新的科目表现对比
+              // 获取新的考试次数情况
+              this.$store.state.selectexam = response.result.data.exam[0].data
+              // 获取新的基础信息
+              this.$store.state.basicsdata = response.result.data.base
+              // 获取新的各校成绩排名
+              this.$store.state.zhuxhuang = response.result.data.barecharts
+              // 获取新的各项科目表现
+              this.$store.state.leida = response.result.data.leida
+              // 获取新的科目表现对比
               this.$store.state.pie = response.result.data.pie
               this.$store.state.pie = response.result.data.pie
-              //获取新的考试类型
-              this.$store.state.examtype = response.result.data.examtype;
-              //获取新的各校历次总分统计图
-              this.$store.state.linechart = response.result.data.linechart;
+              // 获取新的考试类型
+              this.$store.state.examtype = response.result.data.examtype
+              // 获取新的各校历次总分统计图
+              this.$store.state.linechart = response.result.data.linechart
             })
             })
-        } else if (this.now_url =='/teach') {
+        } else if (this.now_url == '/teach') {
           this.$api.FindDynamicTerm({})
           this.$api.FindDynamicTerm({})
             .then((response) => {
             .then((response) => {
-              //console.log(response.result.data,33333)
-              //获取新的学年期
-              this.$store.state.selectterm = response.result.data.term;
-              //获取新的数据对比
-              this.$store.state.selectcontrast = response.result.data.selectcontrast;
-              //获取新的考试次数情况
-              this.$store.state.selectexam = response.result.data.exam[0].data;
-              //获取新的基础信息
-              this.$store.state.basicsdata = response.result.data.base;
-              //获取各班平均分数排名
-              this.$store.state.barline = response.result.data.barecharts;
-              //获取及格率比较
-              this.$store.state.annulus = response.result.data.annulus;
-              //获取PR百分等级
-              this.$store.state.accuracyPR = response.result.data.accuracyPR;
-              //获取历次总分统计图
-              this.$store.state.linechart = response.result.data.linechart;
+              // console.log(response.result.data,33333)
+              // 获取新的学年期
+              this.$store.state.selectterm = response.result.data.term
+              // 获取新的数据对比
+              this.$store.state.selectcontrast = response.result.data.selectcontrast
+              // 获取新的考试次数情况
+              this.$store.state.selectexam = response.result.data.exam[0].data
+              // 获取新的基础信息
+              this.$store.state.basicsdata = response.result.data.base
+              // 获取各班平均分数排名
+              this.$store.state.barline = response.result.data.barecharts
+              // 获取及格率比较
+              this.$store.state.annulus = response.result.data.annulus
+              // 获取PR百分等级
+              this.$store.state.accuracyPR = response.result.data.accuracyPR
+              // 获取历次总分统计图
+              this.$store.state.linechart = response.result.data.linechart
             })
             })
         }
         }
-       
       },
       },
-      //动态数据比较
+      // 动态数据比较
       datacompare(value, selectedData) {
       datacompare(value, selectedData) {
         this.$api.FindDatacompare({})
         this.$api.FindDatacompare({})
           .then((response) => {
           .then((response) => {
-            //获取新的学年期
-            this.$store.state.selectterm = response.result.data.term;
-            //获取新的数据对比
-            this.$store.state.selectcontrast = response.result.data.selectcontrast;
-            //获取新的考试次数情况
-            this.$store.state.selectexam = response.result.data.exam[0].data;
-            //获取新的基础信息
-            this.$store.state.basicsdata = response.result.data.base;
-            //获取各班平均分数排名
-            this.$store.state.barline = response.result.data.barecharts;
-            //获取及格率比较
-            this.$store.state.annulus = response.result.data.annulus;
-            //获取PR百分等级
-            this.$store.state.accuracyPR = response.result.data.accuracyPR;
-            //获取历次总分统计图
-            this.$store.state.linechart = response.result.data.linechart;
+            // 获取新的学年期
+            this.$store.state.selectterm = response.result.data.term
+            // 获取新的数据对比
+            this.$store.state.selectcontrast = response.result.data.selectcontrast
+            // 获取新的考试次数情况
+            this.$store.state.selectexam = response.result.data.exam[0].data
+            // 获取新的基础信息
+            this.$store.state.basicsdata = response.result.data.base
+            // 获取各班平均分数排名
+            this.$store.state.barline = response.result.data.barecharts
+            // 获取及格率比较
+            this.$store.state.annulus = response.result.data.annulus
+            // 获取PR百分等级
+            this.$store.state.accuracyPR = response.result.data.accuracyPR
+            // 获取历次总分统计图
+            this.$store.state.linechart = response.result.data.linechart
           })
           })
       }
       }
-    },
+    }
   }
   }
 </script>
 </script>
 <style scoped>
 <style scoped>

+ 49 - 50
TEAMModelOS/ClientApp/src/components/student-analysis/SAchooseexam.vue

@@ -12,10 +12,10 @@
    </Row>
    </Row>
 </template>
 </template>
 <script>
 <script>
-  import InfiniteLoading from 'vue-infinite-loading';
+  import InfiniteLoading from 'vue-infinite-loading'
   export default {
   export default {
     components: {
     components: {
-      InfiniteLoading,
+      InfiniteLoading
     },
     },
     data() {
     data() {
       return {
       return {
@@ -29,23 +29,23 @@
           },
           },
           bar: {
           bar: {
             hoverStyle: true,
             hoverStyle: true,
-            onlyShowBarOnScroll: false, //是否只有滚动的时候才显示滚动条
-            background: 'red',
+            onlyShowBarOnScroll: false, // 是否只有滚动的时候才显示滚动条
+            background: 'red'
           }
           }
-        },
-      };
+        }
+      }
     },
     },
     created() {
     created() {
-      this.init();
+      this.init()
     },
     },
     computed: {
     computed: {
       selectexam() {
       selectexam() {
         return this.$store.state.selectexam
         return this.$store.state.selectexam
-            },
+            }
             },
             },
     methods: {
     methods: {
       onInfinite() {
       onInfinite() {
-        //setTimeout(() => {
+        // setTimeout(() => {
         //  const temp = [];
         //  const temp = [];
         //  // let suiji=Math.ceil(Math.random()*10);
         //  // let suiji=Math.ceil(Math.random()*10);
         //  for (let i = this.list.length + 1; i <= this.list.length + 3; i++) {
         //  for (let i = this.list.length + 1; i <= this.list.length + 3; i++) {
@@ -53,77 +53,76 @@
         //  }
         //  }
         //  this.list = this.list.concat(temp);
         //  this.list = this.list.concat(temp);
         //  this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded');
         //  this.$refs.infiniteLoading.$emit('$InfiniteLoading:loaded');
-        //}, 300);
+        // }, 300);
       },
       },
 
 
-      //点击考试获取详情
+      // 点击考试获取详情
       select_box(value) {
       select_box(value) {
         if (this.now_url == '/saindex') {
         if (this.now_url == '/saindex') {
           this.$api.FindSelectExam({})
           this.$api.FindSelectExam({})
             .then((response) => {
             .then((response) => {
-              //console.log(response.result.data);
+              // console.log(response.result.data);
               this.$store.state.selectgrade = response.result.data.selectgrade
               this.$store.state.selectgrade = response.result.data.selectgrade
-              //获取新的学年期
+              // 获取新的学年期
               this.$store.state.selectterm = response.result.data.term
               this.$store.state.selectterm = response.result.data.term
-              //获取新的考试次数情况
-              this.$store.state.selectexam = response.result.data.exam[0].data;
-              //获取新的基础信息
-              this.$store.state.basicsdata = response.result.data.base;
-              //获取新的各校成绩排名
-              this.$store.state.zhuxhuang = response.result.data.barecharts;
-              //获取新的各项科目表现
-              this.$store.state.leida = response.result.data.leida;
-              //获取新的科目表现对比
+              // 获取新的考试次数情况
+              this.$store.state.selectexam = response.result.data.exam[0].data
+              // 获取新的基础信息
+              this.$store.state.basicsdata = response.result.data.base
+              // 获取新的各校成绩排名
+              this.$store.state.zhuxhuang = response.result.data.barecharts
+              // 获取新的各项科目表现
+              this.$store.state.leida = response.result.data.leida
+              // 获取新的科目表现对比
               this.$store.state.pie = response.result.data.pie
               this.$store.state.pie = response.result.data.pie
-              //获取新的考试类型
-              this.$store.state.examtype = response.result.data.examtype;
-              //获取新的各校历次总分统计图
-              this.$store.state.linechart = response.result.data.linechart;
+              // 获取新的考试类型
+              this.$store.state.examtype = response.result.data.examtype
+              // 获取新的各校历次总分统计图
+              this.$store.state.linechart = response.result.data.linechart
             })
             })
         } else if (this.now_url == '/teach') {
         } else if (this.now_url == '/teach') {
           this.$api.FindClickExam({})
           this.$api.FindClickExam({})
             .then((response) => {
             .then((response) => {
-              //获取新的学年期
-              this.$store.state.selectterm = response.result.data.term;
-              //获取新的数据对比
-              this.$store.state.selectcontrast = response.result.data.selectcontrast;
-              //获取新的考试次数情况
-              this.$store.state.selectexam = response.result.data.exam[0].data;
-              //获取新的基础信息
-              this.$store.state.basicsdata = response.result.data.base;
-              //获取各班平均分数排名
-              this.$store.state.barline = response.result.data.barecharts;
-              //获取及格率比较
-              this.$store.state.annulus = response.result.data.annulus;
-              //获取PR百分等级
-              this.$store.state.accuracyPR = response.result.data.accuracyPR;
-              //获取历次总分统计图
-              this.$store.state.linechart = response.result.data.linechart;
+              // 获取新的学年期
+              this.$store.state.selectterm = response.result.data.term
+              // 获取新的数据对比
+              this.$store.state.selectcontrast = response.result.data.selectcontrast
+              // 获取新的考试次数情况
+              this.$store.state.selectexam = response.result.data.exam[0].data
+              // 获取新的基础信息
+              this.$store.state.basicsdata = response.result.data.base
+              // 获取各班平均分数排名
+              this.$store.state.barline = response.result.data.barecharts
+              // 获取及格率比较
+              this.$store.state.annulus = response.result.data.annulus
+              // 获取PR百分等级
+              this.$store.state.accuracyPR = response.result.data.accuracyPR
+              // 获取历次总分统计图
+              this.$store.state.linechart = response.result.data.linechart
             })
             })
         }
         }
-      
       },
       },
       init() {
       init() {
         if (this.now_url == '/saindex') {
         if (this.now_url == '/saindex') {
           this.$api.FindExam({})
           this.$api.FindExam({})
             .then((response) => {
             .then((response) => {
-              //console.log(response.result.data,11111);
-              this.$store.state.selectexam = response.result.data[0].data;
-              //console.log(this.list,333333)
+              // console.log(response.result.data,11111);
+              this.$store.state.selectexam = response.result.data[0].data
+              // console.log(this.list,333333)
             })
             })
         } else if (this.now_url == '/teach') {
         } else if (this.now_url == '/teach') {
           this.$api.FindTeachExam({})
           this.$api.FindTeachExam({})
             .then((response) => {
             .then((response) => {
               console.log(response.result.data, 45678999990000)
               console.log(response.result.data, 45678999990000)
-              this.$store.state.selectexam = response.result.data[0].data;
+              this.$store.state.selectexam = response.result.data[0].data
             })
             })
         } else if (this.now_url == '/total') {
         } else if (this.now_url == '/total') {
           this.$api.FindExam({})
           this.$api.FindExam({})
             .then((response) => {
             .then((response) => {
-              this.$store.state.selectexam = response.result.data[0].data;
+              this.$store.state.selectexam = response.result.data[0].data
             })
             })
         }
         }
       }
       }
-    },
-  };
+    }
+  }
 </script>
 </script>

+ 106 - 108
TEAMModelOS/ClientApp/src/components/student-analysis/SAlinechart.vue

@@ -18,23 +18,23 @@
 </template>
 </template>
 <script>
 <script>
   export default {
   export default {
-    name: "linechart",
+    name: 'linechart',
     data() {
     data() {
       return {
       return {
         cityList: [],
         cityList: [],
         model1: 'liankao',
         model1: 'liankao',
-        now_url: this.$route.path,
+        now_url: this.$route.path
       }
       }
     },
     },
     created() {
     created() {
-      this.init();
-      this.type_init();
+      this.init()
+      this.type_init()
           },
           },
     computed: {
     computed: {
       //  	命令发布监听
       //  	命令发布监听
-      //mode() {
+      // mode() {
       //  return this.$store.state.linechart.mode
       //  return this.$store.state.linechart.mode
-      //},
+      // },
       linechart_standard() {
       linechart_standard() {
         return this.$store.state.linechart
         return this.$store.state.linechart
           },
           },
@@ -47,22 +47,22 @@
     },
     },
     methods: {
     methods: {
       drawLine(obj) {
       drawLine(obj) {
-        //this.$store.state.linechart.mode = false;
-        let myChart = this.$echarts.init(document.getElementById('myChart_line'));
+        // this.$store.state.linechart.mode = false;
+        let myChart = this.$echarts.init(document.getElementById('myChart_line'))
         myChart.setOption({
         myChart.setOption({
           title: {
           title: {
-            text: '各校历次总分统计图',
+            text: '各校历次总分统计图'
           },
           },
           legend: {
           legend: {
             data: obj.obj_name,
             data: obj.obj_name,
-            top: '10%',
+            top: '10%'
           },
           },
           tooltip: {
           tooltip: {
             trigger: 'axis',
             trigger: 'axis',
-            //backgroundColor: 'rgba(0,0,0,0.7)',//背景颜色(此时为默认色)
-            borderRadius: 8,//边框圆角
-            padding: 10,    // [5, 10, 15, 20] 内边距
-            //echarts点击事件
+            // backgroundColor: 'rgba(0,0,0,0.7)',//背景颜色(此时为默认色)
+            borderRadius: 8, // 边框圆角
+            padding: 10 // [5, 10, 15, 20] 内边距
+            // echarts点击事件
             // formatter: function (params,ticket,callback) {
             // formatter: function (params,ticket,callback) {
             //   console.log(params)
             //   console.log(params)
             // },
             // },
@@ -74,17 +74,17 @@
             containLabel: true
             containLabel: true
           },
           },
           toolbox: {
           toolbox: {
-            show: true, //是否显示
-            orient: 'horizontal', //水平显示(vertical为垂直显示)
-            right: '3%', //距离右边多远
+            show: true, // 是否显示
+            orient: 'horizontal', // 水平显示(vertical为垂直显示)
+            right: '3%', // 距离右边多远
             feature: {
             feature: {
-              magicType: {//动态类型切换
+              magicType: {// 动态类型切换
                 type: ['bar', 'line']
                 type: ['bar', 'line']
               },
               },
               saveAsImage: {
               saveAsImage: {
                 show: true
                 show: true
               }
               }
-            },
+            }
           },
           },
           xAxis: {
           xAxis: {
             type: 'category',
             type: 'category',
@@ -114,7 +114,7 @@
                   color: '#FF3030',
                   color: '#FF3030',
                   lineStyle: {
                   lineStyle: {
                     color: '#FF3030',
                     color: '#FF3030',
-                    width: 2,
+                    width: 2
                   }
                   }
                 }
                 }
               },
               },
@@ -126,12 +126,12 @@
                   x2: 0,
                   x2: 0,
                   y2: 1,
                   y2: 1,
                   colorStops: [{
                   colorStops: [{
-                    offset: 0, color:obj.start_color // 0% 处的颜色
+                    offset: 0, color: obj.start_color // 0% 处的颜色
                   }, {
                   }, {
                     offset: 1, color: obj.end_color // 100% 处的颜色
                     offset: 1, color: obj.end_color // 100% 处的颜色
-                  }],
+                  }]
                 }
                 }
-              },
+              }
             },
             },
             {
             {
               name: obj.obj_series[1].name,
               name: obj.obj_series[1].name,
@@ -139,10 +139,10 @@
               data: obj.obj_series[1].data,
               data: obj.obj_series[1].data,
               itemStyle: {
               itemStyle: {
                 normal: {
                 normal: {
-                  color: "#00F5FF",
+                  color: '#00F5FF',
                   lineStyle: {
                   lineStyle: {
                     color: '#00F5FF',
                     color: '#00F5FF',
-                    width: 2,
+                    width: 2
                   }
                   }
                 }
                 }
               },
               },
@@ -157,9 +157,9 @@
                     offset: 0, color: 'rgba(245,245,245,1)' // 0% 处的颜色
                     offset: 0, color: 'rgba(245,245,245,1)' // 0% 处的颜色
                   }, {
                   }, {
                     offset: 1, color: 'rgba(245,245,245,.5)' // 100% 处的颜色
                     offset: 1, color: 'rgba(245,245,245,.5)' // 100% 处的颜色
-                  }],
+                  }]
                 }
                 }
-              },
+              }
             },
             },
             {
             {
               name: obj.obj_series[2].name,
               name: obj.obj_series[2].name,
@@ -167,10 +167,10 @@
               data: obj.obj_series[2].data,
               data: obj.obj_series[2].data,
               itemStyle: {
               itemStyle: {
                 normal: {
                 normal: {
-                  color: "#4169E1",
+                  color: '#4169E1',
                   lineStyle: {
                   lineStyle: {
                     color: '#4169E1',
                     color: '#4169E1',
-                    width: 2,
+                    width: 2
                   }
                   }
                 }
                 }
               },
               },
@@ -185,9 +185,9 @@
                     offset: 0, color: 'rgba(245,245,245,1)' // 0% 处的颜色
                     offset: 0, color: 'rgba(245,245,245,1)' // 0% 处的颜色
                   }, {
                   }, {
                     offset: 1, color: 'rgba(245,245,245,.5)' // 100% 处的颜色
                     offset: 1, color: 'rgba(245,245,245,.5)' // 100% 处的颜色
-                  }],
+                  }]
                 }
                 }
-              },
+              }
             },
             },
             {
             {
               name: obj.obj_series[3].name,
               name: obj.obj_series[3].name,
@@ -195,10 +195,10 @@
               data: obj.obj_series[3].data,
               data: obj.obj_series[3].data,
               itemStyle: {
               itemStyle: {
                 normal: {
                 normal: {
-                  color: "#912CEE",
+                  color: '#912CEE',
                   lineStyle: {
                   lineStyle: {
                     color: '#912CEE',
                     color: '#912CEE',
-                    width: 2,
+                    width: 2
                   }
                   }
                 }
                 }
               },
               },
@@ -211,11 +211,11 @@
                   y2: 1,
                   y2: 1,
                   colorStops: [{
                   colorStops: [{
                     offset: 0, color: 'rgba(245,245,245,1)' // 0% 处的颜色
                     offset: 0, color: 'rgba(245,245,245,1)' // 0% 处的颜色
-                  },  {
+                  }, {
                     offset: 1, color: 'rgba(245,245,245,.5)' // 100% 处的颜色
                     offset: 1, color: 'rgba(245,245,245,.5)' // 100% 处的颜色
-                  }],
+                  }]
                 }
                 }
-              },
+              }
             },
             },
             {
             {
               name: obj.obj_series[4].name,
               name: obj.obj_series[4].name,
@@ -223,10 +223,10 @@
               data: obj.obj_series[4].data,
               data: obj.obj_series[4].data,
               itemStyle: {
               itemStyle: {
                 normal: {
                 normal: {
-                  color: "#FF8247",
+                  color: '#FF8247',
                   lineStyle: {
                   lineStyle: {
                     color: '#FF8247',
                     color: '#FF8247',
-                    width: 2,
+                    width: 2
                   }
                   }
                 }
                 }
               },
               },
@@ -239,11 +239,11 @@
                   y2: 1,
                   y2: 1,
                   colorStops: [{
                   colorStops: [{
                     offset: 0, color: 'rgba(245,245,245,1)' // 0% 处的颜色
                     offset: 0, color: 'rgba(245,245,245,1)' // 0% 处的颜色
-                  },  {
+                  }, {
                     offset: 1, color: 'rgba(245,245,245,.5)' // 100% 处的颜色
                     offset: 1, color: 'rgba(245,245,245,.5)' // 100% 处的颜色
-                  }],
+                  }]
                 }
                 }
-              },
+              }
             },
             },
             {
             {
               name: obj.obj_series[5].name,
               name: obj.obj_series[5].name,
@@ -251,10 +251,10 @@
               data: obj.obj_series[5].data,
               data: obj.obj_series[5].data,
               itemStyle: {
               itemStyle: {
                 normal: {
                 normal: {
-                  color: "#6AD4B9",
+                  color: '#6AD4B9',
                   lineStyle: {
                   lineStyle: {
                     color: '#6AD4B9',
                     color: '#6AD4B9',
-                    width: 2,
+                    width: 2
                   }
                   }
                 }
                 }
               },
               },
@@ -267,17 +267,17 @@
                   y2: 1,
                   y2: 1,
                   colorStops: [{
                   colorStops: [{
                     offset: 0, color: 'rgba(245,245,245,1)' // 0% 处的颜色
                     offset: 0, color: 'rgba(245,245,245,1)' // 0% 处的颜色
-                  },  {
+                  }, {
                     offset: 1, color: 'rgba(245,245,245,.5)' // 100% 处的颜色
                     offset: 1, color: 'rgba(245,245,245,.5)' // 100% 处的颜色
-                  }],
+                  }]
 
 
                 }
                 }
-              },
+              }
             }
             }
           ]
           ]
         })
         })
-        myChart.on("click", function (e) {
-          console.log(e);
+        myChart.on('click', function(e) {
+          console.log(e)
           console.log(e.seriesName)
           console.log(e.seriesName)
           console.log(e.name)
           console.log(e.name)
         })
         })
@@ -286,107 +286,105 @@
         if (this.now_url == '/saindex') {
         if (this.now_url == '/saindex') {
           this.$api.FindLinechart({})
           this.$api.FindLinechart({})
             .then((response) => {
             .then((response) => {
-              //console.log(response.result.data,11111)
-              this.$store.state.linechart = response.result.data;
+              // console.log(response.result.data,11111)
+              this.$store.state.linechart = response.result.data
             })
             })
-        } else if (this.now_url =='/teach') {
+        } else if (this.now_url == '/teach') {
           this.$api.FindTeachHistory({})
           this.$api.FindTeachHistory({})
             .then((response) => {
             .then((response) => {
-              //console.log(response.result.data, 8877822228888)
-              this.$store.state.linechart = response.result.data;
+              // console.log(response.result.data, 8877822228888)
+              this.$store.state.linechart = response.result.data
             })
             })
         }
         }
-       
       },
       },
       type_init() {
       type_init() {
         this.$api.FindExamtype({})
         this.$api.FindExamtype({})
           .then((response) => {
           .then((response) => {
-            //console.log(response.result.data, 111)
-            //this.cityList = response.result.data;
-            this.$store.state.examtype = response.result.data;
+            // console.log(response.result.data, 111)
+            // this.cityList = response.result.data;
+            this.$store.state.examtype = response.result.data
           })
           })
       },
       },
-      //考试类型
+      // 考试类型
       ExamType(value) {
       ExamType(value) {
         this.$api.FindSelectExamType({})
         this.$api.FindSelectExamType({})
           .then((response) => {
           .then((response) => {
-            //console.log(response.result.data, 8889)
+            // console.log(response.result.data, 8889)
             this.$store.state.selectgrade = response.result.data.selectgrade
             this.$store.state.selectgrade = response.result.data.selectgrade
-            //获取新的学年期
+            // 获取新的学年期
             this.$store.state.selectterm = response.result.data.term
             this.$store.state.selectterm = response.result.data.term
-            //获取新的考试次数情况
-            this.$store.state.selectexam = response.result.data.exam[0].data;
-            //获取新的基础信息
-            this.$store.state.basicsdata = response.result.data.base;
-            //获取新的各校成绩排名
-            this.$store.state.zhuxhuang = response.result.data.barecharts;
-            //获取新的各项科目表现
-            this.$store.state.leida = response.result.data.leida;
-            //获取新的科目表现对比
+            // 获取新的考试次数情况
+            this.$store.state.selectexam = response.result.data.exam[0].data
+            // 获取新的基础信息
+            this.$store.state.basicsdata = response.result.data.base
+            // 获取新的各校成绩排名
+            this.$store.state.zhuxhuang = response.result.data.barecharts
+            // 获取新的各项科目表现
+            this.$store.state.leida = response.result.data.leida
+            // 获取新的科目表现对比
             this.$store.state.pie = response.result.data.pie
             this.$store.state.pie = response.result.data.pie
-            //获取新的考试类型
-            this.$store.state.examtype = response.result.data.examtype;
-            //获取新的各校历次总分统计图
-            this.$store.state.linechart = response.result.data.linechart;
+            // 获取新的考试类型
+            this.$store.state.examtype = response.result.data.examtype
+            // 获取新的各校历次总分统计图
+            this.$store.state.linechart = response.result.data.linechart
           })
           })
       },
       },
-      //显示文科 
+      // 显示文科
       arts_btn() {
       arts_btn() {
         this.$api.FindSelectArts({})
         this.$api.FindSelectArts({})
           .then((response) => {
           .then((response) => {
            // console.log(response.result.data, 5555555);
            // console.log(response.result.data, 5555555);
             this.$store.state.selectgrade = response.result.data.selectgrade
             this.$store.state.selectgrade = response.result.data.selectgrade
-            //获取新的学年期
+            // 获取新的学年期
             this.$store.state.selectterm = response.result.data.term
             this.$store.state.selectterm = response.result.data.term
-            //获取新的考试次数情况
-            this.$store.state.selectexam = response.result.data.exam[0].data;
-            //获取新的基础信息
-            this.$store.state.basicsdata = response.result.data.base;
-            //获取新的各校成绩排名
-            this.$store.state.zhuxhuang = response.result.data.barecharts;
-            //获取新的各项科目表现
-            this.$store.state.leida = response.result.data.leida;
-            //获取新的科目表现对比
+            // 获取新的考试次数情况
+            this.$store.state.selectexam = response.result.data.exam[0].data
+            // 获取新的基础信息
+            this.$store.state.basicsdata = response.result.data.base
+            // 获取新的各校成绩排名
+            this.$store.state.zhuxhuang = response.result.data.barecharts
+            // 获取新的各项科目表现
+            this.$store.state.leida = response.result.data.leida
+            // 获取新的科目表现对比
             this.$store.state.pie = response.result.data.pie
             this.$store.state.pie = response.result.data.pie
-            //获取新的考试类型
-            this.$store.state.examtype = response.result.data.examtype;
-            //获取新的各校历次总分统计图
-            this.$store.state.linechart = response.result.data.linechart;
+            // 获取新的考试类型
+            this.$store.state.examtype = response.result.data.examtype
+            // 获取新的各校历次总分统计图
+            this.$store.state.linechart = response.result.data.linechart
                 })
                 })
       },
       },
-      //显示理科
+      // 显示理科
       science_btn() {
       science_btn() {
         this.$api.FindSelectScience({})
         this.$api.FindSelectScience({})
           .then((response) => {
           .then((response) => {
-            //console.log(response.result.data,77899)
+            // console.log(response.result.data,77899)
             this.$store.state.selectgrade = response.result.data.selectgrade
             this.$store.state.selectgrade = response.result.data.selectgrade
-            //获取新的学年期
+            // 获取新的学年期
             this.$store.state.selectterm = response.result.data.term
             this.$store.state.selectterm = response.result.data.term
-            //获取新的考试次数情况
-            this.$store.state.selectexam = response.result.data.exam[0].data;
-            //获取新的基础信息
-            this.$store.state.basicsdata = response.result.data.base;
-            //获取新的各校成绩排名
-            this.$store.state.zhuxhuang = response.result.data.barecharts;
-            //获取新的各项科目表现
-            this.$store.state.leida = response.result.data.leida;
-            //获取新的科目表现对比
+            // 获取新的考试次数情况
+            this.$store.state.selectexam = response.result.data.exam[0].data
+            // 获取新的基础信息
+            this.$store.state.basicsdata = response.result.data.base
+            // 获取新的各校成绩排名
+            this.$store.state.zhuxhuang = response.result.data.barecharts
+            // 获取新的各项科目表现
+            this.$store.state.leida = response.result.data.leida
+            // 获取新的科目表现对比
             this.$store.state.pie = response.result.data.pie
             this.$store.state.pie = response.result.data.pie
-            //获取新的考试类型
-            this.$store.state.examtype = response.result.data.examtype;
-            //获取新的各校历次总分统计图
-            this.$store.state.linechart = response.result.data.linechart;
+            // 获取新的考试类型
+            this.$store.state.examtype = response.result.data.examtype
+            // 获取新的各校历次总分统计图
+            this.$store.state.linechart = response.result.data.linechart
           })
           })
-
       }
       }
     },
     },
     watch: {
     watch: {
 // 		监听指令
 // 		监听指令
       linechart_standard(a) {
       linechart_standard(a) {
-        if (a){
-          this.drawLine(a);
+        if (a) {
+          this.drawLine(a)
         }
         }
-      },
+      }
     }
     }
   }
   }
 </script>
 </script>

+ 47 - 48
TEAMModelOS/ClientApp/src/components/student-analysis/SApercent.vue

@@ -33,26 +33,26 @@
     data() {
     data() {
       return {
       return {
         accuracydatas: [],
         accuracydatas: [],
-        prdata:[],
+        prdata: []
       }
       }
     },
     },
     created() {
     created() {
-      this.init();
+      this.init()
     },
     },
     mounted() {
     mounted() {
-      this.init();
+      this.init()
     },
     },
     computed: {
     computed: {
       accuracyPRdata() {
       accuracyPRdata() {
         return this.$store.state.accuracyPR
         return this.$store.state.accuracyPR
-      },
+      }
     },
     },
     methods: {
     methods: {
-      //本班准确率
-      //答对率
+      // 本班准确率
+      // 答对率
       accuracy_one(obj) {
       accuracy_one(obj) {
-        //this.$store.state.pie.mode = false;
-        let myChart = this.$echarts.init(document.getElementById('pie_one'));
+        // this.$store.state.pie.mode = false;
+        let myChart = this.$echarts.init(document.getElementById('pie_one'))
         myChart.setOption({
         myChart.setOption({
           title: {
           title: {
             text: obj.titlenum + '%',
             text: obj.titlenum + '%',
@@ -68,7 +68,7 @@
                fontSize: 11,
                fontSize: 11,
                fontWeight: 'bolder',
                fontWeight: 'bolder',
                color: '#333'
                color: '#333'
-             },
+             }
           },
           },
           color: ['rgba(176, 212, 251, 1)'],
           color: ['rgba(176, 212, 251, 1)'],
           legend: {
           legend: {
@@ -123,11 +123,11 @@
         })
         })
       },
       },
       accuracy_two(obj) {
       accuracy_two(obj) {
-        //this.$store.state.pie.mode = false;
-        let myChart = this.$echarts.init(document.getElementById('pie_two'));
+        // this.$store.state.pie.mode = false;
+        let myChart = this.$echarts.init(document.getElementById('pie_two'))
         myChart.setOption({
         myChart.setOption({
           title: {
           title: {
-            text: obj.titlenum +'%',
+            text: obj.titlenum + '%',
             subtext: obj.echartstitle,
             subtext: obj.echartstitle,
             x: 'center',
             x: 'center',
             y: '35%',
             y: '35%',
@@ -140,7 +140,7 @@
               fontSize: 11,
               fontSize: 11,
               fontWeight: 'bolder',
               fontWeight: 'bolder',
               color: '#333'
               color: '#333'
-            },
+            }
           },
           },
           color: ['rgba(176, 212, 251, 1)'],
           color: ['rgba(176, 212, 251, 1)'],
           legend: {
           legend: {
@@ -195,8 +195,8 @@
         })
         })
       },
       },
       accuracy_three(obj) {
       accuracy_three(obj) {
-        //this.$store.state.pie.mode = false;
-        let myChart = this.$echarts.init(document.getElementById('pie_three'));
+        // this.$store.state.pie.mode = false;
+        let myChart = this.$echarts.init(document.getElementById('pie_three'))
         myChart.setOption({
         myChart.setOption({
           title: {
           title: {
             text: obj.titlenum + '%',
             text: obj.titlenum + '%',
@@ -212,7 +212,7 @@
               fontSize: 11,
               fontSize: 11,
               fontWeight: 'bolder',
               fontWeight: 'bolder',
               color: '#333'
               color: '#333'
-            },
+            }
           },
           },
           color: ['rgba(176, 212, 251, 1)'],
           color: ['rgba(176, 212, 251, 1)'],
           legend: {
           legend: {
@@ -266,13 +266,13 @@
           }]
           }]
         })
         })
       },
       },
-      //PR值
+      // PR值
       pr_one(obj) {
       pr_one(obj) {
-        //this.$store.state.pie.mode = false;
-        let myChart = this.$echarts.init(document.getElementById('pr_one'));
+        // this.$store.state.pie.mode = false;
+        let myChart = this.$echarts.init(document.getElementById('pr_one'))
         myChart.setOption({
         myChart.setOption({
           title: {
           title: {
-            text: obj.titlenum ,
+            text: obj.titlenum,
             subtext: obj.echartstitle,
             subtext: obj.echartstitle,
             x: 'center',
             x: 'center',
             y: '35%',
             y: '35%',
@@ -285,7 +285,7 @@
               fontSize: 11,
               fontSize: 11,
               fontWeight: 'bolder',
               fontWeight: 'bolder',
               color: '#333'
               color: '#333'
-            },
+            }
           },
           },
           color: ['rgba(176, 212, 251, 1)'],
           color: ['rgba(176, 212, 251, 1)'],
           legend: {
           legend: {
@@ -340,11 +340,11 @@
         })
         })
       },
       },
       pr_two(obj) {
       pr_two(obj) {
-        //this.$store.state.pie.mode = false;
-        let myChart = this.$echarts.init(document.getElementById('pr_two'));
+        // this.$store.state.pie.mode = false;
+        let myChart = this.$echarts.init(document.getElementById('pr_two'))
         myChart.setOption({
         myChart.setOption({
           title: {
           title: {
-            text: obj.titlenum ,
+            text: obj.titlenum,
             subtext: obj.echartstitle,
             subtext: obj.echartstitle,
             x: 'center',
             x: 'center',
             y: '35%',
             y: '35%',
@@ -357,7 +357,7 @@
               fontSize: 11,
               fontSize: 11,
               fontWeight: 'bolder',
               fontWeight: 'bolder',
               color: '#333'
               color: '#333'
-            },
+            }
           },
           },
           color: ['rgba(176, 212, 251, 1)'],
           color: ['rgba(176, 212, 251, 1)'],
           legend: {
           legend: {
@@ -412,8 +412,8 @@
         })
         })
       },
       },
       pr_three(obj) {
       pr_three(obj) {
-        //this.$store.state.pie.mode = false;
-        let myChart = this.$echarts.init(document.getElementById('pr_three'));
+        // this.$store.state.pie.mode = false;
+        let myChart = this.$echarts.init(document.getElementById('pr_three'))
         myChart.setOption({
         myChart.setOption({
           title: {
           title: {
             text: obj.titlenum,
             text: obj.titlenum,
@@ -429,7 +429,7 @@
               fontSize: 11,
               fontSize: 11,
               fontWeight: 'bolder',
               fontWeight: 'bolder',
               color: '#333'
               color: '#333'
-            },
+            }
           },
           },
           color: ['rgba(176, 212, 251, 1)'],
           color: ['rgba(176, 212, 251, 1)'],
           legend: {
           legend: {
@@ -484,11 +484,11 @@
         })
         })
       },
       },
       init() {
       init() {
-        let _this = this;
+        let _this = this
         this.$api.FindTeachPR({})
         this.$api.FindTeachPR({})
           .then((response) => {
           .then((response) => {
-            //console.log(response.result.data,88899999)
-            _this.$store.state.accuracyPR = response.result.data;
+            // console.log(response.result.data,88899999)
+            _this.$store.state.accuracyPR = response.result.data
           })
           })
       }
       }
     },
     },
@@ -496,25 +496,24 @@
       // 		监听指令
       // 		监听指令
       accuracyPRdata(value) {
       accuracyPRdata(value) {
         if (value) {
         if (value) {
-          console.log(value, 6666);
-          this.accuracydatas = value.accuracydata;
-          this.prdata = value.percentdata;
-          let pie_one = value.accuracydata[0];
-          let pie_two = value.accuracydata[1];
-          let pie_three = value.accuracydata[2];
-          let pr_one = value.percentdata[0];
-          let pr_two = value.percentdata[1];
-          let pr_three = value.percentdata[2];
-          this.accuracy_one(pie_one);
-          this.accuracy_two(pie_two);
-          this.accuracy_three(pie_three);
-          this.pr_one(pr_one);
-          this.pr_two(pr_two);
-          this.pr_three(pr_three);
+          console.log(value, 6666)
+          this.accuracydatas = value.accuracydata
+          this.prdata = value.percentdata
+          let pie_one = value.accuracydata[0]
+          let pie_two = value.accuracydata[1]
+          let pie_three = value.accuracydata[2]
+          let pr_one = value.percentdata[0]
+          let pr_two = value.percentdata[1]
+          let pr_three = value.percentdata[2]
+          this.accuracy_one(pie_one)
+          this.accuracy_two(pie_two)
+          this.accuracy_three(pie_three)
+          this.pr_one(pr_one)
+          this.pr_two(pr_two)
+          this.pr_three(pr_three)
         }
         }
-      },
+      }
     }
     }
 
 
   }
   }
 </script>
 </script>
-

+ 32 - 32
TEAMModelOS/ClientApp/src/components/student-analysis/SAradargraph.vue

@@ -7,31 +7,31 @@
 
 
 <script>
 <script>
     export default {
     export default {
-        name: "radargraph",
-        data(){
-          return{
+        name: 'radargraph',
+        data() {
+          return {
 
 
           }
           }
     },
     },
     created() {
     created() {
-      this.init();
+      this.init()
         },
         },
-      computed:{
+      computed: {
         //  	命令发布监听
         //  	命令发布监听
-        //mode () {
+        // mode () {
         //  return this.$store.state.leida.mode
         //  return this.$store.state.leida.mode
-        //},
-        leida () {
+        // },
+        leida() {
           return this.$store.state.leida
           return this.$store.state.leida
-        },
+        }
       },
       },
-      methods:{
+      methods: {
         drawLine(obj) {
         drawLine(obj) {
-          this.$store.state.leida.mode = false;
-          let myChart_lei = this.$echarts.init(document.getElementById('myChart_lei'));
+          this.$store.state.leida.mode = false
+          let myChart_lei = this.$echarts.init(document.getElementById('myChart_lei'))
           myChart_lei.setOption({
           myChart_lei.setOption({
             title: {
             title: {
-              text: '各项科目表现',
+              text: '各项科目表现'
             },
             },
             tooltip: {},
             tooltip: {},
             legend: {
             legend: {
@@ -49,13 +49,13 @@
               axisLine: {
               axisLine: {
                 lineStyle: {
                 lineStyle: {
                   color: '#000',
                   color: '#000',
-                  opacity: .2
+                  opacity: 0.2
                 }
                 }
               },
               },
               splitLine: {
               splitLine: {
                 lineStyle: {
                 lineStyle: {
                   color: '#fff',
                   color: '#fff',
-                  opacity: .2
+                  opacity: 0.2
                 }
                 }
               },
               },
               splitArea: {
               splitArea: {
@@ -65,7 +65,7 @@
                   shadowBlur: 45,
                   shadowBlur: 45,
                   shadowColor: 'rgba(0,0,0,.5)',
                   shadowColor: 'rgba(0,0,0,.5)',
                   shadowOffsetX: 0,
                   shadowOffsetX: 0,
-                  shadowOffsetY: 15,
+                  shadowOffsetY: 15
                 }
                 }
               },
               },
               indicator: obj.indicator
               indicator: obj.indicator
@@ -89,17 +89,17 @@
                 itemStyle: {
                 itemStyle: {
                   color: 'rgba(239,75,76,.5)',
                   color: 'rgba(239,75,76,.5)',
                   lineStyle: {
                   lineStyle: {
-                    color: 'rgba(239,75,76,.5)',
-                  },
+                    color: 'rgba(239,75,76,.5)'
+                  }
                       }
                       }
               }, {
               }, {
-                value:obj.data2,
+                value: obj.data2,
                 name: obj.title_two,
                 name: obj.title_two,
                 itemStyle: {
                 itemStyle: {
                   color: 'rgba(177,234,219,.8)',
                   color: 'rgba(177,234,219,.8)',
                   lineStyle: {
                   lineStyle: {
-                    color: 'rgba(177,234,219,.8)',
-                  },
+                    color: 'rgba(177,234,219,.8)'
+                  }
                 }
                 }
               }]
               }]
             }],
             }],
@@ -113,32 +113,32 @@
                 offset: 0,
                 offset: 0,
                 color: '#D4CED5' // 0% 处的颜色
                 color: '#D4CED5' // 0% 处的颜色
               }, {
               }, {
-                offset: .4,
+                offset: 0.4,
                 color: '#f5f5f5' // 100% 处的颜色
                 color: '#f5f5f5' // 100% 处的颜色
               }, {
               }, {
                 offset: 1,
                 offset: 1,
                 color: '#fff' // 100% 处的颜色
                 color: '#fff' // 100% 处的颜色
-              }],
+              }]
             }
             }
-          });
+          })
         },
         },
         init() {
         init() {
           this.$api.FindRadargraph({})
           this.$api.FindRadargraph({})
               .then((response) => {
               .then((response) => {
-                //console.log(response.result,456);
-               this.$store.state.leida=response.result.data
-                //this.drawLine(response.result.data)
-                //console.log(this.$store.state.zhuzhuang,33333344)
+                // console.log(response.result,456);
+               this.$store.state.leida = response.result.data
+                // this.drawLine(response.result.data)
+                // console.log(this.$store.state.zhuzhuang,33333344)
               })
               })
           }
           }
       },
       },
-      watch:{
+      watch: {
 // 		监听指令
 // 		监听指令
-        leida(a){
-          if(a){
+        leida(a) {
+          if (a) {
             this.drawLine(a)
             this.drawLine(a)
           }
           }
-        },
+        }
       }
       }
     }
     }
 </script>
 </script>

+ 134 - 137
TEAMModelOS/ClientApp/src/components/student-analysis/SAsubjectsmanifestation.vue

@@ -84,32 +84,31 @@
 
 
 <script>
 <script>
     export default {
     export default {
-        name: "SubjectsManifestation",
-        data(){
-          return{
-            list_data: [],
+        name: 'SubjectsManifestation',
+        data() {
+          return {
+            list_data: []
           }
           }
     },
     },
     created() {
     created() {
-      this.init();
-
+      this.init()
     },
     },
     mounted() {
     mounted() {
-      this.init();
+      this.init()
     },
     },
-      computed:{
+      computed: {
         //  	命令发布监听
         //  	命令发布监听
         inquiredata() {
         inquiredata() {
           return this.$store.state.pie
           return this.$store.state.pie
-        },
+        }
     },
     },
 
 
-      methods:{
-          //图形一
+      methods: {
+          // 图形一
 
 
         One(obj) {
         One(obj) {
-          //this.$store.state.pie.mode = false;
-          let myChart = this.$echarts.init(document.getElementById('myChart_one'));
+          // this.$store.state.pie.mode = false;
+          let myChart = this.$echarts.init(document.getElementById('myChart_one'))
           myChart.setOption({
           myChart.setOption({
             grid: {
             grid: {
               left: 0,
               left: 0,
@@ -143,7 +142,7 @@
                       fontWeight: 'bold',
                       fontWeight: 'bold',
                       color: '#555',
                       color: '#555',
                       height: 25,
                       height: 25,
-                      top: 1,
+                      top: 1
                     }
                     }
                   }
                   }
                 }
                 }
@@ -161,7 +160,7 @@
                     textStyle: {
                     textStyle: {
                       color: '#555',
                       color: '#555',
                       fontSize: 15,
                       fontSize: 15,
-                      height: 15,
+                      height: 15
                     }
                     }
                   }
                   }
                 },
                 },
@@ -181,21 +180,21 @@
             }]
             }]
           })
           })
         },
         },
-          Two(obj){
-          //this.$store.state.pie.mode = false;
-          let myChart = this.$echarts.init(document.getElementById('myChart_two'));
+          Two(obj) {
+          // this.$store.state.pie.mode = false;
+          let myChart = this.$echarts.init(document.getElementById('myChart_two'))
           myChart.setOption({
           myChart.setOption({
-            grid:{
-              left:0,
-              top:0,
-              right:0,
-              bottom:0
+            grid: {
+              left: 0,
+              top: 0,
+              right: 0,
+              bottom: 0
             },
             },
             color: obj.color,
             color: obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
               radius: ['80%', '97%'],
               radius: ['80%', '97%'],
-              hoverAnimation:false,
+              hoverAnimation: false,
               label: {
               label: {
                 normal: {
                 normal: {
                   position: 'center'
                   position: 'center'
@@ -206,18 +205,18 @@
                 name: '占有率',
                 name: '占有率',
                 label: {
                 label: {
                   normal: {
                   normal: {
-                    rich:{
-                      a:{
+                    rich: {
+                      a: {
                         lineHeight: 10
                         lineHeight: 10
                       }
                       }
                     },
                     },
                     formatter: '{d}%',
                     formatter: '{d}%',
                     textStyle: {
                     textStyle: {
                       fontSize: 18,
                       fontSize: 18,
-                      fontWeight:'bold',
-                      color:'#555',
-                      height:25,
-                      top:1,
+                      fontWeight: 'bold',
+                      color: '#555',
+                      height: 25,
+                      top: 1
                     }
                     }
                   }
                   }
                 }
                 }
@@ -226,8 +225,8 @@
                 name: '不足',
                 name: '不足',
                 label: {
                 label: {
                   normal: {
                   normal: {
-                    rich:{
-                      a:{
+                    rich: {
+                      a: {
                         lineHeight: 5
                         lineHeight: 5
                       }
                       }
                     },
                     },
@@ -235,7 +234,7 @@
                     textStyle: {
                     textStyle: {
                       color: '#555',
                       color: '#555',
                       fontSize: 15,
                       fontSize: 15,
-                      height:15,
+                      height: 15
                     }
                     }
                   }
                   }
                 },
                 },
@@ -255,21 +254,21 @@
             }]
             }]
           })
           })
         },
         },
-          Three(obj){
-          //this.$store.state.pie.mode = false;
-          let myChart = this.$echarts.init(document.getElementById('myChart_three'));
+          Three(obj) {
+          // this.$store.state.pie.mode = false;
+          let myChart = this.$echarts.init(document.getElementById('myChart_three'))
           myChart.setOption({
           myChart.setOption({
-            grid:{
-              left:0,
-              top:0,
-              right:0,
-              bottom:0
+            grid: {
+              left: 0,
+              top: 0,
+              right: 0,
+              bottom: 0
             },
             },
             color: obj.color,
             color: obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
               radius: ['80%', '97%'],
               radius: ['80%', '97%'],
-              hoverAnimation:false,
+              hoverAnimation: false,
               label: {
               label: {
                 normal: {
                 normal: {
                   position: 'center'
                   position: 'center'
@@ -280,18 +279,18 @@
                 name: '占有率',
                 name: '占有率',
                 label: {
                 label: {
                   normal: {
                   normal: {
-                    rich:{
-                      a:{
+                    rich: {
+                      a: {
                         lineHeight: 10
                         lineHeight: 10
                       }
                       }
                     },
                     },
                     formatter: '{d}%',
                     formatter: '{d}%',
                     textStyle: {
                     textStyle: {
                       fontSize: 18,
                       fontSize: 18,
-                      fontWeight:'bold',
-                      color:'#555',
-                      height:25,
-                      top:1,
+                      fontWeight: 'bold',
+                      color: '#555',
+                      height: 25,
+                      top: 1
                     }
                     }
                   }
                   }
                 }
                 }
@@ -300,16 +299,16 @@
                 name: '不足',
                 name: '不足',
                 label: {
                 label: {
                   normal: {
                   normal: {
-                    rich:{
-                      a:{
-                        lineHeight:5
+                    rich: {
+                      a: {
+                        lineHeight: 5
                       }
                       }
                     },
                     },
                     formatter: '\n' + obj.subject,
                     formatter: '\n' + obj.subject,
                     textStyle: {
                     textStyle: {
                       color: '#555',
                       color: '#555',
                       fontSize: 15,
                       fontSize: 15,
-                      height:15,
+                      height: 15
                     }
                     }
                   }
                   }
                 },
                 },
@@ -329,21 +328,21 @@
             }]
             }]
           })
           })
         },
         },
-          Four(obj){
-          //this.$store.state.pie.mode = false;
-          let myChart = this.$echarts.init(document.getElementById('myChart_four'));
+          Four(obj) {
+          // this.$store.state.pie.mode = false;
+          let myChart = this.$echarts.init(document.getElementById('myChart_four'))
           myChart.setOption({
           myChart.setOption({
-            grid:{
-              left:0,
-              top:0,
-              right:0,
-              bottom:0
+            grid: {
+              left: 0,
+              top: 0,
+              right: 0,
+              bottom: 0
             },
             },
             color: obj.color,
             color: obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
               radius: ['80%', '97%'],
               radius: ['80%', '97%'],
-              hoverAnimation:false,
+              hoverAnimation: false,
               label: {
               label: {
                 normal: {
                 normal: {
                   position: 'center'
                   position: 'center'
@@ -354,18 +353,18 @@
                 name: '占有率',
                 name: '占有率',
                 label: {
                 label: {
                   normal: {
                   normal: {
-                    rich:{
-                      a:{
+                    rich: {
+                      a: {
                         lineHeight: 10
                         lineHeight: 10
                       }
                       }
                     },
                     },
                     formatter: '{d}%',
                     formatter: '{d}%',
                     textStyle: {
                     textStyle: {
                       fontSize: 18,
                       fontSize: 18,
-                      fontWeight:'bold',
-                      color:'#555',
-                      height:25,
-                      top:1,
+                      fontWeight: 'bold',
+                      color: '#555',
+                      height: 25,
+                      top: 1
                     }
                     }
                   }
                   }
                 }
                 }
@@ -374,16 +373,16 @@
                 name: '不足',
                 name: '不足',
                 label: {
                 label: {
                   normal: {
                   normal: {
-                    rich:{
-                      a:{
-                        lineHeight:5
+                    rich: {
+                      a: {
+                        lineHeight: 5
                       }
                       }
                     },
                     },
                     formatter: '\n' + obj.subject,
                     formatter: '\n' + obj.subject,
                     textStyle: {
                     textStyle: {
                       color: '#555',
                       color: '#555',
                       fontSize: 15,
                       fontSize: 15,
-                      height:15,
+                      height: 15
                     }
                     }
                   }
                   }
                 },
                 },
@@ -403,21 +402,21 @@
             }]
             }]
           })
           })
         },
         },
-          Five(obj){
-          //this.$store.state.pie.mode = false;
-          let myChart = this.$echarts.init(document.getElementById('myChart_five'));
+          Five(obj) {
+          // this.$store.state.pie.mode = false;
+          let myChart = this.$echarts.init(document.getElementById('myChart_five'))
           myChart.setOption({
           myChart.setOption({
-            grid:{
-              left:0,
-              top:0,
-              right:0,
-              bottom:0
+            grid: {
+              left: 0,
+              top: 0,
+              right: 0,
+              bottom: 0
             },
             },
-            color:obj.color,
+            color: obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
               radius: ['80%', '97%'],
               radius: ['80%', '97%'],
-              hoverAnimation:false,
+              hoverAnimation: false,
               label: {
               label: {
                 normal: {
                 normal: {
                   position: 'center'
                   position: 'center'
@@ -428,18 +427,18 @@
                 name: '占有率',
                 name: '占有率',
                 label: {
                 label: {
                   normal: {
                   normal: {
-                    rich:{
-                      a:{
+                    rich: {
+                      a: {
                         lineHeight: 10
                         lineHeight: 10
                       }
                       }
                     },
                     },
                     formatter: '{d}%',
                     formatter: '{d}%',
                     textStyle: {
                     textStyle: {
                       fontSize: 18,
                       fontSize: 18,
-                      fontWeight:'bold',
-                      color:'#555',
-                      height:25,
-                      top:1,
+                      fontWeight: 'bold',
+                      color: '#555',
+                      height: 25,
+                      top: 1
                     }
                     }
                   }
                   }
                 }
                 }
@@ -448,16 +447,16 @@
                 name: '不足',
                 name: '不足',
                 label: {
                 label: {
                   normal: {
                   normal: {
-                    rich:{
-                      a:{
+                    rich: {
+                      a: {
                         lineHeight: 5
                         lineHeight: 5
                       }
                       }
                     },
                     },
-                    formatter: '\n'+obj.subject ,
+                    formatter: '\n' + obj.subject,
                     textStyle: {
                     textStyle: {
                       color: '#555',
                       color: '#555',
                       fontSize: 15,
                       fontSize: 15,
-                      height:15
+                      height: 15
                     }
                     }
                   }
                   }
                 },
                 },
@@ -477,21 +476,21 @@
             }]
             }]
           })
           })
         },
         },
-          Six(obj){
-          //this.$store.state.pie.mode = false;
-          let myChart = this.$echarts.init(document.getElementById('myChart_six'));
+          Six(obj) {
+          // this.$store.state.pie.mode = false;
+          let myChart = this.$echarts.init(document.getElementById('myChart_six'))
           myChart.setOption({
           myChart.setOption({
-            grid:{
-              left:0,
-              top:0,
-              right:0,
-              bottom:0
+            grid: {
+              left: 0,
+              top: 0,
+              right: 0,
+              bottom: 0
             },
             },
             color: obj.color,
             color: obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
               radius: ['80%', '97%'],
               radius: ['80%', '97%'],
-              hoverAnimation:false,
+              hoverAnimation: false,
               label: {
               label: {
                 normal: {
                 normal: {
                   position: 'center'
                   position: 'center'
@@ -502,18 +501,18 @@
                 name: '占有率',
                 name: '占有率',
                 label: {
                 label: {
                   normal: {
                   normal: {
-                    rich:{
-                      a:{
+                    rich: {
+                      a: {
                         lineHeight: 10
                         lineHeight: 10
                       }
                       }
                     },
                     },
                     formatter: '{d}%',
                     formatter: '{d}%',
                     textStyle: {
                     textStyle: {
                       fontSize: 18,
                       fontSize: 18,
-                      fontWeight:'bold',
-                      color:'#555',
-                      height:25,
-                      top:1,
+                      fontWeight: 'bold',
+                      color: '#555',
+                      height: 25,
+                      top: 1
                     }
                     }
                   }
                   }
                 }
                 }
@@ -522,8 +521,8 @@
                 name: '不足',
                 name: '不足',
                 label: {
                 label: {
                   normal: {
                   normal: {
-                    rich:{
-                      a:{
+                    rich: {
+                      a: {
                         lineHeight: 5
                         lineHeight: 5
                       }
                       }
                     },
                     },
@@ -531,7 +530,7 @@
                     textStyle: {
                     textStyle: {
                       color: '#555',
                       color: '#555',
                       fontSize: 15,
                       fontSize: 15,
-                      height:15,
+                      height: 15
                     }
                     }
                   }
                   }
                 },
                 },
@@ -552,41 +551,39 @@
           })
           })
         },
         },
         init() {
         init() {
-          let _this = this;
+          let _this = this
           this.$api.FindSubjectsManifestation({})
           this.$api.FindSubjectsManifestation({})
             .then((response) => {
             .then((response) => {
-              //console.log(response.result.data, 8888888);
-              //this.One(response.result.data);
-              _this.$store.state.pie = response.result.data;
-              //_this.Two(response.result.data[1]);
-              //_this.Three(response.result.data[2]);
-              //_this.Four(response.result.data[3]);
-              //_this.Five(response.result.data[4]);
-              //_this.Six(response.result.data[5]);
-
+              // console.log(response.result.data, 8888888);
+              // this.One(response.result.data);
+              _this.$store.state.pie = response.result.data
+              // _this.Two(response.result.data[1]);
+              // _this.Three(response.result.data[2]);
+              // _this.Four(response.result.data[3]);
+              // _this.Five(response.result.data[4]);
+              // _this.Six(response.result.data[5]);
             })
             })
         }
         }
           },
           },
-      watch:{
+      watch: {
 // 		监听指令
 // 		监听指令
-        inquiredata(value){
-          if(value){
-            this.list_data = value;
-            let dataone= value[0];
-            let datatwo = value[1];
-            let datathree = value[2];
-            let datafour = value[3];
-            let datafive = value[4];
-            let datasix = value[5];
-            this.One(dataone);
-            this.Two(datatwo);
-            this.Three(datathree);
-            this.Four(datafour);
-            this.Five(datafive);
-            this.Six(datasix);
+        inquiredata(value) {
+          if (value) {
+            this.list_data = value
+            let dataone = value[0]
+            let datatwo = value[1]
+            let datathree = value[2]
+            let datafour = value[3]
+            let datafive = value[4]
+            let datasix = value[5]
+            this.One(dataone)
+            this.Two(datatwo)
+            this.Three(datathree)
+            this.Four(datafour)
+            this.Five(datafive)
+            this.Six(datasix)
           }
           }
-        },
+        }
       }
       }
     }
     }
 </script>
 </script>
-

+ 130 - 131
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseBar.vue

@@ -4,66 +4,66 @@
 
 
 <script>
 <script>
   export default {
   export default {
-    name: "hello",
+    name: 'hello',
     props: ['echartsData'],
     props: ['echartsData'],
     data() {
     data() {
       return {
       return {
         subjectList: [],
         subjectList: [],
         lineData: 440,
         lineData: 440,
         areaData: 490.5
         areaData: 490.5
-      };
+      }
     },
     },
     created() {
     created() {
-      this.subjectList = this.echartsData;
+      this.subjectList = this.echartsData
       this.subjectList.forEach(item => {
       this.subjectList.forEach(item => {
         item.className = '初一' + item.id + '班'
         item.className = '初一' + item.id + '班'
       })
       })
     },
     },
     mounted() {
     mounted() {
-      this.drawLine(this.subjectList);
+      this.drawLine(this.subjectList)
     },
     },
     methods: {
     methods: {
       drawLine(data) {
       drawLine(data) {
         // 基于准备好的dom,初始化echarts实例
         // 基于准备好的dom,初始化echarts实例
-        let myBar = this.$echarts.init(document.getElementById("myBar"));
-        let that = this;
+        let myBar = this.$echarts.init(document.getElementById('myBar'))
+        let that = this
 
 
         // 指定图表的配置项和数据
         // 指定图表的配置项和数据
         var option = {
         var option = {
           legend: {
           legend: {
             data: ['语文', '数学', '英语', '生物', '化学', '物理', this.$t('totalAnalysis.ach_text5'), this.$t('totalAnalysis.ach_text6')],
             data: ['语文', '数学', '英语', '生物', '化学', '物理', this.$t('totalAnalysis.ach_text5'), this.$t('totalAnalysis.ach_text6')],
             textStyle: {
             textStyle: {
-              color: "#e4eadb"
+              color: '#e4eadb'
             }
             }
           },
           },
           // ---  提示框 ----
           // ---  提示框 ----
           tooltip: {
           tooltip: {
             show: true, // 是否显示提示框,默认为true
             show: true, // 是否显示提示框,默认为true
-            trigger: "axis", // 数据项图形触发
+            trigger: 'axis', // 数据项图形触发
             axisPointer: {
             axisPointer: {
-              type: "shadow",
-              axis: "auto",
+              type: 'shadow',
+              axis: 'auto',
               shadowStyle: {
               shadowStyle: {
-                color: "rgba(128,128,128,0.1)"
+                color: 'rgba(128,128,128,0.1)'
               }
               }
             },
             },
             padding: 5,
             padding: 5,
             textStyle: {
             textStyle: {
-              color: "#fff"
+              color: '#fff'
             },
             },
-            formatter: function (value) {
-              let arr = value[0].name + '<br>';
-              let sum = 0;
+            formatter: function(value) {
+              let arr = value[0].name + '<br>'
+              let sum = 0
               for (var i = 0; i < value.length; i++) {
               for (var i = 0; i < value.length; i++) {
-                var datalist = value[i].marker + value[i].seriesName + ' : ' + value[i].data + '<br>';
-                if (i == value.length - 1 || i == value.length - 2) {
-                  sum += 0;
+                var datalist = value[i].marker + value[i].seriesName + ' : ' + value[i].data + '<br>'
+                if (i === value.length - 1 || i === value.length - 2) {
+                  sum += 0
                 } else {
                 } else {
-                  sum += value[i].data;
+                  sum += value[i].data
                 }
                 }
-                arr += datalist;
+                arr += datalist
               };
               };
-              return arr + value[value.length - 1].marker + that.$t('totalAnalysis.ach_text4') + ':' + sum;
+              return arr + value[value.length - 1].marker + that.$t('totalAnalysis.ach_text4') + ':' + sum
             }
             }
 
 
           },
           },
@@ -71,65 +71,65 @@
             show: false,
             show: false,
             containLabel: true,
             containLabel: true,
             height: 480,
             height: 480,
-            width: "90%",
-            x2: "5%",
+            width: '90%',
+            x2: '5%',
             tooltip: {
             tooltip: {
               show: true,
               show: true,
-              trigger: "axis", // 触发类型
+              trigger: 'axis', // 触发类型
               textStyle: {
               textStyle: {
-                color: "#666"
-              },
+                color: '#666'
+              }
             }
             }
           },
           },
           dataZoom: [{
           dataZoom: [{
-            "show": true,
-            "height": 10,
-            "xAxisIndex": [
+            'show': true,
+            'height': 10,
+            'xAxisIndex': [
               0
               0
             ],
             ],
             bottom: 30,
             bottom: 30,
-            "start": 0,
-            "end": 100,
+            'start': 0,
+            'end': 100,
             handleIcon: 'M512 497.821538m-418.264615 0a418.264615 418.264615 0 1 0 836.52923 0 418.264615 418.264615 0 1 0-836.52923 0Z',
             handleIcon: 'M512 497.821538m-418.264615 0a418.264615 418.264615 0 1 0 836.52923 0 418.264615 418.264615 0 1 0-836.52923 0Z',
             handleSize: '160%',
             handleSize: '160%',
             handleStyle: {
             handleStyle: {
-              color: "#d3dee5",
+              color: '#d3dee5'
 
 
             },
             },
             textStyle: {
             textStyle: {
-              color: "#fff"
+              color: '#fff'
             },
             },
-            borderColor: "#90979c",
-            borderRadius:"5px"
+            borderColor: '#90979c',
+            borderRadius: '5px'
           }, {
           }, {
-            "type": "inside",
-            "show": true,
-            "height": 15,
-            "start": 0,
-            "end": 100
+            'type': 'inside',
+            'show': true,
+            'height': 15,
+            'start': 0,
+            'end': 100
           }],
           }],
           xAxis: {
           xAxis: {
             show: true, // 是否显示
             show: true, // 是否显示
-            position: "bottom", // x轴的位置
+            position: 'bottom', // x轴的位置
             offset: 0, // x轴相对于默认位置的偏移
             offset: 0, // x轴相对于默认位置的偏移
-            type: "category", // 轴类型, 默认为 'category'
-            name: "月份", // 轴名称
-            nameLocation: "end", // 轴名称相对位置
+            type: 'category', // 轴类型, 默认为 'category'
+            name: '月份', // 轴名称
+            nameLocation: 'end', // 轴名称相对位置
             nameTextStyle: {
             nameTextStyle: {
-              color: "transparent",
+              color: 'transparent',
               padding: [5, 0, 10, -5]
               padding: [5, 0, 10, -5]
             },
             },
             nameGap: 35, // 坐标轴名称与轴线之间的距离
             nameGap: 35, // 坐标轴名称与轴线之间的距离
             nameRotate: 0, // 坐标轴名字旋转
             nameRotate: 0, // 坐标轴名字旋转
             axisLine: {
             axisLine: {
               show: false, // 是否显示
               show: false, // 是否显示
-              symbol: ["none", "arrow"], // 是否显示轴线箭头
+              symbol: ['none', 'arrow'], // 是否显示轴线箭头
               symbolSize: [8, 8], // 箭头大小
               symbolSize: [8, 8], // 箭头大小
               symbolOffset: [0, 7], // 箭头位置
               symbolOffset: [0, 7], // 箭头位置
               lineStyle: {
               lineStyle: {
-                color: "#6aabef",
+                color: '#6aabef',
                 width: 1,
                 width: 1,
-                type: "solid"
+                type: 'solid'
               }
               }
             },
             },
             axisTick: {
             axisTick: {
@@ -139,9 +139,9 @@
               length: 3, // 长度
               length: 3, // 长度
               lineStyle: {
               lineStyle: {
                 // 默认取轴线的样式
                 // 默认取轴线的样式
-                color: "#989898",
+                color: '#989898',
                 width: 2,
                 width: 2,
-                type: "solid"
+                type: 'solid'
               }
               }
             },
             },
             axisLabel: {
             axisLabel: {
@@ -150,14 +150,14 @@
               inside: false, // 是否朝内
               inside: false, // 是否朝内
               rotate: 45, // 旋转角度
               rotate: 45, // 旋转角度
               margin: 15, // 刻度标签与轴线之间的距离
               margin: 15, // 刻度标签与轴线之间的距离
-              color: "#989898", // 默认取轴线的颜色,
+              color: '#989898', // 默认取轴线的颜色,
               fontSize: 14,
               fontSize: 14,
-              fontFamily: "Microsoft YaHei"
+              fontFamily: 'Microsoft YaHei'
             },
             },
             splitLine: {
             splitLine: {
               show: true,
               show: true,
               lineStyle: {
               lineStyle: {
-                color: '#4c504a',
+                color: '#4c504a'
               }
               }
             },
             },
             splitArea: {
             splitArea: {
@@ -168,12 +168,12 @@
           //   ------   y轴  ----------
           //   ------   y轴  ----------
           yAxis: {
           yAxis: {
             show: true, // 是否显示
             show: true, // 是否显示
-            position: "left", // y轴位置
+            position: 'left', // y轴位置
             offset: 0, // y轴相对于默认位置的偏移
             offset: 0, // y轴相对于默认位置的偏移
-            type: "value", // 轴类型,默认为 ‘category’
-            nameLocation: "end", // 轴名称相对位置value
+            type: 'value', // 轴类型,默认为 ‘category’
+            nameLocation: 'end', // 轴名称相对位置value
             nameTextStyle: {
             nameTextStyle: {
-              color: "#fff",
+              color: '#fff',
               padding: [5, 0, 0, 5] // 坐标轴名称相对位置
               padding: [5, 0, 0, 5] // 坐标轴名称相对位置
             },
             },
             nameGap: 15, // 坐标轴名称与轴线之间的距离
             nameGap: 15, // 坐标轴名称与轴线之间的距离
@@ -181,13 +181,13 @@
 
 
             axisLine: {
             axisLine: {
               show: false, // 是否显示
               show: false, // 是否显示
-              symbol: ["none", "arrow"], // 是否显示轴线箭头
+              symbol: ['none', 'arrow'], // 是否显示轴线箭头
               symbolSize: [8, 8], // 箭头大小
               symbolSize: [8, 8], // 箭头大小
               symbolOffset: [0, 7], // 箭头位置
               symbolOffset: [0, 7], // 箭头位置
               lineStyle: {
               lineStyle: {
-                color: "#6aabef",
+                color: '#6aabef',
                 width: 1,
                 width: 1,
-                type: "solid"
+                type: 'solid'
               }
               }
             },
             },
             axisTick: {
             axisTick: {
@@ -195,9 +195,9 @@
               inside: true, // 是否朝内
               inside: true, // 是否朝内
               length: 3, // 长度
               length: 3, // 长度
               lineStyle: {
               lineStyle: {
-                color: "#989898", // 默认取轴线的颜色
+                color: '#989898', // 默认取轴线的颜色
                 width: 2,
                 width: 2,
-                type: "solid"
+                type: 'solid'
               }
               }
             },
             },
             axisLabel: {
             axisLabel: {
@@ -205,102 +205,102 @@
               inside: false, // 是否朝内
               inside: false, // 是否朝内
               rotate: 0, // 旋转角度
               rotate: 0, // 旋转角度
               margin: 8, // 刻度标签与轴线之间的距离
               margin: 8, // 刻度标签与轴线之间的距离
-              color: "#989898", // 默认轴线的颜色
+              color: '#989898', // 默认轴线的颜色
               fontSize: 12,
               fontSize: 12,
-              fontFamily: "Microsoft YaHei"
+              fontFamily: 'Microsoft YaHei'
             },
             },
             splitLine: {
             splitLine: {
               show: true,
               show: true,
               lineStyle: {
               lineStyle: {
-                color: "#4c504a",
+                color: '#4c504a',
                 width: 0.5,
                 width: 0.5,
-                type: "solid"
+                type: 'solid'
               }
               }
             }
             }
           },
           },
           series: [
           series: [
             {
             {
-              name: "语文",
-              type: "bar",
+              name: '语文',
+              type: 'bar',
               stack: '英语',
               stack: '英语',
               legendHoverLink: true,
               legendHoverLink: true,
               itemStyle: {
               itemStyle: {
-                color: "#db615e",
-                width: 20,
+                color: '#db615e',
+                width: 20
               },
               },
               barWidth: 40,
               barWidth: 40,
               data: data.map(item => item.chinese)
               data: data.map(item => item.chinese)
             },
             },
             {
             {
-              name: "数学",
-              type: "bar",
+              name: '数学',
+              type: 'bar',
               stack: '英语',
               stack: '英语',
               legendHoverLink: true,
               legendHoverLink: true,
               itemStyle: {
               itemStyle: {
-                color: "#db8dd2",
-                width: 20,
+                color: '#db8dd2',
+                width: 20
               },
               },
               barWidth: 40,
               barWidth: 40,
               data: data.map(item => item.math)
               data: data.map(item => item.math)
             },
             },
             {
             {
-              name: "英语",
-              type: "bar",
+              name: '英语',
+              type: 'bar',
               stack: '英语',
               stack: '英语',
               legendHoverLink: true,
               legendHoverLink: true,
               itemStyle: {
               itemStyle: {
-                color: "#42beda",
-                width: 20,
+                color: '#42beda',
+                width: 20
               },
               },
               barWidth: 40,
               barWidth: 40,
               data: data.map(item => item.english)
               data: data.map(item => item.english)
             },
             },
             {
             {
-              name: "生物",
-              type: "bar",
+              name: '生物',
+              type: 'bar',
               stack: '英语',
               stack: '英语',
               legendHoverLink: true,
               legendHoverLink: true,
               itemStyle: {
               itemStyle: {
-                color: "#1eb58d",
-                width: 20,
+                color: '#1eb58d',
+                width: 20
               },
               },
               barWidth: 40,
               barWidth: 40,
               data: data.map(item => item.biology)
               data: data.map(item => item.biology)
             },
             },
             {
             {
-              name: "化学",
-              type: "bar",
+              name: '化学',
+              type: 'bar',
               stack: '英语',
               stack: '英语',
               legendHoverLink: true,
               legendHoverLink: true,
               itemStyle: {
               itemStyle: {
-                color: "#99ccff",
-                width: 10,
+                color: '#99ccff',
+                width: 10
               },
               },
               data: data.map(item => item.chemistry)
               data: data.map(item => item.chemistry)
             },
             },
             {
             {
-              name: "物理",
-              type: "bar",
+              name: '物理',
+              type: 'bar',
               stack: '英语',
               stack: '英语',
               legendHoverLink: true,
               legendHoverLink: true,
               itemStyle: {
               itemStyle: {
-                color: "#dbaf4f",
-                width: 10,
+                color: '#dbaf4f',
+                width: 10
               },
               },
               barWidth: 40,
               barWidth: 40,
               data: data.map(item => item.physics)
               data: data.map(item => item.physics)
             },
             },
             {
             {
               name: this.$t('totalAnalysis.ach_text5'),
               name: this.$t('totalAnalysis.ach_text5'),
-              type: "line",
+              type: 'line',
               itemStyle: {
               itemStyle: {
-                color: "#66ff99",
-                width: 2,
+                color: '#66ff99',
+                width: 2
               },
               },
               symbol: 'none',
               symbol: 'none',
               lineStyle: {
               lineStyle: {
-                type: "dashed",
-                width: 0,
+                type: 'dashed',
+                width: 0
               },
               },
               markLine: {
               markLine: {
                 data: [
                 data: [
@@ -308,7 +308,7 @@
                 ],
                 ],
                 lineStyle: {
                 lineStyle: {
                   color: '#66ff99',
                   color: '#66ff99',
-                  type: "dashed",
+                  type: 'dashed',
                   width: 2
                   width: 2
                 }
                 }
               },
               },
@@ -316,15 +316,15 @@
             },
             },
             {
             {
               name: this.$t('totalAnalysis.ach_text6'),
               name: this.$t('totalAnalysis.ach_text6'),
-              type: "line",
+              type: 'line',
               itemStyle: {
               itemStyle: {
-                color: "#11C2EE",
-                width: 2,
+                color: '#11C2EE',
+                width: 2
               },
               },
               symbol: 'none',
               symbol: 'none',
               lineStyle: {
               lineStyle: {
-                type: "dashed",
-                width: 0,
+                type: 'dashed',
+                width: 0
               },
               },
               markLine: {
               markLine: {
                 data: [
                 data: [
@@ -332,66 +332,65 @@
                 ],
                 ],
                 lineStyle: {
                 lineStyle: {
                   color: '#11C2EE',
                   color: '#11C2EE',
-                  type: "dashed",
+                  type: 'dashed',
                   width: 2
                   width: 2
                 }
                 }
               },
               },
               data: data.map(item => this.areaData)
               data: data.map(item => this.areaData)
-            },
+            }
           ]
           ]
-        };
+        }
 
 
         // 绘制图表
         // 绘制图表
-        myBar.setOption(option);
-        window.addEventListener("resize", function () {
-          myBar.resize();
-        });
+        myBar.setOption(option)
+        window.addEventListener('resize', function() {
+          myBar.resize()
+        })
 
 
-        myBar.on('legendselectchanged', function (obj) {
-          var selected = obj.selected;
-          var legend = obj.name;
-          let arr = [];
+        myBar.on('legendselectchanged', function(obj) {
+          var selected = obj.selected
+          var legend = obj.name
+          let arr = []
           for (let i in selected) {
           for (let i in selected) {
-            let o = {};
-            o[i] = selected[i];
+            let o = {}
+            o[i] = selected[i]
             arr.push(o)
             arr.push(o)
           }
           }
-          arr.length = 6;
-          let keyArr = [];
+          arr.length = 6
+          let keyArr = []
           arr.forEach(item => {
           arr.forEach(item => {
             for (let key in item) {
             for (let key in item) {
               if (item[key]) {
               if (item[key]) {
-                keyArr.push(key);
+                keyArr.push(key)
               }
               }
             }
             }
           })
           })
           if (keyArr.length) {
           if (keyArr.length) {
-            this.lineData = 440 - (100 - Math.random().toFixed(2) * 20) * (6 - keyArr.length);
-            this.areaData = 495 - (100 - Math.random().toFixed(2) * 20) * (6 - keyArr.length);
+            this.lineData = 440 - (100 - Math.random().toFixed(2) * 20) * (6 - keyArr.length)
+            this.areaData = 495 - (100 - Math.random().toFixed(2) * 20) * (6 - keyArr.length)
           } else {
           } else {
-            this.lineData = 0;
-            this.areaData = 0;
+            this.lineData = 0
+            this.areaData = 0
           }
           }
-          option.series[option.series.length - 2].data = [...Array(10).keys()].map(item => this.lineData);
-          option.series[option.series.length - 1].data = [...Array(10).keys()].map(item => this.areaData);
-          myBar.setOption(option);
-
-        });
+          option.series[option.series.length - 2].data = [...Array(10).keys()].map(item => this.lineData)
+          option.series[option.series.length - 1].data = [...Array(10).keys()].map(item => this.areaData)
+          myBar.setOption(option)
+        })
       }
       }
     },
     },
     computed: {
     computed: {
-      //获取最新柱状图数据
+      // 获取最新柱状图数据
       getBaseBarData() {
       getBaseBarData() {
-        let list = this.$store.state.totalAnalysis.baseBarData;
-        return list;
+        let list = this.$store.state.totalAnalysis.baseBarData
+        return list
       }
       }
     },
     },
     watch: {
     watch: {
       getBaseBarData(val) {
       getBaseBarData(val) {
-        this.drawLine(val);
+        this.drawLine(val)
       }
       }
     }
     }
-  };
+  }
 </script>
 </script>
 
 
 <style scoped>
 <style scoped>

+ 27 - 30
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseChangeLine.vue

@@ -4,18 +4,18 @@
 
 
 <script>
 <script>
   export default {
   export default {
-    name: "hello",
-    props: ["poperData", "lineColor", "isLoad"],
+    name: 'hello',
+    props: ['poperData', 'lineColor', 'isLoad'],
     data() {
     data() {
       return {
       return {
-        isLoadLine:false
-      };
+        isLoadLine: false
+      }
     },
     },
 
 
     methods: {
     methods: {
       drawLine(datas) {
       drawLine(datas) {
         // 基于准备好的dom,初始化echarts实例
         // 基于准备好的dom,初始化echarts实例
-        let myLine = this.$echarts.init(document.getElementsByClassName("myEntryLine")[0], 'chalk');
+        let myLine = this.$echarts.init(document.getElementsByClassName('myEntryLine')[0], 'chalk')
 
 
         // 指定图表的配置项和数据
         // 指定图表的配置项和数据
         var option = {
         var option = {
@@ -31,72 +31,69 @@
           xAxis: {
           xAxis: {
             type: 'category',
             type: 'category',
             show: true,
             show: true,
-            axisLabel:{
-              show:false
+            axisLabel: {
+              show: false
             },
             },
             axisLine: {
             axisLine: {
               symbol: ['none', 'arrow'],
               symbol: ['none', 'arrow'],
               symbolSize: 5,
               symbolSize: 5,
               lineStyle: {
               lineStyle: {
-                color:"#808080"
+                color: '#808080'
               }
               }
             }
             }
           },
           },
           yAxis: {
           yAxis: {
             type: 'value',
             type: 'value',
             show: true,
             show: true,
-            axisLabel:{
-              show:false
+            axisLabel: {
+              show: false
             },
             },
             axisLine: {
             axisLine: {
               symbol: ['none', 'arrow'],
               symbol: ['none', 'arrow'],
               symbolSize: 5,
               symbolSize: 5,
               lineStyle: {
               lineStyle: {
-                color:"#808080"
+                color: '#808080'
               }
               }
             }
             }
           },
           },
           grid: {
           grid: {
-            //height:100,
-            //width:100,
+            // height:100,
+            // width:100,
             top: 'middle',
             top: 'middle',
             left: '3%',
             left: '3%',
             right: '4%',
             right: '4%',
             bottom: '3%',
             bottom: '3%',
             height: '80%',
             height: '80%',
-            containLabel:true
+            containLabel: true
           },
           },
           series: [{
           series: [{
-            name:"得分",
+            name: '得分',
             data: datas,
             data: datas,
             type: 'line',
             type: 'line',
             smooth: true,
             smooth: true,
             itemStyle: {
             itemStyle: {
                 color: this.lineColor,
                 color: this.lineColor,
-                borderColor: "#efefef",
-                borderWidth:2
+                borderColor: '#efefef',
+                borderWidth: 2
               },
               },
-              symbolSize: 5,
+              symbolSize: 5
           }]
           }]
-        };
-
-
+        }
 
 
         // 绘制图表
         // 绘制图表
-        myLine.setOption(option);
-        window.addEventListener("resize", function () {
-          myLine.resize();
-        });
+        myLine.setOption(option)
+        window.addEventListener('resize', function() {
+          myLine.resize()
+        })
       }
       }
     },
     },
     mounted() {
     mounted() {
       if (this.isLoad) {
       if (this.isLoad) {
-        this.isLoadLine = true;
-        this.drawLine(this.poperData);
+        this.isLoadLine = true
+        this.drawLine(this.poperData)
       }
       }
-
-    },
-  };
+    }
+  }
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->

+ 46 - 48
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseCircle.vue

@@ -7,79 +7,78 @@
 
 
 <script>
 <script>
   export default {
   export default {
-    name: "hello",
+    name: 'hello',
     data() {
     data() {
       return {
       return {
-      };
+      }
     },
     },
     mounted() {
     mounted() {
-      this.drawLine();
-
+      this.drawLine()
     },
     },
     methods: {
     methods: {
       drawLine() {
       drawLine() {
         // 基于准备好的dom,初始化echarts实例
         // 基于准备好的dom,初始化echarts实例
-        let myCircle = this.$echarts.init(document.getElementById("myCircle"));
-        let myCircle2 = this.$echarts.init(document.getElementById("myCircle2"));
-        var total = 100;
+        let myCircle = this.$echarts.init(document.getElementById('myCircle'))
+        let myCircle2 = this.$echarts.init(document.getElementById('myCircle2'))
+        var total = 100
         let placeHolderStyle = {
         let placeHolderStyle = {
             normal: {
             normal: {
                 label: {
                 label: {
-                    show: false,
+                    show: false
                 },
                 },
                 labelLine: {
                 labelLine: {
-                    show: false,
+                    show: false
                 }
                 }
             }
             }
-        };
+        }
 
 
         // 指定图表的配置项和数据
         // 指定图表的配置项和数据
         var option = {
         var option = {
           title: {
           title: {
-            text: '校正确作答率',//主标题
-            subtext: '21%',//副标题
-            textStyle: {//主标题样式
+            text: '校正确作答率', // 主标题
+            subtext: '21%', // 副标题
+            textStyle: {// 主标题样式
               color: '#fff',
               color: '#fff',
               fontWeight: '200',
               fontWeight: '200',
               fontSize: 14,
               fontSize: 14,
-              bottom:"20px"
+              bottom: '20px'
             },
             },
-            subtextStyle: {//副标题样式
+            subtextStyle: {// 副标题样式
               color: '#fff',
               color: '#fff',
               fontSize: 38,
               fontSize: 38,
-              fontWeight: '500',
+              fontWeight: '500'
             },
             },
             left: 'center',
             left: 'center',
             bottom: '160ox'
             bottom: '160ox'
           },
           },
           tooltip: {
           tooltip: {
             show: true,
             show: true,
-            trigger: 'item',//提示框触发类型,item数据项图形触发,主要应用于无类目轴的图表(散点图、饼形图等)
-            formatter: function (params, ticket, callback) {//第一个参数数据集、第二个参数是异步回调标志、第三个参数是异步回调
-              return params.seriesName + ": " + params.value + "%";//系列名称:数据值
+            trigger: 'item', // 提示框触发类型,item数据项图形触发,主要应用于无类目轴的图表(散点图、饼形图等)
+            formatter: function(params, ticket, callback) { // 第一个参数数据集、第二个参数是异步回调标志、第三个参数是异步回调
+              return params.seriesName + ': ' + params.value + '%'// 系列名称:数据值
             }
             }
           },
           },
-          color: ['#db615e', '#e6b600', '#db8dd2','#42beda', '#1eb58d'],
+          color: ['#db615e', '#e6b600', '#db8dd2', '#42beda', '#1eb58d'],
           legend: {
           legend: {
-            type: "scroll",
-            itemGap: 10,//图例之间的间距
-            data: ['语文', '数学', '英语','生物','化学'],//图例的数据数组
+            type: 'scroll',
+            itemGap: 10, // 图例之间的间距
+            data: ['语文', '数学', '英语', '生物', '化学'], // 图例的数据数组
             textStyle: {
             textStyle: {
               color: '#fff'
               color: '#fff'
             },
             },
-            y:"bottom"
+            y: 'bottom'
           },
           },
           series: [
           series: [
             {
             {
               name: '语文',
               name: '语文',
               type: 'pie',
               type: 'pie',
-              clockWise: false, //顺时加载
-              hoverAnimation: false, //鼠标移入变大
+              clockWise: false, // 顺时加载
+              hoverAnimation: false, // 鼠标移入变大
               radius: [110, 120],
               radius: [110, 120],
               itemStyle: placeHolderStyle,
               itemStyle: placeHolderStyle,
               label: {
               label: {
                 normal: {
                 normal: {
-                  show: false,
+                  show: false
                 }
                 }
               },
               },
               data: [{
               data: [{
@@ -102,13 +101,13 @@
             {
             {
               name: '数学',
               name: '数学',
               type: 'pie',
               type: 'pie',
-              clockWise: false, //顺时加载
-              hoverAnimation: false, //鼠标移入变大
+              clockWise: false, // 顺时加载
+              hoverAnimation: false, // 鼠标移入变大
               radius: [100, 110],
               radius: [100, 110],
               itemStyle: placeHolderStyle,
               itemStyle: placeHolderStyle,
               label: {
               label: {
                 normal: {
                 normal: {
-                  show: false,
+                  show: false
                 }
                 }
               },
               },
               data: [{
               data: [{
@@ -131,8 +130,8 @@
             {
             {
               name: '英语',
               name: '英语',
               type: 'pie',
               type: 'pie',
-              clockWise: false, //顺时加载
-              hoverAnimation: false, //鼠标移入变大
+              clockWise: false, // 顺时加载
+              hoverAnimation: false, // 鼠标移入变大
               radius: [90, 100],
               radius: [90, 100],
               itemStyle: placeHolderStyle,
               itemStyle: placeHolderStyle,
               data: [{
               data: [{
@@ -155,8 +154,8 @@
             {
             {
               name: '生物',
               name: '生物',
               type: 'pie',
               type: 'pie',
-              clockWise: false, //顺时加载
-              hoverAnimation: false, //鼠标移入变大
+              clockWise: false, // 顺时加载
+              hoverAnimation: false, // 鼠标移入变大
               radius: [80, 90],
               radius: [80, 90],
               itemStyle: placeHolderStyle,
               itemStyle: placeHolderStyle,
               data: [{
               data: [{
@@ -179,8 +178,8 @@
             {
             {
               name: '化学',
               name: '化学',
               type: 'pie',
               type: 'pie',
-              clockWise: false, //顺时加载
-              hoverAnimation: false, //鼠标移入变大
+              clockWise: false, // 顺时加载
+              hoverAnimation: false, // 鼠标移入变大
               radius: [70, 80],
               radius: [70, 80],
               itemStyle: placeHolderStyle,
               itemStyle: placeHolderStyle,
               data: [{
               data: [{
@@ -200,22 +199,21 @@
                 }
                 }
               }]
               }]
             }]
             }]
-        };
-
+        }
 
 
         // 绘制图表
         // 绘制图表
-        myCircle.setOption(option);
-        let rightOption = option;
-        //rightOption.legend.data = [];
-        rightOption.title.text = "区正确作答率"
-        myCircle2.setOption(rightOption);
-        window.addEventListener("resize", function () {
-          myCircle.resize();
-          myCircle2.resize();
-        });
+        myCircle.setOption(option)
+        let rightOption = option
+        // rightOption.legend.data = [];
+        rightOption.title.text = '区正确作答率'
+        myCircle2.setOption(rightOption)
+        window.addEventListener('resize', function() {
+          myCircle.resize()
+          myCircle2.resize()
+        })
       }
       }
     }
     }
-  };
+  }
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->

+ 105 - 117
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseEntryBar.vue

@@ -7,45 +7,44 @@ export default {
     props: ['echartData'],
     props: ['echartData'],
   data() {
   data() {
     return {
     return {
-    };
+    }
   },
   },
   mounted() {
   mounted() {
-    this.drawLine();
-
+    this.drawLine()
   },
   },
   methods: {
   methods: {
     drawLine() {
     drawLine() {
       // 基于准备好的dom,初始化echarts实例
       // 基于准备好的dom,初始化echarts实例
-      let myBar = this.$echarts.init(document.getElementById("entryNumberBar"));
+      let myBar = this.$echarts.init(document.getElementById('entryNumberBar'))
 
 
       // 指定图表的配置项和数据
       // 指定图表的配置项和数据
       var option = {
       var option = {
         legend: {
         legend: {
           //  data:['班级进线人数','班级总人数']
           //  data:['班级进线人数','班级总人数']
           textStyle: {
           textStyle: {
-            color:"#e4eadb"
+            color: '#e4eadb'
           }
           }
         },
         },
         tooltip: {
         tooltip: {
           show: true, // 是否显示提示框,默认为true
           show: true, // 是否显示提示框,默认为true
-          trigger: "axis", // 数据项图形触发
+          trigger: 'axis', // 数据项图形触发
           axisPointer: {
           axisPointer: {
             // 指示样式
             // 指示样式
-            type: "shadow",
-            axis: "auto",
+            type: 'shadow',
+            axis: 'auto',
             shadowStyle: {
             shadowStyle: {
-              color: "rgba(128,128,128,0.1)"
+              color: 'rgba(128,128,128,0.1)'
             }
             }
           },
           },
           padding: 5,
           padding: 5,
           textStyle: {
           textStyle: {
             // 提示框内容的样式
             // 提示框内容的样式
-            color: "#fff"
+            color: '#fff'
           },
           },
-          formatter: function (params) {
-            return params[0].name + '<br>' + params[0].marker + params[0].seriesName + ':' + params[0].data + '<br>'
-              + params[1].marker + params[1].seriesName + ':' + params[1].data + '<br>'
-             + params[2].marker + params[2].seriesName + ':' + params[2].data + '%'
+          formatter: function(params) {
+            return params[0].name + '<br>' + params[0].marker + params[0].seriesName + ':' + params[0].data + '<br>' +
+              params[1].marker + params[1].seriesName + ':' + params[1].data + '<br>' +
+             params[2].marker + params[2].seriesName + ':' + params[2].data + '%'
           }
           }
         },
         },
         // ---- gird区域 ---
         // ---- gird区域 ---
@@ -53,64 +52,64 @@ export default {
           show: false,
           show: false,
           containLabel: true,
           containLabel: true,
           height: 460,
           height: 460,
-          width: "90%",
-          x2: "5%",
+          width: '90%',
+          x2: '5%',
           tooltip: {
           tooltip: {
             show: true,
             show: true,
-            trigger: "axis", // 触发类型
+            trigger: 'axis', // 触发类型
             textStyle: {
             textStyle: {
-              color: "#666"
-            },
+              color: '#666'
+            }
           }
           }
         },
         },
         dataZoom: [{
         dataZoom: [{
-            "show": true,
-            "height": 10,
-            "xAxisIndex": [
+            'show': true,
+            'height': 10,
+            'xAxisIndex': [
               0
               0
             ],
             ],
             bottom: 10,
             bottom: 10,
-            "start": 0,
-            "end": 100,
+            'start': 0,
+            'end': 100,
              handleIcon: 'M512 497.821538m-418.264615 0a418.264615 418.264615 0 1 0 836.52923 0 418.264615 418.264615 0 1 0-836.52923 0Z',
              handleIcon: 'M512 497.821538m-418.264615 0a418.264615 418.264615 0 1 0 836.52923 0 418.264615 418.264615 0 1 0-836.52923 0Z',
             handleSize: '160%',
             handleSize: '160%',
             handleStyle: {
             handleStyle: {
-              color: "#d3dee5",
+              color: '#d3dee5'
 
 
             },
             },
             textStyle: {
             textStyle: {
-              color: "#fff"
+              color: '#fff'
             },
             },
-            borderColor: "#90979c"
+            borderColor: '#90979c'
           }, {
           }, {
-            "type": "inside",
-            "show": true,
-            "height": 15,
-            "start": 0,
-            "end": 100
+            'type': 'inside',
+            'show': true,
+            'height': 15,
+            'start': 0,
+            'end': 100
           }],
           }],
         xAxis: {
         xAxis: {
           show: true, // 是否显示
           show: true, // 是否显示
-          position: "bottom", // x轴的位置
+          position: 'bottom', // x轴的位置
           offset: 0, // x轴相对于默认位置的偏移
           offset: 0, // x轴相对于默认位置的偏移
-          type: "category", // 轴类型, 默认为 'category'
-          name: "月份", // 轴名称
-          nameLocation: "end", // 轴名称相对位置
+          type: 'category', // 轴类型, 默认为 'category'
+          name: '月份', // 轴名称
+          nameLocation: 'end', // 轴名称相对位置
           nameTextStyle: {
           nameTextStyle: {
-            color: "transparent",
+            color: 'transparent',
             padding: [5, 0, 10, -5]
             padding: [5, 0, 10, -5]
           },
           },
           nameGap: 35, // 坐标轴名称与轴线之间的距离
           nameGap: 35, // 坐标轴名称与轴线之间的距离
           nameRotate: 50, // 坐标轴名字旋转
           nameRotate: 50, // 坐标轴名字旋转
           axisLine: {
           axisLine: {
             show: false, // 是否显示
             show: false, // 是否显示
-            symbol: ["none", "arrow"], // 是否显示轴线箭头
+            symbol: ['none', 'arrow'], // 是否显示轴线箭头
             symbolSize: [8, 8], // 箭头大小
             symbolSize: [8, 8], // 箭头大小
             symbolOffset: [0, 7], // 箭头位置
             symbolOffset: [0, 7], // 箭头位置
             lineStyle: {
             lineStyle: {
-              color: "#6aabef",
+              color: '#6aabef',
               width: 1,
               width: 1,
-              type: "solid"
+              type: 'solid'
             }
             }
           },
           },
           axisTick: {
           axisTick: {
@@ -120,9 +119,9 @@ export default {
             length: 3, // 长度
             length: 3, // 长度
             lineStyle: {
             lineStyle: {
               // 默认取轴线的样式
               // 默认取轴线的样式
-              color: "#989898",
+              color: '#989898',
               width: 2,
               width: 2,
-              type: "solid"
+              type: 'solid'
             }
             }
           },
           },
           axisLabel: {
           axisLabel: {
@@ -131,26 +130,26 @@ export default {
             inside: false, // 是否朝内
             inside: false, // 是否朝内
             margin: 15,
             margin: 15,
             rotate: 45,
             rotate: 45,
-            color: "#989898", // 默认取轴线的颜色,
+            color: '#989898' // 默认取轴线的颜色,
           },
           },
           splitLine: {
           splitLine: {
             show: false,
             show: false,
             lineStyle: {
             lineStyle: {
-              color:"#595959"
+              color: '#595959'
             }
             }
           },
           },
           splitArea: {
           splitArea: {
             show: false // 是否显示,默认为false
             show: false // 是否显示,默认为false
           },
           },
-          data:this.echartData.map(item => item.name)
+          data: this.echartData.map(item => item.name)
         },
         },
         yAxis: [
         yAxis: [
         { show: true, // 是否显示
         { show: true, // 是否显示
           offset: 0, // y轴相对于默认位置的偏移
           offset: 0, // y轴相对于默认位置的偏移
-          type: "value", // 轴类型,默认为 ‘category’
-          nameLocation: "end", // 轴名称相对位置value
+          type: 'value', // 轴类型,默认为 ‘category’
+          nameLocation: 'end', // 轴名称相对位置value
           nameTextStyle: {
           nameTextStyle: {
-            color: "#fff",
+            color: '#fff',
             padding: [5, 0, 0, 5] // 坐标轴名称相对位置
             padding: [5, 0, 0, 5] // 坐标轴名称相对位置
           },
           },
           nameGap: 15, // 坐标轴名称与轴线之间的距离
           nameGap: 15, // 坐标轴名称与轴线之间的距离
@@ -159,9 +158,9 @@ export default {
           axisLine: {
           axisLine: {
             show: false, // 是否显示
             show: false, // 是否显示
             lineStyle: {
             lineStyle: {
-              color: "#595959",
+              color: '#595959',
               width: 1,
               width: 1,
-              type: "solid"
+              type: 'solid'
             }
             }
           },
           },
           axisTick: {
           axisTick: {
@@ -169,9 +168,9 @@ export default {
             inside: true, // 是否朝内
             inside: true, // 是否朝内
             length: 3, // 长度
             length: 3, // 长度
             lineStyle: {
             lineStyle: {
-              color: "#989898", // 默认取轴线的颜色
+              color: '#989898', // 默认取轴线的颜色
               width: 2,
               width: 2,
-              type: "solid"
+              type: 'solid'
             }
             }
           },
           },
           axisLabel: {
           axisLabel: {
@@ -179,33 +178,33 @@ export default {
             inside: false, // 是否朝内
             inside: false, // 是否朝内
             rotate: 0, // 旋转角度
             rotate: 0, // 旋转角度
             margin: 8, // 刻度标签与轴线之间的距离
             margin: 8, // 刻度标签与轴线之间的距离
-            color: "#989898", // 默认轴线的颜色
+            color: '#989898', // 默认轴线的颜色
             fontSize: 12,
             fontSize: 12,
-            fontFamily: "Microsoft YaHei"
+            fontFamily: 'Microsoft YaHei'
           },
           },
           splitLine: {
           splitLine: {
             show: true,
             show: true,
             lineStyle: {
             lineStyle: {
-              color: "#4c504a",
+              color: '#4c504a',
               width: 0.5,
               width: 0.5,
-              type: "solid"
+              type: 'solid'
             },
             },
            axisLabel: {
            axisLabel: {
             show: true, // 是否显示
             show: true, // 是否显示
             inside: false, // 是否朝内
             inside: false, // 是否朝内
             rotate: 0, // 旋转角度
             rotate: 0, // 旋转角度
             margin: 8, // 刻度标签与轴线之间的距离
             margin: 8, // 刻度标签与轴线之间的距离
-            color: "#fff", // 默认轴线的颜色
+            color: '#fff', // 默认轴线的颜色
             fontSize: 12,
             fontSize: 12,
-            fontFamily: "Microsoft YaHei"
-          },
+            fontFamily: 'Microsoft YaHei'
+          }
           }
           }
-        },{ show: true, // 是否显示
+        }, { show: true, // 是否显示
           offset: 0, // y轴相对于默认位置的偏移
           offset: 0, // y轴相对于默认位置的偏移
-          type: "value", // 轴类型,默认为 ‘category’
-          nameLocation: "end", // 轴名称相对位置value
+          type: 'value', // 轴类型,默认为 ‘category’
+          nameLocation: 'end', // 轴名称相对位置value
           nameTextStyle: {
           nameTextStyle: {
-            color: "#fff",
+            color: '#fff',
             padding: [5, 0, 0, 5] // 坐标轴名称相对位置
             padding: [5, 0, 0, 5] // 坐标轴名称相对位置
           },
           },
           nameGap: 15, // 坐标轴名称与轴线之间的距离
           nameGap: 15, // 坐标轴名称与轴线之间的距离
@@ -214,9 +213,9 @@ export default {
           axisLine: {
           axisLine: {
             show: false, // 是否显示
             show: false, // 是否显示
             lineStyle: {
             lineStyle: {
-              color: "#595959",
+              color: '#595959',
               width: 1,
               width: 1,
-              type: "solid"
+              type: 'solid'
             }
             }
           },
           },
           axisTick: {
           axisTick: {
@@ -224,9 +223,9 @@ export default {
             inside: true, // 是否朝内
             inside: true, // 是否朝内
             length: 3, // 长度
             length: 3, // 长度
             lineStyle: {
             lineStyle: {
-              color: "#989898", // 默认取轴线的颜色
+              color: '#989898', // 默认取轴线的颜色
               width: 2,
               width: 2,
-              type: "solid"
+              type: 'solid'
             }
             }
           },
           },
           axisLabel: {
           axisLabel: {
@@ -234,123 +233,112 @@ export default {
             inside: false, // 是否朝内
             inside: false, // 是否朝内
             rotate: 0, // 旋转角度
             rotate: 0, // 旋转角度
             margin: 8, // 刻度标签与轴线之间的距离
             margin: 8, // 刻度标签与轴线之间的距离
-            color: "#989898", // 默认轴线的颜色
+            color: '#989898', // 默认轴线的颜色
             fontSize: 12,
             fontSize: 12,
-            fontFamily: "Microsoft YaHei"
+            fontFamily: 'Microsoft YaHei'
           },
           },
           splitLine: {
           splitLine: {
             show: true,
             show: true,
             lineStyle: {
             lineStyle: {
-              color: "#4c504a",
+              color: '#4c504a',
               width: 0.5,
               width: 0.5,
-              type: "solid"
+              type: 'solid'
             },
             },
            axisLabel: {
            axisLabel: {
             show: true, // 是否显示
             show: true, // 是否显示
             inside: false, // 是否朝内
             inside: false, // 是否朝内
             rotate: 0, // 旋转角度
             rotate: 0, // 旋转角度
             margin: 8, // 刻度标签与轴线之间的距离
             margin: 8, // 刻度标签与轴线之间的距离
-            color: "#fff", // 默认轴线的颜色
+            color: '#fff', // 默认轴线的颜色
             fontSize: 12,
             fontSize: 12,
-            fontFamily: "Microsoft YaHei"
-          },
+            fontFamily: 'Microsoft YaHei'
           }
           }
-        },{
+          }
+        }, {
             type: 'value',
             type: 'value',
             splitNumber: 5,
             splitNumber: 5,
-            nameGap:55,
+            nameGap: 55,
             max: 100,
             max: 100,
             min: 0,
             min: 0,
             splitLine: {
             splitLine: {
-              show:true,
+              show: true,
               lineStyle: {
               lineStyle: {
                 color: '#595959'
                 color: '#595959'
               }
               }
             },
             },
             nameTextStyle: {
             nameTextStyle: {
-              color: "#999"
+              color: '#999'
             },
             },
             axisLabel: {
             axisLabel: {
               show: true, // 是否显示
               show: true, // 是否显示
               inside: false, // 是否朝内
               inside: false, // 是否朝内
               rotate: 0, // 旋转角度
               rotate: 0, // 旋转角度
               margin: 8, // 刻度标签与轴线之间的距离
               margin: 8, // 刻度标签与轴线之间的距离
-              color: "#989898", // 默认轴线的颜色
+              color: '#989898', // 默认轴线的颜色
               fontSize: 12,
               fontSize: 12,
-              fontFamily: "Microsoft YaHei",
-              formatter: function (value) {
+              fontFamily: 'Microsoft YaHei',
+              formatter: function(value) {
                 return value + '%'
                 return value + '%'
               }
               }
             },
             },
             splitArea: {
             splitArea: {
               show: false
               show: false
-            },
+            }
           }],
           }],
         series: [
         series: [
           {
           {
-            name:this.$t('totalAnalysis.ach_text7'),
-            type: "bar", 
+            name: this.$t('totalAnalysis.ach_text7'),
+            type: 'bar',
             itemStyle: {
             itemStyle: {
-              color: "#787c76",
-              width: 20,
+              color: '#787c76',
+              width: 20
             },
             },
-            barWidth:40,
-            data:this.echartData.map(item => item.totalNum)
+            barWidth: 40,
+            data: this.echartData.map(item => item.totalNum)
           },
           },
           {
           {
-            name:this.$t('totalAnalysis.ach_text8'),
-            type: "bar", 
+            name: this.$t('totalAnalysis.ach_text8'),
+            type: 'bar',
             itemStyle: {
             itemStyle: {
-              color: "#42beda",
-              width: 20,
+              color: '#42beda',
+              width: 20
             },
             },
-            barWidth:40,
+            barWidth: 40,
             barGap: '-100%',
             barGap: '-100%',
-            data:this.echartData.map(item => item.entryNum)
+            data: this.echartData.map(item => item.entryNum)
           },
           },
           {
           {
             name: this.$t('totalAnalysis.ach_text9'),
             name: this.$t('totalAnalysis.ach_text9'),
             type: 'line',
             type: 'line',
-            color: "#66cc00",
+            color: '#66cc00',
             itemStyle: {
             itemStyle: {
               color: '#66cc00',
               color: '#66cc00',
-              borderColor: "#efefef",
-              borderWidth:3
+              borderColor: '#efefef',
+              borderWidth: 3
             },
             },
             symbolSize: 10,
             symbolSize: 10,
             lineStyle: {
             lineStyle: {
               normal: {
               normal: {
                 width: 2,
                 width: 2,
-                color: "#ffd300",
+                color: '#ffd300',
                 shadowColor: 'rgba(245,128,128, 0.5)',
                 shadowColor: 'rgba(245,128,128, 0.5)',
                 shadowBlur: 10,
                 shadowBlur: 10,
                 shadowOffsetY: 7
                 shadowOffsetY: 7
               }
               }
             },
             },
-            data:this.echartData.map(item => item.entryRate),
-          },
+            data: this.echartData.map(item => item.entryRate)
+          }
         ]
         ]
-      };
+      }
 
 
       // 绘制图表
       // 绘制图表
-      myBar.setOption(option);
-      window.addEventListener("resize", function() {
-        myBar.resize();
-      });
-
-      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("暂不支持查看其它班级数据!")
-      //  }
-      //})
+      myBar.setOption(option)
+      window.addEventListener('resize', function() {
+        myBar.resize()
+      })
     }
     }
   }
   }
-};
+}
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->

+ 25 - 27
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseEntryLine.vue

@@ -4,19 +4,18 @@
 
 
 <script>
 <script>
   export default {
   export default {
-    props:['echartData'],
+    props: ['echartData'],
     data() {
     data() {
       return {
       return {
-      };
+      }
     },
     },
     mounted() {
     mounted() {
-      this.drawLine();
-
+      this.drawLine()
     },
     },
     methods: {
     methods: {
       drawLine() {
       drawLine() {
         // 基于准备好的dom,初始化echarts实例
         // 基于准备好的dom,初始化echarts实例
-        let myLine = this.$echarts.init(document.getElementById("myEntryLine"), 'chalk');
+        let myLine = this.$echarts.init(document.getElementById('myEntryLine'), 'chalk')
 
 
         // 指定图表的配置项和数据
         // 指定图表的配置项和数据
         var option = {
         var option = {
@@ -25,7 +24,7 @@
           },
           },
           legend: {
           legend: {
             textStyle: {
             textStyle: {
-              color: "#e4eadb"
+              color: '#e4eadb'
             }
             }
           },
           },
           toolbox: {
           toolbox: {
@@ -40,71 +39,70 @@
             right: '4%',
             right: '4%',
             bottom: '3%',
             bottom: '3%',
             height: '80%',
             height: '80%',
-            containLabel:true
+            containLabel: true
           },
           },
           xAxis: {
           xAxis: {
             type: 'category',
             type: 'category',
             axisLine: {
             axisLine: {
               lineStyle: {
               lineStyle: {
-                color: "#999"
+                color: '#999'
               }
               }
             },
             },
-            data:this.echartData.map(item => item.name)
+            data: this.echartData.map(item => item.name)
           },
           },
           yAxis: {
           yAxis: {
             type: 'value',
             type: 'value',
             splitNumber: 5,
             splitNumber: 5,
-            nameGap:55,
+            nameGap: 55,
             max: 100,
             max: 100,
-            min:0,
+            min: 0,
             splitLine: {
             splitLine: {
-              show:true,
+              show: true,
               lineStyle: {
               lineStyle: {
                 color: '#595959'
                 color: '#595959'
               }
               }
             },
             },
             nameTextStyle: {
             nameTextStyle: {
-              color: "#999"
+              color: '#999'
             },
             },
             splitArea: {
             splitArea: {
               show: false
               show: false
-            },
+            }
           },
           },
           series: [
           series: [
             {
             {
               name: '进线率',
               name: '进线率',
               type: 'line',
               type: 'line',
-              color: "#42beda",
+              color: '#42beda',
               itemStyle: {
               itemStyle: {
                 color: '#42beda',
                 color: '#42beda',
-                borderColor: "#efefef",
-                borderWidth:3
+                borderColor: '#efefef',
+                borderWidth: 3
               },
               },
               symbolSize: 10,
               symbolSize: 10,
               lineStyle: {
               lineStyle: {
                 normal: {
                 normal: {
                   width: 5,
                   width: 5,
-                  color: "#42beda",
+                  color: '#42beda',
                   shadowColor: 'rgba(245,128,128, 0.5)',
                   shadowColor: 'rgba(245,128,128, 0.5)',
                   shadowBlur: 10,
                   shadowBlur: 10,
                   shadowOffsetY: 7
                   shadowOffsetY: 7
                 }
                 }
               },
               },
-              data:this.echartData.map(item => item.entryRate),
+              data: this.echartData.map(item => item.entryRate),
               smooth: true
               smooth: true
-            },
+            }
           ]
           ]
-        };
-
+        }
 
 
         // 绘制图表
         // 绘制图表
-        myLine.setOption(option);
-        window.addEventListener("resize", function () {
-          myLine.resize();
-        });
+        myLine.setOption(option)
+        window.addEventListener('resize', function() {
+          myLine.resize()
+        })
       }
       }
     }
     }
-  };
+  }
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->

+ 57 - 59
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseKnowledgeBar.vue

@@ -12,72 +12,70 @@ export default {
       }
       }
       },
       },
     created() {
     created() {
-      console.log(this.echartData);
-      this.x = this.echartData.map(item => item.name);
-      this.y = this.echartData.map(item => item.value);
-      this.y = this.y.map(item => (item / this.sumArr(this.y)).toFixed(4) * 100);
-      console.log(this.y);
+      console.log(this.echartData)
+      this.x = this.echartData.map(item => item.name)
+      this.y = this.echartData.map(item => item.value)
+      this.y = this.y.map(item => (item / this.sumArr(this.y)).toFixed(4) * 100)
+      console.log(this.y)
     },
     },
   mounted() {
   mounted() {
-    this.drawLine();
-
+    this.drawLine()
   },
   },
     methods: {
     methods: {
-    sumArr(arr){
-        var sum = 0;
-        arr.forEach(function(val,index,arr){
-              sum += val;
+    sumArr(arr) {
+        var sum = 0
+        arr.forEach(function(val, index, arr) {
+              sum += val
         })
         })
-      return sum;
+      return sum
     },
     },
     drawLine() {
     drawLine() {
       // 基于准备好的dom,初始化echarts实例
       // 基于准备好的dom,初始化echarts实例
-      let myBar = this.$echarts.init(document.getElementsByClassName("knowledgeBar")[0]);
+      let myBar = this.$echarts.init(document.getElementsByClassName('knowledgeBar')[0])
 
 
       // 指定图表的配置项和数据
       // 指定图表的配置项和数据
       var option = {
       var option = {
         tooltip: {
         tooltip: {
           show: true, // 是否显示提示框,默认为true
           show: true, // 是否显示提示框,默认为true
-          trigger: "axis", // 数据项图形触发
+          trigger: 'axis', // 数据项图形触发
           axisPointer: {
           axisPointer: {
             // 指示样式
             // 指示样式
-            type: "shadow",
-            axis: "auto",
+            type: 'shadow',
+            axis: 'auto',
             shadowStyle: {
             shadowStyle: {
-              color: "rgba(128,128,128,0.1)"
+              color: 'rgba(128,128,128,0.1)'
             }
             }
           },
           },
           padding: 5,
           padding: 5,
           textStyle: {
           textStyle: {
             // 提示框内容的样式
             // 提示框内容的样式
-            color: "#fff"
+            color: '#fff'
           },
           },
-          formatter: function (params) {
+          formatter: function(params) {
               return params[0].marker + params[0].name + '<br>' + '占比:' + params[0].data + '%<br>'
               return params[0].marker + params[0].name + '<br>' + '占比:' + params[0].data + '%<br>'
-               
            }
            }
         },
         },
         // ---- gird区域 ---
         // ---- gird区域 ---
         grid: {
         grid: {
           show: false, // 是否显示直角坐标系网格
           show: false, // 是否显示直角坐标系网格
           top: 30, // 相对位置 top\bottom\left\right
           top: 30, // 相对位置 top\bottom\left\right
-          height:430,
-          containLabel: true, // gird 区域是否包含坐标轴的刻度标签
+          height: 430,
+          containLabel: true // gird 区域是否包含坐标轴的刻度标签
         },
         },
         dataZoom: {
         dataZoom: {
           show: true,
           show: true,
           realtime: true,
           realtime: true,
-          type: "inside",
+          type: 'inside'
         },
         },
         xAxis: {
         xAxis: {
           show: true, // 是否显示
           show: true, // 是否显示
-          position: "bottom", // x轴的位置
+          position: 'bottom', // x轴的位置
           offset: 0, // x轴相对于默认位置的偏移
           offset: 0, // x轴相对于默认位置的偏移
-          type: "category", // 轴类型, 默认为 'category'
-          name: "月份", // 轴名称
-          nameLocation: "end", // 轴名称相对位置
+          type: 'category', // 轴类型, 默认为 'category'
+          name: '月份', // 轴名称
+          nameLocation: 'end', // 轴名称相对位置
           nameTextStyle: {
           nameTextStyle: {
-            color: "transparent",
+            color: 'transparent',
             padding: [5, 0, 10, -5]
             padding: [5, 0, 10, -5]
           },
           },
           nameGap: 35, // 坐标轴名称与轴线之间的距离
           nameGap: 35, // 坐标轴名称与轴线之间的距离
@@ -87,13 +85,13 @@ export default {
             show: true, // 是否显示
             show: true, // 是否显示
             inside: false, // 是否朝内
             inside: false, // 是否朝内
             margin: 15,
             margin: 15,
-            rotate:60,
-            color: "#989898", // 默认取轴线的颜色,
+            rotate: 60,
+            color: '#989898' // 默认取轴线的颜色,
           },
           },
           splitLine: {
           splitLine: {
             show: false,
             show: false,
             lineStyle: {
             lineStyle: {
-               color: '#4c504a',
+               color: '#4c504a'
             }
             }
           },
           },
           splitArea: {
           splitArea: {
@@ -103,12 +101,12 @@ export default {
         },
         },
         yAxis: {
         yAxis: {
           show: true, // 是否显示
           show: true, // 是否显示
-          position: "left", // y轴位置
+          position: 'left', // y轴位置
           offset: 0, // y轴相对于默认位置的偏移
           offset: 0, // y轴相对于默认位置的偏移
-          type: "value", // 轴类型,默认为 ‘category’
-          nameLocation: "end", // 轴名称相对位置value
+          type: 'value', // 轴类型,默认为 ‘category’
+          nameLocation: 'end', // 轴名称相对位置value
           nameTextStyle: {
           nameTextStyle: {
-            color: "#fff",
+            color: '#fff',
             padding: [5, 0, 0, 5] // 坐标轴名称相对位置
             padding: [5, 0, 0, 5] // 坐标轴名称相对位置
           },
           },
           nameGap: 15, // 坐标轴名称与轴线之间的距离
           nameGap: 15, // 坐标轴名称与轴线之间的距离
@@ -116,9 +114,9 @@ export default {
           axisLine: {
           axisLine: {
             show: false, // 是否显示
             show: false, // 是否显示
             lineStyle: {
             lineStyle: {
-              color: "#595959",
+              color: '#595959',
               width: 1,
               width: 1,
-              type: "solid"
+              type: 'solid'
             }
             }
           },
           },
           axisLabel: {
           axisLabel: {
@@ -126,51 +124,51 @@ export default {
             inside: false, // 是否朝内
             inside: false, // 是否朝内
             rotate: 0, // 旋转角度
             rotate: 0, // 旋转角度
             margin: 8, // 刻度标签与轴线之间的距离
             margin: 8, // 刻度标签与轴线之间的距离
-            color: "#989898", // 默认轴线的颜色
+            color: '#989898', // 默认轴线的颜色
             fontSize: 12,
             fontSize: 12,
-            formatter: '{value} %' ,
+            formatter: '{value} %'
 
 
           },
           },
           splitLine: {
           splitLine: {
             show: true,
             show: true,
             lineStyle: {
             lineStyle: {
-              color: "#4c504a",
+              color: '#4c504a',
               width: 0.5,
               width: 0.5,
-              type: "solid"
+              type: 'solid'
             }
             }
           }
           }
         },
         },
         series: [
         series: [
           {
           {
-            type: "bar", 
+            type: 'bar',
             itemStyle: {
             itemStyle: {
-              color: "#4ad8f1",
-              width: 20,
+              color: '#4ad8f1',
+              width: 20
             },
             },
-            barWidth:30,
-            data:this.y
+            barWidth: 30,
+            data: this.y
           }]
           }]
-      };
+      }
 
 
       // 绘制图表
       // 绘制图表
-      myBar.setOption(option);
-      window.addEventListener("resize", function() {
-        myBar.resize();
-      });
+      myBar.setOption(option)
+      window.addEventListener('resize', function() {
+        myBar.resize()
+      })
 
 
-      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})
+      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 {
         } else {
-          that.$Message.warning("暂不支持查看其它班级数据!")
+          that.$Message.warning('暂不支持查看其它班级数据!')
         }
         }
       })
       })
     }
     }
   }
   }
-};
+}
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->

+ 73 - 75
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseKnowledgeDetail.vue

@@ -4,52 +4,51 @@
 
 
 <script>
 <script>
   export default {
   export default {
-    name: "hello",
+    name: 'hello',
     props: ['echartData'],
     props: ['echartData'],
     data() {
     data() {
       return {
       return {
-        knowledgeData:[],
+        knowledgeData: [],
         x: [],
         x: [],
         y: [],
         y: [],
         activeItemIndex: 0
         activeItemIndex: 0
-      };
+      }
     },
     },
 
 
     created() {
     created() {
-      this.knowledgeData = this.echartData;
-      this.x = this.echartData.map(item => item.knowledgePoint);
-      let arr = this.echartData.map(item => item.gradeScoreRate);
-      arr.forEach(items => items = items.replace("\"", "").replace("\"", ""));
-      this.y = arr;
-      
+      this.knowledgeData = this.echartData
+      this.x = this.echartData.map(item => item.knowledgePoint)
+      let arr = this.echartData.map(item => item.gradeScoreRate)
+      arr.forEach(items => items = items.replace('"', '').replace('"', ''))
+      this.y = arr
     },
     },
 
 
     methods: {
     methods: {
       drawLine() {
       drawLine() {
-        let _this = this;
+        let _this = this
         // 基于准备好的dom,初始化echarts实例
         // 基于准备好的dom,初始化echarts实例
-        let myBar = this.$echarts.init(document.getElementById("knowledgeBar"));
+        let myBar = this.$echarts.init(document.getElementById('knowledgeBar'))
         // 指定图表的配置项和数据
         // 指定图表的配置项和数据
         var option = {
         var option = {
           tooltip: {
           tooltip: {
             show: true, // 是否显示提示框,默认为true
             show: true, // 是否显示提示框,默认为true
-            trigger: "axis", // 数据项图形触发
+            trigger: 'axis', // 数据项图形触发
             axisPointer: {
             axisPointer: {
               // 指示样式
               // 指示样式
-              type: "shadow",
-              axis: "auto",
+              type: 'shadow',
+              axis: 'auto',
               shadowStyle: {
               shadowStyle: {
-                color: "rgba(128,128,128,0.1)"
+                color: 'rgba(128,128,128,0.1)'
               }
               }
             },
             },
             padding: 5,
             padding: 5,
             textStyle: {
             textStyle: {
               // 提示框内容的样式
               // 提示框内容的样式
-              color: "#fff"
+              color: '#fff'
             },
             },
-            formatter: function (value) {
-              //console.log(value);
-              return value[0].name + ' : ' + value[0].data + '%';
+            formatter: function(value) {
+              // console.log(value);
+              return value[0].name + ' : ' + value[0].data + '%'
              }
              }
           },
           },
           // ---- gird区域 ---
           // ---- gird区域 ---
@@ -57,43 +56,43 @@
             show: false, // 是否显示直角坐标系网格
             show: false, // 是否显示直角坐标系网格
             top: 50, // 相对位置 top\bottom\left\right
             top: 50, // 相对位置 top\bottom\left\right
             height: 480,
             height: 480,
-            containLabel: true, // gird 区域是否包含坐标轴的刻度标签
+            containLabel: true // gird 区域是否包含坐标轴的刻度标签
           },
           },
           dataZoom: [{
           dataZoom: [{
-            "show": true,
-            "height": 10,
-            "xAxisIndex": [
+            'show': true,
+            'height': 10,
+            'xAxisIndex': [
               0
               0
             ],
             ],
             bottom: 50,
             bottom: 50,
-            "start": 0,
-            "end": 100,
+            'start': 0,
+            'end': 100,
              handleIcon: 'M512 497.821538m-418.264615 0a418.264615 418.264615 0 1 0 836.52923 0 418.264615 418.264615 0 1 0-836.52923 0Z',
              handleIcon: 'M512 497.821538m-418.264615 0a418.264615 418.264615 0 1 0 836.52923 0 418.264615 418.264615 0 1 0-836.52923 0Z',
             handleSize: '160%',
             handleSize: '160%',
             handleStyle: {
             handleStyle: {
-              color: "#d3dee5",
+              color: '#d3dee5'
 
 
             },
             },
             textStyle: {
             textStyle: {
-              color: "#fff"
+              color: '#fff'
             },
             },
-            borderColor: "#90979c"
+            borderColor: '#90979c'
           }, {
           }, {
-            "type": "inside",
-            "show": true,
-            "height": 15,
-            "start": 0,
-            "end": 100
+            'type': 'inside',
+            'show': true,
+            'height': 15,
+            'start': 0,
+            'end': 100
           }],
           }],
           xAxis: {
           xAxis: {
             show: true, // 是否显示
             show: true, // 是否显示
-            position: "bottom", // x轴的位置
+            position: 'bottom', // x轴的位置
             offset: 0, // x轴相对于默认位置的偏移
             offset: 0, // x轴相对于默认位置的偏移
-            type: "category", // 轴类型, 默认为 'category'
-            name: "月份", // 轴名称
-            nameLocation: "end", // 轴名称相对位置
+            type: 'category', // 轴类型, 默认为 'category'
+            name: '月份', // 轴名称
+            nameLocation: 'end', // 轴名称相对位置
             nameTextStyle: {
             nameTextStyle: {
-              color: "transparent",
+              color: 'transparent',
               padding: [5, 0, 10, -5]
               padding: [5, 0, 10, -5]
             },
             },
             nameGap: 35, // 坐标轴名称与轴线之间的距离
             nameGap: 35, // 坐标轴名称与轴线之间的距离
@@ -104,12 +103,12 @@
               inside: false, // 是否朝内
               inside: false, // 是否朝内
               margin: 15,
               margin: 15,
               rotate: 60,
               rotate: 60,
-              color: "#989898", // 默认取轴线的颜色,
+              color: '#989898' // 默认取轴线的颜色,
             },
             },
             splitLine: {
             splitLine: {
               show: false,
               show: false,
               lineStyle: {
               lineStyle: {
-                color: '#4c504a',
+                color: '#4c504a'
               }
               }
             },
             },
             splitArea: {
             splitArea: {
@@ -119,12 +118,12 @@
           },
           },
           yAxis: {
           yAxis: {
             show: true, // 是否显示
             show: true, // 是否显示
-            position: "left", // y轴位置
+            position: 'left', // y轴位置
             offset: 0, // y轴相对于默认位置的偏移
             offset: 0, // y轴相对于默认位置的偏移
-            type: "value", // 轴类型,默认为 ‘category’
-            nameLocation: "end", // 轴名称相对位置value
+            type: 'value', // 轴类型,默认为 ‘category’
+            nameLocation: 'end', // 轴名称相对位置value
             nameTextStyle: {
             nameTextStyle: {
-              color: "#fff",
+              color: '#fff',
               padding: [5, 0, 0, 5] // 坐标轴名称相对位置
               padding: [5, 0, 0, 5] // 坐标轴名称相对位置
             },
             },
             nameGap: 15, // 坐标轴名称与轴线之间的距离
             nameGap: 15, // 坐标轴名称与轴线之间的距离
@@ -132,9 +131,9 @@
             axisLine: {
             axisLine: {
               show: false, // 是否显示
               show: false, // 是否显示
               lineStyle: {
               lineStyle: {
-                color: "#595959",
+                color: '#595959',
                 width: 1,
                 width: 1,
-                type: "solid"
+                type: 'solid'
               }
               }
             },
             },
             axisLabel: {
             axisLabel: {
@@ -142,77 +141,76 @@
               inside: false, // 是否朝内
               inside: false, // 是否朝内
               rotate: 0, // 旋转角度
               rotate: 0, // 旋转角度
               margin: 8, // 刻度标签与轴线之间的距离
               margin: 8, // 刻度标签与轴线之间的距离
-              color: "#989898", // 默认轴线的颜色
+              color: '#989898', // 默认轴线的颜色
               fontSize: 12,
               fontSize: 12,
-              formatter: '{value} %',
+              formatter: '{value} %'
 
 
             },
             },
             splitLine: {
             splitLine: {
               show: true,
               show: true,
               lineStyle: {
               lineStyle: {
-                color: "#4c504a",
+                color: '#4c504a',
                 width: 0.5,
                 width: 0.5,
-                type: "solid"
+                type: 'solid'
               }
               }
             }
             }
           },
           },
           series: [
           series: [
             {
             {
-              type: "bar",
+              type: 'bar',
               animation: false,
               animation: false,
               itemStyle: {
               itemStyle: {
                 color: function(params) {
                 color: function(params) {
-                    var key = params.dataIndex;
+                    var key = params.dataIndex
                     if (key == _this.activeItemIndex) {
                     if (key == _this.activeItemIndex) {
-                        return '#ff9999';
+                        return '#ff9999'
                     } else {
                     } else {
-                        return '#1b9dff' 
+                        return '#1b9dff'
                     }
                     }
                 },
                 },
-                width: 20,
+                width: 20
               },
               },
               emphasis: {
               emphasis: {
                 itemStyle: {
                 itemStyle: {
-                  color: "#ff9999",
+                  color: '#ff9999'
                 }
                 }
               },
               },
               barWidth: 30,
               barWidth: 30,
               data: this.y
               data: this.y
             }]
             }]
-        };
+        }
 
 
         // 绘制图表
         // 绘制图表
-        myBar.setOption(option);
-        window.addEventListener("resize", function () {
-          myBar.resize();
-        });
+        myBar.setOption(option)
+        window.addEventListener('resize', function() {
+          myBar.resize()
+        })
 
 
-        let that = this;
-        myBar.on('click', function (params) {
-          that.activeItemIndex = params.dataIndex;
-          that.$emit('handleItemClick', params);
-          myBar.setOption(option);
+        let that = this
+        myBar.on('click', function(params) {
+          that.activeItemIndex = params.dataIndex
+          that.$emit('handleItemClick', params)
+          myBar.setOption(option)
         })
         })
       }
       }
     },
     },
 
 
     mounted() {
     mounted() {
-      this.drawLine();
-
+      this.drawLine()
     },
     },
 
 
     watch: {
     watch: {
       echartData(val) {
       echartData(val) {
-        this.x = this.echartData.map(item => item.knowledgePoint);
-        let arr = this.echartData.map(item => item.gradeScoreRate);
-        //arr.forEach(item => {
+        this.x = this.echartData.map(item => item.knowledgePoint)
+        let arr = this.echartData.map(item => item.gradeScoreRate)
+        // arr.forEach(item => {
         //  item = parseInt(item)
         //  item = parseInt(item)
-        //});
-        this.y = arr.map(item => parseInt(item));
-        this.drawLine();
+        // });
+        this.y = arr.map(item => parseInt(item))
+        this.drawLine()
       }
       }
     }
     }
-  };
+  }
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->

+ 141 - 142
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseLine.vue

@@ -1,157 +1,156 @@
 <template>
 <template>
-  <div :id="ids" class="myLine"></div>
+    <div :id="ids" class="myLine"></div>
 </template>
 </template>
 
 
 <script>
 <script>
-  export default {
-    name: "hello",
-    props:['ids','echartsData'],
-    data() {
-      return {
-        y:[]
-      };
-    },
-    created() {
-      let echartsData = this.echartsData;
-      let arr = [];
-        arr.push(parseInt(echartsData.R1));
-        arr.push(parseInt(echartsData.R2));
-        arr.push(parseInt(echartsData.R3));
-        arr.push(parseInt(echartsData.R4));
-        arr.push(parseInt(echartsData.R5));
-        arr.push(parseInt(echartsData.R6));
-      this.y = arr;
-    },
-    mounted() {
-      this.drawLine();
-      let myLine = this.$echarts.init(document.getElementById(this.ids), 'chalk');
-      this.initWidth = document.getElementById(this.ids).offsetWidth;
-        let resize = {
-            width: 500,
-            height: 400
-        };
-         myLine.resize(resize);
-    },
-    methods: {
-      drawLine() {
-        // 基于准备好的dom,初始化echarts实例
-        let myLine = this.$echarts.init(document.getElementById(this.ids), 'chalk');
-
-        // 指定图表的配置项和数据
-        var option = {
-           title: {
-	              text: 'R1-R6作答曲线',
-	              textStyle: {
-	        	       align: 'center',
-	                  color: '#333',
-	                  fontSize: 14,
-	              },
-	              top: '3%',
-	              left: '10%',
-	          },
-          tooltip: {
-            trigger: 'axis',
-            axisPointer: {
-              type: 'cross',
-              label: {
-                backgroundColor: '#6a7985'
-              }
-            },
-            formatter: function (v) {
-              return v[0].name + ':' + v[0].data + '%'
-            }
-          },
-          legend: {
-            textStyle: {
-              color:"#e4eadb"
+    export default {
+        name: 'hello',
+        props: ['ids', 'echartsData'],
+        data() {
+            return {
+                y: []
             }
             }
-          },
-          gird: {
-            left: '3%',
-            right: '4%',
-            bottom: '3%',
-            containLabel: true
-          },
-          xAxis: [
-            {
-              type: 'category',
-              boundaryGap: false,
-              splitLine: {
-                show: false,
-                lineStyle: {
-                   color: '#4c504a',
-                }
-              },
-              axisLabel: {
-                show: true, // 是否显示
-                inside: false, // 是否朝内
-                rotate: 0, // 旋转角度
-                margin: 15, // 刻度标签与轴线之间的距离
-                color: "#989898", // 默认取轴线的颜色,
-                fontSize: 14
-              },
-              data:['R1','R2','R3','R4','R5','R6']
-            }
-          ],
-          yAxis: [
-            {
-              type: 'value',
-              splitLine: {
-                show: true,
-                lineStyle: {
-                   color: '#ccc',
-                }
-              },
+        },
+        created() {
+            let echartsData = this.echartsData
+            let arr = []
+            arr.push(parseInt(echartsData.R1))
+            arr.push(parseInt(echartsData.R2))
+            arr.push(parseInt(echartsData.R3))
+            arr.push(parseInt(echartsData.R4))
+            arr.push(parseInt(echartsData.R5))
+            arr.push(parseInt(echartsData.R6))
+            this.y = arr
+        },
+        mounted() {
+            this.drawLine()
+            let myLine = this.$echarts.init(document.getElementById(this.ids), 'chalk')
+            this.initWidth = document.getElementById(this.ids).offsetWidth
+            let resize = {
+                width: 500,
+                height: 400
             }
             }
-          ],
-          series: [
-            {
-              type: 'line',
-              lineStyle: {
-                color:"#66cc99"
-              },
-              itemStyle: {
-                color: '#66cc99',
-                borderColor: "#efefef",
-                borderWidth:3
-              },
-              //areaStyle: {
-              //  normal: {
-              //      color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
-              //          offset: 0,
-              //          color: 'rgba(37, 129, 27, 0.3)'
-              //      }, {
-              //          offset: 0.8,
-              //          color: 'rgba(137, 119, 27, 0)'
-              //      }], false),
-              //      shadowColor: 'rgba(255, 255, 255, 0.2)',
-              //      shadowBlur: 10
-              //  }
-              //},
-              symbolSize: 10,
-              data: this.y
-            }
-          ]
-        };
+            myLine.resize(resize)
+        },
+        methods: {
+            drawLine() {
+                // 基于准备好的dom,初始化echarts实例
+                let myLine = this.$echarts.init(document.getElementById(this.ids), 'chalk')
 
 
+                // 指定图表的配置项和数据
+                var option = {
+                    title: {
+                        text: 'R1-R6作答曲线',
+                        textStyle: {
+                            align: 'center',
+                            color: '#333',
+                            fontSize: 14
+                        },
+                        top: '3%',
+                        left: '10%'
+                    },
+                    tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                            type: 'cross',
+                            label: {
+                                backgroundColor: '#6a7985'
+                            }
+                        },
+                        formatter: function (v) {
+                            return v[0].name + ':' + v[0].data + '%'
+                        }
+                    },
+                    legend: {
+                        textStyle: {
+                            color: '#e4eadb'
+                        }
+                    },
+                    gird: {
+                        left: '3%',
+                        right: '4%',
+                        bottom: '3%',
+                        containLabel: true
+                    },
+                    xAxis: [
+                        {
+                            type: 'category',
+                            boundaryGap: false,
+                            splitLine: {
+                                show: false,
+                                lineStyle: {
+                                    color: '#4c504a'
+                                }
+                            },
+                            axisLabel: {
+                                show: true, // 是否显示
+                                inside: false, // 是否朝内
+                                rotate: 0, // 旋转角度
+                                margin: 15, // 刻度标签与轴线之间的距离
+                                color: '#989898', // 默认取轴线的颜色,
+                                fontSize: 14
+                            },
+                            data: ['R1', 'R2', 'R3', 'R4', 'R5', 'R6']
+                        }
+                    ],
+                    yAxis: [
+                        {
+                            type: 'value',
+                            splitLine: {
+                                show: true,
+                                lineStyle: {
+                                    color: '#ccc'
+                                }
+                            }
+                        }
+                    ],
+                    series: [
+                        {
+                            type: 'line',
+                            lineStyle: {
+                                color: '#66cc99'
+                            },
+                            itemStyle: {
+                                color: '#66cc99',
+                                borderColor: '#efefef',
+                                borderWidth: 3
+                            },
+                            // areaStyle: {
+                            //  normal: {
+                            //      color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+                            //          offset: 0,
+                            //          color: 'rgba(37, 129, 27, 0.3)'
+                            //      }, {
+                            //          offset: 0.8,
+                            //          color: 'rgba(137, 119, 27, 0)'
+                            //      }], false),
+                            //      shadowColor: 'rgba(255, 255, 255, 0.2)',
+                            //      shadowBlur: 10
+                            //  }
+                            // },
+                            symbolSize: 10,
+                            data: this.y
+                        }
+                    ]
+                }
 
 
-        // 绘制图表
-        myLine.setOption(option);
-        window.addEventListener("resize", function () {
-          myLine.resize();
-        });
-      }
+                // 绘制图表
+                myLine.setOption(option)
+                window.addEventListener('resize', function () {
+                    myLine.resize()
+                })
+            }
+        }
     }
     }
-  };
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
 <style scoped>
 
 
-  .myLine {
-    width: 100%;
-    height: 400px;
-    margin: 20px auto;
-    display: block;
-  }
+    .myLine {
+        width: 100%;
+        height: 400px;
+        margin: 20px auto;
+        display: block;
+    }
 </style>
 </style>

+ 77 - 78
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseLineBar.vue

@@ -4,25 +4,24 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    name: "hello",
+    name: 'hello',
     props: ['echartData'],
     props: ['echartData'],
   data() {
   data() {
       return {
       return {
         echartDatas: [],
         echartDatas: [],
         gradeRate: 62.4,
         gradeRate: 62.4,
-        areaRate:76.2
-      };
+        areaRate: 76.2
+      }
     },
     },
     created() {
     created() {
     },
     },
   mounted() {
   mounted() {
-    this.drawLine(this.echartData);
-
+    this.drawLine(this.echartData)
   },
   },
   methods: {
   methods: {
     drawLine(echartData) {
     drawLine(echartData) {
-        let that = this;
-        let myBar = this.$echarts.init(document.getElementById("stuAverageBar"));
+        let that = this
+        let myBar = this.$echarts.init(document.getElementById('stuAverageBar'))
         var option = {
         var option = {
           legend: {
           legend: {
             data: [{
             data: [{
@@ -33,14 +32,14 @@ export default {
             },
             },
             {
             {
               name: that.$t('totalAnalysis.ta_chart_text5'),
               name: that.$t('totalAnalysis.ta_chart_text5'),
-              color: "red",
+              color: 'red',
               textStyle: {
               textStyle: {
                 color: '#fff'
                 color: '#fff'
               }
               }
             },
             },
             {
             {
               name: that.$t('totalAnalysis.ta_chart_text6'),
               name: that.$t('totalAnalysis.ta_chart_text6'),
-              color: "red",
+              color: 'red',
               textStyle: {
               textStyle: {
                 color: '#fff'
                 color: '#fff'
               }
               }
@@ -50,139 +49,139 @@ export default {
           },
           },
           tooltip: {
           tooltip: {
             show: true, // 是否显示提示框,默认为true
             show: true, // 是否显示提示框,默认为true
-            trigger: "axis", // 数据项图形触发
+            trigger: 'axis', // 数据项图形触发
             axisPointer: {
             axisPointer: {
               // 指示样式
               // 指示样式
-              type: "shadow",
-              axis: "auto",
+              type: 'shadow',
+              axis: 'auto',
               shadowStyle: {
               shadowStyle: {
-                color: "rgba(128,128,128,0.1)"
+                color: 'rgba(128,128,128,0.1)'
               }
               }
             },
             },
             padding: 5,
             padding: 5,
             textStyle: {
             textStyle: {
-              color: "#fff"
+              color: '#fff'
             },
             },
-            formatter: function (params) {
-              return params[0].name + '<br>'
-                + params[0].marker + params[0].seriesName + ':' + params[0].data + '%<br>'
-                + params[1].marker + params[1].seriesName + ':'+ params[1].data + '%<br>'
-                + params[2].marker + params[2].seriesName + ':'+ params[2].data + '%<br>'
+            formatter: function(params) {
+              return params[0].name + '<br>' +
+                params[0].marker + params[0].seriesName + ':' + params[0].data + '%<br>' +
+                params[1].marker + params[1].seriesName + ':' + params[1].data + '%<br>' +
+                params[2].marker + params[2].seriesName + ':' + params[2].data + '%<br>'
             }
             }
           },
           },
           grid: {
           grid: {
             show: false,
             show: false,
             containLabel: true,
             containLabel: true,
             height: 460,
             height: 460,
-            width: "90%",
-            x2: "5%",
+            width: '90%',
+            x2: '5%',
             tooltip: {
             tooltip: {
               show: true,
               show: true,
-              trigger: "axis", // 触发类型
+              trigger: 'axis', // 触发类型
               textStyle: {
               textStyle: {
-                color: "#666"
-              },
+                color: '#666'
+              }
             }
             }
           },
           },
           dataZoom: [{
           dataZoom: [{
-            "show": true,
-            "height": 10,
-            "xAxisIndex": [
+            'show': true,
+            'height': 10,
+            'xAxisIndex': [
               0
               0
             ],
             ],
             bottom: 30,
             bottom: 30,
-            "start": 0,
-            "end": 100,
+            'start': 0,
+            'end': 100,
              handleIcon: 'M512 497.821538m-418.264615 0a418.264615 418.264615 0 1 0 836.52923 0 418.264615 418.264615 0 1 0-836.52923 0Z',
              handleIcon: 'M512 497.821538m-418.264615 0a418.264615 418.264615 0 1 0 836.52923 0 418.264615 418.264615 0 1 0-836.52923 0Z',
             handleSize: '160%',
             handleSize: '160%',
             handleStyle: {
             handleStyle: {
-              color: "#d3dee5",
+              color: '#d3dee5'
 
 
             },
             },
             textStyle: {
             textStyle: {
-              color: "#fff"
+              color: '#fff'
             },
             },
-            borderColor: "#90979c"
+            borderColor: '#90979c'
           }, {
           }, {
-            "type": "inside",
-            "show": true,
-            "height": 15,
-            "start": 0,
-            "end": 100
+            'type': 'inside',
+            'show': true,
+            'height': 15,
+            'start': 0,
+            'end': 100
           }],
           }],
-          //toolbox: {
+          // toolbox: {
           //  show: true,
           //  show: true,
           //  feature: {
           //  feature: {
           //    magicType: { show: true, type: ['line', 'bar'] },
           //    magicType: { show: true, type: ['line', 'bar'] },
           //    saveAsImage: { show: true }
           //    saveAsImage: { show: true }
           //  }
           //  }
-          //},
+          // },
           xAxis: {
           xAxis: {
             show: true,
             show: true,
             offset: 0,
             offset: 0,
-            type: "category",
+            type: 'category',
             axisLabel: {
             axisLabel: {
               show: true,
               show: true,
               inside: false,
               inside: false,
               margin: 15,
               margin: 15,
-              color: "#989898",
+              color: '#989898'
             },
             },
             data: echartData.map(item => item.name)
             data: echartData.map(item => item.name)
           },
           },
           yAxis: {
           yAxis: {
             show: true,
             show: true,
-            type: "value",
+            type: 'value',
             min: 0,
             min: 0,
-            max:100,
+            max: 100,
             axisLabel: {
             axisLabel: {
               show: true,
               show: true,
               inside: false,
               inside: false,
               rotate: 0,
               rotate: 0,
               margin: 8,
               margin: 8,
-              color: "#989898",
+              color: '#989898',
               formatter: '{value} %',
               formatter: '{value} %',
               fontSize: 12,
               fontSize: 12,
-              fontFamily: "Microsoft YaHei"
+              fontFamily: 'Microsoft YaHei'
             },
             },
             splitLine: {
             splitLine: {
               show: true,
               show: true,
               lineStyle: {
               lineStyle: {
-                color: "#4c504a",
+                color: '#4c504a',
                 width: 0.5,
                 width: 0.5,
-                type: "solid"
+                type: 'solid'
               }
               }
             }
             }
           },
           },
           series: [
           series: [
             {
             {
-              name:that.$t('totalAnalysis.ta_chart_text4'),
-              type: "bar",
+              name: that.$t('totalAnalysis.ta_chart_text4'),
+              type: 'bar',
               itemStyle: {
               itemStyle: {
-                normal: {  //渐变色
+                normal: { // 渐变色
                       color: '#66cccc'
                       color: '#66cccc'
                     },
                     },
-                width: 20,
+                width: 20
               },
               },
-              markPoint : {
-                data : [
-                    {type : 'max', name: '最大值'},
-                    {type : 'min', name: '最小值'}
-                ],
+              markPoint: {
+                data: [
+                    { type: 'max', name: '最大值' },
+                    { type: 'min', name: '最小值' }
+                ]
               },
               },
-              barWidth:50,
+              barWidth: 50,
               data: echartData.map(item => item.entryRate)
               data: echartData.map(item => item.entryRate)
             },
             },
             {
             {
-              name:that.$t('totalAnalysis.ta_chart_text5'),
-              type: "line",
+              name: that.$t('totalAnalysis.ta_chart_text5'),
+              type: 'line',
               itemStyle: {
               itemStyle: {
-                color: "#ff33cc",
-                width: 0,
+                color: '#ff33cc',
+                width: 0
               },
               },
               symbol: 'none',
               symbol: 'none',
               lineStyle: {
               lineStyle: {
-                type: "dashed",
-                width: 0,
+                type: 'dashed',
+                width: 0
               },
               },
               markLine: {
               markLine: {
                 data: [
                 data: [
@@ -190,22 +189,22 @@ export default {
                 ],
                 ],
                 lineStyle: {
                 lineStyle: {
                   color: '#ff33cc',
                   color: '#ff33cc',
-                  type: "dashed"
+                  type: 'dashed'
                 }
                 }
               },
               },
               data: echartData.map(item => this.gradeRate)
               data: echartData.map(item => this.gradeRate)
             },
             },
             {
             {
-              name:that.$t('totalAnalysis.ta_chart_text6'),
-              type: "line",
+              name: that.$t('totalAnalysis.ta_chart_text6'),
+              type: 'line',
               itemStyle: {
               itemStyle: {
-                color: "#66ff99",
-                width: 0,
+                color: '#66ff99',
+                width: 0
               },
               },
               symbol: 'none',
               symbol: 'none',
               lineStyle: {
               lineStyle: {
-                type: "dashed",
-                width: 0,
+                type: 'dashed',
+                width: 0
               },
               },
               markLine: {
               markLine: {
                 data: [
                 data: [
@@ -213,22 +212,22 @@ export default {
                 ],
                 ],
                 lineStyle: {
                 lineStyle: {
                   color: '#66ff99',
                   color: '#66ff99',
-                  type: "dashed"
+                  type: 'dashed'
                 }
                 }
               },
               },
               data: echartData.map(item => this.areaRate)
               data: echartData.map(item => this.areaRate)
-            },
+            }
           ]
           ]
-        };
+        }
 
 
         // 绘制图表
         // 绘制图表
-        myBar.setOption(option);
-        window.addEventListener("resize", function () {
-          myBar.resize();
-        });
+        myBar.setOption(option)
+        window.addEventListener('resize', function() {
+          myBar.resize()
+        })
       }
       }
   }
   }
-};
+}
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->

+ 102 - 118
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseMyTable.vue

@@ -28,83 +28,81 @@
     props: {
     props: {
       columns: {
       columns: {
         type: Array,
         type: Array,
-        default:[]
+        default: []
       },
       },
       isScroll: {
       isScroll: {
         type: Boolean,
         type: Boolean,
-        default:false
+        default: false
       },
       },
       tableDatas: {
       tableDatas: {
         type: Array,
         type: Array,
-        default:[]
+        default: []
       },
       },
       showSelect: {
       showSelect: {
         type: Boolean,
         type: Boolean,
-        default:false
+        default: false
       },
       },
       tips: {
       tips: {
         type: String,
         type: String,
-        default:null
+        default: null
       },
       },
       pageSize: {
       pageSize: {
         type: Number,
         type: Number,
-        default:10
+        default: 10
       }
       }
     },
     },
     data() {
     data() {
       return {
       return {
         isShowBorder: true,
         isShowBorder: true,
-        subjectSelectVal:1,
+        subjectSelectVal: 1,
         tableData: [],
         tableData: [],
         tableColumns: [],
         tableColumns: [],
-        pageSizeOpts:[5,10,20,30,40],
+        pageSizeOpts: [5, 10, 20, 30, 40],
         poperData: [],
         poperData: [],
         subjectList: [
         subjectList: [
           {
           {
-            name:"语文"
+            name: '语文'
           },
           },
           {
           {
-            name:"数学"
+            name: '数学'
           },
           },
           {
           {
-            name:"英语"
+            name: '英语'
           },
           },
           {
           {
-            name:"生物"
+            name: '生物'
           },
           },
           {
           {
-            name:"化学"
-          },
-        ],
+            name: '化学'
+          }
+        ]
       }
       }
     },
     },
     created() {
     created() {
-      this.tableColumns = this.columns;
-      this.tableData = this.tableDatas;
+      this.tableColumns = this.columns
+      this.tableData = this.tableDatas
       this.columns.forEach(item => {
       this.columns.forEach(item => {
-        item.render = typeof item.renderType == 'function' ? item.renderType : this[item.renderType];
+        item.render = typeof item.renderType === 'function' ? item.renderType : this[item.renderType]
       })
       })
 
 
-      this.pageChange(1);
-
-
+      this.pageChange(1)
     },
     },
     methods: {
     methods: {
 
 
-      //分页操作
+      // 分页操作
       pageChange(page) {
       pageChange(page) {
-        let start = this.pageSize * (page - 1);
-        let end = this.pageSize * page;
-        this.tableData = this.tableDatas.slice(start, end);
+        let start = this.pageSize * (page - 1)
+        let end = this.pageSize * page
+        this.tableData = this.tableDatas.slice(start, end)
       },
       },
 
 
       pageSizeChange(val) {
       pageSizeChange(val) {
-        this.pageSize = val;
-        this.pageChange(1);
+        this.pageSize = val
+        this.pageChange(1)
       },
       },
 
 
       onSelectChange(val) {
       onSelectChange(val) {
-        this.$emit('onSelectChange', val);
+        this.$emit('onSelectChange', val)
       },
       },
 
 
       renderSimple() {
       renderSimple() {
@@ -112,87 +110,86 @@
       },
       },
 
 
       renderClassName(h, params) {
       renderClassName(h, params) {
-        let that = this;
-        let row = params.row;
+        let that = this
+        let row = params.row
         return h('span', {
         return h('span', {
           on: {
           on: {
-            click: function () {
-              that.$router.push({ name: 'earlyWarning', params: { name : params.row.name } })
+            click: function() {
+              that.$router.push({ name: 'earlyWarning', params: { name: params.row.name } })
             }
             }
           },
           },
           style: {
           style: {
             cursor: 'pointer',
             cursor: 'pointer',
-            color: "#00ffd2",
-            fontWeight: "bold"
+            color: '#00ffd2',
+            fontWeight: 'bold'
           }
           }
         }, [
         }, [
             h('span', {
             h('span', {
               domProps: {
               domProps: {
-                className: "table-rank-value"
-              },
+                className: 'table-rank-value'
+              }
             }, params.row.name),
             }, params.row.name),
             h('Icon', {
             h('Icon', {
               props: {
               props: {
-                type: (row.changesStatus == 1 && row.changesVal != 0) ? 'md-trending-up' : (row.changesStatus == -1 && row.changesVal != 0) ? 'md-trending-down' : 'md-git-commit',
-                color: (row.changesStatus == 1 && row.changesVal != 0) ? '#13ff13' : (row.changesStatus == -1 && row.changesVal != 0) ? '#fd4e4e' : 'yellow',
+                type: (row.changesStatus === 1 && row.changesVal !== 0) ? 'md-trending-up' : (row.changesStatus === -1 && row.changesVal !== 0) ? 'md-trending-down' : 'md-git-commit',
+                color: (row.changesStatus === 1 && row.changesVal !== 0) ? '#13ff13' : (row.changesStatus === -1 && row.changesVal !== 0) ? '#fd4e4e' : 'yellow',
                 size: '22'
                 size: '22'
               },
               },
               style: {
               style: {
                 cursor: 'pointer',
                 cursor: 'pointer',
-                marginLeft:"10px"
+                marginLeft: '10px'
               }
               }
-            }),
+            })
 
 
           ])
           ])
-       
       },
       },
 
 
       renderEventIndex(h, params) {
       renderEventIndex(h, params) {
-        let that = this;
+        let that = this
         return h('span', {
         return h('span', {
           on: {
           on: {
-            click: function () {
-                that.$parent.$parent.$parent.isShowQuestions = true;
+            click: function() {
+                that.$parent.$parent.$parent.isShowQuestions = true
                 that.$router.push({ path: '/total/questionList', query: { QIndex: params.row.id } })
                 that.$router.push({ path: '/total/questionList', query: { QIndex: params.row.id } })
             }
             }
           },
           },
           style: {
           style: {
             cursor: 'pointer',
             cursor: 'pointer',
-            color: "#00ffd2",
-            fontWeight: "bold"
+            color: '#00ffd2',
+            fontWeight: 'bold'
           }
           }
         }, params.row.id)
         }, params.row.id)
       },
       },
 
 
-      //总分排名Render
+      // 总分排名Render
       renderRank(h, params) {
       renderRank(h, params) {
-        const row = params.row;
+        const row = params.row
         return h('span', {
         return h('span', {
           domProps: {
           domProps: {
-            className: "badge-wrap"
-          },
+            className: 'badge-wrap'
+          }
         }, [
         }, [
             h('span', {
             h('span', {
               domProps: {
               domProps: {
                 className: 'table-rank-badge'
                 className: 'table-rank-badge'
               },
               },
               style: {
               style: {
-                color: row.changesStatus == 1 ? '#0ccb0c' : '#ff5d5d'
-              },
-            }, (row.changesStatus == 1 && row.changesVal != 0) ? '+' + row.changesVal : (row.changesStatus == -1 && row.changesVal != 0) ? '-' + row.changesVal : ''),
+                color: row.changesStatus === 1 ? '#0ccb0c' : '#ff5d5d'
+              }
+            }, (row.changesStatus === 1 && row.changesVal !== 0) ? '+' + row.changesVal : (row.changesStatus === -1 && row.changesVal != 0) ? '-' + row.changesVal : ''),
             h('span', {
             h('span', {
               domProps: {
               domProps: {
-                className: "table-rank-value"
-              },
-            }, row.classRank),
+                className: 'table-rank-value'
+              }
+            }, row.classRank)
 
 
           ]
           ]
-        );
+        )
       },
       },
 
 
-      //折线图趋势变化
+      // 折线图趋势变化
       renderLineChange(h, params) {
       renderLineChange(h, params) {
-        const row = params.row;
+        const row = params.row
         return h('Poptip', {
         return h('Poptip', {
           props: {
           props: {
             trigger: 'hover',
             trigger: 'hover',
@@ -200,17 +197,17 @@
             transfer: true
             transfer: true
           },
           },
           on: {
           on: {
-            //鼠标触发气泡事件
+            // 鼠标触发气泡事件
             'on-popper-show': () => {
             'on-popper-show': () => {
-              console.log(row.poperData);
-              //this.poperData = row.poperData
-            },
+              console.log(row.poperData)
+              // this.poperData = row.poperData
+            }
           }
           }
         }, [
         }, [
             h('Icon', {
             h('Icon', {
               props: {
               props: {
-                type: row.classRank == 1 ? 'md-trending-up' : row.classRank == 2 ? 'md-trending-down' : 'md-git-commit',
-                color: row.classRank == 1 ? '#13ff13' : row.classRank == 2 ? '#fd4e4e' : 'yellow',
+                type: row.classRank === 1 ? 'md-trending-up' : row.classRank === 2 ? 'md-trending-down' : 'md-git-commit',
+                color: row.classRank === 1 ? '#13ff13' : row.classRank === 2 ? '#fd4e4e' : 'yellow',
                 size: '22'
                 size: '22'
               },
               },
               style: {
               style: {
@@ -223,20 +220,20 @@
               props: {
               props: {
                 poperData: row.poperData,
                 poperData: row.poperData,
                 isLoad: true,
                 isLoad: true,
-                lineColor: row.classRank == 1 ? 'green' : row.classRank == 2 ? '#fd4e4e' : '#ffcc33'
+                lineColor: row.classRank === 1 ? 'green' : row.classRank === 2 ? '#fd4e4e' : '#ffcc33'
               }
               }
             })
             })
               ])
               ])
-          ]);
+          ])
       },
       },
-      //排名变化
+      // 排名变化
       renderRankChange(h, params) {
       renderRankChange(h, params) {
-        const row = params.row;
+        const row = params.row
         return h('span', [
         return h('span', [
           h('Icon', {
           h('Icon', {
             props: {
             props: {
-              type: (row.changesStatus == 1 && row.changesVal != 0) ? 'md-arrow-up' : (row.changesStatus == -1 && row.changesVal != 0) ? 'md-arrow-down' : 'md-git-commit',
-              color: (row.changesStatus == 1 && row.changesVal != 0) ? '#13ff13' : (row.changesStatus == -1 && row.changesVal != 0) ? '#fd4e4e' : 'yellow',
+              type: (row.changesStatus === 1 && row.changesVal !== 0) ? 'md-arrow-up' : (row.changesStatus === -1 && row.changesVal !== 0) ? 'md-arrow-down' : 'md-git-commit',
+              color: (row.changesStatus === 1 && row.changesVal !== 0) ? '#13ff13' : (row.changesStatus === -1 && row.changesVal !== 0) ? '#fd4e4e' : 'yellow',
               size: '22'
               size: '22'
             },
             },
             style: {
             style: {
@@ -245,19 +242,19 @@
           }),
           }),
           h('span', {
           h('span', {
             domProps: {
             domProps: {
-              className: "table-rank-value"
-            },
+              className: 'table-rank-value'
+            }
           }, row.changesStatus == 0 ? '' : row.changesVal)
           }, row.changesStatus == 0 ? '' : row.changesVal)
-        ]);
+        ])
       },
       },
 
 
-      //是否进线
+      // 是否进线
       renderEntry(h, params) {
       renderEntry(h, params) {
-        const row = params.row;
+        const row = params.row
         return h('span', [
         return h('span', [
           h('span', {
           h('span', {
             domProps: {
             domProps: {
-              className: "table-entry-status"
+              className: 'table-entry-status'
             },
             },
             style: {
             style: {
               cursor: 'pointer',
               cursor: 'pointer',
@@ -266,17 +263,15 @@
           }, row.score > 580 ? '进' : row.score > 550 ? '踩' : ''),
           }, row.score > 580 ? '进' : row.score > 550 ? '踩' : ''),
           h('span', {
           h('span', {
             domProps: {
             domProps: {
-              className: "table-rank-value"
-            },
+              className: 'table-rank-value'
+            }
           }, row.score)
           }, row.score)
-        ]);
+        ])
       },
       },
 
 
-
-
-      //变化状态
+      // 变化状态
       renderStauts(h, params) {
       renderStauts(h, params) {
-        const row = params.row;
+        const row = params.row
         return h('span', [
         return h('span', [
           h('Icon', {
           h('Icon', {
             props: {
             props: {
@@ -288,24 +283,24 @@
               cursor: 'pointer'
               cursor: 'pointer'
             }
             }
           })
           })
-        ]);
+        ])
       },
       },
 
 
       renderHard(h, params) {
       renderHard(h, params) {
-        let that = this;
-        const row = params.row;
-        return h('span', row.hardList.map(function (item, index) {
+        let that = this
+        const row = params.row
+        return h('span', row.hardList.map(function(item, index) {
           return h('span', {
           return h('span', {
             style: {
             style: {
               fontSize: '16px',
               fontSize: '16px',
-              fontWeight: "600",
+              fontWeight: '600',
               color: '#03efdb',
               color: '#03efdb',
-              cursor: 'pointer',
-              //textDecoration: "underline"
+              cursor: 'pointer'
+              // textDecoration: "underline"
             },
             },
             on: {
             on: {
-              'click': function () {
-                that.$parent.$parent.$parent.isShowQuestions = true;
+              'click': function() {
+                that.$parent.$parent.$parent.isShowQuestions = true
                 that.$router.push({ path: '/total/questionList', query: { QIndex: item } })
                 that.$router.push({ path: '/total/questionList', query: { QIndex: item } })
               }
               }
             }
             }
@@ -314,30 +309,29 @@
       },
       },
 
 
       renderCareful(h, params) {
       renderCareful(h, params) {
-        let that = this;
-        const row = params.row;
-        return h('span', row.carefulList.map(function (item, index) {
+        let that = this
+        const row = params.row
+        return h('span', row.carefulList.map(function(item, index) {
           return h('span', {
           return h('span', {
             style: {
             style: {
               fontSize: '16px',
               fontSize: '16px',
-              fontWeight: "600",
+              fontWeight: '600',
               color: '#03efdb',
               color: '#03efdb',
-              cursor: 'pointer',
-              //textDecoration: "underline"
+              cursor: 'pointer'
+              // textDecoration: "underline"
             },
             },
             on: {
             on: {
-              'click': function () {
-                that.$parent.$parent.$parent.isShowQuestions = true;
+              'click': function() {
+                that.$parent.$parent.$parent.isShowQuestions = true
                 that.$router.push({ path: '/total/questionList', query: { QIndex: item } })
                 that.$router.push({ path: '/total/questionList', query: { QIndex: item } })
               }
               }
             }
             }
-          }, item + (index == row.carefulList.length - 1 ? '' : ' , '))
+          }, item + (index === row.carefulList.length - 1 ? '' : ' , '))
         }))
         }))
       },
       },
 
 
-
-      renderPercent(h , params){
-        return h('span', params.row.scoreRate + '%');
+      renderPercent(h, params) {
+        return h('span', params.row.scoreRate + '%')
       }
       }
       },
       },
 
 
@@ -346,13 +340,11 @@
   },
   },
 
 
   watch: {
   watch: {
-    tableDatas: function (data) {
-      this.tableData = data;
+    tableDatas: function(data) {
+      this.tableData = data
     }
     }
   }
   }
 
 
-
-
   }
   }
 </script>
 </script>
 
 
@@ -419,7 +411,6 @@
       background: rgba(228, 234, 219, 0.08);
       background: rgba(228, 234, 219, 0.08);
     }
     }
 
 
-
     .myTable .table-rank-value {
     .myTable .table-rank-value {
       margin-left: 10px;
       margin-left: 10px;
       vertical-align: middle;
       vertical-align: middle;
@@ -441,7 +432,6 @@
       top: 12px;
       top: 12px;
     }
     }
 
 
-
     .myTable .ivu-page-item {
     .myTable .ivu-page-item {
       background: rgba(40,40,40,.5);
       background: rgba(40,40,40,.5);
     }
     }
@@ -454,7 +444,6 @@
       background: #fff;
       background: #fff;
     }
     }
 
 
-
     .myTable .ivu-page-item a {
     .myTable .ivu-page-item a {
       color: #f1f1f1;
       color: #f1f1f1;
     }
     }
@@ -471,7 +460,6 @@
         border-color: #e4eadb;
         border-color: #e4eadb;
       }
       }
 
 
-
     .myTable .ivu-page-item-active, .myTable .ivu-page-item:hover a {
     .myTable .ivu-page-item-active, .myTable .ivu-page-item:hover a {
       border-color: #e4eadb;
       border-color: #e4eadb;
     }
     }
@@ -521,7 +509,7 @@
           background: transparent;
           background: transparent;
           border: 1px solid #595959;
           border: 1px solid #595959;
           box-shadow: none;
           box-shadow: none;
-          color:#cecece; 
+          color:#cecece;
       }
       }
 
 
       .table-subject-select .ivu-select-single .ivu-select-arrow {
       .table-subject-select .ivu-select-single .ivu-select-arrow {
@@ -534,7 +522,6 @@
           font-size: 16px;
           font-size: 16px;
       }
       }
 
 
-
   .myTable .table-entry-status {
   .myTable .table-entry-status {
     position:absolute;
     position:absolute;
     right:20px;
     right:20px;
@@ -562,12 +549,9 @@
     background: #949494;
     background: #949494;
   }
   }
 
 
-
-  
   .myTable .ivu-select-small.ivu-select-single .ivu-select-selection .ivu-select-selected-value {
   .myTable .ivu-select-small.ivu-select-single .ivu-select-selection .ivu-select-selected-value {
     height:27px;
     height:27px;
     line-height:27px;
     line-height:27px;
     font-size:12px;
     font-size:12px;
   }
   }
 </style>
 </style>
-

+ 65 - 65
TEAMModelOS/ClientApp/src/components/student-analysis/total/BasePie.vue

@@ -1,81 +1,81 @@
 <template>
 <template>
-  <div id="myPie"></div>
+    <div id="myPie"></div>
 </template>
 </template>
 
 
 <script>
 <script>
-  // import func from '../../vue-temp/vue-editor-bridge';
-  export default {
-    name: "BasePie",
-    data() {
-      return {
-        pieData: []
-      };
-    },
-    mounted() {
-      this.pieData = this.$store.state.totalAnalysis.pieData;
-      this.drawLine(this.pieData);
-    },
-    methods: {
+    // import func from '../../vue-temp/vue-editor-bridge';
+    export default {
+        name: 'BasePie',
+        data() {
+            return {
+                pieData: []
+            }
+        },
+        mounted() {
+            this.pieData = this.$store.state.totalAnalysis.pieData
+            this.drawLine(this.pieData)
+        },
+        methods: {
 
 
-      drawLine(data) {
-        let that = this;
+            drawLine(data) {
+                let that = this
 
 
-        // 基于准备好的dom,初始化echarts实例
-        let myPie = this.$echarts.init(document.getElementById("myPie"), 'chalk');
+                // 基于准备好的dom,初始化echarts实例
+                let myPie = this.$echarts.init(document.getElementById('myPie'), 'chalk')
 
 
-        // 指定图表的配置项和数据
-        var option = {
-          tooltip: {
-            trigger: "item",
-            formatter: "{a} <br/>{b} : {c} ({d}%)"
-          },
-          calculable: true,
-          series: {
-            name: that.$t('totalAnalysis.ka_title1'),
-            type: "pie",
-            radius: [70, 150],
-            center: ["45%", 190],
-            max: 100, // for funnel
-            sort: "ascending", // for funnel
-            data: data
-          }
-        };
+                // 指定图表的配置项和数据
+                var option = {
+                    tooltip: {
+                        trigger: 'item',
+                        formatter: '{a} <br/>{b} : {c} ({d}%)'
+                    },
+                    calculable: true,
+                    series: {
+                        name: that.$t('totalAnalysis.ka_title1'),
+                        type: 'pie',
+                        radius: [70, 150],
+                        center: ['45%', 190],
+                        max: 100, // for funnel
+                        sort: 'ascending', // for funnel
+                        data: data
+                    }
+                }
 
 
-        // 绘制图表
-        myPie.setOption(option);
-        // window.addEventListener('resize',function(){
-        //     myRadar.resize();
-        // })
+                // 绘制图表
+                myPie.setOption(option)
+                // window.addEventListener('resize',function(){
+                //     myRadar.resize();
+                // })
 
 
-        myPie.on('click', function (item) {
-          that.$emit('handleItemClick', item);
-        })
-
-      }
-    },
-    computed: {
-      //获取最新柱状图数据
-      getPieData() {
-        let list = this.$store.state.totalAnalysis.pieData;
-        let a = list.map(item => item.value);
-        return list;
-      }
-    },
-    watch: {
-      getPieData(val) {
-        this.drawLine(val);
-      }
+                myPie.on('click', function (item) {
+                    that.$emit('handleItemClick', item)
+                })
+            }
+        },
+        computed: {
+            // 获取最新柱状图数据
+            getPieData() {
+                let list = this.$store.state.totalAnalysis.pieData;
+                let a = list.map(item => item.value);
+                a = a;
+                return list
+            }
+        },
+        watch: {
+            getPieData(val) {
+                this.drawLine(val)
+            }
+        }
     }
     }
-  };
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
 <style scoped>
 
 
-  #myPie {
-    width: 100%;
-    height: 380px;
-    margin: 0 auto;
-    display: block;
-  }
+    #myPie {
+        width: 100%;
+        height: 380px;
+        margin: 0 auto;
+        display: block;
+    }
 </style>
 </style>

+ 26 - 27
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseRadar.vue

@@ -6,22 +6,21 @@
 
 
 <script>
 <script>
   export default {
   export default {
-    name: "helloLine",
+    name: 'helloLine',
     data() {
     data() {
       return {
       return {
-        radarData:[]
-      };
+        radarData: []
+      }
     },
     },
     mounted() {
     mounted() {
-      this.radarData = this.getRadarData;
-      this.drawLine(this.radarData);
-
+      this.radarData = this.getRadarData
+      this.drawLine(this.radarData)
     },
     },
     methods: {
     methods: {
       drawLine(data) {
       drawLine(data) {
         // 基于准备好的dom,初始化echarts实例
         // 基于准备好的dom,初始化echarts实例
-        let that = this;
-        let myRadar = this.$echarts.init(document.getElementById("myRadar"), 'chalk');
+        let that = this
+        let myRadar = this.$echarts.init(document.getElementById('myRadar'), 'chalk')
 
 
         // 指定图表的配置项和数据
         // 指定图表的配置项和数据
         var option = {
         var option = {
@@ -31,7 +30,7 @@
             triggerEvent: true,
             triggerEvent: true,
             name: {
             name: {
               textStyle: {
               textStyle: {
-                color: "#fff",
+                color: '#fff',
                 borderRadius: 3,
                 borderRadius: 3,
                 fontSize: 14,
                 fontSize: 14,
                 padding: [13, 15]
                 padding: [13, 15]
@@ -41,7 +40,7 @@
               trigger: 'item'
               trigger: 'item'
             },
             },
             indicator: [
             indicator: [
-              { name:  that.$t('totalAnalysis.ka_radar_text1'), 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_text2'), max: 100 },
               { name: that.$t('totalAnalysis.ka_radar_text3'), 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_text4'), max: 100 },
@@ -50,14 +49,14 @@
             ],
             ],
             splitArea: {
             splitArea: {
               areaStyle: {
               areaStyle: {
-                //color: [
+                // color: [
                 //  'rgba(222,134,85, 0.1)', 'rgba(222,134,85, 0.2)',
                 //  'rgba(222,134,85, 0.1)', 'rgba(222,134,85, 0.2)',
                 //  'rgba(222,134,85, 0.4)', 'rgba(222,134,85, 0.6)',
                 //  'rgba(222,134,85, 0.4)', 'rgba(222,134,85, 0.6)',
                 //  'rgba(222,134,85, 0.8)', 'rgba(222,134,85, 1)'
                 //  'rgba(222,134,85, 0.8)', 'rgba(222,134,85, 1)'
-                //].reverse()
+                // ].reverse()
               }
               }
             },
             },
-            axisLine: { //指向外圈文本的分隔线样式
+            axisLine: { // 指向外圈文本的分隔线样式
               lineStyle: {
               lineStyle: {
                 color: 'rgba(255,255,255,0.2)'
                 color: 'rgba(255,255,255,0.2)'
               }
               }
@@ -71,18 +70,18 @@
                   'rgba(224,134,82, 0.8)', 'rgba(224,134,82, 1)'
                   'rgba(224,134,82, 0.8)', 'rgba(224,134,82, 1)'
                 ].reverse()
                 ].reverse()
               }
               }
-            },
+            }
           },
           },
           series: [
           series: [
             {
             {
-              name: "某软件",
-              type: "radar",
+              name: '某软件',
+              type: 'radar',
               itemStyle: {
               itemStyle: {
                 color: 'red'
                 color: 'red'
               },
               },
               areaStyle: {
               areaStyle: {
                 color: {
                 color: {
-                  type: "linear",
+                  type: 'linear',
                   x: 0,
                   x: 0,
                   y: 0,
                   y: 0,
                   x2: 0,
                   x2: 0,
@@ -90,20 +89,20 @@
                   colorStops: [
                   colorStops: [
                     {
                     {
                       offset: 0,
                       offset: 0,
-                      color: "#2cc7cb" // 0% 处的颜色
+                      color: '#2cc7cb' // 0% 处的颜色
                     },
                     },
                     {
                     {
                       offset: 1,
                       offset: 1,
-                      color: "#59b2ef" // 100% 处的颜色
+                      color: '#59b2ef' // 100% 处的颜色
                     }
                     }
                   ],
                   ],
                   global: false // 缺省为 false
                   global: false // 缺省为 false
-                },
+                }
               },
               },
               lineStyle: {
               lineStyle: {
                 color: '#9FACE6'
                 color: '#9FACE6'
               },
               },
-              data:  [
+              data: [
                   {
                   {
                     value: data,
                     value: data,
                     name: that.$t('totalAnalysis.ka_table_text2')
                     name: that.$t('totalAnalysis.ka_table_text2')
@@ -111,25 +110,25 @@
                 ]
                 ]
             }
             }
           ]
           ]
-        };
+        }
 
 
         // 绘制图表
         // 绘制图表
-        myRadar.setOption(option);
+        myRadar.setOption(option)
         // window.addEventListener('resize',function(){
         // window.addEventListener('resize',function(){
         //     myRadar.resize();
         //     myRadar.resize();
         // })
         // })
       }
       }
     },
     },
-    //利用计算属性
+    // 利用计算属性
   computed: {
   computed: {
     getRadarData() {
     getRadarData() {
-      return this.$store.state.totalAnalysis.radarData;
+      return this.$store.state.totalAnalysis.radarData
     }
     }
   },
   },
-  //监听执行
+  // 监听执行
   watch: {
   watch: {
     getRadarData(val) {
     getRadarData(val) {
-      this.drawLine(val);
+      this.drawLine(val)
   }
   }
   }
   }
   }
   }

+ 43 - 44
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseRateLine.vue

@@ -4,26 +4,26 @@
 
 
 <script>
 <script>
   export default {
   export default {
-    name: "hello",
-    props: ['ids','echartsData'],
+    name: 'hello',
+    props: ['ids', 'echartsData'],
     data() {
     data() {
       return {
       return {
-      };
+      }
     },
     },
     mounted() {
     mounted() {
-      this.drawLine();
-      let myLine = this.$echarts.init(document.getElementById(this.ids), 'chalk');
-      this.initWidth = document.getElementById(this.ids).offsetWidth;
+      this.drawLine()
+      let myLine = this.$echarts.init(document.getElementById(this.ids), 'chalk')
+      this.initWidth = document.getElementById(this.ids).offsetWidth
       let resize = {
       let resize = {
         width: 500,
         width: 500,
         height: 400
         height: 400
-      };
-      myLine.resize(resize);
+      }
+      myLine.resize(resize)
     },
     },
     methods: {
     methods: {
       drawLine() {
       drawLine() {
         // 基于准备好的dom,初始化echarts实例
         // 基于准备好的dom,初始化echarts实例
-        let myLine = this.$echarts.init(document.getElementById(this.ids), 'chalk');
+        let myLine = this.$echarts.init(document.getElementById(this.ids), 'chalk')
 
 
         // 指定图表的配置项和数据
         // 指定图表的配置项和数据
         var option = {
         var option = {
@@ -32,10 +32,10 @@
             textStyle: {
             textStyle: {
               align: 'center',
               align: 'center',
               color: '#333',
               color: '#333',
-              fontSize: 14,
+              fontSize: 14
             },
             },
             top: '3%',
             top: '3%',
-            left: '10%',
+            left: '10%'
           },
           },
           tooltip: {
           tooltip: {
             trigger: 'axis',
             trigger: 'axis',
@@ -44,8 +44,8 @@
                 backgroundColor: '#6a7985'
                 backgroundColor: '#6a7985'
               }
               }
             },
             },
-            formatter: function (v) {
-              let str = "选项" + v[0].name +'<br>';
+            formatter: function(v) {
+              let str = '选项' + v[0].name + '<br>'
               v.forEach(item => {
               v.forEach(item => {
                 str = str + item.seriesName + ':' + item.data + '%' + '<br>'
                 str = str + item.seriesName + ':' + item.data + '%' + '<br>'
               })
               })
@@ -54,9 +54,9 @@
           },
           },
           legend: {
           legend: {
             textStyle: {
             textStyle: {
-              color: "#969696"
+              color: '#969696'
             },
             },
-            top:35
+            top: 35
           },
           },
           gird: {
           gird: {
             left: '3%',
             left: '3%',
@@ -70,12 +70,12 @@
               splitLine: {
               splitLine: {
                 show: false,
                 show: false,
                 lineStyle: {
                 lineStyle: {
-                  color: '#4c504a',
+                  color: '#4c504a'
                 }
                 }
               },
               },
               axisLine: {
               axisLine: {
                 lineStyle: {
                 lineStyle: {
-                  color: '#969696',
+                  color: '#969696'
                 }
                 }
               },
               },
               axisLabel: {
               axisLabel: {
@@ -83,7 +83,7 @@
                 inside: false, // 是否朝内
                 inside: false, // 是否朝内
                 rotate: 0, // 旋转角度
                 rotate: 0, // 旋转角度
                 margin: 15, // 刻度标签与轴线之间的距离
                 margin: 15, // 刻度标签与轴线之间的距离
-                color: "#989898", // 默认取轴线的颜色,
+                color: '#989898', // 默认取轴线的颜色,
                 fontSize: 14
                 fontSize: 14
               },
               },
               data: this.echartsData.map(item => item.option)
               data: this.echartsData.map(item => item.option)
@@ -95,14 +95,14 @@
               splitLine: {
               splitLine: {
                 show: true,
                 show: true,
                 lineStyle: {
                 lineStyle: {
-                  color: '#ccc',
+                  color: '#ccc'
                 }
                 }
               },
               },
               axisLine: {
               axisLine: {
                 lineStyle: {
                 lineStyle: {
-                  color: '#969696',
+                  color: '#969696'
                 }
                 }
-              },
+              }
             }
             }
           ],
           ],
           series: [
           series: [
@@ -110,7 +110,7 @@
               name: '选答率',
               name: '选答率',
               type: 'line',
               type: 'line',
               data: this.echartsData.map(item => item.rate),
               data: this.echartsData.map(item => item.rate),
-              color: "#F58080",
+              color: '#F58080',
               lineStyle: {
               lineStyle: {
                 normal: {
                 normal: {
                   width: 2,
                   width: 2,
@@ -134,7 +134,7 @@
                   shadowOffsetY: 7
                   shadowOffsetY: 7
                 }
                 }
               },
               },
-        //areaStyle: {
+        // areaStyle: {
         //    normal: {
         //    normal: {
         //        color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
         //        color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
         //            offset: 0,
         //            offset: 0,
@@ -146,14 +146,14 @@
         //        shadowColor: 'rgba(0, 0, 0, 0.1)',
         //        shadowColor: 'rgba(0, 0, 0, 0.1)',
         //        shadowBlur: 10
         //        shadowBlur: 10
         //    }
         //    }
-        //},
+        // },
             itemStyle: {
             itemStyle: {
                 normal: {
                 normal: {
                   color: '#F58080',
                   color: '#F58080',
                   borderWidth: 5,
                   borderWidth: 5,
-                  /*shadowColor: 'rgba(72,216,191, 0.3)',
-                   shadowBlur: 100,*/
-                  borderColor: "#F58080"
+                  /* shadowColor: 'rgba(72,216,191, 0.3)',
+                   shadowBlur: 100, */
+                  borderColor: '#F58080'
                 }
                 }
               },
               },
               smooth: false
               smooth: false
@@ -187,7 +187,7 @@
                   shadowOffsetY: 7
                   shadowOffsetY: 7
                 }
                 }
               },
               },
-        //areaStyle: {
+        // areaStyle: {
         //    normal: {
         //    normal: {
         //        color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
         //        color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
         //            offset: 0,
         //            offset: 0,
@@ -199,14 +199,14 @@
         //        shadowColor: 'rgba(0, 0, 0, 0.1)',
         //        shadowColor: 'rgba(0, 0, 0, 0.1)',
         //        shadowBlur: 10
         //        shadowBlur: 10
         //    }
         //    }
-        //},
+        // },
             itemStyle: {
             itemStyle: {
                 normal: {
                 normal: {
                   color: '#AAF487',
                   color: '#AAF487',
                   borderWidth: 10,
                   borderWidth: 10,
-                  /*shadowColor: 'rgba(72,216,191, 0.3)',
-                   shadowBlur: 100,*/
-                  borderColor: "#AAF487"
+                  /* shadowColor: 'rgba(72,216,191, 0.3)',
+                   shadowBlur: 100, */
+                  borderColor: '#AAF487'
                 }
                 }
               },
               },
               smooth: false
               smooth: false
@@ -240,7 +240,7 @@
                   shadowOffsetY: 7
                   shadowOffsetY: 7
                 }
                 }
               },
               },
-              //areaStyle: {
+              // areaStyle: {
               //  normal: {
               //  normal: {
               //    color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
               //    color: this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
               //      offset: 0,
               //      offset: 0,
@@ -252,29 +252,28 @@
               //    shadowColor: 'rgba(0, 0, 0, 0.1)',
               //    shadowColor: 'rgba(0, 0, 0, 0.1)',
               //    shadowBlur: 10
               //    shadowBlur: 10
               //  }
               //  }
-              //},
+              // },
               itemStyle: {
               itemStyle: {
                 normal: {
                 normal: {
                   color: '#F6D06F',
                   color: '#F6D06F',
                   borderWidth: 10,
                   borderWidth: 10,
-                  /*shadowColor: 'rgba(72,216,191, 0.3)',
-                   shadowBlur: 100,*/
-                  borderColor: "#F6D06F"
+                  /* shadowColor: 'rgba(72,216,191, 0.3)',
+                   shadowBlur: 100, */
+                  borderColor: '#F6D06F'
                 }
                 }
               },
               },
               smooth: false
               smooth: false
             }]
             }]
-        };
-
+        }
 
 
         // 绘制图表
         // 绘制图表
-        myLine.setOption(option);
-        window.addEventListener("resize", function () {
-          myLine.resize();
-        });
+        myLine.setOption(option)
+        window.addEventListener('resize', function() {
+          myLine.resize()
+        })
       }
       }
     }
     }
-  };
+  }
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->

+ 377 - 384
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseScatter.vue

@@ -1,411 +1,404 @@
 <template>
 <template>
-  <div id="myScatter"></div>
+    <div id="myScatter"></div>
 </template>
 </template>
 
 
 <script>
 <script>
-  import scatterList from '@/static/scatter.json'
-  export default {
-    name: "hello",
-    data() {
-      return {
-        originArr:[],
-        dataArr: [],
-        activeItemIndex:0
-      };
-    },
-    created() {
-      this.originArr = scatterList;
-      this.originArr.forEach(item => {
-        let arr = [];
-        arr.push(item.x);
-        arr.push(item.y);
-        arr.push(item.name);
-        arr.push(item.id);
-        this.dataArr.push(arr);
-      })
-
-      //let list = scatterList.sort(function (a, b) { return  Number(b.score) - Number(a.score) });
-      scatterList.forEach((item,index) => {
-        //item.rank = list.indexOf(item) + 1;
-        //item.areaName = this.areaName(item.x, item.y);
-      })
-
-      //console.log(JSON.stringify(scatterList));
+    import scatterList from '@/static/scatter.json'
+    export default {
+        name: 'hello',
+        data() {
+            return {
+                originArr: [],
+                dataArr: [],
+                activeItemIndex: 0
+            }
+        },
+        created() {
+            this.originArr = scatterList
+            this.originArr.forEach(item => {
+                let arr = []
+                arr.push(item.x)
+                arr.push(item.y)
+                arr.push(item.name)
+                arr.push(item.id)
+                this.dataArr.push(arr)
+            })
 
 
-    },
-    mounted() {
-      this.drawLine(this.dataArr);
-    },
-    methods: {
+            // let list = scatterList.sort(function (a, b) { return  Number(b.score) - Number(a.score) });
+            scatterList.forEach((item, index) => {
+                // item.rank = list.indexOf(item) + 1;
+                // item.areaName = this.areaName(item.x, item.y);
+            })
 
 
-      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); 
-              break; 
-                  default: 
-                      return 0; 
-                  break; 
-          } 
-      },
-      areaName(x, y) {
-        if (x <= 0.5 && y <= 50) {
-          return 'C';
-        } else if (x <= 1 && x > 0.5 && y <= 50) {
-          return 'C-'
-        } else if (x <= 0.5 && y > 50 && y <= 75) {
-          return 'B'
-        } else if (x <= 1 && x > 0.5 && y > 50 && y <= 75) {
-          return 'B-'
-        } else if (x <= 0.5 && y > 75 && y <= 100) {
-          return 'A'
-        } else if(x <= 1 && x > 0.5 && y > 75 && y <= 100){
-          return 'A-'
-        }
-      },
-      random() {
-        var r = Math.floor(Math.random() * 100 );
-        return r;
-      },
-      randomDataArray() {
-        var d = [];
-        var len = 60;
-        while (len--) {
-          d.push([Number((Math.random() * 0.99).toFixed(3)), this.random(), "张三"]);
-        }
-        console.log(d);
-        return d;
-      },
-      drawLine(data) {
-        // 基于准备好的dom,初始化echarts实例
-        let myScatter = this.$echarts.init(document.getElementById("myScatter"), 'chalk');
-        let _this = this;
+            // console.log(JSON.stringify(scatterList));
+        },
+        mounted() {
+            this.drawLine(this.dataArr)
+        },
+        methods: {
 
 
-        // 指定图表的配置项和数据
-        var option = {
-          tooltip: {
-            trigger: "item",
-            showDelay: 0,
-            axisPointer: {
-              show: true,
-              lineStyle: {
-                type: "dashed",
-                width: 1
-              }
-            },
-            textStyle: {
-              height:'160px'
-            },
-            formatter: function (params) {
-              const item = params;
-              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: [_this.$t('totalAnalysis.sca_text4')]
-          },
-          toolbox: {
-            show: true,
-            right:'70px',
-            feature: {
-              dataZoom: { show: true },
-              restore: { show: false }
-            }
-          },
-          //grid: {
-          //  show: true,
-          //  backgroundColor:"rgba(90,90,90,.2)" 
-          //},
-          xAxis: [
-            {
-              type: "value",
-              splitNumber: 2,
-              name: _this.$t('totalAnalysis.sca_chart_text2'),
-              nameTextStyle: {
-                color:"#e4eadb"
-              },
-              scale: true,
-              //max: 1,
-              //min:0,
-              splitLine:{
-                show: true,
-                lineStyle: {
-                  color:'#595959'
+            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)
+                        break;
+                    default:
+                        return 0
+                        break;
                 }
                 }
-             }
-            }
-          ],
-          yAxis: [
-            {
-              type: "value",
-              name: _this.$t('totalAnalysis.sca_chart_text1'),
-              nameTextStyle: {
-                color:"#e4eadb"
-              },
-              max: 100,
-              min: 0,
-              splitLine:{
-                show: false,
-                lineStyle: {
-                  color:'#595959'
+            },
+            areaName(x, y) {
+                if (x <= 0.5 && y <= 50) {
+                    return 'C'
+                } else if (x <= 1 && x > 0.5 && y <= 50) {
+                    return 'C-'
+                } else if (x <= 0.5 && y > 50 && y <= 75) {
+                    return 'B'
+                } else if (x <= 1 && x > 0.5 && y > 50 && y <= 75) {
+                    return 'B-'
+                } else if (x <= 0.5 && y > 75 && y <= 100) {
+                    return 'A'
+                } else if (x <= 1 && x > 0.5 && y > 75 && y <= 100) {
+                    return 'A-'
                 }
                 }
-              },
-              interval:25,
-              axisLabel: {  
-                show: true,  
-                formatter: function (value) {
-                  let val = [];
-                  if (value != 25) {
-                    val.push(value + '%')
-                  }
-                  return val;
-                }  
-                },  
-              spiltArea: {
-                show:true
-              }
-            }
-          ],
-          series: [
-            {
-              name: _this.$t('totalAnalysis.sca_text4'),
-              type: "scatter",
-              symbolSize:15,
-              data: data,
-              itemStyle: {
-                color: "#79c8e8",
-              },
-              //itemStyle: {
-              //  color: function(params) {
-              //      var key = params.dataIndex;
-              //      if (key == _this.activeItemIndex) {
-              //          return '#ff99cc';
-              //      } else {
-              //          return '#79c8e8' 
-              //      }
-              //  },
-              //  width: 20,
-              //},
-              emphasis: {
-                 itemStyle: {
-                    color: "#ff99cc"
-                  },
-              },
-              markLine: {
-                silent: true,
-                animation:false,
-                data: [
-                  { yAxis: 75 }, { yAxis: 50 }, { yAxis: 100 }
-                ],
-                label: {
-                  color:"#e4eadb",
-                  formatter: '{c}%'
-                },
-                lineStyle: {
-                  color: "#595959",
-                  type:"solid"
+            },
+            random() {
+                var r = Math.floor(Math.random() * 100)
+                return r
+            },
+            randomDataArray() {
+                var d = []
+                var len = 60
+                while (len--) {
+                    d.push([Number((Math.random() * 0.99).toFixed(3)), this.random(), '张三'])
                 }
                 }
-              },
-              markArea: {
-                silent:true,
-                data: [
-                    [{
-                        xAxis: '0.5',
-                        yAxis: '100',
-                        itemStyle:{
-                            color:'rgba(90,90,90,.2)'
-                        
-                        },
-                        label: {
+                console.log(d)
+                return d
+            },
+            drawLine(data) {
+                // 基于准备好的dom,初始化echarts实例
+                let myScatter = this.$echarts.init(document.getElementById('myScatter'), 'chalk')
+                let _this = this
+
+                // 指定图表的配置项和数据
+                var option = {
+                    tooltip: {
+                        trigger: 'item',
+                        showDelay: 0,
+                        axisPointer: {
                             show: true,
                             show: true,
-                            position: ['90%', '10%'],
-                            color: '#66ff33',
-                            fontSize: 20,
-                            formatter: "A"
+                            lineStyle: {
+                                type: 'dashed',
+                                width: 1
+                            }
+                        },
+                        textStyle: {
+                            height: '160px'
+                        },
+                        formatter: function (params) {
+                            const item = params
+                            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]}
+                       `
                         }
                         }
-                    
-                    }, {
-                        xAxis: '0',
-                        yAxis: '75',
-                        itemStyle:{
-                            color:''
-                        
+                    },
+                    legend: {
+                        data: [_this.$t('totalAnalysis.sca_text4')]
+                    },
+                    toolbox: {
+                        show: true,
+                        right: '70px',
+                        feature: {
+                            dataZoom: { show: true },
+                            restore: { show: false }
                         }
                         }
-                   
-                    }],
-                    [{
-                          xAxis: '1',
-                          yAxis: '100',
-                          itemStyle:{
-                              color:'rgba(128,128,128,0)'
-                        
-                          },
-                          label: {
-                              show: true,
-                              position: ['5%', '10%'],
-                              color: '#66ff33',
-                              fontSize: 20,
-                              formatter: "A-"
-                          }
-                    
-                      }, {
-                          xAxis: '0.5',
-                          yAxis: '75',
-                    }],
-                    [{
-                          xAxis: '0.5',
-                          yAxis: '75',
-                          itemStyle:{
-                              color:'rgba(128,128,128,0)'
-                        
-                          },
-                          label: {
-                              show: true,
-                              position: ['90%', '10%'],
-                              color: '#66ff33',
-                              fontSize: 20,
-                              formatter: "B"
-                          }
-                    
-                      }, {
-                          xAxis: '0',
-                          yAxis: '50',
-                    }],
-                    [{
-                          xAxis: '1',
-                          yAxis: '75',
-                          itemStyle:{
-                              color:'rgba(90,90,90,.2)'
-                        
-                          },
-                          label: {
-                              show: true,
-                              position: ['5%', '10%'],
-                              color: '#66ff33',
-                              fontSize: 20,
-                              formatter: "B-"
-                          }
-                    
-                      }, {
-                          xAxis: '0.5',
-                          yAxis: '50',
-                    }],
-                    [{
-                          xAxis: '0.5',
-                          yAxis: '50',
-                          itemStyle:{
-                              color:'rgba(90,90,90,.2)'
-                        
-                          },
-                          label: {
-                              show: true,
-                              position: ['90%', '10%'],
-                              color: '#66ff33',
-                              fontSize: 20,
-                              formatter: "C"
-                          }
-                    
-                      }, {
-                          xAxis: '0',
-                          yAxis: '0',
-                    }],
-                    [{
-                          xAxis: '1',
-                          yAxis: '50',
-                          itemStyle:{
-                              color:'rgba(128,128,128,0)'
-                        
-                          },
-                          label: {
-                              show: true,
-                              position: ['5%', '10%'],
-                              color: '#66ff33',
-                              fontSize: 20,
-                              formatter: "C-"
-                          }
-                    
-                      }, {
-                          xAxis: '0.5',
-                          yAxis: '0',
-                    }]
-                ],
-            }
-            }
-          ]
-        };
+                    },
+                    // grid: {
+                    //  show: true,
+                    //  backgroundColor:"rgba(90,90,90,.2)"
+                    // },
+                    xAxis: [
+                        {
+                            type: 'value',
+                            splitNumber: 2,
+                            name: _this.$t('totalAnalysis.sca_chart_text2'),
+                            nameTextStyle: {
+                                color: '#e4eadb'
+                            },
+                            scale: true,
+                            // max: 1,
+                            // min:0,
+                            splitLine: {
+                                show: true,
+                                lineStyle: {
+                                    color: '#595959'
+                                }
+                            }
+                        }
+                    ],
+                    yAxis: [
+                        {
+                            type: 'value',
+                            name: _this.$t('totalAnalysis.sca_chart_text1'),
+                            nameTextStyle: {
+                                color: '#e4eadb'
+                            },
+                            max: 100,
+                            min: 0,
+                            splitLine: {
+                                show: false,
+                                lineStyle: {
+                                    color: '#595959'
+                                }
+                            },
+                            interval: 25,
+                            axisLabel: {
+                                show: true,
+                                formatter: function (value) {
+                                    let val = []
+                                    if (value !== 25) {
+                                        val.push(value + '%')
+                                    }
+                                    return val
+                                }
+                            },
+                            spiltArea: {
+                                show: true
+                            }
+                        }
+                    ],
+                    series: [
+                        {
+                            name: _this.$t('totalAnalysis.sca_text4'),
+                            type: 'scatter',
+                            symbolSize: 15,
+                            data: data,
+                            itemStyle: {
+                                color: '#79c8e8'
+                            },
+                            // itemStyle: {
+                            //  color: function(params) {
+                            //      var key = params.dataIndex;
+                            //      if (key == _this.activeItemIndex) {
+                            //          return '#ff99cc';
+                            //      } else {
+                            //          return '#79c8e8'
+                            //      }
+                            //  },
+                            //  width: 20,
+                            // },
+                            emphasis: {
+                                itemStyle: {
+                                    color: '#ff99cc'
+                                }
+                            },
+                            markLine: {
+                                silent: true,
+                                animation: false,
+                                data: [
+                                    { yAxis: 75 }, { yAxis: 50 }, { yAxis: 100 }
+                                ],
+                                label: {
+                                    color: '#e4eadb',
+                                    formatter: '{c}%'
+                                },
+                                lineStyle: {
+                                    color: '#595959',
+                                    type: 'solid'
+                                }
+                            },
+                            markArea: {
+                                silent: true,
+                                data: [
+                                    [{
+                                        xAxis: '0.5',
+                                        yAxis: '100',
+                                        itemStyle: {
+                                            color: 'rgba(90,90,90,.2)'
+
+                                        },
+                                        label: {
+                                            show: true,
+                                            position: ['90%', '10%'],
+                                            color: '#66ff33',
+                                            fontSize: 20,
+                                            formatter: 'A'
+                                        }
+
+                                    }, {
+                                        xAxis: '0',
+                                        yAxis: '75',
+                                        itemStyle: {
+                                            color: ''
+
+                                        }
+
+                                    }],
+                                    [{
+                                        xAxis: '1',
+                                        yAxis: '100',
+                                        itemStyle: {
+                                            color: 'rgba(128,128,128,0)'
+
+                                        },
+                                        label: {
+                                            show: true,
+                                            position: ['5%', '10%'],
+                                            color: '#66ff33',
+                                            fontSize: 20,
+                                            formatter: 'A-'
+                                        }
+
+                                    }, {
+                                        xAxis: '0.5',
+                                        yAxis: '75'
+                                    }],
+                                    [{
+                                        xAxis: '0.5',
+                                        yAxis: '75',
+                                        itemStyle: {
+                                            color: 'rgba(128,128,128,0)'
+
+                                        },
+                                        label: {
+                                            show: true,
+                                            position: ['90%', '10%'],
+                                            color: '#66ff33',
+                                            fontSize: 20,
+                                            formatter: 'B'
+                                        }
+
+                                    }, {
+                                        xAxis: '0',
+                                        yAxis: '50'
+                                    }],
+                                    [{
+                                        xAxis: '1',
+                                        yAxis: '75',
+                                        itemStyle: {
+                                            color: 'rgba(90,90,90,.2)'
 
 
+                                        },
+                                        label: {
+                                            show: true,
+                                            position: ['5%', '10%'],
+                                            color: '#66ff33',
+                                            fontSize: 20,
+                                            formatter: 'B-'
+                                        }
 
 
-        // 绘制图表
-        myScatter.setOption(option);
-        window.addEventListener("resize", function () {
-          myScatter.resize();
-        });
+                                    }, {
+                                        xAxis: '0.5',
+                                        yAxis: '50'
+                                    }],
+                                    [{
+                                        xAxis: '0.5',
+                                        yAxis: '50',
+                                        itemStyle: {
+                                            color: 'rgba(90,90,90,.2)'
 
 
-        let that = this;
-        myScatter.on('click', function (item) {
-          that.activeItemIndex = item.dataIndex;
-          //that.$emit('handleItemClick', item);
-        })
+                                        },
+                                        label: {
+                                            show: true,
+                                            position: ['90%', '10%'],
+                                            color: '#66ff33',
+                                            fontSize: 20,
+                                            formatter: 'C'
+                                        }
 
 
-        //缩放后显示还原按钮
-        myScatter.on('datazoom', function (params){
-          //console.log(params);
-          var startValue = myScatter.getModel().option.dataZoom[0].startValue;
-          var endValue = myScatter.getModel().option.dataZoom[0].endValue;
-          var startPercent = myScatter.getModel().option.dataZoom[0].start;
-          var endPercent = myScatter.getModel().option.dataZoom[0].end;
-          option.toolbox.feature.restore.show = endValue != 1;
-          myScatter.setOption(option);
-        })
+                                    }, {
+                                        xAxis: '0',
+                                        yAxis: '0'
+                                    }],
+                                    [{
+                                        xAxis: '1',
+                                        yAxis: '50',
+                                        itemStyle: {
+                                            color: 'rgba(128,128,128,0)'
 
 
-        //还原后隐藏还原按钮
-        myScatter.on('restore', function (params){
-          option.toolbox.feature.restore.show = false;
-          myScatter.setOption(option);
-      })
+                                        },
+                                        label: {
+                                            show: true,
+                                            position: ['5%', '10%'],
+                                            color: '#66ff33',
+                                            fontSize: 20,
+                                            formatter: 'C-'
+                                        }
 
 
-      }
-    },
+                                    }, {
+                                        xAxis: '0.5',
+                                        yAxis: '0'
+                                    }]
+                                ]
+                            }
+                        }
+                    ]
+                }
+
+                // 绘制图表
+                myScatter.setOption(option)
+                window.addEventListener('resize', function () {
+                    myScatter.resize()
+                })
 
 
-    computed: {
-      //获取最新柱状图数据
-      getScatterData() {
-        let list = this.$store.state.totalAnalysis.scatter;
-        let a = list.map(item => item.y);
-        return list;
-      }
-    },
-    watch: {
-      getScatterData(val) {
-        let newArr = [];
-        val.forEach(item => {
-          let arr = [];
-          arr.push(item.x);
-          arr.push(item.y);
-          arr.push(item.name);
-          arr.push(item.id);
-          newArr.push(arr);
-        })
-        this.scatterList = val;
-        this.drawLine(newArr);
-      }
+                let that = this
+                myScatter.on('click', function (item) {
+                    that.activeItemIndex = item.dataIndex
+                })
+
+                // 缩放后显示还原按钮
+                myScatter.on('datazoom', function (params) {
+                    // console.log(params);
+                    var endValue = myScatter.getModel().option.dataZoom[0].endValue
+                    option.toolbox.feature.restore.show = endValue !== 1
+                    myScatter.setOption(option)
+                })
+
+                // 还原后隐藏还原按钮
+                myScatter.on('restore', function (params) {
+                    option.toolbox.feature.restore.show = false
+                    myScatter.setOption(option)
+                })
+            }
+        },
+
+        computed: {
+            // 获取最新柱状图数据
+            getScatterData() {
+                let list = this.$store.state.totalAnalysis.scatter
+                let a = list.map(item => item.y)
+                return list
+            }
+        },
+        watch: {
+            getScatterData(val) {
+                let newArr = []
+                val.forEach(item => {
+                    let arr = []
+                    arr.push(item.x)
+                    arr.push(item.y)
+                    arr.push(item.name)
+                    arr.push(item.id)
+                    newArr.push(arr)
+                })
+                this.scatterList = val
+                this.drawLine(newArr)
+            }
+        }
     }
     }
-  };
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
 <style scoped>
 
 
-  #myScatter {
-    width: 100%;
-    height: 500px;
-    margin: 0 auto;
-    display: block;
-  }
+    #myScatter {
+        width: 100%;
+        height: 500px;
+        margin: 0 auto;
+        display: block;
+    }
 </style>
 </style>

+ 53 - 53
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseTable.vue

@@ -6,114 +6,114 @@
 
 
 <script>
 <script>
 export default {
 export default {
-  name: "helloLine",
+  name: 'helloLine',
   data() {
   data() {
     return {
     return {
       columns1: [
       columns1: [
         {
         {
-          title: "姓名",
-          key: "name",
-          align:'center'
+          title: '姓名',
+          key: 'name',
+          align: 'center'
         },
         },
         {
         {
-          title: "学号",
-          key: "age",
+          title: '学号',
+          key: 'age',
           sortable: true,
           sortable: true,
-          align:'center'
+          align: 'center'
         },
         },
         {
         {
-          title: "座号",
-          key: "address",
+          title: '座号',
+          key: 'address',
           sortable: true,
           sortable: true,
-          align:'center'
+          align: 'center'
         },
         },
         {
         {
-          title: "分数",
-          key: "name",
+          title: '分数',
+          key: 'name',
           sortable: true,
           sortable: true,
-          align:'center'
+          align: 'center'
         },
         },
         {
         {
-          title: "答对题数",
-          key: "age",
+          title: '答对题数',
+          key: 'age',
           sortable: true,
           sortable: true,
-          align:'center'
+          align: 'center'
         },
         },
         {
         {
-          title: "答错题数",
-          key: "age",
+          title: '答错题数',
+          key: 'age',
           sortable: true,
           sortable: true,
-          align:'center'
-        },
+          align: 'center'
+        }
       ],
       ],
       data1: [
       data1: [
         {
         {
-          name: "379班",
+          name: '379班',
           age: 18,
           age: 18,
-          address: "496.1",
-          date: "3.44%"
+          address: '496.1',
+          date: '3.44%'
         },
         },
         {
         {
-          name: "380班",
+          name: '380班',
           age: 28,
           age: 28,
-          address: "496.1",
-          date: "3.44%"
+          address: '496.1',
+          date: '3.44%'
         },
         },
         {
         {
-          name: "381班",
+          name: '381班',
           age: 48,
           age: 48,
-          address: "496.1",
-          date: "3.44%"
+          address: '496.1',
+          date: '3.44%'
         },
         },
         {
         {
-          name: "382班",
+          name: '382班',
           age: 12,
           age: 12,
-          address: "496.1",
-          date: "3.44%"
+          address: '496.1',
+          date: '3.44%'
         },
         },
         {
         {
-          name: "383班",
+          name: '383班',
           age: 28,
           age: 28,
-          address: "496.1",
-          date: "3.44%"
+          address: '496.1',
+          date: '3.44%'
         },
         },
         {
         {
-          name: "384班",
+          name: '384班',
           age: 18,
           age: 18,
-          address: "496.1",
-          date: "3.44%"
+          address: '496.1',
+          date: '3.44%'
         },
         },
         {
         {
-          name: "385班",
+          name: '385班',
           age: 18,
           age: 18,
-          address: "496.1",
-          date: "3.44%"
+          address: '496.1',
+          date: '3.44%'
         },
         },
         {
         {
-          name: "382班",
+          name: '382班',
           age: 12,
           age: 12,
-          address: "496.1",
-          date: "3.44%"
+          address: '496.1',
+          date: '3.44%'
         },
         },
         {
         {
-          name: "383班",
+          name: '383班',
           age: 28,
           age: 28,
-          address: "496.1",
-          date: "3.44%"
+          address: '496.1',
+          date: '3.44%'
         },
         },
         {
         {
-          name: "384班",
+          name: '384班',
           age: 18,
           age: 18,
-          address: "496.1",
-          date: "3.44%"
-        },
+          address: '496.1',
+          date: '3.44%'
+        }
 
 
       ]
       ]
-    };
+    }
   },
   },
   mounted() {},
   mounted() {},
   methods: {}
   methods: {}
-};
+}
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->

+ 336 - 347
TEAMModelOS/ClientApp/src/components/student-analysis/total/BaseTestScatter.vue

@@ -1,374 +1,363 @@
 <template>
 <template>
-  <div id="testScatter"></div>
+    <div id="testScatter"></div>
 </template>
 </template>
 
 
 <script>
 <script>
-  import testScatter from '@/static/testScatter.json'
-  import knowledgeList from '@/static/knowledgeList.json'
+    import testScatter from '@/static/testScatter.json'
+    import knowledgeList from '@/static/knowledgeList.json'
 
 
-  export default {
-    name: "hello",
-    data() {
-      return {
-        originArr:[],
-        dataArr: [],
-        activeItemIndex:0
-      };
-    },
-    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));
+    export default {
+        name: 'hello',
+        data() {
+            return {
+                originArr: [],
+                dataArr: [],
+                activeItemIndex: 0
+            }
+        },
+        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)
+            })
 
 
-    },
-    mounted() {
-      this.drawLine(this.dataArr);
+            //let list = testScatter.map(item => item.tableData)
+            //let knowList = ['方程与不等式', '图形的性质', '统计与概率', '函数', '图形的相似', '锐角三角函数', '几何图形初步', '投影与视图']
 
 
-    },
-    methods: {
-      random() {
-        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 -'
-        }
-      },
+            // 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(this.dataArr)
+        },
+        methods: {
+            random() {
+                var r = Math.floor(Math.random() * 100)
+                return r
+            },
 
 
-      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 = [];
-        var len = 50;
-        while (len--) {
-          d.push([Number(Math.random().toFixed(3)), this.random(), "张三"]);
-        }
-        console.log(d);
-        return d;
-      },
-      drawLine(data) {
-        // 基于准备好的dom,初始化echarts实例
-        let myScatter = this.$echarts.init(document.getElementById("testScatter"), 'chalk');
-        let _this = this;
+            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 -'
+                }
+            },
 
 
-        // 指定图表的配置项和数据
-        var option = {
-          tooltip: {
-            trigger: "item",
-            showDelay: 0,
-            axisPointer: {
-              show: true,
-              lineStyle: {
-                type: "dashed",
-                width: 1
-              }
+            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;
+                }
             },
             },
-            textStyle: {
-              height:'160px'
+
+            randomDataArray() {
+                var d = []
+                var len = 50
+                while (len--) {
+                    d.push([Number(Math.random().toFixed(3)), this.random(), '张三'])
+                }
+                console.log(d)
+                return d
             },
             },
-            formatter: function (params) {
-              const item = params;
-              return `${_this.$t('totalAnalysis.ta_table_text1')}:${item.data[3]}
+            drawLine(data) {
+                // 基于准备好的dom,初始化echarts实例
+                let myScatter = this.$echarts.init(document.getElementById('testScatter'), 'chalk')
+                let _this = this
+
+                // 指定图表的配置项和数据
+                var option = {
+                    tooltip: {
+                        trigger: 'item',
+                        showDelay: 0,
+                        axisPointer: {
+                            show: true,
+                            lineStyle: {
+                                type: 'dashed',
+                                width: 1
+                            }
+                        },
+                        textStyle: {
+                            height: '160px'
+                        },
+                        formatter: function (params) {
+                            const item = params
+                            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_table_text2')}:${item.data[2]}
                         <br/>${_this.$t('totalAnalysis.ta_chart_text2')}:${item.data[1]}%
                         <br/>${_this.$t('totalAnalysis.ta_chart_text2')}:${item.data[1]}%
-                       `;
-              }
-          },
-          legend: {
-            data: [_this.$t('totalAnalysis.ta_chart_text1')]
-          },
-          toolbox: {
-            show: true,
-            right:'70px',
-            feature: {
-              dataZoom: { show: true },
-              restore: { show: false },
-            }
-          },
-          //grid: {
-          //  show: true,
-          //  backgroundColor:"rgba(90,90,90,.2)" 
-          //},
-          xAxis: [
-            {
-              type: "value",
-              splitNumber: 2,
-              name:_this.$t('totalAnalysis.ta_chart_text3'),
-              nameTextStyle: {
-                color:"#e4eadb"
-              },
-              scale: true,
-              //max: 1,
-              //min:0,
-              splitLine:{
-                show: true,
-                lineStyle: {
-                  color:'#595959'
-                }
-             }
-            }
-          ],
-          yAxis: [
-            {
-              type: "value",
-              name: _this.$t('totalAnalysis.ta_chart_text2'),
-              nameTextStyle: {
-                color:"#e4eadb"
-              },
-              max: 100,
-              min: 0,
-              splitLine:{
-                show: false,
-                lineStyle: {
-                  color:'#595959'
-                }
-              },
-              interval:50,
-              axisLabel: {  
-                show: true,  
-                formatter: function (value) {
-                  let val = [];
-                  if (value != 25) {
-                    val.push(value + '%')
-                  }
-                  return val;
-                }  
-                },  
-              spiltArea: {
-                show:true
-              }
-            }
-          ],
-          series: [
-            {
-              name: _this.$t('totalAnalysis.ta_chart_text1'),
-              type: "scatter",
-              data: data,
-              symbolSize: 20,
-              emphasis: {
-                 itemStyle: {
-                    color: "#ff99cc"
-                  },
-              },
-              //itemStyle: {
-              //  color: "#79c8e8"
-              //},
-              itemStyle: {
-                color: function(params) {
-                    var key = params.dataIndex;
-                    if (key == _this.activeItemIndex) {
-                        return '#ff99cc';
-                    } else {
-                        return '#79c8e8' 
-                    }
-                },
-                width: 20,
-              },
-              markLine: {
-                silent: true,
-                animation:false,
-                data: [
-                  { yAxis: 50 }, { yAxis: 100 }
-                ],
-                label: {
-                  color:"#e4eadb",
-                  formatter: '{c}%'
-                },
-                lineStyle: {
-                  color: "#595959",
-                  type:"solid"
-                }
-              },
-              markArea: {
-                silent:true,
-                data: [
-                    [{
-                          xAxis: '0.5',
-                          yAxis: '50',
-                          itemStyle:{
-                              color:'rgba(128,28,128,0)'
-                        
-                          },
-                          label: {
-                              show: true,
-                              position: ['90%', '10%'],
-                              color: '#66ff33',
-                              fontSize: 20,
-                              formatter: "B"
-                          }
-                    
-                      }, {
-                          xAxis: '0',
-                          yAxis: '0',
-                    }],
-                    [{
-                          xAxis: '1',
-                          yAxis: '50',
-                          itemStyle:{
-                              color:'rgba(90,90,90,.2)'
-                        
-                          },
-                          label: {
-                              show: true,
-                              position: ['5%', '10%'],
-                              color: '#66ff33',
-                              fontSize: 20,
-                              formatter: "B-"
-                          }
-                    
-                      }, {
-                          xAxis: '0.5',
-                          yAxis: '0',
-                    }],
-                    [{
-                          xAxis: '0.5',
-                          yAxis: '100',
-                          itemStyle:{
-                              color:'rgba(90,90,90,.2)'
-                        
-                          },
-                          label: {
-                              show: true,
-                              position: ['90%', '80%'],
-                              color: '#66ff33',
-                              fontSize: 20,
-                              formatter: "A"
-                          }
-                    
-                      }, {
-                          xAxis: '0',
-                          yAxis: '50',
-                    }],
-                    [{
-                          xAxis: '1',
-                          yAxis: '100',
-                          itemStyle:{
-                              color:'rgba(128,128,128,0)'
-                        
-                          },
-                          label: {
-                              show: true,
-                              position: ['5%', '40%'],
-                              color: '#66ff33',
-                              fontSize: 20,
-                              formatter: "A-"
-                          }
-                    
-                      }, {
-                          xAxis: '0.5',
-                          yAxis: '0',
-                    }]
-                ],
-            }
-            }
-          ]
-        };
+                       `
+                        }
+                    },
+                    legend: {
+                        data: [_this.$t('totalAnalysis.ta_chart_text1')]
+                    },
+                    toolbox: {
+                        show: true,
+                        right: '70px',
+                        feature: {
+                            dataZoom: { show: true },
+                            restore: { show: false }
+                        }
+                    },
+                    // grid: {
+                    //  show: true,
+                    //  backgroundColor:"rgba(90,90,90,.2)"
+                    // },
+                    xAxis: [
+                        {
+                            type: 'value',
+                            splitNumber: 2,
+                            name: _this.$t('totalAnalysis.ta_chart_text3'),
+                            nameTextStyle: {
+                                color: '#e4eadb'
+                            },
+                            scale: true,
+                            // max: 1,
+                            // min:0,
+                            splitLine: {
+                                show: true,
+                                lineStyle: {
+                                    color: '#595959'
+                                }
+                            }
+                        }
+                    ],
+                    yAxis: [
+                        {
+                            type: 'value',
+                            name: _this.$t('totalAnalysis.ta_chart_text2'),
+                            nameTextStyle: {
+                                color: '#e4eadb'
+                            },
+                            max: 100,
+                            min: 0,
+                            splitLine: {
+                                show: false,
+                                lineStyle: {
+                                    color: '#595959'
+                                }
+                            },
+                            interval: 50,
+                            axisLabel: {
+                                show: true,
+                                formatter: function (value) {
+                                    let val = []
+                                    if (value != 25) {
+                                        val.push(value + '%')
+                                    }
+                                    return val
+                                }
+                            },
+                            spiltArea: {
+                                show: true
+                            }
+                        }
+                    ],
+                    series: [
+                        {
+                            name: _this.$t('totalAnalysis.ta_chart_text1'),
+                            type: 'scatter',
+                            data: data,
+                            symbolSize: 20,
+                            emphasis: {
+                                itemStyle: {
+                                    color: '#ff99cc'
+                                }
+                            },
+                            // itemStyle: {
+                            //  color: "#79c8e8"
+                            // },
+                            itemStyle: {
+                                color: function (params) {
+                                    var key = params.dataIndex
+                                    if (key == _this.activeItemIndex) {
+                                        return '#ff99cc'
+                                    } else {
+                                        return '#79c8e8'
+                                    }
+                                },
+                                width: 20
+                            },
+                            markLine: {
+                                silent: true,
+                                animation: false,
+                                data: [
+                                    { yAxis: 50 }, { yAxis: 100 }
+                                ],
+                                label: {
+                                    color: '#e4eadb',
+                                    formatter: '{c}%'
+                                },
+                                lineStyle: {
+                                    color: '#595959',
+                                    type: 'solid'
+                                }
+                            },
+                            markArea: {
+                                silent: true,
+                                data: [
+                                    [{
+                                        xAxis: '0.5',
+                                        yAxis: '50',
+                                        itemStyle: {
+                                            color: 'rgba(128,28,128,0)'
+                                        },
+                                        label: {
+                                            show: true,
+                                            position: ['90%', '10%'],
+                                            color: '#66ff33',
+                                            fontSize: 20,
+                                            formatter: 'B'
+                                        }
+                                    }, {
+                                        xAxis: '0',
+                                        yAxis: '0'
+                                    }],
+                                    [{
+                                        xAxis: '1',
+                                        yAxis: '50',
+                                        itemStyle: {
+                                            color: 'rgba(90,90,90,.2)'
+
+                                        },
+                                        label: {
+                                            show: true,
+                                            position: ['5%', '10%'],
+                                            color: '#66ff33',
+                                            fontSize: 20,
+                                            formatter: 'B-'
+                                        }
+
+                                    }, {
+                                        xAxis: '0.5',
+                                        yAxis: '0'
+                                    }],
+                                    [{
+                                        xAxis: '0.5',
+                                        yAxis: '100',
+                                        itemStyle: {
+                                            color: 'rgba(90,90,90,.2)'
 
 
+                                        },
+                                        label: {
+                                            show: true,
+                                            position: ['90%', '80%'],
+                                            color: '#66ff33',
+                                            fontSize: 20,
+                                            formatter: 'A'
+                                        }
 
 
-        // 绘制图表
-        myScatter.setOption(option);
-        window.addEventListener("resize", function () {
-          myScatter.resize();
-        });
+                                    }, {
+                                        xAxis: '0',
+                                        yAxis: '50'
+                                    }],
+                                    [{
+                                        xAxis: '1',
+                                        yAxis: '100',
+                                        itemStyle: {
+                                            color: 'rgba(128,128,128,0)'
 
 
-        let that = this;
-        myScatter.on('click', function (item) {
-          that.activeItemIndex = item.dataIndex;
-          that.$emit('handleItemClick', item);
-          myScatter.setOption(option);
-        })
+                                        },
+                                        label: {
+                                            show: true,
+                                            position: ['5%', '40%'],
+                                            color: '#66ff33',
+                                            fontSize: 20,
+                                            formatter: 'A-'
+                                        }
+                                    }, {
+                                        xAxis: '0.5',
+                                        yAxis: '0'
+                                    }]
+                                ]
+                            }
+                        }
+                    ]
+                }
+
+                // 绘制图表
+                myScatter.setOption(option)
+                window.addEventListener('resize', function () {
+                    myScatter.resize()
+                })
 
 
-        //缩放后显示还原按钮
-        myScatter.on('datazoom', function (params){
-          //console.log(params);
-          var startValue = myScatter.getModel().option.dataZoom[0].startValue;
-          var endValue = myScatter.getModel().option.dataZoom[0].endValue;
-          var startPercent = myScatter.getModel().option.dataZoom[0].start;
-          var endPercent = myScatter.getModel().option.dataZoom[0].end;
-          option.toolbox.feature.restore.show = endValue != 1;
-          myScatter.setOption(option);
-        })
+                let that = this
+                myScatter.on('click', function (item) {
+                    that.activeItemIndex = item.dataIndex
+                    that.$emit('handleItemClick', item)
+                    myScatter.setOption(option)
+                })
 
 
-        //还原后隐藏还原按钮
-        myScatter.on('restore', function (params){
-          option.toolbox.feature.restore.show = false;
-          myScatter.setOption(option);
-      })
-      }
-    },
+                // 缩放后显示还原按钮
+                myScatter.on('datazoom', function (params) {
+                    // console.log(params);
+                    var endValue = myScatter.getModel().option.dataZoom[0].endValue
+                    option.toolbox.feature.restore.show = endValue != 1
+                    myScatter.setOption(option)
+                })
+
+                // 还原后隐藏还原按钮
+                myScatter.on('restore', function (params) {
+                    option.toolbox.feature.restore.show = false
+                    myScatter.setOption(option)
+                })
+            }
+        },
 
 
-    computed: {
-      //获取最新柱状图数据
-      getTestScatterData() {
-        let list = this.$store.state.totalAnalysis.testScatter;
-        let a = list.map(item => item.y);
-        return list;
-      }
-    },
-    watch: {
-      getTestScatterData(val) {
-        let newArr = [];
-        val.forEach(item => {
-          let arr = [];
-          arr.push(item.x);
-          arr.push(item.y);
-          arr.push(item.type);
-          arr.push(item.id);
-          newArr.push(arr);
-        })
-        this.scatterList = val;
-        this.drawLine(newArr);
-      }
+        computed: {
+            // 获取最新柱状图数据
+            getTestScatterData() {
+                let list = this.$store.state.totalAnalysis.testScatter
+                let a = list.map(item => item.y)
+                return list
+            }
+        },
+        watch: {
+            getTestScatterData(val) {
+                let newArr = []
+                val.forEach(item => {
+                    let arr = []
+                    arr.push(item.x)
+                    arr.push(item.y)
+                    arr.push(item.type)
+                    arr.push(item.id)
+                    newArr.push(arr)
+                })
+                this.scatterList = val
+                this.drawLine(newArr)
+            }
+        }
     }
     }
-  };
 </script>
 </script>
 
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
 <style scoped>
 
 
-  #testScatter {
-    width: 100%;
-    height: 500px;
-    margin: 0 auto;
-    display: block;
-  }
+    #testScatter {
+        width: 100%;
+        height: 500px;
+        margin: 0 auto;
+        display: block;
+    }
 </style>
 </style>

+ 24 - 25
TEAMModelOS/ClientApp/src/components/student-analysis/total/ExportTables.vue

@@ -20,56 +20,56 @@
   export default {
   export default {
     data() {
     data() {
       return {
       return {
-        tableList:[], //可选择数据源
-        indeterminate: false, //是否有选中
-        checkAll: false, //是否全选
-        checkAllGroup: [] //全选数据
+        tableList: [], // 可选择数据源
+        indeterminate: false, // 是否有选中
+        checkAll: false, // 是否全选
+        checkAllGroup: [] // 全选数据
       }
       }
     },
     },
 
 
     created() {
     created() {
-      this.tableList = tableList;
+      this.tableList = tableList
     },
     },
     methods: {
     methods: {
       handleCheckAll() {
       handleCheckAll() {
         if (this.indeterminate) {
         if (this.indeterminate) {
-          this.checkAll = false;
+          this.checkAll = false
         } else {
         } else {
-          this.checkAll = !this.checkAll;
+          this.checkAll = !this.checkAll
         }
         }
-        this.indeterminate = false;
+        this.indeterminate = false
 
 
         if (this.checkAll) {
         if (this.checkAll) {
-          this.checkAllGroup = this.tableList.map(item => item.name + '.xls');
+          this.checkAllGroup = this.tableList.map(item => item.name + '.xls')
         } else {
         } else {
-          this.checkAllGroup = [];
+          this.checkAllGroup = []
         }
         }
       },
       },
       checkAllGroupChange(data) {
       checkAllGroupChange(data) {
         if (data.length === this.tableList.length) {
         if (data.length === this.tableList.length) {
-          this.indeterminate = false;
-          this.checkAll = true;
+          this.indeterminate = false
+          this.checkAll = true
         } else if (data.length > 0) {
         } else if (data.length > 0) {
-          this.indeterminate = true;
-          this.checkAll = false;
+          this.indeterminate = true
+          this.checkAll = false
         } else {
         } else {
-          this.indeterminate = false;
-          this.checkAll = false;
+          this.indeterminate = false
+          this.checkAll = false
         }
         }
       },
       },
-      //确认导出表格
+      // 确认导出表格
       handleDownload() {
       handleDownload() {
-        //let a = document.createElement('a');
-        //console.log(a);
-        //a.href ="/user/downloadExcel"
-        //a.click();
-        let checkList = this.checkAllGroup;
+        // let a = document.createElement('a');
+        // console.log(a);
+        // a.href ="/user/downloadExcel"
+        // a.click();
+        let checkList = this.checkAllGroup
         if (checkList.length) {
         if (checkList.length) {
 
 
         } else {
         } else {
-          this.$Message.warning("请选择要导出的表格!");
+          this.$Message.warning('请选择要导出的表格!')
         }
         }
-        console.log(this.checkAllGroup);
+        console.log(this.checkAllGroup)
       }
       }
     }
     }
   }
   }
@@ -86,7 +86,6 @@
       font-weight:bold;
       font-weight:bold;
   }
   }
 
 
-
   .export-container .ivu-checkbox {
   .export-container .ivu-checkbox {
       margin-right:10px;
       margin-right:10px;
       margin-bottom:3px;
       margin-bottom:3px;

+ 77 - 77
TEAMModelOS/ClientApp/src/components/syllabus/KnowTree.vue

@@ -5,191 +5,191 @@
 </template>
 </template>
 <script>
 <script>
   export default {
   export default {
-    props: ["treeDatas", "volumeCode"],
+    props: ['treeDatas', 'volumeCode'],
     data() {
     data() {
       return {
       return {
         treeData: [],
         treeData: [],
         schoolInfo: {},
         schoolInfo: {},
-        inputValue: "",
-        editValue: "",
+        inputValue: '',
+        editValue: '',
         modalFlag: false,
         modalFlag: false,
         editFlag: false,
         editFlag: false,
         addBookFlag: false,
         addBookFlag: false,
-        nodeType: "章节",
-        currentNode: "",
-        currentLiNode: "",
-      };
+        nodeType: '章节',
+        currentNode: '',
+        currentLiNode: ''
+      }
     },
     },
     created() {
     created() {
-      this.treeData = this.treeDatas;
-      this.schoolInfo = JSON.parse(localStorage.getItem('c_role_info')).roleClaim[0]; //默认选中第一个学校
-      let schoolClaims = this.schoolInfo.claim;
+      this.treeData = this.treeDatas
+      this.schoolInfo = JSON.parse(localStorage.getItem('c_role_info')).roleClaim[0] // 默认选中第一个学校
+      let schoolClaims = this.schoolInfo.claim
       for (let i in schoolClaims) {
       for (let i in schoolClaims) {
-        if (schoolClaims[i].claimType == "SchoolCode") {
+        if (schoolClaims[i].claimType == 'SchoolCode') {
           this.schoolInfo = schoolClaims[i]
           this.schoolInfo = schoolClaims[i]
         }
         }
       }
       }
     },
     },
 
 
-    //监听树形数据源变化
+    // 监听树形数据源变化
     watch: {
     watch: {
       treeDatas: {
       treeDatas: {
         handler(newValue) {
         handler(newValue) {
-          this.treeData = newValue;
+          this.treeData = newValue
         },
         },
         deep: true
         deep: true
       }
       }
     },
     },
     methods: {
     methods: {
-      //自定义渲染树形工具
+      // 自定义渲染树形工具
        renderContent(h, { root, node, data }) {
        renderContent(h, { root, node, data }) {
-        let that = this;
+        let that = this
         return h(
         return h(
-          "span",
+          'span',
           {
           {
             domProps: {
             domProps: {
-              className: "singleClass"
+              className: 'singleClass'
             },
             },
             on: {
             on: {
               click: () => {
               click: () => {
-                this.titleClick(root, node, data, event);
+                this.titleClick(root, node, data, event)
               },
               },
               mouseover: e => {
               mouseover: e => {
-                e.stopPropagation();
-                this.handleLiOver(event);
+                e.stopPropagation()
+                this.handleLiOver(event)
               },
               },
               mouseleave: e => {
               mouseleave: e => {
-                e.stopPropagation();
-                this.handleLiLeave(node, event);
+                e.stopPropagation()
+                this.handleLiLeave(node, event)
               }
               }
             }
             }
           },
           },
           [
           [
-            h("span", [
-              h("Icon", {
+            h('span', [
+              h('Icon', {
                 props: {
                 props: {
                   type:
                   type:
                     data.children && data.children.length > 0
                     data.children && data.children.length > 0
-                      ? "md-albums"
-                      : "ios-paper-outline"
+                      ? 'md-albums'
+                      : 'ios-paper-outline'
                 },
                 },
                 style: {
                 style: {
-                  marginRight: "5px",
+                  marginRight: '5px'
                 }
                 }
               }),
               }),
-              h("span", data.name)
+              h('span', data.name)
             ]),
             ]),
             h(
             h(
-              "span",
+              'span',
               {
               {
                 style: {
                 style: {
-                  float: "right",
-                  top: "6px",
-                  display: "none"
+                  float: 'right',
+                  top: '6px',
+                  display: 'none'
                 },
                 },
                 on: {
                 on: {
                   mouseleave: e => {
                   mouseleave: e => {
-                    e.stopPropagation();
-                    //this.hideTools(event);
-                  },
+                    e.stopPropagation()
+                    // this.hideTools(event);
+                  }
                 },
                 },
                 domProps: {
                 domProps: {
-                  className: "tools"
+                  className: 'tools'
                 }
                 }
               },
               },
               [
               [
                 h(
                 h(
-                  "span",
+                  'span',
                   {
                   {
                     style: {
                     style: {
-                      fontSize: "10px",
-                      //color:"#339aef"
+                      fontSize: '10px'
+                      // color:"#339aef"
                     },
                     },
                     domProps: {
                     domProps: {
                       innerHTML: "<i class='ivu-icon ivu-icon-md-cloud-download' style='margin-bottom: 5px;margin-right: 2px;color:#339aef;font-size:20px'></i> 引入至私有知识块 / 知识点库"
                       innerHTML: "<i class='ivu-icon ivu-icon-md-cloud-download' style='margin-bottom: 5px;margin-right: 2px;color:#339aef;font-size:20px'></i> 引入至私有知识块 / 知识点库"
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.saveKnowledge(data);
+                        e.stopPropagation()
+                        this.saveKnowledge(data)
                       }
                       }
                     }
                     }
-                  },
-                ),
+                  }
+                )
               ]
               ]
             )
             )
           ]
           ]
-        );
+        )
       },
       },
-      //引入到私有知识库
+      // 引入到私有知识库
       saveKnowledge(data) {
       saveKnowledge(data) {
         this.$Modal.confirm({
         this.$Modal.confirm({
           title: '温馨提示',
           title: '温馨提示',
-          content: '<p>确认将<span style="color:#339aef;font-weight:bold"> '+data.name+' </span> 添加到 私有知识块 / 知识点库 吗?</p>',
-          okText: "确认",
-          cancelText:"取消",
+          content: '<p>确认将<span style="color:#339aef;font-weight:bold"> ' + data.name + ' </span> 添加到 私有知识块 / 知识点库 吗?</p>',
+          okText: '确认',
+          cancelText: '取消',
           onOk: () => {
           onOk: () => {
             let params = {
             let params = {
               KnowledgeId: data.rowKey,
               KnowledgeId: data.rowKey,
               SchoolCode: this.schoolInfo.claimCode,
               SchoolCode: this.schoolInfo.claimCode,
-              SubjectCode: "Subject_Chinese",
+              SubjectCode: 'Subject_Chinese',
               PartitionKey: this.schoolInfo.partitionKey
               PartitionKey: this.schoolInfo.partitionKey
             }
             }
             this.$api.SaveOrUpdateSchoolKnowledgeAsStdKnowledge(params).then(res => {
             this.$api.SaveOrUpdateSchoolKnowledgeAsStdKnowledge(params).then(res => {
-              this.$Message.success("导入成功!");
+              this.$Message.success('导入成功!')
             })
             })
           }
           }
-        });
+        })
       },
       },
       // 标题点击收缩展开
       // 标题点击收缩展开
       titleClick(root, node, data, event) {
       titleClick(root, node, data, event) {
-        data.expand = !data.expand;
-        console.log(data);
+        data.expand = !data.expand
+        console.log(data)
       },
       },
       // 根目录点击事件
       // 根目录点击事件
       rootClick(data) {
       rootClick(data) {
-        data.expand = !data.expand;
+        data.expand = !data.expand
       },
       },
-     
+
       // 更多操作
       // 更多操作
       handleTools(root, node, data, event) {
       handleTools(root, node, data, event) {
-        let toolsDom = event.currentTarget.nextElementSibling;
-        const parentKey = root.find(el => el === node).parent;
-        const parent = root.find(el => el.nodeKey === parentKey).node;
-        const index = parent.children.indexOf(data);
-        let list = document.getElementsByClassName("tools");
-        let cFlag = toolsDom.style.display;
+        let toolsDom = event.currentTarget.nextElementSibling
+        const parentKey = root.find(el => el === node).parent
+        const parent = root.find(el => el.nodeKey === parentKey).node
+        const index = parent.children.indexOf(data)
+        let list = document.getElementsByClassName('tools')
+        let cFlag = toolsDom.style.display
         for (let i = 0; i < list.length; i++) {
         for (let i = 0; i < list.length; i++) {
-          list[i].style.display = "none";
+          list[i].style.display = 'none'
         }
         }
         // 判断TOOL显示与隐藏
         // 判断TOOL显示与隐藏
-        if (cFlag == "none") {
-          toolsDom.style.display = "inline-flex";
-          toolsDom.classList.add("animated");
-          toolsDom.classList.add("slideInDown");
+        if (cFlag == 'none') {
+          toolsDom.style.display = 'inline-flex'
+          toolsDom.classList.add('animated')
+          toolsDom.classList.add('slideInDown')
         } else {
         } else {
-          toolsDom.style.display = "none";
+          toolsDom.style.display = 'none'
         }
         }
       },
       },
       // 鼠标从工具条移开的时候隐藏
       // 鼠标从工具条移开的时候隐藏
       hideTools(event) {
       hideTools(event) {
-        event.currentTarget.style.display = "none";
+        event.currentTarget.style.display = 'none'
       },
       },
       handleLiOver(event) {
       handleLiOver(event) {
-        event.currentTarget.lastElementChild.style.display = "block";
-        event.currentTarget.style.backgroundColor = "rgba(255, 255, 255, 0.68)";
-        event.currentTarget.style.border = "1px solid #000";
+        event.currentTarget.lastElementChild.style.display = 'block'
+        event.currentTarget.style.backgroundColor = 'rgba(255, 255, 255, 0.68)'
+        event.currentTarget.style.border = '1px solid #000'
       },
       },
       handleLiLeave(node, event) {
       handleLiLeave(node, event) {
-        event.currentTarget.lastElementChild.style.display = "none";
+        event.currentTarget.lastElementChild.style.display = 'none'
         if (this.currentLiNode.nodeKey != node.nodeKey) {
         if (this.currentLiNode.nodeKey != node.nodeKey) {
-          event.currentTarget.style.backgroundColor = "transparent";
-          event.currentTarget.style.border = "0";
+          event.currentTarget.style.backgroundColor = 'transparent'
+          event.currentTarget.style.border = '0'
         }
         }
-      },
+      }
 
 
-    },
-  };
+    }
+  }
 </script>
 </script>
 <style scoped>
 <style scoped>
   .tree-main {
   .tree-main {

+ 4 - 4
TEAMModelOS/ClientApp/src/components/syllabus/SelectModule.vue

@@ -1,6 +1,6 @@
 <template>
 <template>
   <div class="center">
   <div class="center">
-    <div class="main-btn centerCol" v-for="item in moduleList" @click="handleRouter(item.link)">
+    <div class="main-btn centerCol" v-for="(item,index) in moduleList" :key="index" @click="handleRouter(item.link)">
       <Icon :type="item.icon" size="80" />
       <Icon :type="item.icon" size="80" />
       <h4 class="color1">{{item.name}}</h4>
       <h4 class="color1">{{item.name}}</h4>
     </div>
     </div>
@@ -9,12 +9,12 @@
 
 
 <script>
 <script>
   export default {
   export default {
-    name: "selectModule",
-    props:["moduleList"],
+    name: 'selectModule',
+    props: ['moduleList'],
     methods: {
     methods: {
       handleRouter(path) {
       handleRouter(path) {
         this.$router.replace(path)
         this.$router.replace(path)
-      },
+      }
     }
     }
   }
   }
 </script>
 </script>

+ 72 - 77
TEAMModelOS/ClientApp/src/components/syllabus/SelectSchool.vue

@@ -42,7 +42,6 @@
       </Row>
       </Row>
     </div>
     </div>
 
 
-
   </div>
   </div>
 </template>
 </template>
 
 
@@ -53,7 +52,7 @@
     },
     },
     data() {
     data() {
       return {
       return {
-        model: "",
+        model: '',
         zhCnData: [],
         zhCnData: [],
         zhTwData: [],
         zhTwData: [],
         enUsData: [],
         enUsData: [],
@@ -62,60 +61,59 @@
           country: '',
           country: '',
           province: '',
           province: '',
           city: '',
           city: '',
-          school: '',
+          school: ''
         },
         },
         schoolInfo: {
         schoolInfo: {
           country: {},
           country: {},
           province: {},
           province: {},
           city: {},
           city: {},
-          school: {},
+          school: {}
         },
         },
         loading: false
         loading: false
-      };
+      }
     },
     },
     methods: {
     methods: {
       getValue() {
       getValue() {
-        this.$emit("get-value", [
+        this.$emit('get-value', [
           this.model,
           this.model,
           this.selections.field
           this.selections.field
-        ]);
+        ])
       },
       },
       getCountryInfo(data) {
       getCountryInfo(data) {
-        let result = [];
-        let currentCountry = '';
+        let result = []
+        let currentCountry = ''
         for (let i = 0; i < data.length; i++) {
         for (let i = 0; i < data.length; i++) {
           if (currentCountry != data[i].countryName && data[i].countryName != null && data[i].provinceName == null && data[i].cityName == null) {
           if (currentCountry != data[i].countryName && data[i].countryName != null && data[i].provinceName == null && data[i].cityName == null) {
-            currentCountry = data[i].countryName;
-            result.push(data[i]);
+            currentCountry = data[i].countryName
+            result.push(data[i])
           }
           }
-
         }
         }
-        return result;
+        return result
       },
       },
       getProvinceInfo(data, country) {
       getProvinceInfo(data, country) {
-        let result = [];
-        let currentProvince = '';
+        let result = []
+        let currentProvince = ''
         for (let i = 0; i < data.length; i++) {
         for (let i = 0; i < data.length; i++) {
           if (currentProvince != data[i].provinceName && data[i].provinceName != null && data[i].countryId == country.countryId) {
           if (currentProvince != data[i].provinceName && data[i].provinceName != null && data[i].countryId == country.countryId) {
-            currentProvince = data[i].provinceName;
-            result.push(data[i]);
-          } 
+            currentProvince = data[i].provinceName
+            result.push(data[i])
+          }
         }
         }
-        return result;
+        return result
       },
       },
       getCityInfo(data, province) {
       getCityInfo(data, province) {
-        let result = [];
-        let currentCity = '';
+        let result = []
+        let currentCity = ''
         if (province != undefined) {
         if (province != undefined) {
           for (let i = 0; i < data.length; i++) {
           for (let i = 0; i < data.length; i++) {
             if (currentCity != data[i].cityName && data[i].cityName != null && data[i].provinceId == province.provinceId) {
             if (currentCity != data[i].cityName && data[i].cityName != null && data[i].provinceId == province.provinceId) {
-              currentCity = data[i].cityName;
-              result.push(data[i]);
+              currentCity = data[i].cityName
+              result.push(data[i])
             }
             }
           }
           }
         }
         }
 
 
-        return result;
+        return result
       },
       },
       getSchoolInfo(CountryId, ProvinceId, CityId) {
       getSchoolInfo(CountryId, ProvinceId, CityId) {
         let params = {
         let params = {
@@ -123,118 +121,115 @@
           ProvinceId: ProvinceId,
           ProvinceId: ProvinceId,
           CityId: CityId
           CityId: CityId
         }
         }
-        this.loading = true;
+        this.loading = true
 
 
-        //发送请求获取学校列表
+        // 发送请求获取学校列表
         this.$api.getSchoolList(params).then(
         this.$api.getSchoolList(params).then(
           (res) => {
           (res) => {
             if (res.error == null) {
             if (res.error == null) {
               if (res.result.data.length == 0 || !res.result.data) {
               if (res.result.data.length == 0 || !res.result.data) {
-                alert("暂未收录此地区学校,请手动输入!");
+                alert('暂未收录此地区学校,请手动输入!')
               } else {
               } else {
-                this.schoolData = res.result.data;
-                //this.schoolInfo.school = res.result.data[0];
+                this.schoolData = res.result.data
+                // this.schoolInfo.school = res.result.data[0];
               }
               }
-
             } else {
             } else {
-              alert("服务器错误!");
+              alert('服务器错误!')
             }
             }
-            this.loading = false;
+            this.loading = false
           },
           },
           (err) => {
           (err) => {
-            this.loading = false;
+            this.loading = false
           }
           }
         )
         )
       },
       },
       getSelctValue(flag, value) {
       getSelctValue(flag, value) {
         if (flag == 'country') {
         if (flag == 'country') {
-          this.$refs.school.clearSingleSelect();
-          this.$refs.city.clearSingleSelect();
-          this.$refs.province.clearSingleSelect();
-          this.schoolInfo.province = {};
-          this.schoolInfo.city = {};
-          this.schoolInfo.school = {};
+          this.$refs.school.clearSingleSelect()
+          this.$refs.city.clearSingleSelect()
+          this.$refs.province.clearSingleSelect()
+          this.schoolInfo.province = {}
+          this.schoolInfo.city = {}
+          this.schoolInfo.school = {}
         } else if (flag == 'province') {
         } else if (flag == 'province') {
-          this.$refs.school.clearSingleSelect();
-          this.$refs.city.clearSingleSelect();
-          this.schoolInfo.city = {};
-          this.schoolInfo.school = {};
+          this.$refs.school.clearSingleSelect()
+          this.$refs.city.clearSingleSelect()
+          this.schoolInfo.city = {}
+          this.schoolInfo.school = {}
         } else if (flag == 'city') {
         } else if (flag == 'city') {
-          this.$refs.school.clearSingleSelect();
-          this.schoolInfo.school = {};
-          this.getSchoolInfo(this.schoolInfo.country.countryId, this.schoolInfo.province.provinceId, this.schoolInfo.city.cityId);
+          this.$refs.school.clearSingleSelect()
+          this.schoolInfo.school = {}
+          this.getSchoolInfo(this.schoolInfo.country.countryId, this.schoolInfo.province.provinceId, this.schoolInfo.city.cityId)
         } else if (flag == 'school') {
         } else if (flag == 'school') {
-          this.schoolInfo['checkCountry'] = this.checkCountry;
-          this.$emit("school-info", this.schoolInfo);
-          console.log(this.schoolInfo);
+          this.schoolInfo['checkCountry'] = this.checkCountry
+          this.$emit('school-info', this.schoolInfo)
+          console.log(this.schoolInfo)
         }
         }
       },
       },
       getInputValue() {
       getInputValue() {
-        this.schoolInfoInput['checkCountry'] = this.checkCountry;
-        this.$emit("school-info", this.schoolInfoInput);
-        console.log(this.schoolInfo);
+        this.schoolInfoInput['checkCountry'] = this.checkCountry
+        this.$emit('school-info', this.schoolInfoInput)
+        console.log(this.schoolInfo)
       }
       }
     },
     },
     computed: {
     computed: {
       countryData() {
       countryData() {
-        let countryInfo = [];
+        let countryInfo = []
         if (this.$i18n.locale == 'zh-CN') {
         if (this.$i18n.locale == 'zh-CN') {
-          countryInfo = this.getCountryInfo(this.zhCnData);
+          countryInfo = this.getCountryInfo(this.zhCnData)
         } else if (this.$i18n.locale == 'zh-TW') {
         } else if (this.$i18n.locale == 'zh-TW') {
-          countryInfo = this.getCountryInfo(this.zhTwData);
+          countryInfo = this.getCountryInfo(this.zhTwData)
         } else if (this.$i18n.locale.indexOf('en') != -1) {
         } else if (this.$i18n.locale.indexOf('en') != -1) {
-          countryInfo = this.getCountryInfo(this.enUsData);
+          countryInfo = this.getCountryInfo(this.enUsData)
         }
         }
-        return countryInfo;
-
+        return countryInfo
       },
       },
       provinceData() {
       provinceData() {
-        let provinceInfo = [];
+        let provinceInfo = []
         if (this.$i18n.locale == 'zh-CN') {
         if (this.$i18n.locale == 'zh-CN') {
-          provinceInfo = this.getProvinceInfo(this.zhCnData, this.schoolInfo.country);
+          provinceInfo = this.getProvinceInfo(this.zhCnData, this.schoolInfo.country)
         } else if (this.$i18n.locale == 'zh-TW') {
         } else if (this.$i18n.locale == 'zh-TW') {
-          provinceInfo = this.getProvinceInfo(this.zhTwData, this.schoolInfo.country);
+          provinceInfo = this.getProvinceInfo(this.zhTwData, this.schoolInfo.country)
         } else if (this.$i18n.locale.indexOf('en') != -1) {
         } else if (this.$i18n.locale.indexOf('en') != -1) {
-          provinceInfo = this.getProvinceInfo(this.enUsData, this.schoolInfo.country);
+          provinceInfo = this.getProvinceInfo(this.enUsData, this.schoolInfo.country)
         }
         }
-        return provinceInfo;
+        return provinceInfo
       },
       },
       cityData() {
       cityData() {
-        let cityInfo = [];
+        let cityInfo = []
         if (this.$i18n.locale == 'zh-CN') {
         if (this.$i18n.locale == 'zh-CN') {
-          cityInfo = this.getCityInfo(this.zhCnData, this.schoolInfo.province);
+          cityInfo = this.getCityInfo(this.zhCnData, this.schoolInfo.province)
         } else if (this.$i18n.locale == 'zh-TW') {
         } else if (this.$i18n.locale == 'zh-TW') {
-          cityInfo = this.getCityInfo(this.zhTwData, this.schoolInfo.province);
+          cityInfo = this.getCityInfo(this.zhTwData, this.schoolInfo.province)
         } else if (this.$i18n.locale.indexOf('en') != -1) {
         } else if (this.$i18n.locale.indexOf('en') != -1) {
-          cityInfo = this.getCityInfo(this.enUsData, this.schoolInfo.province);
+          cityInfo = this.getCityInfo(this.enUsData, this.schoolInfo.province)
         }
         }
-        return cityInfo;
+        return cityInfo
       },
       },
       checkCountry() {
       checkCountry() {
         if (this.schoolInfo.country.countryId == undefined) {
         if (this.schoolInfo.country.countryId == undefined) {
-          return 0;
+          return 0
         }
         }
         if (this.schoolInfo.country.countryId == 'CN' || this.schoolInfo.country.countryId == 'TW') {
         if (this.schoolInfo.country.countryId == 'CN' || this.schoolInfo.country.countryId == 'TW') {
-          return 1;
+          return 1
         } else {
         } else {
-          return 2;
+          return 2
         }
         }
       }
       }
     },
     },
     mounted() {
     mounted() {
-      let area = require("@/static/area.json");
+      let area = require('@/static/area.json')
       for (let i = 0; i < area.length; i++) {
       for (let i = 0; i < area.length; i++) {
         if (area[i].lang == 'en-us') {
         if (area[i].lang == 'en-us') {
-          this.enUsData.push(area[i]);
+          this.enUsData.push(area[i])
         } else if (area[i].lang == 'zh-tw') {
         } else if (area[i].lang == 'zh-tw') {
-          this.zhTwData.push(area[i]);
+          this.zhTwData.push(area[i])
         } else if (area[i].lang == 'zh-cn') {
         } else if (area[i].lang == 'zh-cn') {
-          this.zhCnData.push(area[i]);
+          this.zhCnData.push(area[i])
         }
         }
       };
       };
-
     }
     }
-  };
+  }
 </script>
 </script>
 
 
 <style scoped>
 <style scoped>

+ 153 - 153
TEAMModelOS/ClientApp/src/components/syllabus/Tree.vue

@@ -30,177 +30,177 @@
 </template>
 </template>
 <script>
 <script>
   export default {
   export default {
-    props: ["treeDatas", "volumeCode"],
+    props: ['treeDatas', 'volumeCode'],
     data() {
     data() {
       return {
       return {
         treeData: [],
         treeData: [],
-        inputValue: "",
-        editValue: "",
+        inputValue: '',
+        editValue: '',
         modalFlag: false,
         modalFlag: false,
         editFlag: false,
         editFlag: false,
         addBookFlag: false,
         addBookFlag: false,
-        nodeType: "章节",
-        currentNode: "",
-        currentLiNode: "",
-      };
+        nodeType: '章节',
+        currentNode: '',
+        currentLiNode: ''
+      }
     },
     },
     created() {
     created() {
-      this.treeData = this.treeDatas;
+      this.treeData = this.treeDatas
     },
     },
-    watch:{
+    watch: {
       treeDatas: {
       treeDatas: {
         handler(newValue, oldValue) {
         handler(newValue, oldValue) {
-          this.treeData = newValue;
+          this.treeData = newValue
     },
     },
     deep: true
     deep: true
   }
   }
     },
     },
     methods: {
     methods: {
       renderContent(h, { root, node, data }) {
       renderContent(h, { root, node, data }) {
-        let that = this;
+        let that = this
         return h(
         return h(
-          "span",
+          'span',
           {
           {
             style: {
             style: {
-              display: "inline-block",
-              width: "95%",
-              textAlign: "left",
-              paddingLeft: "2%",
-              cursor: "pointer",
-              position: "relative",
-              boxSizing: "border-box"
+              display: 'inline-block',
+              width: '95%',
+              textAlign: 'left',
+              paddingLeft: '2%',
+              cursor: 'pointer',
+              position: 'relative',
+              boxSizing: 'border-box'
             },
             },
             domProps: {
             domProps: {
-              className: "singleClass"
+              className: 'singleClass'
             },
             },
             on: {
             on: {
               click: () => {
               click: () => {
-                this.titleClick(data);
+                this.titleClick(data)
               },
               },
               mouseover: e => {
               mouseover: e => {
-                e.stopPropagation();
-                this.handleLiOver(event);
+                e.stopPropagation()
+                this.handleLiOver(event)
               },
               },
               mouseleave: e => {
               mouseleave: e => {
-                e.stopPropagation();
-                this.handleLiLeave(node, event);
+                e.stopPropagation()
+                this.handleLiLeave(node, event)
               }
               }
             }
             }
           },
           },
           [
           [
-            h("span", [
-              h("Icon", {
+            h('span', [
+              h('Icon', {
                 props: {
                 props: {
                   type:
                   type:
                     data.children && data.children.length > 0
                     data.children && data.children.length > 0
-                      ? "md-albums"
-                      : "ios-paper-outline"
+                      ? 'md-albums'
+                      : 'ios-paper-outline'
                 },
                 },
                 style: {
                 style: {
-                  marginRight: "5px",
-                  display: "none"
+                  marginRight: '5px',
+                  display: 'none'
                 }
                 }
               }),
               }),
-              h("span", data.title)
+              h('span', data.title)
             ]),
             ]),
             h(
             h(
-              "span",
+              'span',
               {
               {
                 style: {
                 style: {
-                  float: "right",
-                  top: "6px",
-                  display: "none"
+                  float: 'right',
+                  top: '6px',
+                  display: 'none'
                 },
                 },
                 on: {
                 on: {
                   mouseleave: e => {
                   mouseleave: e => {
-                    e.stopPropagation();
-                    //this.hideTools(event);
-                  },
+                    e.stopPropagation()
+                    // this.hideTools(event);
+                  }
                 },
                 },
                 domProps: {
                 domProps: {
-                  className: "tools"
+                  className: 'tools'
                 }
                 }
               },
               },
               [
               [
                 h(
                 h(
-                  "Icon",
+                  'Icon',
                   {
                   {
                     props: {
                     props: {
-                      type: "md-add",
-                      title: "添加"
+                      type: 'md-add',
+                      title: '添加'
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.appendClick(data);
+                        e.stopPropagation()
+                        this.appendClick(data)
                       }
                       }
                     }
                     }
-                  },
+                  }
                 ),
                 ),
                 h(
                 h(
-                  "Icon",
+                  'Icon',
                   {
                   {
                     props: {
                     props: {
-                      type: "md-remove"
+                      type: 'md-remove'
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.remove(root, node, data);
+                        e.stopPropagation()
+                        this.remove(root, node, data)
                       }
                       }
                     }
                     }
-                  },
+                  }
                 ),
                 ),
                 h(
                 h(
-                  "Icon",
+                  'Icon',
                   {
                   {
                     props: {
                     props: {
-                      type: "md-arrow-round-up"
+                      type: 'md-arrow-round-up'
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.moveUp(root, node, data);
+                        e.stopPropagation()
+                        this.moveUp(root, node, data)
                       }
                       }
                     }
                     }
-                  },
+                  }
                 ),
                 ),
                 h(
                 h(
-                  "Icon",
+                  'Icon',
                   {
                   {
                     props: {
                     props: {
-                      type: "md-arrow-round-down"
+                      type: 'md-arrow-round-down'
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.moveDown(root, node, data);
+                        e.stopPropagation()
+                        this.moveDown(root, node, data)
                       }
                       }
                     }
                     }
-                  },
+                  }
                 ),
                 ),
                 h(
                 h(
-                  "Icon",
+                  'Icon',
                   {
                   {
                     props: {
                     props: {
-                      type: "md-create"
+                      type: 'md-create'
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.editClick(node, data);
+                        e.stopPropagation()
+                        this.editClick(node, data)
                       }
                       }
                     }
                     }
-                  },
+                  }
                 )
                 )
               ]
               ]
             )
             )
           ]
           ]
-        );
+        )
       },
       },
       // 添加节点
       // 添加节点
       append(data, value) {
       append(data, value) {
-        const children = data.children || [];
+        const children = data.children || []
         let newChild = {
         let newChild = {
           title: value,
           title: value,
           order: children.length,
           order: children.length,
@@ -209,176 +209,176 @@
           expand: true,
           expand: true,
           type: data.type,
           type: data.type,
           volumeCode: this.volumeCode,
           volumeCode: this.volumeCode,
-          remark: "备注",
+          remark: '备注'
         }
         }
-        children.push(newChild);
-        this.$set(data, "children", children);
+        children.push(newChild)
+        this.$set(data, 'children', children)
         this.$api.SaveOrUpdateSingleNode(newChild).then(res => {
         this.$api.SaveOrUpdateSingleNode(newChild).then(res => {
-          this.$Message.success("添加成功");
+          this.$Message.success('添加成功')
           this.$api.FindSyllabusByVolumeCode({ VolumeCode: this.volumeCode, Status: 1 }).then(res => {
           this.$api.FindSyllabusByVolumeCode({ VolumeCode: this.volumeCode, Status: 1 }).then(res => {
-            this.treeData = res.result.data;
+            this.treeData = res.result.data
           })
           })
         })
         })
       },
       },
       // 删除节点
       // 删除节点
       remove(root, node, data) {
       remove(root, node, data) {
-        data.status = 0;
+        data.status = 0
         this.$api.SaveOrUpdateSingleNode(data).then(res => {
         this.$api.SaveOrUpdateSingleNode(data).then(res => {
-          this.$Message.success("删除成功");
+          this.$Message.success('删除成功')
           this.$api.FindSyllabusByVolumeCode({ VolumeCode: this.volumeCode, Status: 1 }).then(res => {
           this.$api.FindSyllabusByVolumeCode({ VolumeCode: this.volumeCode, Status: 1 }).then(res => {
-            this.treeData = res.result.data;
+            this.treeData = res.result.data
           })
           })
         })
         })
       },
       },
       // 点击编辑
       // 点击编辑
       editClick(node, data) {
       editClick(node, data) {
-        this.currentNode = data;
-        this.editFlag = true;
-        this.editValue = "";
+        this.currentNode = data
+        this.editFlag = true
+        this.editValue = ''
       },
       },
-      //添加节点 弹出输入框
+      // 添加节点 弹出输入框
       appendClick(data) {
       appendClick(data) {
-        this.currentNode = data;
-        this.modalFlag = true;
-        this.inputValue = "";
+        this.currentNode = data
+        this.modalFlag = true
+        this.inputValue = ''
       },
       },
       // 确认添加节点
       // 确认添加节点
       handleAddNode() {
       handleAddNode() {
-        if (this.inputValue != "") {
-          this.append(this.currentNode, this.inputValue);
+        if (this.inputValue != '') {
+          this.append(this.currentNode, this.inputValue)
         } else {
         } else {
-          this.modalFlag = false;
+          this.modalFlag = false
         }
         }
       },
       },
       // 修改节点
       // 修改节点
       handleUpdateNode() {
       handleUpdateNode() {
-        if (this.editValue != "") {
+        if (this.editValue != '') {
           this.$api.SaveOrUpdateSingleNode(this.currentNode).then(res => {
           this.$api.SaveOrUpdateSingleNode(this.currentNode).then(res => {
-            this.$Message.success("修改成功");
-            this.currentNode.title = this.editValue;
+            this.$Message.success('修改成功')
+            this.currentNode.title = this.editValue
           })
           })
         } else {
         } else {
-          this.editFlag = false;
+          this.editFlag = false
         }
         }
       },
       },
       // 标题点击收缩展开
       // 标题点击收缩展开
       titleClick(data) {
       titleClick(data) {
-        data.expand = !data.expand;
+        data.expand = !data.expand
       },
       },
       // 根目录点击事件
       // 根目录点击事件
       rootClick(data) {
       rootClick(data) {
-        data.expand = !data.expand;
+        data.expand = !data.expand
       },
       },
       // 上移章节操作
       // 上移章节操作
       moveUp(root, node, data) {
       moveUp(root, node, data) {
-        let that = this;
-        let list = [];
-        const parentKey = root.find(el => el === node).parent;
+        let that = this
+        let list = []
+        const parentKey = root.find(el => el === node).parent
 
 
-        //判断是否存在父级
+        // 判断是否存在父级
         if (parentKey == null || parentKey == undefined) {
         if (parentKey == null || parentKey == undefined) {
-          list = that.treeData;
+          list = that.treeData
         } else {
         } else {
-          list = root.find(el => el.nodeKey === parentKey).node.children;
+          list = root.find(el => el.nodeKey === parentKey).node.children
         }
         }
-        const index = list.indexOf(data);
-        let currentOrder = data.order;
+        const index = list.indexOf(data)
+        let currentOrder = data.order
 
 
-        //第一个元素无法上移
+        // 第一个元素无法上移
         if (index != 0) {
         if (index != 0) {
-          let preData = list[index - 1];
+          let preData = list[index - 1]
           if (data.order == preData.order) {
           if (data.order == preData.order) {
-            data.order = data.order - 1;
+            data.order = data.order - 1
           } else {
           } else {
-            data.order = preData.order;
-            preData.order = currentOrder;
+            data.order = preData.order
+            preData.order = currentOrder
           }
           }
-          //更新两条数据
-          that.$api.SaveOrUpdateSingleNode(data);
-          that.$api.SaveOrUpdateSingleNode(preData);
+          // 更新两条数据
+          that.$api.SaveOrUpdateSingleNode(data)
+          that.$api.SaveOrUpdateSingleNode(preData)
 
 
-          //移动后刷新数据
-          setTimeout(function () {
+          // 移动后刷新数据
+          setTimeout(function() {
             that.$api.FindSyllabusByVolumeCode({ VolumeCode: that.volumeCode, Status: 1 }).then(res => {
             that.$api.FindSyllabusByVolumeCode({ VolumeCode: that.volumeCode, Status: 1 }).then(res => {
-              that.treeData = res.result.data;
+              that.treeData = res.result.data
             })
             })
           }, 500)
           }, 500)
         }
         }
       },
       },
       // 下移章节操作
       // 下移章节操作
       moveDown(root, node, data) {
       moveDown(root, node, data) {
-        let that = this;
-        let list = [];
-        const parentKey = root.find(el => el === node).parent;
+        let that = this
+        let list = []
+        const parentKey = root.find(el => el === node).parent
 
 
-        //判断是否存在父级
+        // 判断是否存在父级
         if (parentKey == null || parentKey == undefined) {
         if (parentKey == null || parentKey == undefined) {
-          list = that.treeData;
+          list = that.treeData
         } else {
         } else {
-          list = root.find(el => el.nodeKey === parentKey).node.children;
+          list = root.find(el => el.nodeKey === parentKey).node.children
         }
         }
-        const index = list.indexOf(data);
-        let currentOrder = data.order;
-        //最后一个元素无法下移
+        const index = list.indexOf(data)
+        let currentOrder = data.order
+        // 最后一个元素无法下移
         if (index != (list.length - 1)) {
         if (index != (list.length - 1)) {
-           let nextData = list[index + 1];
+           let nextData = list[index + 1]
           if (data.order == nextData.order) {
           if (data.order == nextData.order) {
-            data.order = data.order + 1;
+            data.order = data.order + 1
           } else {
           } else {
-            data.order = nextData.order;
-            nextData.order = currentOrder;
+            data.order = nextData.order
+            nextData.order = currentOrder
           }
           }
-          //更新两条数据
-          that.$api.SaveOrUpdateSingleNode(data);
-          that.$api.SaveOrUpdateSingleNode(nextData);
+          // 更新两条数据
+          that.$api.SaveOrUpdateSingleNode(data)
+          that.$api.SaveOrUpdateSingleNode(nextData)
 
 
-          //移动后刷新数据
-          setTimeout(function () {
+          // 移动后刷新数据
+          setTimeout(function() {
             that.$api.FindSyllabusByVolumeCode({ VolumeCode: that.volumeCode, Status: 1 }).then(res => {
             that.$api.FindSyllabusByVolumeCode({ VolumeCode: that.volumeCode, Status: 1 }).then(res => {
-              that.treeData = res.result.data;
+              that.treeData = res.result.data
             })
             })
           }, 500)
           }, 500)
         }
         }
       },
       },
       // 更多操作
       // 更多操作
       handleTools(root, node, data, event) {
       handleTools(root, node, data, event) {
-        let toolsDom = event.currentTarget.nextElementSibling;
-        const parentKey = root.find(el => el === node).parent;
-        const parent = root.find(el => el.nodeKey === parentKey).node;
-        const index = parent.children.indexOf(data);
-        let list = document.getElementsByClassName("tools");
-        let cFlag = toolsDom.style.display;
+        let toolsDom = event.currentTarget.nextElementSibling
+        const parentKey = root.find(el => el === node).parent
+        const parent = root.find(el => el.nodeKey === parentKey).node
+        const index = parent.children.indexOf(data)
+        let list = document.getElementsByClassName('tools')
+        let cFlag = toolsDom.style.display
         for (let i = 0; i < list.length; i++) {
         for (let i = 0; i < list.length; i++) {
-          list[i].style.display = "none";
+          list[i].style.display = 'none'
         }
         }
         // 判断TOOL显示与隐藏
         // 判断TOOL显示与隐藏
-        if (cFlag == "none") {
-          toolsDom.style.display = "inline-flex";
-          toolsDom.classList.add("animated");
-          toolsDom.classList.add("slideInDown");
+        if (cFlag == 'none') {
+          toolsDom.style.display = 'inline-flex'
+          toolsDom.classList.add('animated')
+          toolsDom.classList.add('slideInDown')
         } else {
         } else {
-          toolsDom.style.display = "none";
+          toolsDom.style.display = 'none'
         }
         }
       },
       },
       // 鼠标从工具条移开的时候隐藏
       // 鼠标从工具条移开的时候隐藏
       hideTools(event) {
       hideTools(event) {
-        event.currentTarget.style.display = "none";
+        event.currentTarget.style.display = 'none'
       },
       },
       handleLiOver(event) {
       handleLiOver(event) {
-        event.currentTarget.lastElementChild.style.display = "block";
-        event.currentTarget.style.backgroundColor = "rgba(255, 255, 255, 0.68)";
-        event.currentTarget.style.border = "1px solid #000";
+        event.currentTarget.lastElementChild.style.display = 'block'
+        event.currentTarget.style.backgroundColor = 'rgba(255, 255, 255, 0.68)'
+        event.currentTarget.style.border = '1px solid #000'
       },
       },
       handleLiLeave(node, event) {
       handleLiLeave(node, event) {
-        event.currentTarget.lastElementChild.style.display = "none";
+        event.currentTarget.lastElementChild.style.display = 'none'
         if (this.currentLiNode.nodeKey != node.nodeKey) {
         if (this.currentLiNode.nodeKey != node.nodeKey) {
-          event.currentTarget.style.backgroundColor = "transparent";
-          event.currentTarget.style.border = "0";
+          event.currentTarget.style.backgroundColor = 'transparent'
+          event.currentTarget.style.border = '0'
         }
         }
-      },
-     
-    },
-  };
+      }
+
+    }
+  }
 </script>
 </script>
 <style scoped>
 <style scoped>
   .tree-main {
   .tree-main {

+ 151 - 153
TEAMModelOS/ClientApp/src/components/syllabus/newTree.vue

@@ -30,168 +30,168 @@
 </template>
 </template>
 <script>
 <script>
   export default {
   export default {
-    props: ["treeDatas", "volumeCode"],
+    props: ['treeDatas', 'volumeCode'],
     data() {
     data() {
       return {
       return {
         treeData: [],
         treeData: [],
-        inputValue: "",
-        editValue: "",
+        inputValue: '',
+        editValue: '',
         modalFlag: false,
         modalFlag: false,
         editFlag: false,
         editFlag: false,
         addBookFlag: false,
         addBookFlag: false,
-        nodeType: "章节",
-        currentNode: "",
-        currentLiNode: "",
-      };
+        nodeType: '章节',
+        currentNode: '',
+        currentLiNode: ''
+      }
     },
     },
     created() {
     created() {
-      this.treeData = this.treeDatas;
+      this.treeData = this.treeDatas
     },
     },
-    watch:{
+    watch: {
       treeDatas: {
       treeDatas: {
         handler(newValue, oldValue) {
         handler(newValue, oldValue) {
-          this.treeData = newValue;
+          this.treeData = newValue
     },
     },
     deep: true
     deep: true
   }
   }
     },
     },
     methods: {
     methods: {
       renderContent(h, { root, node, data }) {
       renderContent(h, { root, node, data }) {
-        let that = this;
+        let that = this
         return h(
         return h(
-          "span",
+          'span',
           {
           {
             domProps: {
             domProps: {
-              className: "singleClass"
+              className: 'singleClass'
             },
             },
             on: {
             on: {
               click: () => {
               click: () => {
-                this.titleClick(data);
+                this.titleClick(data)
               },
               },
               mouseover: e => {
               mouseover: e => {
-                e.stopPropagation();
-                this.handleLiOver(event);
+                e.stopPropagation()
+                this.handleLiOver(event)
               },
               },
               mouseleave: e => {
               mouseleave: e => {
-                e.stopPropagation();
-                this.handleLiLeave(node, event);
+                e.stopPropagation()
+                this.handleLiLeave(node, event)
               }
               }
             }
             }
           },
           },
           [
           [
-            h("span", [
-              h("Icon", {
+            h('span', [
+              h('Icon', {
                 props: {
                 props: {
                   type:
                   type:
                     data.children && data.children.length > 0
                     data.children && data.children.length > 0
-                      ? "md-albums"
-                      : "ios-paper-outline"
+                      ? 'md-albums'
+                      : 'ios-paper-outline'
                 },
                 },
                 style: {
                 style: {
-                  marginRight: "5px",
-                  display: "none",
+                  marginRight: '5px',
+                  display: 'none'
                 }
                 }
               }),
               }),
-              h("span", data.title)
+              h('span', data.title)
             ]),
             ]),
             h(
             h(
-              "span",
+              'span',
               {
               {
                 style: {
                 style: {
-                  float: "right",
-                  top: "14px",
-                  display: "none"
+                  float: 'right',
+                  top: '14px',
+                  display: 'none'
                 },
                 },
                 on: {
                 on: {
                   mouseleave: e => {
                   mouseleave: e => {
-                    e.stopPropagation();
-                    //this.hideTools(event);
-                  },
+                    e.stopPropagation()
+                    // this.hideTools(event);
+                  }
                 },
                 },
                 domProps: {
                 domProps: {
-                  className: "tools"
+                  className: 'tools'
                 }
                 }
               },
               },
               [
               [
                 h(
                 h(
-                  "Icon",
+                  'Icon',
                   {
                   {
                     props: {
                     props: {
-                      type: "md-add",
-                      title: "添加"
+                      type: 'md-add',
+                      title: '添加'
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.appendClick(data);
+                        e.stopPropagation()
+                        this.appendClick(data)
                       }
                       }
                     }
                     }
-                  },
+                  }
                 ),
                 ),
                 h(
                 h(
-                  "Icon",
+                  'Icon',
                   {
                   {
                     props: {
                     props: {
-                      type: "md-remove"
+                      type: 'md-remove'
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.remove(root, node, data);
+                        e.stopPropagation()
+                        this.remove(root, node, data)
                       }
                       }
                     }
                     }
-                  },
+                  }
                 ),
                 ),
                 h(
                 h(
-                  "Icon",
+                  'Icon',
                   {
                   {
                     props: {
                     props: {
-                      type: "md-arrow-round-up"
+                      type: 'md-arrow-round-up'
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.moveUp(root, node, data);
+                        e.stopPropagation()
+                        this.moveUp(root, node, data)
                       }
                       }
                     }
                     }
-                  },
+                  }
                 ),
                 ),
                 h(
                 h(
-                  "Icon",
+                  'Icon',
                   {
                   {
                     props: {
                     props: {
-                      type: "md-arrow-round-down"
+                      type: 'md-arrow-round-down'
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.moveDown(root, node, data);
+                        e.stopPropagation()
+                        this.moveDown(root, node, data)
                       }
                       }
                     }
                     }
-                  },
+                  }
                 ),
                 ),
                 h(
                 h(
-                  "Icon",
+                  'Icon',
                   {
                   {
                     props: {
                     props: {
-                      type: "md-create"
+                      type: 'md-create'
                     },
                     },
                     on: {
                     on: {
                       click: e => {
                       click: e => {
-                        e.stopPropagation();
-                        this.editClick(node, data);
+                        e.stopPropagation()
+                        this.editClick(node, data)
                       }
                       }
                     }
                     }
-                  },
+                  }
                 )
                 )
               ]
               ]
             )
             )
           ]
           ]
-        );
+        )
       },
       },
       // 添加节点
       // 添加节点
       append(data, value) {
       append(data, value) {
-        const children = data.children || [];
+        const children = data.children || []
         let newChild = {
         let newChild = {
           title: value,
           title: value,
           order: children.length,
           order: children.length,
@@ -200,176 +200,175 @@
           expand: true,
           expand: true,
           type: data.type,
           type: data.type,
           volumeCode: this.volumeCode,
           volumeCode: this.volumeCode,
-          remark: "备注",
+          remark: '备注'
         }
         }
-        children.push(newChild);
-        this.$set(data, "children", children);
+        children.push(newChild)
+        this.$set(data, 'children', children)
         this.$api.SaveOrUpdateSingleNode(newChild).then(res => {
         this.$api.SaveOrUpdateSingleNode(newChild).then(res => {
-          this.$Message.success("添加成功");
+          this.$Message.success('添加成功')
           this.$api.FindSyllabusByVolumeCode({ VolumeCode: this.volumeCode, Status: 1 }).then(res => {
           this.$api.FindSyllabusByVolumeCode({ VolumeCode: this.volumeCode, Status: 1 }).then(res => {
-            this.treeData = res.result.data;
+            this.treeData = res.result.data
           })
           })
         })
         })
       },
       },
       // 删除节点
       // 删除节点
       remove(root, node, data) {
       remove(root, node, data) {
-        data.status = 0;
+        data.status = 0
         this.$api.SaveOrUpdateSingleNode(data).then(res => {
         this.$api.SaveOrUpdateSingleNode(data).then(res => {
-          this.$Message.success("删除成功");
+          this.$Message.success('删除成功')
           this.$api.FindSyllabusByVolumeCode({ VolumeCode: this.volumeCode, Status: 1 }).then(res => {
           this.$api.FindSyllabusByVolumeCode({ VolumeCode: this.volumeCode, Status: 1 }).then(res => {
-            this.treeData = res.result.data;
+            this.treeData = res.result.data
           })
           })
         })
         })
       },
       },
       // 点击编辑
       // 点击编辑
       editClick(node, data) {
       editClick(node, data) {
-        this.currentNode = data;
-        this.editFlag = true;
-        this.editValue = "";
+        this.currentNode = data
+        this.editFlag = true
+        this.editValue = ''
       },
       },
-      //添加节点 弹出输入框
+      // 添加节点 弹出输入框
       appendClick(data) {
       appendClick(data) {
-        this.currentNode = data;
-        this.modalFlag = true;
-        this.inputValue = "";
+        this.currentNode = data
+        this.modalFlag = true
+        this.inputValue = ''
       },
       },
       // 确认添加节点
       // 确认添加节点
       handleAddNode() {
       handleAddNode() {
-        if (this.inputValue != "") {
-          this.append(this.currentNode, this.inputValue);
+        if (this.inputValue != '') {
+          this.append(this.currentNode, this.inputValue)
         } else {
         } else {
-          this.modalFlag = false;
+          this.modalFlag = false
         }
         }
       },
       },
       // 修改节点
       // 修改节点
       handleUpdateNode() {
       handleUpdateNode() {
-        if (this.editValue != "") {
+        if (this.editValue != '') {
           this.$api.SaveOrUpdateSingleNode(this.currentNode).then(res => {
           this.$api.SaveOrUpdateSingleNode(this.currentNode).then(res => {
-            this.$Message.success("修改成功");
-            this.currentNode.title = this.editValue;
+            this.$Message.success('修改成功')
+            this.currentNode.title = this.editValue
           })
           })
         } else {
         } else {
-          this.editFlag = false;
+          this.editFlag = false
         }
         }
       },
       },
       // 标题点击收缩展开
       // 标题点击收缩展开
       titleClick(data) {
       titleClick(data) {
-        data.expand = !data.expand;
+        data.expand = !data.expand
       },
       },
       // 根目录点击事件
       // 根目录点击事件
       rootClick(data) {
       rootClick(data) {
-        data.expand = !data.expand;
+        data.expand = !data.expand
       },
       },
       // 上移章节操作
       // 上移章节操作
       moveUp(root, node, data) {
       moveUp(root, node, data) {
-        let that = this;
-        let list = [];
-        const parentKey = root.find(el => el === node).parent;
+        let that = this
+        let list = []
+        const parentKey = root.find(el => el === node).parent
 
 
-        //判断是否存在父级
-        if (parentKey == null || parentKey == undefined) {
-          list = that.treeData;
+        // 判断是否存在父级
+        if (parentKey === null || parentKey === undefined) {
+          list = that.treeData
         } else {
         } else {
-          list = root.find(el => el.nodeKey === parentKey).node.children;
+          list = root.find(el => el.nodeKey === parentKey).node.children
         }
         }
-        const index = list.indexOf(data);
-        let currentOrder = data.order;
+        const index = list.indexOf(data)
+        let currentOrder = data.order
 
 
-        //第一个元素无法上移
+        // 第一个元素无法上移
         if (index != 0) {
         if (index != 0) {
-          let preData = list[index - 1];
-          if (data.order == preData.order) {
-            data.order = data.order - 1;
+          let preData = list[index - 1]
+          if (data.order === preData.order) {
+            data.order = data.order - 1
           } else {
           } else {
-            data.order = preData.order;
-            preData.order = currentOrder;
+            data.order = preData.order
+            preData.order = currentOrder
           }
           }
-          //更新两条数据
-          that.$api.SaveOrUpdateSingleNode(data);
-          that.$api.SaveOrUpdateSingleNode(preData);
+          // 更新两条数据
+          that.$api.SaveOrUpdateSingleNode(data)
+          that.$api.SaveOrUpdateSingleNode(preData)
 
 
-          //移动后刷新数据
-          setTimeout(function () {
+          // 移动后刷新数据
+          setTimeout(function() {
             that.$api.FindSyllabusByVolumeCode({ VolumeCode: that.volumeCode, Status: 1 }).then(res => {
             that.$api.FindSyllabusByVolumeCode({ VolumeCode: that.volumeCode, Status: 1 }).then(res => {
-              that.treeData = res.result.data;
+              that.treeData = res.result.data
             })
             })
           }, 500)
           }, 500)
         }
         }
       },
       },
       // 下移章节操作
       // 下移章节操作
       moveDown(root, node, data) {
       moveDown(root, node, data) {
-        let that = this;
-        let list = [];
-        const parentKey = root.find(el => el === node).parent;
+        let that = this
+        let list = []
+        const parentKey = root.find(el => el === node).parent
 
 
-        //判断是否存在父级
-        if (parentKey == null || parentKey == undefined) {
-          list = that.treeData;
+        // 判断是否存在父级
+        if (parentKey === null || parentKey === undefined) {
+          list = that.treeData
         } else {
         } else {
-          list = root.find(el => el.nodeKey === parentKey).node.children;
+          list = root.find(el => el.nodeKey === parentKey).node.children
         }
         }
-        const index = list.indexOf(data);
-        let currentOrder = data.order;
-        //最后一个元素无法下移
+        const index = list.indexOf(data)
+        let currentOrder = data.order
+        // 最后一个元素无法下移
         if (index != (list.length - 1)) {
         if (index != (list.length - 1)) {
-           let nextData = list[index + 1];
-          if (data.order == nextData.order) {
-            data.order = data.order + 1;
+           let nextData = list[index + 1]
+          if (data.order === nextData.order) {
+            data.order = data.order + 1
           } else {
           } else {
-            data.order = nextData.order;
-            nextData.order = currentOrder;
+            data.order = nextData.order
+            nextData.order = currentOrder
           }
           }
-          //更新两条数据
-          that.$api.SaveOrUpdateSingleNode(data);
-          that.$api.SaveOrUpdateSingleNode(nextData);
+          // 更新两条数据
+          that.$api.SaveOrUpdateSingleNode(data)
+          that.$api.SaveOrUpdateSingleNode(nextData)
 
 
-          //移动后刷新数据
-          setTimeout(function () {
+          // 移动后刷新数据
+          setTimeout(function() {
             that.$api.FindSyllabusByVolumeCode({ VolumeCode: that.volumeCode, Status: 1 }).then(res => {
             that.$api.FindSyllabusByVolumeCode({ VolumeCode: that.volumeCode, Status: 1 }).then(res => {
-              that.treeData = res.result.data;
+              that.treeData = res.result.data
             })
             })
           }, 500)
           }, 500)
         }
         }
       },
       },
       // 更多操作
       // 更多操作
       handleTools(root, node, data, event) {
       handleTools(root, node, data, event) {
-        let toolsDom = event.currentTarget.nextElementSibling;
-        const parentKey = root.find(el => el === node).parent;
-        const parent = root.find(el => el.nodeKey === parentKey).node;
-        const index = parent.children.indexOf(data);
-        let list = document.getElementsByClassName("tools");
-        let cFlag = toolsDom.style.display;
+        let toolsDom = event.currentTarget.nextElementSibling
+        const parentKey = root.find(el => el === node).parent
+        const parent = root.find(el => el.nodeKey === parentKey).node
+        let list = document.getElementsByClassName('tools')
+        let cFlag = toolsDom.style.display
         for (let i = 0; i < list.length; i++) {
         for (let i = 0; i < list.length; i++) {
-          list[i].style.display = "none";
+          list[i].style.display = 'none'
         }
         }
         // 判断TOOL显示与隐藏
         // 判断TOOL显示与隐藏
-        if (cFlag == "none") {
-          toolsDom.style.display = "inline-flex";
-          toolsDom.classList.add("animated");
-          toolsDom.classList.add("slideInDown");
+        if (cFlag === 'none') {
+          toolsDom.style.display = 'inline-flex'
+          toolsDom.classList.add('animated')
+          toolsDom.classList.add('slideInDown')
         } else {
         } else {
-          toolsDom.style.display = "none";
+          toolsDom.style.display = 'none'
         }
         }
       },
       },
       // 鼠标从工具条移开的时候隐藏
       // 鼠标从工具条移开的时候隐藏
       hideTools(event) {
       hideTools(event) {
-        event.currentTarget.style.display = "none";
+        event.currentTarget.style.display = 'none'
       },
       },
       handleLiOver(event) {
       handleLiOver(event) {
-        event.currentTarget.lastElementChild.style.display = "block";
-        event.currentTarget.style.backgroundColor = "rgba(55, 55, 55, 0.68)";
-        event.currentTarget.style.border = "1px solid #000";
+        event.currentTarget.lastElementChild.style.display = 'block'
+        event.currentTarget.style.backgroundColor = 'rgba(55, 55, 55, 0.68)'
+        event.currentTarget.style.border = '1px solid #000'
       },
       },
       handleLiLeave(node, event) {
       handleLiLeave(node, event) {
-        event.currentTarget.lastElementChild.style.display = "none";
+        event.currentTarget.lastElementChild.style.display = 'none'
         if (this.currentLiNode.nodeKey != node.nodeKey) {
         if (this.currentLiNode.nodeKey != node.nodeKey) {
-          event.currentTarget.style.backgroundColor = "transparent";
-          event.currentTarget.style.border = "0";
+          event.currentTarget.style.backgroundColor = 'transparent'
+          event.currentTarget.style.border = '0'
         }
         }
-      },
-     
-    },
-  };
+      }
+
+    }
+  }
 </script>
 </script>
 <style scoped>
 <style scoped>
   .tree-main {
   .tree-main {
@@ -408,7 +407,7 @@
     font-size: 14px;
     font-size: 14px;
     position:relative;
     position:relative;
   }
   }
-  
+
   /*.tree-main /deep/ .ivu-tree ul::after {
   /*.tree-main /deep/ .ivu-tree ul::after {
         content: " ";
         content: " ";
     position: absolute;
     position: absolute;
@@ -507,7 +506,7 @@
     user-select:none;
     user-select:none;
     cursor:pointer;
     cursor:pointer;
   }
   }
-    
+
    /*.tree-main /deep/ .singleClass:before {
    /*.tree-main /deep/ .singleClass:before {
             content: " ";
             content: " ";
     position: absolute;
     position: absolute;
@@ -518,5 +517,4 @@
     border-top: 1px dashed #fff;
     border-top: 1px dashed #fff;
     }*/
     }*/
 
 
-
 </style>
 </style>

+ 59 - 59
TEAMModelOS/ClientApp/src/components/talmgmtdashboard/Bubble.vue

@@ -4,79 +4,79 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {
         return {
             mychat: '',
             mychat: '',
             total: 0,
             total: 0,
-            heightlightIndex: 0,
+            heightlightIndex: 0
         }
         }
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         },
         },
-        title:{
+        title: {
             type: String
             type: String
         },
         },
-        xlabel:{
+        xlabel: {
             type: Array,
             type: Array,
-            default: function(){
-                return ['0-50', '51-60', '61-70', '71-80', '81-80', '90~'];;
+            default: function() {
+                return ['0-50', '51-60', '61-70', '71-80', '81-80', '90~']
             }
             }
         },
         },
-        ylabel:{
+        ylabel: {
             type: Array,
             type: Array,
-            default: function(){
-                return ['一年級', '二年級', '三年級','四年級','五年級'];
+            default: function() {
+                return ['一年級', '二年級', '三年級', '四年級', '五年級']
             }
             }
         },
         },
-        bubleData:{
+        bubleData: {
             type: Array,
             type: Array,
-            default: function(){
+            default: function() {
                 // [x, y, total]
                 // [x, y, total]
                 return [
                 return [
-                [0,0,10], [1,0, 30], [4,0, 20], [5,0, 10],
-                [1,1,30], [2,1, 30],
-                [3,2,30], [4,2, 10],
-                [2,3,30]];
+                [0, 0, 10], [1, 0, 30], [4, 0, 20], [5, 0, 10],
+                [1, 1, 30], [2, 1, 30],
+                [3, 2, 30], [4, 2, 10],
+                [2, 3, 30]]
             }
             }
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    created(){
+    created() {
     },
     },
-    methods:{
-        drawLine(){
-            const lang = localStorage.getItem('local');
+    methods: {
+        drawLine() {
+            const lang = localStorage.getItem('local')
             let _this = this
             let _this = this
-            var bubblecolor = ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76'];
-            var hours = this.xlabel;
+            var bubblecolor = ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76']
+            var hours = this.xlabel
             // data = data.map(function (item) {
             // data = data.map(function (item) {
             //     return [item[1], item[0], item[2]];
             //     return [item[1], item[0], item[2]];
             // });
             // });
             // console.log(data)
             // console.log(data)
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            this.myChart = this.$echarts.init(document.getElementById(this.id));
-            this.myChart.setOption({  
-              title:{
-                show: _this.title ? true : false,
+            this.myChart = this.$echarts.init(document.getElementById(this.id))
+            this.myChart.setOption({
+              title: {
+                show: !!_this.title,
                 text: _this.title ? _this.title : '',
                 text: _this.title ? _this.title : '',
                 left: 'center',
                 left: 'center',
-                textStyle:{
+                textStyle: {
                   color: '#fafafa',
                   color: '#fafafa',
-                  fontWeight: 100,
+                  fontWeight: 100
                 }
                 }
               },
               },
                 tooltip: {
                 tooltip: {
                     position: 'top',
                     position: 'top',
-                    formatter: function (params) {
-                        let num = params.value[2];
-                        let regin =hours[params.value[0]];
-                        let grade = _this.ylabel[params.value[1]];
-                        if(lang == 'en-US'){
-                            return _this.$t('talMgmt.text61') + num + _this.$t('talMgmt.text62') + regin +  _this.$t('talMgmt.text63') + grade;
+                    formatter: function(params) {
+                        let num = params.value[2]
+                        let regin = hours[params.value[0]]
+                        let grade = _this.ylabel[params.value[1]]
+                        if (lang == 'en-US') {
+                            return _this.$t('talMgmt.text61') + num + _this.$t('talMgmt.text62') + regin + _this.$t('talMgmt.text63') + grade
                         } else {
                         } else {
                             return grade + _this.$t('talMgmt.text61') + regin + _this.$t('talMgmt.text62') + num + _this.$t('talMgmt.text63')
                             return grade + _this.$t('talMgmt.text61') + regin + _this.$t('talMgmt.text62') + num + _this.$t('talMgmt.text63')
                         }
                         }
@@ -86,7 +86,7 @@ export default {
                     left: '2%',
                     left: '2%',
                     bottom: 0,
                     bottom: 0,
                     right: '16px',
                     right: '16px',
-                    containLabel: true,      
+                    containLabel: true
                 },
                 },
                 xAxis: {
                 xAxis: {
                     type: 'category',
                     type: 'category',
@@ -94,16 +94,16 @@ export default {
                     boundaryGap: false,
                     boundaryGap: false,
                     splitLine: {
                     splitLine: {
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         },
                         },
                         show: true
                         show: true
                     },
                     },
                     axisLine: {
                     axisLine: {
                         lineStyle: {
                         lineStyle: {
                             color: 'rgba(185, 193, 173, 0.63)',
                             color: 'rgba(185, 193, 173, 0.63)',
-                            width: 1,
+                            width: 1
                         }
                         }
-                    },
+                    }
                 },
                 },
                 yAxis: {
                 yAxis: {
                     type: 'category',
                     type: 'category',
@@ -111,45 +111,45 @@ export default {
                     boundaryGap: true,
                     boundaryGap: true,
                     splitLine: {
                     splitLine: {
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         },
                         },
                         show: true
                         show: true
                     },
                     },
                     axisLine: {
                     axisLine: {
                         lineStyle: {
                         lineStyle: {
                             color: 'rgba(185, 193, 173, 0.63)',
                             color: 'rgba(185, 193, 173, 0.63)',
-                            width: 1,
+                            width: 1
                         }
                         }
-                    },
+                    }
                 },
                 },
                 series: [{
                 series: [{
                     // name: '论文数量',
                     // name: '论文数量',
                     type: 'scatter',
                     type: 'scatter',
-                    symbolSize: function (val) {
-                        let tmp = val[2]*0.03;
-                        if(tmp == 0){
+                    symbolSize: function(val) {
+                        let tmp = val[2] * 0.03
+                        if (tmp == 0) {
                             return 0
                             return 0
-                        } else if(tmp<1){
+                        } else if (tmp < 1) {
                             return 10
                             return 10
                         } else {
                         } else {
-                            return tmp;
-                        }                        
+                            return tmp
+                        }
                     },
                     },
                     data: _this.bubleData,
                     data: _this.bubleData,
-                    animationDelay: function (idx) {
-                        return idx * 5;
+                    animationDelay: function(idx) {
+                        return idx * 5
                     },
                     },
-                    itemStyle:{
-                        normal:{
+                    itemStyle: {
+                        normal: {
                             color: function(params) {
                             color: function(params) {
-                                var num=bubblecolor.length;
-                                return bubblecolor[params.dataIndex%num]
-                            },
+                                var num = bubblecolor.length
+                                return bubblecolor[params.dataIndex % num]
+                            }
                         }
                         }
                     }
                     }
                 }]
                 }]
-            });
-        },
+            })
+        }
     }
     }
 }
 }
 
 

+ 38 - 38
TEAMModelOS/ClientApp/src/components/talmgmtdashboard/InteractiveBarLine.vue

@@ -4,61 +4,61 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {}
         return {}
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         },
         },
-        xlabel:{
+        xlabel: {
             type: Array
             type: Array
         },
         },
-        bardata1:{
+        bardata1: {
             type: Array
             type: Array
         },
         },
-        bardata2:{
+        bardata2: {
             type: Array
             type: Array
         },
         },
-        linedata:{
+        linedata: {
             type: Array
             type: Array
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            let myChart = this.$echarts.init(document.getElementById(this.id));
-            let arrlabel = this.xlabel;
-            let arrTotal1 = this.bardata1;
-            let arrTotal2 = this.bardata2;
-            let arrTotal3 = this.linedata;
+            let myChart = this.$echarts.init(document.getElementById(this.id))
+            let arrlabel = this.xlabel
+            let arrTotal1 = this.bardata1
+            let arrTotal2 = this.bardata2
+            let arrTotal3 = this.linedata
             myChart.setOption({
             myChart.setOption({
                 backgroundColor: 'rgba(17, 17, 17, 0.14)',
                 backgroundColor: 'rgba(17, 17, 17, 0.14)',
                 tooltip: {
                 tooltip: {
                     trigger: 'axis',
                     trigger: 'axis',
-                    borderRadius: 0,
+                    borderRadius: 0
                 },
                 },
                 grid: {
                 grid: {
                     left: '0',
                     left: '0',
                     right: '0',
                     right: '0',
                     bottom: '5%',
                     bottom: '5%',
                     top: '10',
                     top: '10',
-                    containLabel: true,
+                    containLabel: true
                 },
                 },
                 xAxis: [{
                 xAxis: [{
                     type: 'category',
                     type: 'category',
-                    position: "bottom",
+                    position: 'bottom',
                     axisLabel: {
                     axisLabel: {
                         margin: 10,
                         margin: 10,
                         textStyle: {
                         textStyle: {
                             fontSize: 11,
                             fontSize: 11,
                             color: '#fafafa'
                             color: '#fafafa'
                         },
                         },
-                        interval:0,
+                        interval: 0
                         // formatter:function(val){
                         // formatter:function(val){
                         //     let firstOne = arrlabel[0];
                         //     let firstOne = arrlabel[0];
                         //     let labellength = arrlabel.length
                         //     let labellength = arrlabel.length
@@ -71,18 +71,18 @@ export default {
                     boundaryGap: true,
                     boundaryGap: true,
                     splitLine: {
                     splitLine: {
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         },
                         },
                         show: true
                         show: true
                     },
                     },
                     axisLine: {
                     axisLine: {
                         lineStyle: {
                         lineStyle: {
                             color: 'rgba(185, 193, 173, 0.63)',
                             color: 'rgba(185, 193, 173, 0.63)',
-                            width: 1,
+                            width: 1
                         }
                         }
                     },
                     },
                     axisTick: {
                     axisTick: {
-                        show: false,
+                        show: false
                     },
                     },
                     data: arrlabel
                     data: arrlabel
                 }],
                 }],
@@ -95,20 +95,20 @@ export default {
                     axisLine: {
                     axisLine: {
                         show: true,
                         show: true,
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         }
                         }
                     },
                     },
                     axisLabel: {
                     axisLabel: {
                         margin: 10,
                         margin: 10,
                         textStyle: {
                         textStyle: {
                             fontSize: 11,
                             fontSize: 11,
-                            color:'#fafafa'
+                            color: '#fafafa'
                         }
                         }
                     },
                     },
                     splitLine: {
                     splitLine: {
                         show: true,
                         show: true,
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         }
                         }
                     }
                     }
                 }],
                 }],
@@ -122,12 +122,12 @@ export default {
                     },
                     },
                     itemStyle: {
                     itemStyle: {
                         normal: {
                         normal: {
-                            color: '#48DBFC',
+                            color: '#48DBFC'
                         },
                         },
                         emphasis: {
                         emphasis: {
                             // color: 'rgb(0,196,132)',
                             // color: 'rgb(0,196,132)',
                             borderColor: 'rgba(0,196,132,0.2)',
                             borderColor: 'rgba(0,196,132,0.2)',
-                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);',
+                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);'
                             // borderWidth: 10
                             // borderWidth: 10
                         }
                         }
                     },
                     },
@@ -139,13 +139,13 @@ export default {
                   barWidth: 10,
                   barWidth: 10,
                   data: arrTotal1,
                   data: arrTotal1,
                   itemStyle: {
                   itemStyle: {
-                    normal: {  //渐变色
+                    normal: { // 渐变色
                       color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                         offset: 0,
                         offset: 0,
-                        color: "rgba(28, 208, 161, 1)" // 0% 处的颜色
-                      },{
+                        color: 'rgba(28, 208, 161, 1)' // 0% 处的颜色
+                      }, {
                         offset: 1,
                         offset: 1,
-                        color: "rgba(28, 208, 161, 0.5)" // 100% 处的颜色
+                        color: 'rgba(28, 208, 161, 0.5)' // 100% 处的颜色
                       }], false)
                       }], false)
                     }
                     }
                   }
                   }
@@ -156,19 +156,19 @@ export default {
                   barWidth: 10,
                   barWidth: 10,
                   data: arrTotal2,
                   data: arrTotal2,
                   itemStyle: {
                   itemStyle: {
-                    normal: {  //渐变色
+                    normal: { // 渐变色
                       color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                       color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                         offset: 0,
                         offset: 0,
-                        color: "rgba(28, 208, 161, 1)" // 0% 处的颜色
-                      },{
+                        color: 'rgba(28, 208, 161, 1)' // 0% 处的颜色
+                      }, {
                         offset: 1,
                         offset: 1,
-                        color: "rgba(28, 208, 161, 0.5)" // 100% 处的颜色
+                        color: 'rgba(28, 208, 161, 0.5)' // 100% 处的颜色
                       }], false)
                       }], false)
                     }
                     }
                   }
                   }
-                },
+                }
                 ]
                 ]
-            });
+            })
         }
         }
     }
     }
 }
 }

+ 30 - 30
TEAMModelOS/ClientApp/src/components/talmgmtdashboard/InteractiveLine.vue

@@ -4,47 +4,47 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {}
         return {}
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         },
         },
-        xlabel:{
+        xlabel: {
             type: Array
             type: Array
         },
         },
-        data:{
+        data: {
             type: Array
             type: Array
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            let myChart = this.$echarts.init(document.getElementById(this.id));
-            let arrlabel = this.xlabel;
-            let arrTotal1 = this.data;
+            let myChart = this.$echarts.init(document.getElementById(this.id))
+            let arrlabel = this.xlabel
+            let arrTotal1 = this.data
             // let arrTotal2 = ["26", "20", "2", "18", "27", "22", "26", "33", "9", "0", "40"];
             // let arrTotal2 = ["26", "20", "2", "18", "27", "22", "26", "33", "9", "0", "40"];
             myChart.setOption({
             myChart.setOption({
                 // backgroundColor: 'rgba(17, 17, 17, 0.14)',
                 // backgroundColor: 'rgba(17, 17, 17, 0.14)',
                 tooltip: {
                 tooltip: {
                     trigger: 'axis',
                     trigger: 'axis',
-                    borderRadius: 0,
+                    borderRadius: 0
                 },
                 },
                 grid: {
                 grid: {
                     left: '0',
                     left: '0',
                     right: '0',
                     right: '0',
                     bottom: '5%',
                     bottom: '5%',
                     top: '5%',
                     top: '5%',
-                    containLabel: true,
+                    containLabel: true
                 },
                 },
                 xAxis: [{
                 xAxis: [{
                     axisTick: {
                     axisTick: {
-                        show: false,
+                        show: false
                     },
                     },
                     type: 'category',
                     type: 'category',
                     axisLabel: {
                     axisLabel: {
@@ -52,7 +52,7 @@ export default {
                         textStyle: {
                         textStyle: {
                             fontSize: 11,
                             fontSize: 11,
                             color: '#fafafa'
                             color: '#fafafa'
-                        },
+                        }
                         // interval:0,
                         // interval:0,
                         // formatter:function(val){
                         // formatter:function(val){
                         //     let firstOne = arrlabel[0];
                         //     let firstOne = arrlabel[0];
@@ -66,14 +66,14 @@ export default {
                     boundaryGap: false,
                     boundaryGap: false,
                     splitLine: {
                     splitLine: {
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         },
                         },
                         show: true
                         show: true
                     },
                     },
                     axisLine: {
                     axisLine: {
                         lineStyle: {
                         lineStyle: {
                             color: 'rgba(185, 193, 173, 0.63)',
                             color: 'rgba(185, 193, 173, 0.63)',
-                            width: 1,
+                            width: 1
                         }
                         }
                     },
                     },
                     data: arrlabel
                     data: arrlabel
@@ -87,20 +87,20 @@ export default {
                     axisLine: {
                     axisLine: {
                         show: true,
                         show: true,
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         }
                         }
                     },
                     },
                     axisLabel: {
                     axisLabel: {
                         margin: 10,
                         margin: 10,
                         textStyle: {
                         textStyle: {
                             fontSize: 11,
                             fontSize: 11,
-                            color:'#fafafa'
+                            color: '#fafafa'
                         }
                         }
                     },
                     },
                     splitLine: {
                     splitLine: {
                         show: true,
                         show: true,
                         lineStyle: {
                         lineStyle: {
-                            color: 'rgba(185, 193, 173, 0.63)',
+                            color: 'rgba(185, 193, 173, 0.63)'
                         }
                         }
                     }
                     }
                 }],
                 }],
@@ -108,7 +108,7 @@ export default {
                     // name: '实名率',
                     // name: '实名率',
                     type: 'line',
                     type: 'line',
                     // symbol: 'circle',
                     // symbol: 'circle',
-                    //symbolSize: 5,
+                    // symbolSize: 5,
                     // showSymbol: false,
                     // showSymbol: false,
                     // markPoint: { // markLine 也是同理
                     // markPoint: { // markLine 也是同理
                     //   data: [{
                     //   data: [{
@@ -128,29 +128,29 @@ export default {
                             // 渐变色
                             // 渐变色
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                             color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                 offset: 0,
                                 offset: 0,
-                                color: "rgba(28, 208, 161, 1)" // 0% 处的颜色
-                            },{
+                                color: 'rgba(28, 208, 161, 1)' // 0% 处的颜色
+                            }, {
                                 offset: 1,
                                 offset: 1,
-                                color: "rgba(28, 208, 161, 0.5)" // 100% 处的颜色
+                                color: 'rgba(28, 208, 161, 0.5)' // 100% 处的颜色
                             }], false)
                             }], false)
-                        },
+                        }
                     },
                     },
                     itemStyle: {
                     itemStyle: {
                         normal: {
                         normal: {
                             areaStyle: {
                             areaStyle: {
                                 type: 'default'
                                 type: 'default'
                             },
                             },
-                            color: '#1CD0A1',
+                            color: '#1CD0A1'
                         },
                         },
                         emphasis: {
                         emphasis: {
                             // color: 'rgb(0,196,132)',
                             // color: 'rgb(0,196,132)',
                             borderColor: 'rgba(0,196,132,0.2)',
                             borderColor: 'rgba(0,196,132,0.2)',
-                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);',
+                            extraCssText: 'box-shadow: 8px 8px 8px rgba(0, 0, 0, 1);'
                             // borderWidth: 10
                             // borderWidth: 10
                         }
                         }
                     },
                     },
                     data: arrTotal1
                     data: arrTotal1
-                },
+                }
                 // {
                 // {
                 //     type: 'line',
                 //     type: 'line',
                 //     lineStyle: {
                 //     lineStyle: {
@@ -187,7 +187,7 @@ export default {
                 //     data: arrTotal2
                 //     data: arrTotal2
                 // }
                 // }
                 ]
                 ]
-            });
+            })
         }
         }
     }
     }
 }
 }

+ 66 - 67
TEAMModelOS/ClientApp/src/components/talmgmtdashboard/RingPie.vue

@@ -4,96 +4,96 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
         return {
         return {
             mychat: '',
             mychat: '',
             total: 0,
             total: 0,
-            heightlightIndex: 0,
+            heightlightIndex: 0
         }
         }
     },
     },
-    props:{
-        id:{
+    props: {
+        id: {
             type: String
             type: String
         },
         },
-        pieData:{
+        pieData: {
             type: Array,
             type: Array,
-            default: function(){
+            default: function() {
                 return [
                 return [
-                    {value:335, name:'新增檔案'},
-                    {value:310, name:'書面問答'},
-                    {value:234, name:'匯入.pptx'},
-                    {value:135, name:'PowerClick'},
-                    {value:1548, name:'開啟.hte'},
-                    {value:123, name:'其他'},
+                    { value: 335, name: '新增檔案' },
+                    { value: 310, name: '書面問答' },
+                    { value: 234, name: '匯入.pptx' },
+                    { value: 135, name: 'PowerClick' },
+                    { value: 1548, name: '開啟.hte' },
+                    { value: 123, name: '其他' }
                 ]
                 ]
-            },
+            }
         },
         },
         defaultActive: {
         defaultActive: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         },
         },
-        singleColor:{
+        singleColor: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         },
         },
         title: {
         title: {
             type: String
             type: String
         },
         },
-        tooltip:{
+        tooltip: {
             type: Boolean,
             type: Boolean,
-            default: function(){
-                return false;
+            default: function() {
+                return false
             }
             }
         }
         }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    created(){
+    created() {
         this.pieData.forEach(item => {
         this.pieData.forEach(item => {
             this.total += item.value
             this.total += item.value
-        });
+        })
     },
     },
-    methods:{
-        drawLine(){
+    methods: {
+        drawLine() {
             let _this = this
             let _this = this
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            this.myChart = this.$echarts.init(document.getElementById(this.id));
-            this.myChart.setOption({                
-                title:{
-                    show: _this.title ? true : false,
+            this.myChart = this.$echarts.init(document.getElementById(this.id))
+            this.myChart.setOption({
+                title: {
+                    show: !!_this.title,
                     text: _this.title ? _this.title : '',
                     text: _this.title ? _this.title : '',
                     left: 'center',
                     left: 'center',
                     top: 'middle',
                     top: 'middle',
-                    textStyle:{
+                    textStyle: {
                         color: '#fafafa',
                         color: '#fafafa',
                         fontWeight: 100
                         fontWeight: 100
-                    }                    
+                    }
                 },
                 },
                 color: _this.singleColor ? 'rgba(228, 233, 220, 0.9)' : ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76'],
                 color: _this.singleColor ? 'rgba(228, 233, 220, 0.9)' : ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76'],
                 tooltip: {
                 tooltip: {
                     show: _this.tooltip,
                     show: _this.tooltip,
-                    trigger: 'item',
-                    // formatter: function(p){                        
+                    trigger: 'item'
+                    // formatter: function(p){
                     //     // 故意不填可用來觸發HighLight
                     //     // 故意不填可用來觸發HighLight
                     // }
                     // }
                 },
                 },
                 series: [
                 series: [
                     {
                     {
-                        type:'pie',
+                        type: 'pie',
                         hoverOffset: 5,
                         hoverOffset: 5,
                         radius: _this.singleColor ? ['30%', '70%'] : ['50%', '70%'],
                         radius: _this.singleColor ? ['30%', '70%'] : ['50%', '70%'],
                         avoidLabelOverlap: false,
                         avoidLabelOverlap: false,
                         label: {
                         label: {
                             normal: {
                             normal: {
-                                show: false,
+                                show: false
                             },
                             },
                             emphasis: {
                             emphasis: {
-                                show: false,
+                                show: false
                             }
                             }
                         },
                         },
                         labelLine: {
                         labelLine: {
@@ -104,65 +104,64 @@ export default {
                         data: _this.pieData,
                         data: _this.pieData,
                         itemStyle: _this.singleColor ? {
                         itemStyle: _this.singleColor ? {
                             emphasis: {
                             emphasis: {
-                                color: '#1CD0A1',
+                                color: '#1CD0A1'
                             }
                             }
                         } : ''
                         } : ''
                     }
                     }
                 ]
                 ]
-            });
+            })
             // mouseover觸發項
             // mouseover觸發項
-            this.myChart.on('mouseover', function (params) {
-                if(_this.pieData[_this.heightlightIndex].name != params.name){
+            this.myChart.on('mouseover', function(params) {
+                if (_this.pieData[_this.heightlightIndex].name != params.name) {
                     _this.myChart.dispatchAction({
                     _this.myChart.dispatchAction({
                         type: 'downplay',
                         type: 'downplay',
-                        dataIndex: _this.heightlightIndex,
-                    });
+                        dataIndex: _this.heightlightIndex
+                    })
                 }
                 }
-                _this.$emit('highLightInfo', params);
-            });
-            if(this.defaultActive){
+                _this.$emit('highLightInfo', params)
+            })
+            if (this.defaultActive) {
                 // 預設先給第一筆初始值
                 // 預設先給第一筆初始值
-                let now = this.pieData[0].value;
-                let params = {'value': this.pieData[0].value, 'name': this.pieData[0].name,'percent': Number((now/this.total)*100).toFixed(2)}
-                this.$emit('extraInfo', params);            
-                this.$emit('highLightInfo', params);  
+                let now = this.pieData[0].value
+                let params = { 'value': this.pieData[0].value, 'name': this.pieData[0].name, 'percent': Number((now / this.total) * 100).toFixed(2) }
+                this.$emit('extraInfo', params)
+                this.$emit('highLightInfo', params)
                 // 預設第一個
                 // 預設第一個
                 this.myChart.dispatchAction({
                 this.myChart.dispatchAction({
                     type: 'highlight',
                     type: 'highlight',
-                    dataIndex: _this.heightlightIndex,
-                });
+                    dataIndex: _this.heightlightIndex
+                })
             }
             }
         },
         },
         // 供外部呼叫用
         // 供外部呼叫用
-        heightlight: function(dName){    
-            let _this = this;
-            if(this.pieData[this.heightlightIndex].name != dName){
+        heightlight: function(dName) {
+            let _this = this
+            if (this.pieData[this.heightlightIndex].name != dName) {
                 this.myChart.dispatchAction({
                 this.myChart.dispatchAction({
                     type: 'downplay',
                     type: 'downplay',
-                    dataIndex: _this.heightlightIndex,
-                });
+                    dataIndex: _this.heightlightIndex
+                })
             }
             }
 
 
             this.myChart.dispatchAction({
             this.myChart.dispatchAction({
                 type: 'highlight',
                 type: 'highlight',
                 name: dName
                 name: dName
-            });
-            let now = 0;
+            })
+            let now = 0
             this.pieData.forEach(item => {
             this.pieData.forEach(item => {
-                if(item.name == dName){
+                if (item.name == dName) {
                     now = item.value
                     now = item.value
                 }
                 }
-            });
-            let params = {'percent': Number((now/this.total)*100).toFixed(2)}
-
+            })
+            let params = { 'percent': Number((now / this.total) * 100).toFixed(2) }
 
 
-            this.$emit('extraInfo', params);
+            this.$emit('extraInfo', params)
         },
         },
-        downplay: function(dname){
+        downplay: function(dname) {
             this.myChart.dispatchAction({
             this.myChart.dispatchAction({
                 type: 'downplay',
                 type: 'downplay',
                 name: dname
                 name: dname
-            });
+            })
         }
         }
     }
     }
 }
 }

+ 42 - 42
TEAMModelOS/ClientApp/src/components/talmgmtdashboard/TechnologyBar.vue

@@ -4,28 +4,28 @@
 
 
 <script>
 <script>
 export default {
 export default {
-    data () {
+    data() {
       return {
       return {
-        myChart: '',
+        myChart: ''
       }
       }
     },
     },
-    props:{
-      id:{
+    props: {
+      id: {
         type: String
         type: String
       },
       },
-      xlabel:{
+      xlabel: {
         type: Array
         type: Array
       },
       },
-      data:{
+      data: {
         type: Array,
         type: Array,
-        default: function(){
+        default: function() {
           return [
           return [
-            {name: '總量', data:[30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2]},
-            {name: '語文', data:[30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2]},
-            {name: '英語', data:[30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2]},
-            {name: '數學', data:[30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2]},
-            {name: '科學', data:[30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2]},
-            {name: '綜合', data:[30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2]}
+            { name: '總量', data: [30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2] },
+            { name: '語文', data: [30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2] },
+            { name: '英語', data: [30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2] },
+            { name: '數學', data: [30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2] },
+            { name: '科學', data: [30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2] },
+            { name: '綜合', data: [30, 7, 0, 5, 4, 2, 6, 5, 3, 2, 2] }
           ]
           ]
         }
         }
       },
       },
@@ -33,56 +33,56 @@ export default {
         type: String
         type: String
       }
       }
     },
     },
-    mounted(){
-        this.drawLine();
+    mounted() {
+        this.drawLine()
     },
     },
-    methods:{
-        drawLine(){
-            let barcolor = ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76'];
+    methods: {
+        drawLine() {
+            let barcolor = ['#FF6B6A', '#FF9FF4', '#48DBFC', '#1CD0A1', '#FDC958', '#FFAD76']
             let _this = this
             let _this = this
-            let max = 0;
-            let series = [];
-            let legend = [];
-            this.data.forEach(function(item){
-              legend.push(item.name);
+            let max = 0
+            let series = []
+            let legend = []
+            this.data.forEach(function(item) {
+              legend.push(item.name)
               series.push({
               series.push({
                 name: item.name,
                 name: item.name,
                 type: 'bar',
                 type: 'bar',
                 data: item.data,
                 data: item.data,
-                barWidth: 10, //柱子宽度
+                barWidth: 10, // 柱子宽度
                 // barGap: 1, //柱子之间间距
                 // barGap: 1, //柱子之间间距
                 itemStyle: {
                 itemStyle: {
-                  normal: { 
+                  normal: {
                     color: function(params) {
                     color: function(params) {
-                      var num=barcolor.length;
-                      return barcolor[params.seriesIndex%num]
+                      var num = barcolor.length
+                      return barcolor[params.seriesIndex % num]
                     }
                     }
                   }
                   }
                 }
                 }
               })
               })
               let dataMax = Math.max(...item.data)
               let dataMax = Math.max(...item.data)
-              if(dataMax > max){
+              if (dataMax > max) {
                 max = dataMax
                 max = dataMax
               }
               }
             })
             })
-            max = max + 20;
+            max = max + 20
 
 
             // 基于准备好的dom,初始化echarts实例
             // 基于准备好的dom,初始化echarts实例
-            this.myChart = this.$echarts.init(document.getElementById(this.id));
+            this.myChart = this.$echarts.init(document.getElementById(this.id))
             this.myChart.setOption({
             this.myChart.setOption({
-              title:{
+              title: {
                 text: _this.$t('talMgmt.text49'),
                 text: _this.$t('talMgmt.text49'),
                 left: 'center',
                 left: 'center',
-                textStyle:{
+                textStyle: {
                   color: '#fafafa',
                   color: '#fafafa',
-                  fontWeight: 100,
+                  fontWeight: 100
                 }
                 }
               },
               },
               legend: {
               legend: {
                 top: 20,
                 top: 20,
                 textStyle: {
                 textStyle: {
-                    color: '#fff',
-                },                
+                    color: '#fff'
+                },
                 data: legend
                 data: legend
               },
               },
               backgroundColor: '#343a4073',
               backgroundColor: '#343a4073',
@@ -90,13 +90,13 @@ export default {
                 trigger: 'axis',
                 trigger: 'axis',
                 axisPointer: {
                 axisPointer: {
                   type: 'shadow'
                   type: 'shadow'
-                },              
+                }
               },
               },
               grid: {
               grid: {
                 left: '0',
                 left: '0',
                 right: '0',
                 right: '0',
                 bottom: '1px',
                 bottom: '1px',
-                top:'0',
+                top: '0',
                 containLabel: true
                 containLabel: true
               },
               },
               xAxis: {
               xAxis: {
@@ -106,7 +106,7 @@ export default {
                 axisLabel: {
                 axisLabel: {
                     // inside: true,
                     // inside: true,
                     textStyle: {
                     textStyle: {
-                        color:'#fafafa'
+                        color: '#fafafa'
                     }
                     }
                 },
                 },
                 axisLine: {
                 axisLine: {
@@ -114,7 +114,7 @@ export default {
                     lineStyle: {
                     lineStyle: {
                       width: 1,
                       width: 1,
                       color: 'rgba(185, 193, 173, 0.63)'
                       color: 'rgba(185, 193, 173, 0.63)'
-                    }                  
+                    }
                 },
                 },
                 splitLine: {
                 splitLine: {
                     show: true,
                     show: true,
@@ -131,7 +131,7 @@ export default {
                 axisLabel: {
                 axisLabel: {
                   inside: true,
                   inside: true,
                   textStyle: {
                   textStyle: {
-                      color:'transparent'
+                      color: 'transparent'
                   }
                   }
                 },
                 },
                 axisLine: {
                 axisLine: {
@@ -139,7 +139,7 @@ export default {
                     lineStyle: {
                     lineStyle: {
                       width: 1,
                       width: 1,
                       color: 'rgba(185, 193, 173, 0.63)'
                       color: 'rgba(185, 193, 173, 0.63)'
-                    }                  
+                    }
                 },
                 },
                 splitLine: {
                 splitLine: {
                     show: true,
                     show: true,
@@ -147,7 +147,7 @@ export default {
                       width: 1,
                       width: 1,
                       color: 'rgba(185, 193, 173, 0.63)'
                       color: 'rgba(185, 193, 173, 0.63)'
                     }
                     }
-                },
+                }
               },
               },
               series: series
               series: series
             })
             })

+ 6 - 6
TEAMModelOS/ClientApp/src/config/oidc.js

@@ -1,13 +1,13 @@
-export const oidcSettings = {
-    authority: 'http://localhost:5000',//.well-known/openid-configuration
+export const oidcSettings = {
+    authority: 'http://localhost:5000', // .well-known/openid-configuration
     clientId: 'codeclient', // spaclient
     clientId: 'codeclient', // spaclient
     redirectUri: 'http://localhost:5001/oidc-callback',
     redirectUri: 'http://localhost:5001/oidc-callback',
-    responseType: 'code', //id_token token
+    responseType: 'code', // id_token token
     scope: 'openid profile api1',
     scope: 'openid profile api1',
     silentRedirectUri: 'http://localhost:5001/silent-renew-oidc.html',
     silentRedirectUri: 'http://localhost:5001/silent-renew-oidc.html',
     automaticSilentRenew: true, // If true oidc-client will try to renew your token when it is about to expire
     automaticSilentRenew: true, // If true oidc-client will try to renew your token when it is about to expire
-    accessTokenExpiringNotificationTime:10 , //令牌到期幾秒引發通知
-    postLogoutRedirectUri: "http://localhost:5001/", 
+    accessTokenExpiringNotificationTime: 10, // 令牌到期幾秒引發通知
+    postLogoutRedirectUri: 'http://localhost:5001/',
     filterProtocolClaims: true,
     filterProtocolClaims: true,
     loadUserInfo: true
     loadUserInfo: true
-}
+}

+ 43 - 45
TEAMModelOS/ClientApp/src/filters/http.js

@@ -1,62 +1,60 @@
-import axios from 'axios';
-import { Message } from 'view-design';
+import axios from 'axios'
+import { Message } from 'view-design'
 import router from '@/router/index'
 import router from '@/router/index'
-axios.defaults.timeout = 10000; //设置超时时长
-axios.defaults.baseURL ='';
+axios.defaults.timeout = 10000 // 设置超时时长
+axios.defaults.baseURL = ''
 
 
-//Message.error('数据访问错误!');
+// Message.error('数据访问错误!');
 
 
-//http request 拦截器
+// http request 拦截器
 axios.interceptors.request.use(
 axios.interceptors.request.use(
   config => {
   config => {
     // const token = getCookie('名称');
     // const token = getCookie('名称');
-    config.data = JSON.stringify(config.data);
+    config.data = JSON.stringify(config.data)
 
 
     if (localStorage.getItem('token')) {
     if (localStorage.getItem('token')) {
       config.headers = {
       config.headers = {
         'Content-Type': 'application/json',
         'Content-Type': 'application/json',
-        'Authorization': "Bearer " + localStorage.getItem('token'),
+        'Authorization': 'Bearer ' + localStorage.getItem('token'),
         'lang': localStorage.getItem('local')
         'lang': localStorage.getItem('local')
       }
       }
     } else {
     } else {
       config.headers = {
       config.headers = {
         'Content-Type': 'application/json',
         'Content-Type': 'application/json',
-        'Authorization': ""
+        'Authorization': ''
       }
       }
     }
     }
-    return config;
+    return config
   },
   },
   error => {
   error => {
-    return Promise.reject(err);
+      return Promise.reject(error)
   }
   }
-);
-
+)
 
 
-//http response 拦截器
+// http response 拦截器
 axios.interceptors.response.use(
 axios.interceptors.response.use(
   response => {
   response => {
-    if (response.data.errCode == 2) {
+    if (response.data.errCode === 2) {
       router.push({
       router.push({
-        path: "/login",
-        querry: { redirect: router.currentRoute.fullPath }//从哪个页面跳转
+        path: '/login',
+        querry: { redirect: router.currentRoute.fullPath }// 从哪个页面跳转
       })
       })
     }
     }
-    return response;
+    return response
   },
   },
   error => {
   error => {
-    if (401 === error.response.status) {
-      localStorage.clear();
-      window.location.href = window.location.origin + '/selectModule';
-      //alert("登录状态已过期!请重新登录!");
-    } else if (500 === error.response.status) {
-      //alert("服务器错误!");
+    if (error.response.status === 401) {
+      localStorage.clear()
+      window.location.href = window.location.origin + '/selectModule'
+      // alert("登录状态已过期!请重新登录!");
+    } else if (error.response.status === 500) {
+      // alert("服务器错误!");
     } else {
     } else {
-      return Promise.reject(error);
+      return Promise.reject(error)
     }
     }
   }
   }
 )
 )
 
 
-
 /**
 /**
  * 封装get方法
  * 封装get方法
  * @param url
  * @param url
@@ -65,19 +63,19 @@ axios.interceptors.response.use(
  */
  */
 
 
 export function fetch(url, params) {
 export function fetch(url, params) {
-  let data = {};
-  data.method = url;
-  data.params = params;
-  data.lang = localStorage.getItem('local');
-  return new Promise((resolve,reject) => {
+  let data = {}
+  data.method = url
+  data.params = params
+  data.lang = localStorage.getItem('local')
+  return new Promise((resolve, reject) => {
     axios.get(url, data)
     axios.get(url, data)
       .then(response => {
       .then(response => {
-        resolve(response.data);
+        resolve(response.data)
       //  this.$Message.success('数据访问成功!');
       //  this.$Message.success('数据访问成功!');
       })
       })
       .catch(err => {
       .catch(err => {
-        reject(err);
-        Message.error('数据访问错误!');
+        reject(err)
+        Message.error('数据访问错误!')
       })
       })
   })
   })
 }
 }
@@ -90,18 +88,18 @@ export function fetch(url, params) {
  */
  */
 
 
 export function post(url, params) {
 export function post(url, params) {
-  let data = {};
-  data.method = url;
-  data.params = params;
-  data.lang = localStorage.getItem('local');
-  return new Promise((resolve,reject) => {
-    axios.post(url,data)
+  let data = {}
+  data.method = url
+  data.params = params
+  data.lang = localStorage.getItem('local')
+  return new Promise((resolve, reject) => {
+    axios.post(url, data)
       .then(response => {
       .then(response => {
-        resolve(response.data);
-        //this.$Message.success('数据访问成功!');
-      },err => {
-        reject(err);
-        //this.$Message.error('数据访问错误!');
+        resolve(response.data)
+        // this.$Message.success('数据访问成功!');
+      }, err => {
+        reject(err)
+        // this.$Message.error('数据访问错误!');
       })
       })
   })
   })
 }
 }

+ 1 - 1
TEAMModelOS/ClientApp/src/icons.js

@@ -15,4 +15,4 @@ library.add(
 
 
 export {
 export {
   FontAwesomeIcon
   FontAwesomeIcon
-} 
+}

+ 6 - 6
TEAMModelOS/ClientApp/src/locale/index.js

@@ -4,9 +4,9 @@ import customZhCn from './lang/zh-CN'
 import customZhTw from './lang/zh-TW'
 import customZhTw from './lang/zh-TW'
 import customEnUs from './lang/en-US'
 import customEnUs from './lang/en-US'
 
 
-import zhLocale from "view-design/src/locale/lang/zh-CN";
-import enLocale from "view-design/src/locale/lang/en-US";
-import twLocale from "view-design/src/locale/lang/zh-TW";
+import zhLocale from 'view-design/src/locale/lang/zh-CN'
+import enLocale from 'view-design/src/locale/lang/en-US'
+import twLocale from 'view-design/src/locale/lang/zh-TW'
 
 
 Vue.use(VueI18n)
 Vue.use(VueI18n)
 
 
@@ -15,15 +15,15 @@ const navLang = navigator.language
 const localLang = (navLang === 'zh-TW' || navLang === 'zh-CN' || navLang === 'en-US') ? navLang : false
 const localLang = (navLang === 'zh-TW' || navLang === 'zh-CN' || navLang === 'en-US') ? navLang : false
 let lang = localLang || 'en-US'
 let lang = localLang || 'en-US'
 
 
-console.log(lang);
-localStorage.setItem('local', lang);
+console.log(lang)
+localStorage.setItem('local', lang)
 Vue.config.lang = lang
 Vue.config.lang = lang
 
 
 Vue.locale = () => { }
 Vue.locale = () => { }
 const messages = {
 const messages = {
   'zh-CN': Object.assign(customZhCn, zhLocale),
   'zh-CN': Object.assign(customZhCn, zhLocale),
   'zh-TW': Object.assign(customZhTw, twLocale),
   'zh-TW': Object.assign(customZhTw, twLocale),
-  'en-US': Object.assign(customEnUs, enLocale),
+  'en-US': Object.assign(customEnUs, enLocale)
 }
 }
 const i18n = new VueI18n({
 const i18n = new VueI18n({
   locale: lang,
   locale: lang,

+ 1 - 2
TEAMModelOS/ClientApp/src/locale/lang/en-US/classMgmt.js

@@ -70,6 +70,5 @@ export default {
   text2: 'S/N Expiration',
   text2: 'S/N Expiration',
   text3: 'Total Courses (D)',
   text3: 'Total Courses (D)',
   text4: 'Permanent Use',
   text4: 'Permanent Use',
-  text5: '(To be named)',
+  text5: '(To be named)'
   }
   }
-  

+ 2 - 2
TEAMModelOS/ClientApp/src/locale/lang/en-US/common.js

@@ -1,4 +1,4 @@
 export default {
 export default {
   cancel: 'Cancel',
   cancel: 'Cancel',
-  ok: 'OK',
-}
+  ok: 'OK'
+}

+ 18 - 18
TEAMModelOS/ClientApp/src/locale/lang/en-US/index.js

@@ -27,27 +27,27 @@ export default {
     school: 'School'
     school: 'School'
   },
   },
   index: {
   index: {
-    login: "Sign In",
-    register: "Sign Up",
-    chooseRole: "Choose Role",
-    exit: "Sign Out",
-    authSchool: "Authorized School",
-    currentRole: "Current Role",
-    loginSuc:"Login Success"
+    login: 'Sign In',
+    register: 'Sign Up',
+    chooseRole: 'Choose Role',
+    exit: 'Sign Out',
+    authSchool: 'Authorized School',
+    currentRole: 'Current Role',
+    loginSuc: 'Login Success'
   },
   },
-  //StudentAnalysis
+  // StudentAnalysis
   saindex: {
   saindex: {
-    index: "home",
-    grade: "Grade Analysis",
-    droppoint: "Droppoint Analysis",
-    examination: "Analysis of test paper",
-    knowledge:"Knowledge",
+    index: 'home',
+    grade: 'Grade Analysis',
+    droppoint: 'Droppoint Analysis',
+    examination: 'Analysis of test paper',
+    knowledge: 'Knowledge'
   },
   },
   sasidebar: {
   sasidebar: {
-    class: "Choose focus grade",
-    classmsg:"Please select grade",
-    term: "Choose to focus on the school year",
-    term: "Please select your academic year",
-    compare: "Choose data comparison"
+    class: 'Choose focus grade',
+    classmsg: 'Please select grade',
+    term: 'Choose to focus on the school year',
+    term: 'Please select your academic year',
+    compare: 'Choose data comparison'
   }
   }
 }
 }

+ 2 - 2
TEAMModelOS/ClientApp/src/locale/lang/en-US/menu.js

@@ -3,5 +3,5 @@ export default {
   menu1: 'Smarter City',
   menu1: 'Smarter City',
   menu2: 'Teaching Source',
   menu2: 'Teaching Source',
   menu3: 'Leaerning Activity',
   menu3: 'Leaerning Activity',
-  menu4: 'Inter-Class Service',
-}
+  menu4: 'Inter-Class Service'
+}

+ 75 - 75
TEAMModelOS/ClientApp/src/locale/lang/en-US/schoolBaseInfo.js

@@ -1,79 +1,79 @@
 export default {
 export default {
-  //Index.vue
-  createPeriod: "establishing a school level system",
-  classroomSetting: "classroom setting",
+  // Index.vue
+  createPeriod: 'establishing a school level system',
+  classroomSetting: 'classroom setting',
 
 
-  //SystemSetting.vue
-  schoolNameLabel: "school name setting:",
-  periodSettingLabel: "school system establishment and setting",
-  order: "sort by creation time",
-  semesterSetting: "semester (quarter) setting",
-  gradeSetting: "grade setting",
-  subjectSetting: "subject setting",
-  semesterNum: "semesters:",
-  gradeNum: "grade number:",
-  periodNum: "number of subjects:",
-  startDate: "from",
-  semesterDuration: "semester duration:",
-  dayUnit: "day",
-  saveInfo: "save changes",
-  noSemester: "semester not set",
-  editLabel: "Edit",
-  monthHolder: "month",
-  dayHolder: "day",
-  delete: "delete",
-  ssTips1: "click to set the name",
-  ssTips2: "at least one item needs to be reserved! ",
-  ssTips3: "saving / modifying information succeeded! ",
-  ssTips4: "the same name already exists, please reset it! ",
-  ssTips5: "the number of subjects has reached the maximum! ",
-  ssTips6: "the number of grades has reached the upper limit! ",
-  ssTips7: "the maximum number of semesters has been reached! ",
-  ssTips8: "you have not saved the modified information. If you leave, the data will be lost!" ,
-  presetPeriod: "preset period",
-  persetSemester: "Default semester",
-  persetGrade: "default grade",
-  presetGrade1: "first year",
-  presetGrade2: "second year",
-  presetGrade3: "third grade",
-  presetSubject: "preset subject",
-  presetSubject1: "chinese",
-  presetSubject2: "Mathematics",
-  presetSubject3: "English",
+  // SystemSetting.vue
+  schoolNameLabel: 'school name setting:',
+  periodSettingLabel: 'school system establishment and setting',
+  order: 'sort by creation time',
+  semesterSetting: 'semester (quarter) setting',
+  gradeSetting: 'grade setting',
+  subjectSetting: 'subject setting',
+  semesterNum: 'semesters:',
+  gradeNum: 'grade number:',
+  periodNum: 'number of subjects:',
+  startDate: 'from',
+  semesterDuration: 'semester duration:',
+  dayUnit: 'day',
+  saveInfo: 'save changes',
+  noSemester: 'semester not set',
+  editLabel: 'Edit',
+  monthHolder: 'month',
+  dayHolder: 'day',
+  delete: 'delete',
+  ssTips1: 'click to set the name',
+  ssTips2: 'at least one item needs to be reserved! ',
+  ssTips3: 'saving / modifying information succeeded! ',
+  ssTips4: 'the same name already exists, please reset it! ',
+  ssTips5: 'the number of subjects has reached the maximum! ',
+  ssTips6: 'the number of grades has reached the upper limit! ',
+  ssTips7: 'the maximum number of semesters has been reached! ',
+  ssTips8: 'you have not saved the modified information. If you leave, the data will be lost!',
+  presetPeriod: 'preset period',
+  persetSemester: 'Default semester',
+  persetGrade: 'default grade',
+  presetGrade1: 'first year',
+  presetGrade2: 'second year',
+  presetGrade3: 'third grade',
+  presetSubject: 'preset subject',
+  presetSubject1: 'chinese',
+  presetSubject2: 'Mathematics',
+  presetSubject3: 'English',
 
 
-  //ClassroomSetting.vue
-  classroomList: "classroom list",
-  listOrder: "sort by creation time",
-  classroomAttr: "classroom properties",
-  classroomCode: "classroom code",
-  classroomName: "classroom name",
-  headmaster: "head teacher:",
-  setPeriod: "select classroom segment",
-  setGrade: "set classroom grade",
-  setHiteachCode: "Hiteach software serial number",
-  addClassroom: "new classroom",
-  schoolPlan: "campus plan and classroom location setting",
-  uploadPlan: "upload plan",
-  hiteachList: "Hiteach sequence number list",
-  codeSearchHolder: "please enter keyword search",
-  classroomCodeHolder: "please enter the classroom code...",
-  classroomNameHolder: "please enter the classroom name...",
-  headmasterHolder: "please specify the teacher name...",
-  hiTeachHolder: "please select available serial numbers in the list on the right...",
-  noHiTeachTips: "no sequence number available",
-  suportCanvas: "canvas is not supported in the current browser. Please change your browser and try again. ",
-  addCodeTitle: "enter Hiteach serial number",
-  codeHolder: "please enter Hiteach serial number...",
-  moreAuth: "massive authorization",
-  yes: "yes",
-  no: "no",
-  hiTeach: "HiTeach serial number",
-  csTips1: "magnified to the maximum multiple! ",
-  csTips2: "reduced to the minimum multiple! ",
-  csTips3: "saved successfully! ",
-  csTips4: "at least one item needs to be reserved! ",
-  csTips5: "upload succeeded! ",
-  csTips6: "this serial number has been bound to the classroom! ",
-  presetClassroomName: "preset classroom",
-  presetHeadmaster: "no head teacher specified",
+  // ClassroomSetting.vue
+  classroomList: 'classroom list',
+  listOrder: 'sort by creation time',
+  classroomAttr: 'classroom properties',
+  classroomCode: 'classroom code',
+  classroomName: 'classroom name',
+  headmaster: 'head teacher:',
+  setPeriod: 'select classroom segment',
+  setGrade: 'set classroom grade',
+  setHiteachCode: 'Hiteach software serial number',
+  addClassroom: 'new classroom',
+  schoolPlan: 'campus plan and classroom location setting',
+  uploadPlan: 'upload plan',
+  hiteachList: 'Hiteach sequence number list',
+  codeSearchHolder: 'please enter keyword search',
+  classroomCodeHolder: 'please enter the classroom code...',
+  classroomNameHolder: 'please enter the classroom name...',
+  headmasterHolder: 'please specify the teacher name...',
+  hiTeachHolder: 'please select available serial numbers in the list on the right...',
+  noHiTeachTips: 'no sequence number available',
+  suportCanvas: 'canvas is not supported in the current browser. Please change your browser and try again. ',
+  addCodeTitle: 'enter Hiteach serial number',
+  codeHolder: 'please enter Hiteach serial number...',
+  moreAuth: 'massive authorization',
+  yes: 'yes',
+  no: 'no',
+  hiTeach: 'HiTeach serial number',
+  csTips1: 'magnified to the maximum multiple! ',
+  csTips2: 'reduced to the minimum multiple! ',
+  csTips3: 'saved successfully! ',
+  csTips4: 'at least one item needs to be reserved! ',
+  csTips5: 'upload succeeded! ',
+  csTips6: 'this serial number has been bound to the classroom! ',
+  presetClassroomName: 'preset classroom',
+  presetHeadmaster: 'no head teacher specified'
 }
 }

+ 1 - 2
TEAMModelOS/ClientApp/src/locale/lang/en-US/schoolMgmt.js

@@ -82,6 +82,5 @@ export default {
   text48: '5th Grade',
   text48: '5th Grade',
   text49: '6th Grade',
   text49: '6th Grade',
   text50: 'Total',
   text50: 'Total',
-  text51: 'Completed',
+  text51: 'Completed'
 }
 }
-  

+ 74 - 74
TEAMModelOS/ClientApp/src/locale/lang/en-US/stuAccount.js

@@ -1,80 +1,80 @@
 export default {
 export default {
-  //table title
-  seatNo: "Seat number",
-  account: "Account information",
-  stuName: "Name",
-  classroomCode: "Classroom code",
-  classroomName: "Classroom name",
-  period: "School section (Campus)",
-  grade: "Grade",
-  authStatus: "Authorization status",
-  password: "Password",
-  abnormalStatus: "Abnormal state",
+  // table title
+  seatNo: 'Seat number',
+  account: 'Account information',
+  stuName: 'Name',
+  classroomCode: 'Classroom code',
+  classroomName: 'Classroom name',
+  period: 'School section (Campus)',
+  grade: 'Grade',
+  authStatus: 'Authorization status',
+  password: 'Password',
+  abnormalStatus: 'Abnormal state',
 
 
-  //Index.vue
-  menuAuth: "Authorization management",
-  importStu: "Import list",
-  addStu: "New student",
-  editInfo: "Editorial information",
-  delStu: "Delete students",
-  searchHolder: "please enter keywords or account information...",
-  periodHolder: "school system",
-  gradeHolder: "grade",
-  classroomHolder: "classroom",
-  tips1: "Please select the students to be modified!",
-  tips2Title: "Delete student",
-  tips2Content1: "OK to delete",
-  tips2Content2: "account information!",
-  tips3: "please select the students to be deleted!",
+  // Index.vue
+  menuAuth: 'Authorization management',
+  importStu: 'Import list',
+  addStu: 'New student',
+  editInfo: 'Editorial information',
+  delStu: 'Delete students',
+  searchHolder: 'please enter keywords or account information...',
+  periodHolder: 'school system',
+  gradeHolder: 'grade',
+  classroomHolder: 'classroom',
+  tips1: 'Please select the students to be modified!',
+  tips2Title: 'Delete student',
+  tips2Content1: 'OK to delete',
+  tips2Content2: 'account information!',
+  tips3: 'please select the students to be deleted!',
 
 
-  //AddStudent.vue
-  accountInfo: "account information",
-  accountHolder: "please enter account information",
-  passwordInfo: "password",
-  passwordHolder: "please set account password",
-  isSame: "same as account",
-  stuName1: "student name",
-  stuNameHolder: "please enter the student name",
-  classroomInfo: "classroom information",
-  classroomInfoHolder: "please select a classroom",
-  newClassroom: "building a new classroom",
-  periodInfo: "school system information",
-  gradeInfo: "class level",
-  submitAccount: "create account",
-  submitActive: "save",
-  chooseInfo: "select item",
-  chooseNum: "total:",
-  numUnit: "bar",
+  // AddStudent.vue
+  accountInfo: 'account information',
+  accountHolder: 'please enter account information',
+  passwordInfo: 'password',
+  passwordHolder: 'please set account password',
+  isSame: 'same as account',
+  stuName1: 'student name',
+  stuNameHolder: 'please enter the student name',
+  classroomInfo: 'classroom information',
+  classroomInfoHolder: 'please select a classroom',
+  newClassroom: 'building a new classroom',
+  periodInfo: 'school system information',
+  gradeInfo: 'class level',
+  submitAccount: 'create account',
+  submitActive: 'save',
+  chooseInfo: 'select item',
+  chooseNum: 'total:',
+  numUnit: 'bar',
 
 
-  //ImportStudent.vue
-  importTitle: "Import student list",
-  importTips1: "drag the student account and form file you want to import here",
-  importTips2: "or",
-  importTips3: "click the file icon to open the file browse and upload",
-  importTips4: "open file deleted! ",
-  importTips5: "bad file type",
-  importTips6: "file:",
-  importTips7: "is not an excel file. Please select an excel file with a suffix of. Xlsx or. XLS. ",
-  importTips8: "file read error",
-  Importtips9: "missing",
-  importTips10: "information, please complete and import again! ",
-  importTips11: "file read succeeded! ",
-  importTips12: "Please check whether the table data is correct!",
-  importInfo1: "total singular:",
-  importInfo2: "duplicate account number:",
-  importInfo3: "duplicate seat number:",
-  importInfo4: "no corresponding Classroom:",
-  importInfo5: "an account already exists in the system:",
-  importInfo6: "importable:",
-  passwordTips: "the default password is the same as the account for the item where the password is not found",
-  submitList: "set up account",
+  // ImportStudent.vue
+  importTitle: 'Import student list',
+  importTips1: 'drag the student account and form file you want to import here',
+  importTips2: 'or',
+  importTips3: 'click the file icon to open the file browse and upload',
+  importTips4: 'open file deleted! ',
+  importTips5: 'bad file type',
+  importTips6: 'file:',
+  importTips7: 'is not an excel file. Please select an excel file with a suffix of. Xlsx or. XLS. ',
+  importTips8: 'file read error',
+  Importtips9: 'missing',
+  importTips10: 'information, please complete and import again! ',
+  importTips11: 'file read succeeded! ',
+  importTips12: 'Please check whether the table data is correct!',
+  importInfo1: 'total singular:',
+  importInfo2: 'duplicate account number:',
+  importInfo3: 'duplicate seat number:',
+  importInfo4: 'no corresponding Classroom:',
+  importInfo5: 'an account already exists in the system:',
+  importInfo6: 'importable:',
+  passwordTips: 'the default password is the same as the account for the item where the password is not found',
+  submitList: 'set up account',
 
 
-  //Authorization.vue
-  authTitle: "service authorization management",
-  authTitle1: "aclasone smart learning partner service authorization",
-  authDiscraption: "give the student team model ID with the authorization of the service permission to use the smart learning partner app. ",
-  authCount: "total school authorizations",
-  alreadyUse: "number of licenses taken today",
-  mayUse: "number of authorizations available",
-  authNum: "authorized use status of each school system",
+  // Authorization.vue
+  authTitle: 'service authorization management',
+  authTitle1: 'aclasone smart learning partner service authorization',
+  authDiscraption: 'give the student team model ID with the authorization of the service permission to use the smart learning partner app. ',
+  authCount: 'total school authorizations',
+  alreadyUse: 'number of licenses taken today',
+  mayUse: 'number of authorizations available',
+  authNum: 'authorized use status of each school system'
 }
 }

+ 65 - 65
TEAMModelOS/ClientApp/src/locale/lang/en-US/talMgmt.js

@@ -1,66 +1,66 @@
 export default {
 export default {
-    text1:  'Total  Course(s)',
-    text2:  'Teacher(s)',
-    text3:  'Premium  Collection(s)',
-    text4:  'Advanced  Collection(s)',
-    text5:  'Classic  Collection(s)',
-    text6:  'Today',
-    text7:  'Week',
-    text8:  'Month',
-    text9:  'Semester',
-    text10:  'Grade',
-    text11:  'Subject',
-    text12:  '1st  Grade',
-    text13:  '2nd  Grade',
-    text14:  '3rd  Grade',
-    text15:  '4th  Grade',
-    text16:  '5th  Grade',
-    text17:  'Chinese',
-    text18:  'Math',
-    text19:  'English',
-    text20:  'Science',
-    text21:  'Art',
-    text22:  'Other',
-    text23:  'Interactive  Technology  (Grade)',
-    text24:  'Interactive  Technology  (Subject)',
-    text25:  'Music',
-    text26:  'Testing',
-    text27:  'Chinese',
-    text28:  'English',
-    text29:  'Art',
-    text30:  'Scinece',
-    text31:  'Class  Meeting',
-    text32:  'Math',
-    text33:  'Course(s)',
-    text34:  'Other',
-    text35:  'TII / PAI (Today)',
-    text36:  'TII / PAI (Week)',
-    text37:  'TII / PAI (SEM.)',
-    text38:  'TII / PAI (All)',
-    text39:  'Scoreboard',
-    text40:  'Pick-out',
-    text41:  'Timer',
-    text42:  'Buzz-in',
-    text43:  'Show  Chart',
-    text44:  'Pop  Quiz',
-    text45:  'Work  Comparison',
-    text46:  'Push',
-    text47:  'Flip  Cards',
-    text48:  'Re-Check  Quiz',
-    text49:  'Teaching Tech Distribution',
-    text50:  'Total',
-    text51:  'English',
-    text52:  'Chinses',
-    text53:  'English',
-    text54:  'Math',
-    text55:  'Science',
-    text56:  'GE',
-    text57:  'Teaching  Appilication  (Grade)',
-    text58:  'Teaching  Appilication  (Subject)',
-    text59:  'TII = Technological Interaction Index',
-    text60:  'PAI = Pedagogical Application Index',
-    text61:  'num. ',
-    text62:  ' unit(s) in ',
-    text63:  ' region from ',
-    text64:  ' Grade',
-}
+    text1: 'Total  Course(s)',
+    text2: 'Teacher(s)',
+    text3: 'Premium  Collection(s)',
+    text4: 'Advanced  Collection(s)',
+    text5: 'Classic  Collection(s)',
+    text6: 'Today',
+    text7: 'Week',
+    text8: 'Month',
+    text9: 'Semester',
+    text10: 'Grade',
+    text11: 'Subject',
+    text12: '1st  Grade',
+    text13: '2nd  Grade',
+    text14: '3rd  Grade',
+    text15: '4th  Grade',
+    text16: '5th  Grade',
+    text17: 'Chinese',
+    text18: 'Math',
+    text19: 'English',
+    text20: 'Science',
+    text21: 'Art',
+    text22: 'Other',
+    text23: 'Interactive  Technology  (Grade)',
+    text24: 'Interactive  Technology  (Subject)',
+    text25: 'Music',
+    text26: 'Testing',
+    text27: 'Chinese',
+    text28: 'English',
+    text29: 'Art',
+    text30: 'Scinece',
+    text31: 'Class  Meeting',
+    text32: 'Math',
+    text33: 'Course(s)',
+    text34: 'Other',
+    text35: 'TII / PAI (Today)',
+    text36: 'TII / PAI (Week)',
+    text37: 'TII / PAI (SEM.)',
+    text38: 'TII / PAI (All)',
+    text39: 'Scoreboard',
+    text40: 'Pick-out',
+    text41: 'Timer',
+    text42: 'Buzz-in',
+    text43: 'Show  Chart',
+    text44: 'Pop  Quiz',
+    text45: 'Work  Comparison',
+    text46: 'Push',
+    text47: 'Flip  Cards',
+    text48: 'Re-Check  Quiz',
+    text49: 'Teaching Tech Distribution',
+    text50: 'Total',
+    text51: 'English',
+    text52: 'Chinses',
+    text53: 'English',
+    text54: 'Math',
+    text55: 'Science',
+    text56: 'GE',
+    text57: 'Teaching  Appilication  (Grade)',
+    text58: 'Teaching  Appilication  (Subject)',
+    text59: 'TII = Technological Interaction Index',
+    text60: 'PAI = Pedagogical Application Index',
+    text61: 'num. ',
+    text62: ' unit(s) in ',
+    text63: ' region from ',
+    text64: ' Grade'
+}

+ 189 - 190
TEAMModelOS/ClientApp/src/locale/lang/en-US/totalAnalysis.js

@@ -1,193 +1,192 @@
 export default {
 export default {
-  //EvaluationList.vue
-  text1: "Summary of previous examinations",
-  text2: "times",
-  text3: "More screening",
-  text4: "Enter test name...",
-  text5: "Current filter criteria",
-  text6: "Current quantity",
-  text7: "Participants",
-  text8: "Date",
-  text9: "None",
-  condition1: "Period",
-  condition2: "Grade",
-  condition3: "Term",
-  condition4: "Type",
-  condition5: "Range",
-  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: "View More ",
-
-  //index.vue
-  module1:"Score Analysis",
-  module2:"Point Analysis",
-  module3:"Item Analysis",
-  module4: "Knowledge Point Mastery",
-  exportTable: "Export Table",
-  currentSubject:"Current Subject",
-
-  //AchievementAnalysis.vue
-  ach_title1: "Pass Rate Statistics",
-  ach_title2: "Equipartition Analysis",
-  ach_title3: "Entry Number Statistics",
-  ach_title4: "Entry State Statistics",
-  ach_title5: "Entry Rate Statistics",
-  ach_title6: "Early Warning Statistics",
-  ach_title7: "Ranking Statistics",
-  ach_title8: "Equipartition Analysis",
-  ach_text1: "Pass Rate",
-  ach_text2: "Grade",
-  ach_text3: "District",
-  ach_text4: "Class Average",
-  ach_text5: "School Average",
-  ach_text6: "District Average",
-  ach_text7: "Total Number",
-  ach_text8: "Entry Number",
-  ach_text9: "Entry Rate",
-  ach_text10: "Currently Class",
-  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",
-
-  //QuestionList.vue
-  ql_text1: "Total Score",
-  ql_text2: "Single Question",
-  ql_text3: "Multiple Question",
-  ql_text4: "Judgement Question",
-  ql_text5: "Complete Question",
-  ql_text6: "Subjective Question",
-  ql_text7: "Compose Question",
-  ql_text8: " points",
-  ql_text9: "View Answer and Explain",
-  ql_text10: "View Data Analysis",
-  ql_text11: "Answer",
-  ql_text12: "Explain",
-  ql_text13: "      Return",
-
+  // EvaluationList.vue
+  text1: 'Summary of previous examinations',
+  text2: 'times',
+  text3: 'More screening',
+  text4: 'Enter test name...',
+  text5: 'Current filter criteria',
+  text6: 'Current quantity',
+  text7: 'Participants',
+  text8: 'Date',
+  text9: 'None',
+  condition1: 'Period',
+  condition2: 'Grade',
+  condition3: 'Term',
+  condition4: 'Type',
+  condition5: 'Range',
+  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: 'View More ',
+
+  // index.vue
+  module1: 'Score Analysis',
+  module2: 'Point Analysis',
+  module3: 'Item Analysis',
+  module4: 'Knowledge Point Mastery',
+  exportTable: 'Export Table',
+  currentSubject: 'Current Subject',
+
+  // AchievementAnalysis.vue
+  ach_title1: 'Pass Rate Statistics',
+  ach_title2: 'Equipartition Analysis',
+  ach_title3: 'Entry Number Statistics',
+  ach_title4: 'Entry State Statistics',
+  ach_title5: 'Entry Rate Statistics',
+  ach_title6: 'Early Warning Statistics',
+  ach_title7: 'Ranking Statistics',
+  ach_title8: 'Equipartition Analysis',
+  ach_text1: 'Pass Rate',
+  ach_text2: 'Grade',
+  ach_text3: 'District',
+  ach_text4: 'Class Average',
+  ach_text5: 'School Average',
+  ach_text6: 'District Average',
+  ach_text7: 'Total Number',
+  ach_text8: 'Entry Number',
+  ach_text9: 'Entry Rate',
+  ach_text10: 'Currently Class',
+  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',
+
+  // QuestionList.vue
+  ql_text1: 'Total Score',
+  ql_text2: 'Single Question',
+  ql_text3: 'Multiple Question',
+  ql_text4: 'Judgement Question',
+  ql_text5: 'Complete Question',
+  ql_text6: 'Subjective Question',
+  ql_text7: 'Compose Question',
+  ql_text8: ' points',
+  ql_text9: 'View Answer and Explain',
+  ql_text10: 'View Data Analysis',
+  ql_text11: 'Answer',
+  ql_text12: 'Explain',
+  ql_text13: '      Return'
 
 
 }
 }

+ 2 - 2
TEAMModelOS/ClientApp/src/locale/lang/en-US/unit.js

@@ -7,5 +7,5 @@ export default {
     text6: 'msg(s)',
     text6: 'msg(s)',
     text7: 'unit(s)',
     text7: 'unit(s)',
     text8: 'm',
     text8: 'm',
-    text9: 'unit',
-  }
+    text9: 'unit'
+  }

+ 3 - 3
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/classMgmt.js

@@ -14,7 +14,7 @@ export default {
     block2Title2: '课堂开课数',
     block2Title2: '课堂开课数',
     block2Title3: '课堂参与人数',
     block2Title3: '课堂参与人数',
     block2Title4: '今日课堂数量变化',
     block2Title4: '今日课堂数量变化',
-    block2Title5: '今日各年级课堂百分比',    
+    block2Title5: '今日各年级课堂百分比',
     block2SubTitle1: '今日数量/ 昨日数量',
     block2SubTitle1: '今日数量/ 昨日数量',
     block2SubTitle2: '前7日平均',
     block2SubTitle2: '前7日平均',
     block2SubTitle3: '前30日平均',
     block2SubTitle3: '前30日平均',
@@ -32,7 +32,7 @@ export default {
     block4Title1: '累计课堂时数',
     block4Title1: '累计课堂时数',
     block4Title2: '苏格拉底议课APP授权状态',
     block4Title2: '苏格拉底议课APP授权状态',
     block4Title3: '课堂操作系统',
     block4Title3: '课堂操作系统',
-    block4SubTitle1: '总计',    
+    block4SubTitle1: '总计',
     block4SubTitle2: '累计',
     block4SubTitle2: '累计',
     block4SubTitle3: '最多课堂使用者排名',
     block4SubTitle3: '最多课堂使用者排名',
     block4SubTitle4: '最长时数使用者',
     block4SubTitle4: '最长时数使用者',
@@ -70,5 +70,5 @@ export default {
     text2: '授权至',
     text2: '授权至',
     text3: '今日总课堂数',
     text3: '今日总课堂数',
     text4: '无使用期限',
     text4: '无使用期限',
-    text5: '(待命名)',
+    text5: '(待命名)'
 }
 }

+ 2 - 2
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/common.js

@@ -1,4 +1,4 @@
 export default {
 export default {
   cancel: '取消',
   cancel: '取消',
-  ok: '确定',
-}
+  ok: '确定'
+}

+ 18 - 18
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/index.js

@@ -27,27 +27,27 @@ export default {
     school: '学校'
     school: '学校'
   },
   },
   index: {
   index: {
-    login: "登录",
-    register:"注册",
-    chooseRole: "选择身份",
-    exit: "退出",
-    authSchool:"授权学校",
-    currentRole: "当前身份",
-    loginSuc:"登陆成功"
+    login: '登录',
+    register: '注册',
+    chooseRole: '选择身份',
+    exit: '退出',
+    authSchool: '授权学校',
+    currentRole: '当前身份',
+    loginSuc: '登陆成功'
   },
   },
-  //学情分析
+  // 学情分析
   saindex: {
   saindex: {
-    index: "首页",
-    grade: "成绩分析",
-    droppoint: "落点分析",
-    examination:"试题分析",
-    knowledge:"知识点掌握",
+    index: '首页',
+    grade: '成绩分析',
+    droppoint: '落点分析',
+    examination: '试题分析',
+    knowledge: '知识点掌握'
   },
   },
   sasidebar: {
   sasidebar: {
-    class: "选择关注年级",
-    classmsg: "请选择年级",
-    term: "选择关注学年期",
-    term: "请选择学年期",
-    compare:"选择数据对比"
+    class: '选择关注年级',
+    classmsg: '请选择年级',
+    term: '选择关注学年期',
+    term: '请选择学年期',
+    compare: '选择数据对比'
   }
   }
 }
 }

+ 2 - 2
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/menu.js

@@ -3,5 +3,5 @@ export default {
   menu1: '智慧城市管理',
   menu1: '智慧城市管理',
   menu2: '教材资源管理',
   menu2: '教材资源管理',
   menu3: '学习活动服务',
   menu3: '学习活动服务',
-  menu4: '班级智慧服务',
-}
+  menu4: '班级智慧服务'
+}

+ 75 - 75
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/schoolBaseInfo.js

@@ -1,80 +1,80 @@
 export default {
 export default {
-  //Index.vue
-  createPeriod: "建立学级制度",
-  classroomSetting: "教室设定",
+  // Index.vue
+  createPeriod: '建立学级制度',
+  classroomSetting: '教室设定',
 
 
-  //SystemSetting.vue
-  schoolNameLabel: "学校名称设定:",
-  periodSettingLabel: "学制建立与设定",
-  order: "依建立时间排序",
-  semesterSetting: "学期(季)设定",
-  gradeSetting: "年级设置",
-  subjectSetting: "学科设置",
-  semesterNum: "学期数:",
-  gradeNum: "年级数:",
-  periodNum: "科目数:",
-  startDate: "开始于",
-  semesterDuration: "学期时长:",
-  dayUnit: "天",
-  saveInfo: "存储变更",
-  noSemester: "没有设置学期",
-  editLabel: "编辑",
-  monthHolder: "月",
-  dayHolder: "日",
-  delete: "删除",
-  ssTips1:"点击设置名称",
-  ssTips2:"至少需要保留一项!",
-  ssTips3:"保存/修改 信息成功!",
-  ssTips4:"已有相同的名字,请重新设置名字!",
-  ssTips5: "学科数已达上限!",
-  ssTips6: "年级数已达上限!",
-  ssTips7: "学期数已达上限!",
-  ssTips8: "您修改信息后还未保存,如果离开数据将会丢失!",
-  presetPeriod: "预设学段",
-  persetSemester: "预设学期",
-  persetGrade: "预设年级",
-  presetGrade1: "一年级",
-  presetGrade2: "二年级",
-  presetGrade3: "三年级",
-  presetSubject:"预设学科",
-  presetSubject1:"语文",
-  presetSubject2:"数学",
-  presetSubject3: "英语",
+  // SystemSetting.vue
+  schoolNameLabel: '学校名称设定:',
+  periodSettingLabel: '学制建立与设定',
+  order: '依建立时间排序',
+  semesterSetting: '学期(季)设定',
+  gradeSetting: '年级设置',
+  subjectSetting: '学科设置',
+  semesterNum: '学期数:',
+  gradeNum: '年级数:',
+  periodNum: '科目数:',
+  startDate: '开始于',
+  semesterDuration: '学期时长:',
+  dayUnit: '天',
+  saveInfo: '存储变更',
+  noSemester: '没有设置学期',
+  editLabel: '编辑',
+  monthHolder: '月',
+  dayHolder: '日',
+  delete: '删除',
+  ssTips1: '点击设置名称',
+  ssTips2: '至少需要保留一项!',
+  ssTips3: '保存/修改 信息成功!',
+  ssTips4: '已有相同的名字,请重新设置名字!',
+  ssTips5: '学科数已达上限!',
+  ssTips6: '年级数已达上限!',
+  ssTips7: '学期数已达上限!',
+  ssTips8: '您修改信息后还未保存,如果离开数据将会丢失!',
+  presetPeriod: '预设学段',
+  persetSemester: '预设学期',
+  persetGrade: '预设年级',
+  presetGrade1: '一年级',
+  presetGrade2: '二年级',
+  presetGrade3: '三年级',
+  presetSubject: '预设学科',
+  presetSubject1: '语文',
+  presetSubject2: '数学',
+  presetSubject3: '英语',
 
 
-  //ClassroomSetting.vue
-  classroomList: "教室列表",
-  listOrder: "依创建时间排序",
-  classroomAttr: "教室属性",
-  classroomCode: "教室编码",
-  classroomName: "教室名称",
-  headmaster: "班主任:",
-  setPeriod: "选择教室学段",
-  setGrade: "设置教室年级",
-  setHiteachCode:"HiTeach软件序号",
-  addClassroom: "新增教室",
-  schoolPlan: "校园平面图与教室位置设定",
-  uploadPlan: "上传平面图",
-  hiteachList: "HiTeach序号列表",
-  codeSearchHolder: "请输入关键字搜索",
-  classroomCodeHolder: "请输入教室编码...",
-  classroomNameHolder: "请输入教室名称...",
-  headmasterHolder: "请指定教师名称...",
-  hiTeachHolder:"请在右侧列表选择可用序号...",
-  noHiTeachTips:"没有可用序号",
-  suportCanvas:"当前浏览器不支持Canvas,请更换浏览器再试试。",
-  addCodeTitle: "录入HiTeach序列号",
-  codeHolder: "请输入HiTeach序号...",
-  moreAuth: "大量授权",
-  yes: "是",
-  no: "否",
-  hiTeach: "HiTeach序列号",
-  csTips1:"已放大至最大倍数!",
-  csTips2:"已缩小至最小倍数!",
-  csTips3:"保存成功!",
-  csTips4:"至少需要保留一项!",
-  csTips5:"上传成功!",
-  csTips6:"此序号已绑定到教室!",
-  presetClassroomName: "预设教室",
-  presetHeadmaster:"未指定班主任",
+  // ClassroomSetting.vue
+  classroomList: '教室列表',
+  listOrder: '依创建时间排序',
+  classroomAttr: '教室属性',
+  classroomCode: '教室编码',
+  classroomName: '教室名称',
+  headmaster: '班主任:',
+  setPeriod: '选择教室学段',
+  setGrade: '设置教室年级',
+  setHiteachCode: 'HiTeach软件序号',
+  addClassroom: '新增教室',
+  schoolPlan: '校园平面图与教室位置设定',
+  uploadPlan: '上传平面图',
+  hiteachList: 'HiTeach序号列表',
+  codeSearchHolder: '请输入关键字搜索',
+  classroomCodeHolder: '请输入教室编码...',
+  classroomNameHolder: '请输入教室名称...',
+  headmasterHolder: '请指定教师名称...',
+  hiTeachHolder: '请在右侧列表选择可用序号...',
+  noHiTeachTips: '没有可用序号',
+  suportCanvas: '当前浏览器不支持Canvas,请更换浏览器再试试。',
+  addCodeTitle: '录入HiTeach序列号',
+  codeHolder: '请输入HiTeach序号...',
+  moreAuth: '大量授权',
+  yes: '是',
+  no: '否',
+  hiTeach: 'HiTeach序列号',
+  csTips1: '已放大至最大倍数!',
+  csTips2: '已缩小至最小倍数!',
+  csTips3: '保存成功!',
+  csTips4: '至少需要保留一项!',
+  csTips5: '上传成功!',
+  csTips6: '此序号已绑定到教室!',
+  presetClassroomName: '预设教室',
+  presetHeadmaster: '未指定班主任'
 
 
 }
 }

+ 13 - 13
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/schoolMgmt.js

@@ -25,13 +25,13 @@ export default {
   block4Title4: '线上测验完成率',
   block4Title4: '线上测验完成率',
   block4Title5: '作业作品完成率',
   block4Title5: '作业作品完成率',
   block4Title6: '课堂&学习历程&资源产出逐日变化',
   block4Title6: '课堂&学习历程&资源产出逐日变化',
-  block4SubTitle1: '翻转课堂数量',    
-  block4SubTitle2: '线上测验数量',    
-  block4SubTitle3: '作业作品数量',    
-  block4SubTitle4: '总智慧教室数',    
-  block4SubTitle5: '进行中活动', 
-  block4SubTitle6: '已完成活动', 
-  block4SubTitle7: '未开始活动', 
+  block4SubTitle1: '翻转课堂数量',
+  block4SubTitle2: '线上测验数量',
+  block4SubTitle3: '作业作品数量',
+  block4SubTitle4: '总智慧教室数',
+  block4SubTitle5: '进行中活动',
+  block4SubTitle6: '已完成活动',
+  block4SubTitle7: '未开始活动',
   text1: '六年级数学',
   text1: '六年级数学',
   text2: '一年级物理',
   text2: '一年级物理',
   text3: '三年级英文',
   text3: '三年级英文',
@@ -69,11 +69,11 @@ export default {
   text35: '班级竞赛',
   text35: '班级竞赛',
   text36: '网路阅卷',
   text36: '网路阅卷',
   text37: 'HiTeach',
   text37: 'HiTeach',
-  text38: '总数量',  
-  text39: '题目数', 
-  text40: '教材数', 
-  text41: '分享课例数', 
-  text42: '校本课纲数', 
+  text38: '总数量',
+  text39: '题目数',
+  text40: '教材数',
+  text41: '分享课例数',
+  text42: '校本课纲数',
   text43: '各年级资源产出分佈',
   text43: '各年级资源产出分佈',
   text44: '一年级',
   text44: '一年级',
   text45: '二年级',
   text45: '二年级',
@@ -82,5 +82,5 @@ export default {
   text48: '五年级',
   text48: '五年级',
   text49: '六年级',
   text49: '六年级',
   text50: '课堂总数',
   text50: '课堂总数',
-  text51: '完成数量',
+  text51: '完成数量'
 }
 }

+ 76 - 76
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/stuAccount.js

@@ -1,82 +1,82 @@
 export default {
 export default {
-  //table title
-  seatNo: "座号",
-  account: "账号资讯",
-  stuName: "姓名",
-  classroomCode: "教室编码",
-  classroomName: "教室名称",
-  period: "学段(校区)",
-  grade: "年级",
-  authStatus: "授权状态",
-  password: "密码",
-  abnormalStatus: "异常状态",
+  // table title
+  seatNo: '座号',
+  account: '账号资讯',
+  stuName: '姓名',
+  classroomCode: '教室编码',
+  classroomName: '教室名称',
+  period: '学段(校区)',
+  grade: '年级',
+  authStatus: '授权状态',
+  password: '密码',
+  abnormalStatus: '异常状态',
 
 
-  //Index.vue
-  menuAuth: "授权管理",
-  importStu: "汇入名单",
-  addStu: "新增学生",
-  editInfo: "编辑资讯",
-  delStu: "删除学生",
-  searchHolder: "请输入关键字或账号资讯...",
-  periodHolder: "所在学制",
-  gradeHolder: "所在年级",
-  classroomHolder: "所在教室",
-  tips1: "请选择需要修改的学生!",
-  tips2Title: "删除学生",
-  tips2Content1: "确定删除",
-  tips2Content2: "账号信息!",
-  tips3: "请选择需要删除的学生!",
+  // Index.vue
+  menuAuth: '授权管理',
+  importStu: '汇入名单',
+  addStu: '新增学生',
+  editInfo: '编辑资讯',
+  delStu: '删除学生',
+  searchHolder: '请输入关键字或账号资讯...',
+  periodHolder: '所在学制',
+  gradeHolder: '所在年级',
+  classroomHolder: '所在教室',
+  tips1: '请选择需要修改的学生!',
+  tips2Title: '删除学生',
+  tips2Content1: '确定删除',
+  tips2Content2: '账号信息!',
+  tips3: '请选择需要删除的学生!',
 
 
-  //AddStudent.vue
-  accountInfo: "账号资讯",
-  accountHolder: "请输入账号信息",
-  passwordInfo: "密码",
-  passwordHolder: "请设置账号密码",
-  isSame: "与账号相同",
-  stuName: "学生姓名",
-  stuNameHolder: "请输入学生名称",
-  stuSeatNo: "座位号",
-  stuSeatNoHolder: "请设置座位号",
-  classroomInfo: "教室信息",
-  classroomInfoHolder: "请选择教室",
-  newClassroom: "建立新教室",
-  periodInfo: "学制信息",
-  gradeInfo: "年级",
-  submitAccount: "建立账号",
-  submitActive:"保存",
-  chooseInfo: "选取项目",
-  chooseNum: "总计:",
-  numUnit:"条",
+  // AddStudent.vue
+  accountInfo: '账号资讯',
+  accountHolder: '请输入账号信息',
+  passwordInfo: '密码',
+  passwordHolder: '请设置账号密码',
+  isSame: '与账号相同',
+  stuName: '学生姓名',
+  stuNameHolder: '请输入学生名称',
+  stuSeatNo: '座位号',
+  stuSeatNoHolder: '请设置座位号',
+  classroomInfo: '教室信息',
+  classroomInfoHolder: '请选择教室',
+  newClassroom: '建立新教室',
+  periodInfo: '学制信息',
+  gradeInfo: '年级',
+  submitAccount: '建立账号',
+  submitActive: '保存',
+  chooseInfo: '选取项目',
+  chooseNum: '总计:',
+  numUnit: '条',
 
 
-  //ImportStudent.vue
-  importTitle: "导入学生名单",
-  importTips1: "拖拽欲汇入的学生账号和表格档案至此",
-  importTips2: "或",
-  importTips3: "点击文件图示打开文件浏览上传",
-  importTips4: "打开的文件已删除!",
-  importTips5: "文件类型错误",
-  importTips6: "文件:",
-  importTips7: "不是EXCEL文件,请选择后缀为.xlsx或者.xls的EXCEL文件。",
-  importTips8: "文件读取出错",
-  importTips9: "缺少",
-  importTips10: "信息,请完善,再导入!",
-  importTips11: "文件读取成功!",
-  importTips12: "请检查表格数据是否正确!",
-  importInfo1:"总名单数:",
-  importInfo2:"账号重复:",
-  importInfo3:"座号重复:",
-  importInfo4:"没有对应教室:",
-  importInfo5:"系统已存在账号:",
-  importInfo6: "可汇入:",
-  passwordTips: "*未找到密码的项目将默认密码与账号相同",
-  submitList: "建立账号",
+  // ImportStudent.vue
+  importTitle: '导入学生名单',
+  importTips1: '拖拽欲汇入的学生账号和表格档案至此',
+  importTips2: '或',
+  importTips3: '点击文件图示打开文件浏览上传',
+  importTips4: '打开的文件已删除!',
+  importTips5: '文件类型错误',
+  importTips6: '文件:',
+  importTips7: '不是EXCEL文件,请选择后缀为.xlsx或者.xls的EXCEL文件。',
+  importTips8: '文件读取出错',
+  importTips9: '缺少',
+  importTips10: '信息,请完善,再导入!',
+  importTips11: '文件读取成功!',
+  importTips12: '请检查表格数据是否正确!',
+  importInfo1: '总名单数:',
+  importInfo2: '账号重复:',
+  importInfo3: '座号重复:',
+  importInfo4: '没有对应教室:',
+  importInfo5: '系统已存在账号:',
+  importInfo6: '可汇入:',
+  passwordTips: '*未找到密码的项目将默认密码与账号相同',
+  submitList: '建立账号',
 
 
-  //Authorization.vue
-  authTitle: "服务授权管理",
-  authTitle1: "AClassOne智慧学伴服务授权",
-  authDiscraption: "赋予持有该服务授权的学生TEAM MODEL ID使用智慧学伴App权限。",
-  authCount: "学校总授权数",
-  alreadyUse: "今日已取用授权数",
-  mayUse: "可使用授权数",
-  authNum:"各学制授权使用状态",
+  // Authorization.vue
+  authTitle: '服务授权管理',
+  authTitle1: 'AClassOne智慧学伴服务授权',
+  authDiscraption: '赋予持有该服务授权的学生TEAM MODEL ID使用智慧学伴App权限。',
+  authCount: '学校总授权数',
+  alreadyUse: '今日已取用授权数',
+  mayUse: '可使用授权数',
+  authNum: '各学制授权使用状态'
 }
 }

+ 19 - 19
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/talMgmt.js

@@ -21,17 +21,17 @@ export default {
     text20: '科学',
     text20: '科学',
     text21: '艺术',
     text21: '艺术',
     text22: '其他',
     text22: '其他',
-    text23: '科技互动指数关系图(年级)',    
-    text24: '科技互动指数关系图(科目)',   
-    text25: '音乐',   
-    text26: '软件测试',   
-    text27: '语文',   
-    text28: '英语',   
-    text29: '美术',   
-    text30: '科学',   
-    text31: '班会',   
-    text32: '数学',   
-    text33: '开学课程',   
+    text23: '科技互动指数关系图(年级)',
+    text24: '科技互动指数关系图(科目)',
+    text25: '音乐',
+    text26: '软件测试',
+    text27: '语文',
+    text28: '英语',
+    text29: '美术',
+    text30: '科学',
+    text31: '班会',
+    text32: '数学',
+    text33: '开学课程',
     text34: '其他',
     text34: '其他',
     text35: '本日互动/教法',
     text35: '本日互动/教法',
     text36: '30日互动/教法',
     text36: '30日互动/教法',
@@ -55,11 +55,11 @@ export default {
     text55: '科学',
     text55: '科学',
     text56: '综合',
     text56: '综合',
     text57: '教法应用指数关系图(年级)',
     text57: '教法应用指数关系图(年级)',
-    text58: '教法应用指数关系图(科目)',    
-    text59:  '互动 = 技术互动指数',
-    text60:  '教法 = 教学应用指数',
-    text61:  '裡,',
-    text62:  '区间的一共有',
-    text63:  '人',
-    text64:  '年级',
-}
+    text58: '教法应用指数关系图(科目)',
+    text59: '互动 = 技术互动指数',
+    text60: '教法 = 教学应用指数',
+    text61: '裡,',
+    text62: '区间的一共有',
+    text63: '人',
+    text64: '年级'
+}

+ 189 - 195
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/totalAnalysis.js

@@ -1,198 +1,192 @@
 export default {
 export default {
-  //EvaluationList.vue
-  text1: "历次考试汇总",
-  text2: "次数",
-  text3: "更多筛选",
-  text4: "输入考试名称...",
-  text5: "当前筛选条件",
-  text6: "当前数量",
-  text7: "参与人数",
-  text8: "考试日期",
-  text9: "无",
-  condition1: "关注学段",
-  condition2: "关注年级",
-  condition3: "学年期",
-  condition4: "考试类型",
-  condition5: "考试范围",
-  condition6: "反馈类型",
-  condition7: "考试学科",
-
-  //Base Info
-  base_name: "姓名",
-  base_class: "班级",
-  base_id: "座号",
-  base_score: "分数",
-
-  //ExamList.vue
-  newest: "最新测验",
-  more: "查看更多",
-
-  //index.vue
-  module1: "成绩分析",
-  module2: "落点分析",
-  module3: "试题分析",
-  module4: "知识点掌握",
-  exportTable: "导出表格",
-  currentSubject: "当前科目",
-
-  //AchievementAnalysis.vue
-  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_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:低分区段",
-
-
-  //QuestionList.vue
-  ql_text1:"试卷总分",
-  ql_text2:"单项选择题",
-  ql_text3:"多项选择器",
-  ql_text4:"判断题",
-  ql_text5:"填空题",
-  ql_text6:"问答题",
-  ql_text7: "综合题",
-  ql_text8: "分",
-  ql_text9: "查看答案与解析",
-  ql_text10: "查看数据分析",
-  ql_text11: "参考答案",
-  ql_text12: "答题解析",
-  ql_text13: "返回",
-
-
+  // EvaluationList.vue
+  text1: '历次考试汇总',
+  text2: '次数',
+  text3: '更多筛选',
+  text4: '输入考试名称...',
+  text5: '当前筛选条件',
+  text6: '当前数量',
+  text7: '参与人数',
+  text8: '考试日期',
+  text9: '无',
+  condition1: '关注学段',
+  condition2: '关注年级',
+  condition3: '学年期',
+  condition4: '考试类型',
+  condition5: '考试范围',
+  condition6: '反馈类型',
+  condition7: '考试学科',
+
+  // Base Info
+  base_name: '姓名',
+  base_class: '班级',
+  base_id: '座号',
+  base_score: '分数',
+
+  // ExamList.vue
+  newest: '最新测验',
+  more: '查看更多',
+
+  // index.vue
+  module1: '成绩分析',
+  module2: '落点分析',
+  module3: '试题分析',
+  module4: '知识点掌握',
+  exportTable: '导出表格',
+  currentSubject: '当前科目',
+
+  // AchievementAnalysis.vue
+  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_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:低分区段',
+
+  // QuestionList.vue
+  ql_text1: '试卷总分',
+  ql_text2: '单项选择题',
+  ql_text3: '多项选择器',
+  ql_text4: '判断题',
+  ql_text5: '填空题',
+  ql_text6: '问答题',
+  ql_text7: '综合题',
+  ql_text8: '分',
+  ql_text9: '查看答案与解析',
+  ql_text10: '查看数据分析',
+  ql_text11: '参考答案',
+  ql_text12: '答题解析',
+  ql_text13: '返回'
 
 
 }
 }

+ 2 - 2
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/unit.js

@@ -7,5 +7,5 @@ export default {
   text6: '则',
   text6: '则',
   text7: '人',
   text7: '人',
   text8: 'm',
   text8: 'm',
-  text9: '台',
-}
+  text9: '台'
+}

+ 4 - 5
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/classMgmt.js

@@ -14,12 +14,12 @@ export default {
       block2Title2: '課堂數',
       block2Title2: '課堂數',
       block2Title3: '課堂參與人數',
       block2Title3: '課堂參與人數',
       block2Title4: '今日課堂數量變化',
       block2Title4: '今日課堂數量變化',
-      block2Title5: '今日各年級課堂百分比',    
+      block2Title5: '今日各年級課堂百分比',
       block2SubTitle1: '今日數量/ 昨日數量',
       block2SubTitle1: '今日數量/ 昨日數量',
       block2SubTitle2: '前7日平均',
       block2SubTitle2: '前7日平均',
       block2SubTitle3: '前30日平均',
       block2SubTitle3: '前30日平均',
       block2SubTitle4: '學期平均',
       block2SubTitle4: '學期平均',
-      block2SubTitle5: '今日使用時數',      
+      block2SubTitle5: '今日使用時數',
       block2SubTitle6: '前7日總數',
       block2SubTitle6: '前7日總數',
       block2SubTitle7: '前30日總數',
       block2SubTitle7: '前30日總數',
       block2SubTitle8: '學期總數',
       block2SubTitle8: '學期總數',
@@ -32,7 +32,7 @@ export default {
       block4Title1: '累計課堂時數',
       block4Title1: '累計課堂時數',
       block4Title2: '蘇格拉底議課APP授權狀態',
       block4Title2: '蘇格拉底議課APP授權狀態',
       block4Title3: '課堂作業系統',
       block4Title3: '課堂作業系統',
-      block4SubTitle1: '總計',    
+      block4SubTitle1: '總計',
       block4SubTitle2: '累計',
       block4SubTitle2: '累計',
       block4SubTitle3: '最多課堂使用者排名',
       block4SubTitle3: '最多課堂使用者排名',
       block4SubTitle4: '最長時數使用者',
       block4SubTitle4: '最長時數使用者',
@@ -70,6 +70,5 @@ export default {
       text2: '授權至',
       text2: '授權至',
       text3: '今日總課堂數',
       text3: '今日總課堂數',
       text4: '無使用期限',
       text4: '無使用期限',
-      text5: '(待命名)',
+      text5: '(待命名)'
   }
   }
-  

+ 2 - 2
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/common.js

@@ -1,4 +1,4 @@
 export default {
 export default {
     cancel: '取消',
     cancel: '取消',
-    ok: '確定',
-}
+    ok: '確定'
+}

+ 0 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/index.js


Some files were not shown because too many files changed in this diff