Browse Source

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

zhouj1203@hotmail.com 6 years ago
parent
commit
7730ace604
41 changed files with 1177 additions and 409 deletions
  1. 1 0
      .gitignore
  2. 6 0
      .idea/vcs.xml
  3. 322 28
      TEAMModelOS/ClientApp/common/KnowPoint.vue
  4. 1 1
      TEAMModelOS/ClientApp/common/SyTree.vue
  5. 222 41
      TEAMModelOS/ClientApp/common/Syllabus.vue
  6. 9 9
      TEAMModelOS/ClientApp/common/Tree.vue
  7. 1 1
      TEAMModelOS/ClientApp/common/Ztree.vue
  8. 1 1
      TEAMModelOS/ClientApp/components/SAannulus.vue
  9. 58 39
      TEAMModelOS/ClientApp/components/SAbargraph.vue
  10. 44 7
      TEAMModelOS/ClientApp/components/SAbarline.vue
  11. 2 1
      TEAMModelOS/ClientApp/components/SAbasics.vue
  12. 9 9
      TEAMModelOS/ClientApp/components/SAchooseattention.vue
  13. 6 4
      TEAMModelOS/ClientApp/components/SAchooseexam.vue
  14. 94 4
      TEAMModelOS/ClientApp/components/SAlinechart.vue
  15. 1 1
      TEAMModelOS/ClientApp/components/SApercent.vue
  16. 44 45
      TEAMModelOS/ClientApp/components/SAsubjectsmanifestation.vue
  17. 1 1
      TEAMModelOS/ClientApp/css/site.css
  18. 15 0
      TEAMModelOS/ClientApp/locale/lang/en-US.js
  19. 15 0
      TEAMModelOS/ClientApp/locale/lang/zh-CN.js
  20. 15 0
      TEAMModelOS/ClientApp/locale/lang/zh-TW.js
  21. 5 1
      TEAMModelOS/ClientApp/store/api.js
  22. 2 5
      TEAMModelOS/ClientApp/view/SAindex.vue
  23. 30 28
      TEAMModelOS/ClientApp/view/index.vue
  24. 13 1
      TEAMModelOS/ClientApp/view/sak/Syllabus.vue
  25. 1 1
      TEAMModelOS/ClientApp/view/syllabus/BaseKnowPoint.vue
  26. 1 1
      TEAMModelOS/ClientApp/view/syllabus/BasePreview.vue
  27. 18 16
      TEAMModelOS/JsonFile/Changearts.json
  28. 25 24
      TEAMModelOS/JsonFile/Changeexam.json
  29. 26 24
      TEAMModelOS/JsonFile/Changeexamtype.json
  30. 26 25
      TEAMModelOS/JsonFile/Changegrade.json
  31. 25 23
      TEAMModelOS/JsonFile/Changescience.json
  32. 25 23
      TEAMModelOS/JsonFile/Changeterm.json
  33. 3 3
      TEAMModelOS/JsonFile/EcharsL.json
  34. 9 9
      TEAMModelOS/JsonFile/EcharsY.json
  35. 27 24
      TEAMModelOS/JsonFile/EcharsZ.json
  36. 3 3
      TEAMModelOS/JsonFile/EcharsZx.json
  37. 1 1
      TEAMModelOS/JsonFile/TeachChangeterm.json
  38. 67 0
      TEAMModelOS/JsonFile/TeachClickPR.json
  39. 1 1
      TEAMModelOS/JsonFile/TeachEcharsZx.json
  40. 1 2
      TEAMModelOS/Views/Shared/_Layout.cshtml
  41. 1 2
      TEAMModelOS/webpack.config.js

+ 1 - 0
.gitignore

@@ -251,3 +251,4 @@ _Pvt_Extensions
 .fake/
 .fake/
 
 
 .vscode/
 .vscode/
+/.idea

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
+  </component>
+</project>

+ 322 - 28
TEAMModelOS/ClientApp/common/KnowPoint.vue

@@ -8,11 +8,15 @@
           <Icon type="ios-keypad" size="20" :class="listType==1?'list-type-active':''" @click="changeListType(1)"/>
           <Icon type="ios-keypad" size="20" :class="listType==1?'list-type-active':''" @click="changeListType(1)"/>
         </div>
         </div>
         <div class="header-right">
         <div class="header-right">
-          <div class="header-right-item">
+          <div class="header-right-item" @click="addPoint" v-show="listType==1">
             <Icon type="logo-buffer" size="18" />
             <Icon type="logo-buffer" size="18" />
             <span>新增知识点</span>
             <span>新增知识点</span>
           </div>
           </div>
-          <div class="header-right-item">
+          <div class="header-right-item" @click="composeBlock" v-show="listType==1">
+            <Icon type="logo-buffer" size="18" />
+            <span>组成知识块</span>
+          </div>
+          <div class="header-right-item" @click="addBlock" v-show="listType==0">
             <Icon type="ios-browsers" size="18" />
             <Icon type="ios-browsers" size="18" />
             <span>新增知识块</span>
             <span>新增知识块</span>
           </div>
           </div>
@@ -27,36 +31,128 @@
         <div class="list-col" v-if="isShowBlock">
         <div class="list-col" v-if="isShowBlock">
           <Collapse simple accordion @on-change="collapseChange">
           <Collapse simple accordion @on-change="collapseChange">
             <Panel v-for="(item,index) in knowBlockList" class="know-block-item" :key="index" :name="item.period">
             <Panel v-for="(item,index) in knowBlockList" class="know-block-item" :key="index" :name="item.period">
-              <span class="know-block-name">{{item.name}} | {{item.id}}</span>
+              <Input v-if="item.id==block_edit_id" :ref="'block'+item.id" clearable type="text" v-model="item.name"
+                     @on-blur="editKnowBlock(item)"
+                     @on-enter="editKnowBlock(item)"
+                     @click.stop.native="inputFocus($event)" />
+              <span class="know-block-name" v-else>{{item.name}} | {{item.id}}</span>
+
               <span class="know-block-builder">建立者 | {{item.builder}}</span>
               <span class="know-block-builder">建立者 | {{item.builder}}</span>
               <span class="k-block-tools">
               <span class="k-block-tools">
-                <Icon type="md-create" />
-                <Icon type="md-trash" />
+                <Icon type="md-create" @click="handleEditBlock(item,$event)" title="编辑名称" />
+                <Icon type="md-add-circle" title="编辑知识点" @click.stop.native="editBlockPoint(item)"/>
+                <Icon type="md-trash" @click="handleDeleteBlock" title="删除"/>
               </span>
               </span>
               <div slot="content" class="knowpoints">
               <div slot="content" class="knowpoints">
                 <div class="knowpoint-item" v-for="(item,index) in knowPointList" @mouseover="knowMouseover" @mouseout="knowMouseout">
                 <div class="knowpoint-item" v-for="(item,index) in knowPointList" @mouseover="knowMouseover" @mouseout="knowMouseout">
-                  <span>{{item.name}} </span>
+                  <Input v-if="item.id==point_edit_id" :ref="'point'+item.blockId+item.id" clearable type="text" v-model="item.name"
+                         @on-blur="editKnowPoint(item)"
+                         @on-enter="editKnowPoint(item)"
+                         @click.stop.native="inputFocus($event)" />
+                  <span v-else>{{item.name}} </span>
                   <span class="k-tools">
                   <span class="k-tools">
-                    <Icon type="md-create" />
-                    <Icon type="md-trash" />
+                    <Icon type="md-create" @click="handleEditPoint(item,$event)" />
+                    <Icon type="md-trash" @click.stop.native="handleDeleteBlock" />
                   </span>
                   </span>
                 </div>
                 </div>
               </div>
               </div>
             </Panel>
             </Panel>
           </Collapse>
           </Collapse>
         </div>
         </div>
+
         <!-- 知识点仓库 -->
         <!-- 知识点仓库 -->
         <div class="list-col list-knowpoints" v-else>
         <div class="list-col list-knowpoints" v-else>
+          <div class="knowpoints-filter">
+
+          </div>
           <div class="knowpoints">
           <div class="knowpoints">
-            <div class="knowpoint-item" v-for="(item,index) in knowPointList"  @mouseover="knowMouseover" @mouseout="knowMouseout">
-              <span>{{item.name}} </span>
+            <div v-for="(item,index) in knowPointList" :class="['knowpoint-item',pointCheckedList.indexOf(item) != -1?'knowpoint-item-active':'']" :title="item.description"  @mouseover="knowMouseover" @mouseout="knowMouseout" @click="pointClick(item)">
+              <Input v-if="item.id==point_edit_id" :ref="'point'+item.blockId+item.id" clearable type="text" v-model="item.name"
+                     @on-blur="editKnowPoint(item)"
+                     @on-enter="editKnowPoint(item)"
+                     @click.stop.native="inputFocus($event)" />
+              <span v-else>{{item.name}} </span>
+              <!--<Icon type="ios-checkmark-circle" color="#00fa00" class="icon-checked"/>-->
               <span class="k-tools">
               <span class="k-tools">
-                <Icon type="md-create" />
-                <Icon type="md-trash" />
+                <Icon type="md-create" @click="handleEditPoint(item,$event)" />
+                <Icon type="md-trash" @click.stop.native="handleDeleteBlock" />
               </span>
               </span>
             </div>
             </div>
           </div>
           </div>
         </div>
         </div>
+
+        <Modal v-model="addBlockModal"
+               title="新增知识块"
+               width="520"
+               ok-text="确认"
+               cancel-text="取消"
+               @on-ok="handleAddBlock"
+               @on-cancel="">
+          <p class="modal-title">请输入知识块名称</p>
+          <Input v-model="newBlockName" placeholder="输入名称" style="margin:5px" />
+        </Modal>
+
+        <Modal v-model="addPointModal"
+               title="新增知识点"
+               width="520"
+               ok-text="确认"
+               cancel-text="取消"
+               @on-ok="handleAddPoint"
+               @on-cancel="">
+          <p class="modal-title">请输入知识点名称</p>
+          <Input v-model="newPointName" placeholder="输入名称" style="margin:5px" />
+          <p class="modal-title">请输入知识点描述</p>
+          <Input v-model="newPointName" placeholder="输入描述" style="margin:5px" />
+        </Modal>
+
+        <Modal v-model="editBlockPointModal"
+               title="编辑知识块"
+               width="600"
+               ok-text="确认"
+               cancel-text="取消"
+               @on-ok="handleAddBlock"
+               @on-cancel="">
+              <Transfer :data="data3"
+                        :target-keys="targetKeys3"
+                        :list-style="listStyle"
+                        :render-format="render3"
+                        :operations="['撤回知识库','加入知识块']"
+                        filter-placeholder="请输入搜索内容"
+                        :titles="['知识点仓库', '当前知识块']"
+                        not-found-text="列表为空"
+                        filterable
+                        :filter-method="filterMethod"
+                        @on-change="handleChange3">
+                <div :style="{float: 'right', margin: '5px'}">
+                  <Button size="small" @click="reloadMockData">刷新</Button>
+                </div>
+              </Transfer>
+        </Modal>
+        <!-- 组成知识块弹窗 -->
+        <Modal v-model="composeBlockModal"
+               title="组成知识块"
+               width="400"
+               ok-text="确认"
+               cancel-text="取消"
+               @on-ok="handleComposeBlock"
+               @on-cancel="">
+          <Tabs value="newBlock" class="compose-block-tab">
+            <TabPane label="建立新的知识块" name="newBlock">
+              <p class="modal-title">请输入知识块名称</p>
+              <Input v-model="newBlockName" placeholder="请输入" style="margin:5px" />
+              <p class="modal-title">当前选中知识点</p>
+              <div class="checked-points">
+                <div v-for="item in pointCheckedList" class="knowpoint-item knowpoint-item-active">{{item.name}}</div>
+              </div>
+            </TabPane>
+            <TabPane label="移动到现有知识块" name="moveToBlock">
+              <RadioGroup v-model="checkedBlock">
+                <Radio v-for="(item,index) in knowBlockList" :key="index" :label="item.name+item.id" :value="item.period" :name="item.period"></Radio>
+              </RadioGroup>
+            </TabPane>
+          </Tabs>
+        </Modal>
+
       </div>
       </div>
     </div>
     </div>
   </div>
   </div>
@@ -69,17 +165,36 @@
       return {
       return {
         knowPointList: [],
         knowPointList: [],
         knowBlockList: [],
         knowBlockList: [],
-        treeData: [],
+        pointCheckedList: [],
+        checkedBlock:"知识块名称0",
         isShowBlock: true,
         isShowBlock: true,
-        listType: 0
+        listType: 0,
+        newBlockName:"",
+        newPointName:"",
+        block_edit_id: null,  //当前知识块编辑索引
+        point_edit_id: null,  //当前知识点编辑索引
+        point_click_id:null,
+        addBlockModal: false, //新增知识块开关
+        addPointModal: false, //新增知识点开关
+        editBlockPointModal: false, //编辑知识块开关
+        composeBlockModal: false, //编辑知识块开关
+        data3: this.getMockData(),
+        targetKeys3: this.getTargetKeys(),
+        listStyle: {
+          width: '220px',
+          height: '420px'
+        },
       }
       }
     },
     },
     created() {
     created() {
       for (let i = 0; i < 11; i++) {
       for (let i = 0; i < 11; i++) {
         this.knowPointList.push({
         this.knowPointList.push({
           id: i,
           id: i,
+          key: i.toString(),
+          label: i.toString(),
           name: "知识点名称_" + this.changeNumFormat(i),
           name: "知识点名称_" + this.changeNumFormat(i),
-          termNum: i + 5
+          blockId: i + 1,
+          description: "知识点名称_" + this.changeNumFormat(i)
         })
         })
 
 
         this.knowBlockList.push({
         this.knowBlockList.push({
@@ -95,7 +210,7 @@
 
 
       //知识点与知识块切换
       //知识点与知识块切换
       changeListType(status) {
       changeListType(status) {
-        this.listType = status;
+        this.listType = status; 
         this.isShowBlock = status == 0;
         this.isShowBlock = status == 0;
       },
       },
       //数字格式转换
       //数字格式转换
@@ -119,7 +234,8 @@
         e.currentTarget.lastElementChild.style.visibility = 'hidden';
         e.currentTarget.lastElementChild.style.visibility = 'hidden';
       },
       },
       //折叠版切换回调
       //折叠版切换回调
-        collapseChange(arr) {
+      collapseChange(arr) {
+        this.block_edit_id = null;
           let list = document.getElementsByClassName('k-block-tools');
           let list = document.getElementsByClassName('k-block-tools');
           for (let i = 0 ; i < list.length ;i++) {
           for (let i = 0 ; i < list.length ;i++) {
             if (arr.indexOf(i.toString()) != -1) {
             if (arr.indexOf(i.toString()) != -1) {
@@ -128,6 +244,137 @@
               list[i].style.visibility = "hidden";
               list[i].style.visibility = "hidden";
             }
             }
         }
         }
+      },
+
+      //点击编辑知识块
+      handleEditBlock(data, e) {
+        e.stopPropagation();
+        this.block_edit_id = data.id;
+        this.$nextTick(() => {
+          this.$refs['block' + data.id][0].focus();
+        })
+      },
+      //编辑知识块input失焦
+      editKnowBlock(data) {
+        this.block_edit_id = null;
+      },
+
+      //点击编辑知识点
+      handleEditPoint(data, e) {
+        e.stopPropagation();
+        this.point_edit_id = data.id;
+        this.$nextTick(() => {
+          this.$refs['point'+data.blockId+data.id][0].focus();
+        })
+      },
+      //编辑知识点input失焦
+      editKnowPoint(data) {
+        this.point_edit_id = null;
+      },
+
+      //input聚焦
+      inputFocus(e) {
+        e.cancelBubble = true;
+      },
+
+      //request删除知识块
+      handleDeleteBlock() {
+        this.$Modal.confirm({
+          title: '删除知识块',
+          content: '<p>确认删除该知识块?</p>',
+          okText:"确认",
+          cancelText:"取消",
+          onOk: () => {
+            this.$Message.info('Clicked ok');
+          },
+          onCancel: () => {
+            this.$Message.info('Clicked cancel');
+          }
+        });
+      },
+      //点击新增知识块弹窗
+      addBlock() {
+        this.addBlockModal = true;
+      },
+      //点击新增知识块弹窗
+      addPoint() {
+        this.addPointModal = true;
+      },
+      //点击组成知识块弹窗
+      composeBlock() {
+        if (this.pointCheckedList.length < 1) {
+          this.$Message.info('请先勾选需要操作的知识点!');
+        } else {
+          this.composeBlockModal = true;
+        }
+      },
+      //点击编辑知识块弹窗
+      editBlockPoint(data) {
+        let block = data;
+        this.editBlockPointModal = true;
+      },
+      //request新增知识块
+      handleAddBlock() {
+        console.log(this.newBlockName);
+      },
+
+      //request新增知识点
+      handleAddPoint() {
+        console.log(this.newPointName);
+      },
+      //request编辑知识块
+      handleEditBlockPoint() {
+        console.log(this.targetKeys3);
+      },
+
+      //request编辑知识块
+      handleComposeBlock() {
+        console.log(this.pointCheckedList);
+      },
+
+      pointClick(data) {
+        //this.point_click_id = data.id;
+        let list = this.pointCheckedList;
+        if (list.indexOf(data) == -1) {
+          list.push(data);
+        } else {
+          list.splice(list.indexOf(data), 1);
+        }
+      },
+
+      getMockData() {
+        let mockData = [];
+        for (let i = 1; i <= 20; i++) {
+          mockData.push({
+            id: i,
+            key: i.toString(),
+            label: i.toString(),
+            name: "知识点名称_" + this.changeNumFormat(i),
+            termNum: i + 5,
+            blockId: i + 1,
+            description: "知识点名称_" + this.changeNumFormat(i)
+          });
+
+        }
+        return mockData;
+      },
+      getTargetKeys() {
+        let targetArr = [];
+        return targetArr;
+      },
+      handleChange3(newTargetKeys) {
+        this.targetKeys3 = newTargetKeys;
+      },
+      render3(item) {
+        return item.label + ' - ' + item.description;
+      },
+      reloadMockData() {
+        this.data3 = this.getMockData();
+        this.targetKeys3 = this.getTargetKeys();
+      },
+      filterMethod(data, query) {
+        let val = data.label + ' - ' + data.description;
+        return val.toUpperCase().indexOf(query.toUpperCase()) > -1;
       }
       }
     }
     }
   }
   }
@@ -227,11 +474,22 @@
     padding-bottom: 50px;
     padding-bottom: 50px;
   }
   }
 
 
+  .list-wrap .knowpoints-filter{
+    width:100%;
+    height:10px;
+    border-bottom:2px solid #464646;
+    margin-bottom:10px;
+  }
+
   .list-col {
   .list-col {
     overflow-y: auto;
     overflow-y: auto;
     height: 100%;
     height: 100%;
   }
   }
 
 
+  .list-col /deep/ .ivu-input-wrapper {
+    width: 60%;
+  }
+
   .list-knowpoints {
   .list-knowpoints {
     padding-top:30px;
     padding-top:30px;
   }
   }
@@ -270,6 +528,40 @@
     margin-left:15px;
     margin-left:15px;
   }
   }
 
 
+  .compose-block-tab /deep/ .ivu-input {
+    width:90%;
+  }
+
+  .compose-block-tab /deep/ .ivu-tabs-bar {
+    display:flex;
+    flex-direction:row;
+    justify-content:center;
+  }
+  .compose-block-tab /deep/ .ivu-radio-group {
+    display: flex;
+    flex-direction: column;
+    padding-left:15px;
+  }
+  .compose-block-tab /deep/ .ivu-radio {
+    margin:10px;
+  }
+
+  .compose-block-tab /deep/ .ivu-tabs-tabpane {
+    padding-left:10px;
+  }
+
+  .compose-block-tab .checked-points {
+    display:flex;
+    flex-direction:row;
+    flex-wrap:wrap;
+  }
+  .compose-block-tab .checked-points .knowpoint-item{
+    padding:5px 10px;
+  }
+  
+  .modal-title {
+    margin: 10px;
+  }
 
 
   .list-col::-webkit-scrollbar { /*滚动条整体样式*/
   .list-col::-webkit-scrollbar { /*滚动条整体样式*/
     width: 0px; /*高宽分别对应横竖滚动条的尺寸*/
     width: 0px; /*高宽分别对应横竖滚动条的尺寸*/
@@ -298,20 +590,22 @@
     padding: 0 10px;
     padding: 0 10px;
   }
   }
   .knowpoint-item {
   .knowpoint-item {
-    padding:10px 20px;
-    margin:5px;
-    background:rgb(103,109,109);
-    color:rgb(232,233,233);
-    border-radius:100px;
-    font-size:12px;
-    cursor:pointer;
+    position: relative;
+    padding: 10px 20px;
+    margin: 5px;
+    background: rgb(255,255,255);
+    color: #464646;
+    border:1px solid rgb(216, 216, 216);
+    border-radius: 100px;
+    font-size: 12px;
+    cursor: pointer;
   }
   }
-  .knowpoint-item:hover{
-    background:rgb(179,179,179);
-    color:#fff !important;
+  .knowpoint-item:hover, .knowpoint-item-active {
+    background: rgb(45, 140, 240);
+    color: #fff !important;
   }
   }
   .knowpoint-item .ivu-icon {
   .knowpoint-item .ivu-icon {
-    margin-left:5px;
+    margin-left: 5px;
   }
   }
   .k-tools {
   .k-tools {
     visibility:hidden;
     visibility:hidden;

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

@@ -645,7 +645,7 @@
     },
     },
   };
   };
 </script>
 </script>
-<style>
+<style scoped>
   .tree-main {
   .tree-main {
     margin-left: 5%;
     margin-left: 5%;
     width: 90%;
     width: 90%;

+ 222 - 41
TEAMModelOS/ClientApp/common/Syllabus.vue

@@ -4,30 +4,34 @@
       <div class="header-wrap">
       <div class="header-wrap">
         <Input placeholder="关键词搜索课纲" style="width:250px !important;" />
         <Input placeholder="关键词搜索课纲" style="width:250px !important;" />
         <div class="header-right">
         <div class="header-right">
-          <div class="header-right-item">
-            <Icon type="logo-buffer" size="18"/>
+          <div class="header-right-item" @click="addSubject">
+            <Icon type="logo-buffer" size="18" />
             <span>新增科目</span>
             <span>新增科目</span>
           </div>
           </div>
-          <div class="header-right-item">
-            <Icon type="ios-browsers" size="18"/>
+          <div class="header-right-item" @click="addTerm">
+            <Icon type="ios-browsers" size="18" />
             <span>新增册别/课纲</span>
             <span>新增册别/课纲</span>
           </div>
           </div>
           <div class="header-right-item">
           <div class="header-right-item">
-            <Icon type="ios-cloud-download" size="18"/>
+            <Icon type="ios-cloud-download" size="18" />
             <span>导入课纲</span>
             <span>导入课纲</span>
           </div>
           </div>
         </div>
         </div>
       </div>
       </div>
-
       <div class="list-wrap">
       <div class="list-wrap">
         <!-- 左边科目列表 -->
         <!-- 左边科目列表 -->
         <div class="list-col list-left">
         <div class="list-col list-left">
-          <div v-for="item in subjectList" :class='["subject-item", item.id==s_click_id ? "term-item-active" : ""]'   @mouseover="subjectMouseover(item.id)" @mouseout="subjectMouseout()" @click="subjectClick(item.id)">
+          <div v-for="item in subjectList" :class='["subject-item", item.id==s_click_id ? "term-item-active" : ""]' @click="subjectClick(item.id)">
             <span class="subject-name">
             <span class="subject-name">
-              <span>{{item.name}}</span>
+              <Input v-if="item.id==c_edit_id" clearable type="text" v-model="item.name"
+                     @on-blur="editSubject(item)"
+                     @on-enter="editSubject(item)"
+                     @click.stop.native="inputFocus($event)" />
+              <span v-else>{{item.name}}</span>
+
               <span class="s-block-tools" v-show="item.id==c_subject_id">
               <span class="s-block-tools" v-show="item.id==c_subject_id">
-                <Icon type="md-create" />
-                <Icon type="md-trash" />
+                <Icon type="md-create" @click="handleEditSubject(item,$event)" />
+                <Icon type="md-trash" @click="handleDeleteSubject" />
               </span>
               </span>
             </span>
             </span>
             <span class="subject-term-num">册数 | {{item.termNum}}</span>
             <span class="subject-term-num">册数 | {{item.termNum}}</span>
@@ -35,19 +39,42 @@
         </div>
         </div>
         <!-- 中间册别列表 -->
         <!-- 中间册别列表 -->
         <div class="list-col list-middle">
         <div class="list-col list-middle">
-          <div v-for="item in termList" :class='["subject-item", "term-item", item.id==c_click_id ? "term-item-active" : ""]' @mouseover="termMouseover(item.id)" @mouseout="termMouseout()" @click="termClick(item.id)">
+          <div v-for="item in termList" :class='["subject-item", "term-item", item.id==c_click_id ? "term-item-active" : ""]' @click="termClick(item.id)">
             <span class="subject-name term-name">
             <span class="subject-name term-name">
-              <span class="term-name-title">{{item.name}} | {{item.count}}</span>
+              <Input v-if="item.id==t_edit_id" clearable type="text" v-model="item.name"
+                     @on-blur="editTerm(item)"
+                     @on-enter="editTerm(item)"
+                     @click.stop.native="inputFocus($event)" />
+              <span v-else class="term-name-title">{{item.name}} | {{item.count}}</span>
               <span class="s-block-tools" v-show="item.id==c_term_id">
               <span class="s-block-tools" v-show="item.id==c_term_id">
-                <Icon type="md-create" />
-                <Icon type="md-trash" />
+                <Icon type="md-create" @click="handleEditTerm(item,$event)" />
+                <Icon type="md-trash" @click="handleDeleteSubject" />
               </span>
               </span>
             </span>
             </span>
             <span class="term-period">{{item.period}} | {{item.term}}  <Icon type="md-arrow-dropdown" v-show="item.id==c_click_id" size="18" style="margin-bottom:3px" /></span>
             <span class="term-period">{{item.period}} | {{item.term}}  <Icon type="md-arrow-dropdown" v-show="item.id==c_click_id" size="18" style="margin-bottom:3px" /></span>
-            <span class="term-userNum">
+            <div class="term-userNum">
               <span>共编使用者数 | {{item.userNum}} 名</span>
               <span>共编使用者数 | {{item.userNum}} 名</span>
-              <span class="term-add-user" v-show="item.id==c_click_id">添加共编使用者</span>
-            </span>
+              <Poptip content="content" placement="bottom-end" theme="dark">
+                <span class="term-add-user" v-show="item.id==c_click_id">添加共编使用者</span>
+                <div class="pop-content" slot="content" style="padding-bottom:10px;">
+                  <Tabs value="filter" :animated="false">
+                    <TabPane label="选择老师" name="filter">
+                      <template>
+                        <Select v-model="selectGrade" style="width:100%" @on-change="handleGradeChange">
+                          <Option v-for="item in gradeList" :value="item.name" :key="item.name">{{ item.name }}</Option>
+                        </Select>
+                      </template>
+                      <CheckboxGroup v-model="tearchList" @on-change="handleTeacherCheck">
+                        <Checkbox  v-for="(item,index) in userList" :key="index" :label="item.index">{{item.name}}{{item.role}}</Checkbox>
+                      </CheckboxGroup>
+                    </TabPane>
+                    <TabPane label="选择群组" name="orderBy">
+
+                    </TabPane>
+                  </Tabs>
+                </div>
+              </Poptip>
+            </div>
             <!-- 使用者列表 -->
             <!-- 使用者列表 -->
             <transition enter-active-class="animated slideInDown">
             <transition enter-active-class="animated slideInDown">
               <div class="term-users" v-show="item.id==c_click_id">
               <div class="term-users" v-show="item.id==c_click_id">
@@ -64,6 +91,25 @@
           <Tree></Tree>
           <Tree></Tree>
         </div>
         </div>
       </div>
       </div>
+
+      <Modal v-model="addSubjectModal"
+             title="新增科目"
+             ok-text="确认"
+             cancel-text="取消"
+             @on-ok="handleAddSubject"
+             @on-cancel="">
+        <p class="modal-title">请输入新科目名称</p>
+        <Input v-model="subjectName" style="margin:5px" />
+      </Modal>
+      <Modal v-model="addTermModal"
+         title="新增册别"
+         ok-text="确认"
+         cancel-text="取消"
+         @on-ok="handleAddTerm"
+         @on-cancel="">
+      <p class="modal-title">请输入新册别名称</p>
+      <Input v-model="termName" style="margin:5px" />
+    </Modal>
     </div>
     </div>
   </div>
   </div>
 </template>
 </template>
@@ -84,11 +130,20 @@
         c_subject_id:0,
         c_subject_id:0,
         c_term_id: 0,
         c_term_id: 0,
         c_click_id: 0,
         c_click_id: 0,
-        s_click_id:0
+        s_click_id: 0,
+        c_edit_id: null,
+        t_edit_id:null,
+        addSubjectModal: false,
+        addTermModal: false,
+        subjectName: "",
+        termName: "",
+        selectGrade: "1年级",
+        gradeList: [],
+        tearchList: []
       }
       }
     },
     },
     created() {
     created() {
-      for (let i = 0; i < 8; i++) {
+      for (let i = 0; i < 10; i++) {
         this.subjectList.push({
         this.subjectList.push({
           id:i,
           id:i,
           name: "科目名称" + i,
           name: "科目名称" + i,
@@ -104,40 +159,99 @@
           userNum:i+5
           userNum:i+5
         })
         })
 
 
+        this.gradeList.push({
+          id:i,
+          name: i+ "年级",
+        })
+
         this.userList.push({
         this.userList.push({
           id:i,
           id:i,
-          headImg: "http://bj.bcebos.com/fc-feed/0/pic/4e8536fc11c43ad8ba36c921a61183a0.jpg",
+          headImg: "https://account.habookaclass.biz/dist/6854ccd21afb6b1f994e1556c2360dd8.ico",
           name: "郭富城",
           name: "郭富城",
-          role:"老师"
+          role: "老师",
+          index: i.toString()
         })
         })
       }
       }
     },
     },
     methods: {
     methods: {
-      //鼠标滑入事件显示操作选项
-      subjectMouseover(id) {
-        this.c_subject_id = id;
-      },
-      //鼠标滑出事件隐藏操作选项
-      subjectMouseout() {
-        this.c_subject_id = null;
-      },
-      //册别鼠标滑入事件显示操作选项
-      termMouseover(id) {
-        this.c_term_id = id;
-      },
-      //册别鼠标滑出事件隐藏操作选项
-      termMouseout() {
-        this.c_term_id = null;
-      },
+
       //册别点击事件
       //册别点击事件
       termClick(id) {
       termClick(id) {
         this.c_click_id = id;
         this.c_click_id = id;
         this.c_term_id = id;
         this.c_term_id = id;
+        this.t_edit_id = null;
       },
       },
       //科目点击事件
       //科目点击事件
       subjectClick(id) {
       subjectClick(id) {
         this.s_click_id = id;
         this.s_click_id = id;
         this.c_subject_id = id;
         this.c_subject_id = id;
+        this.c_edit_id = null;
+      },
+      //点击编辑科目
+      handleEditSubject(data, e) {
+        e.stopPropagation();
+        this.c_edit_id = data.id;
+      },
+      //点击编辑册别
+      handleEditTerm(data, e) {
+        e.stopPropagation();
+        this.t_edit_id = data.id;
+      },
+      //编辑科目input失焦
+      editSubject(data) {
+        this.c_edit_id = null;
+      },
+      //编辑册别input失焦
+      editTerm(data) {
+        this.t_edit_id = null;
+      },
+      //input聚焦
+      inputFocus(e) {
+        //e.cancelBubble = true;
+      },
+
+      addSubject() {
+        this.addSubjectModal = true;
+      },
+
+      handleAddSubject() {
+        console.log(this.subjectName);
+      },
+
+      addTerm() {
+        this.addTermModal = true;
+      },
+
+      handleAddTerm() {
+        console.log(this.termName);
+      },
+
+      handleDeleteSubject() {
+        this.$Modal.confirm({
+          title: '删除科目',
+          content: '<p>确认删除该科目?</p>',
+          onOk: () => {
+            this.$Message.info('Clicked ok');
+          },
+          onCancel: () => {
+            this.$Message.info('Clicked cancel');
+          }
+        });
+      },
+
+      //选择年级的自动完成
+      filterGrade(value, option) {
+        return option.toUpperCase().indexOf(value.toUpperCase()) !== -1;
+      },
+
+      //选择老师的回调事件
+      handleTeacherCheck() {
+        console.log(this.tearchList);
+      },
+
+      //选择老师的回调事件
+      handleGradeChange(val) {
+        console.log(val);
       }
       }
     }
     }
   }
   }
@@ -214,9 +328,31 @@
     overflow-y:auto;
     overflow-y:auto;
   }
   }
 
 
+  .list-col /deep/ .ivu-input-wrapper{
+    width:60%;
+  }
+  .term-userNum /deep/ .ivu-input-wrapper {
+    width:100%;
+  }
+  .pop-content  .ivu-checkbox-group {
+    display: flex;
+    flex-direction: column;
+    margin-top:20px;
+  }
+  .pop-content .ivu-checkbox-group-item {
+    margin:5px 10px;
+  }
+  .pop-content /deep/ .ivu-checkbox {
+    margin-right:10px;
+  }
+  .pop-content .ivu-tabs-tabpane {
+    max-height:300px;
+    overflow:auto;
+  }
+
   .list-left {
   .list-left {
-    width:20%;
-    background-color:rgb(204,204,204);
+    width: 20%;
+    background-color: rgb(204,204,204);
   }
   }
   .list-middle {
   .list-middle {
     width: 35%;
     width: 35%;
@@ -284,8 +420,8 @@
     margin:5px;
     margin:5px;
   }
   }
   .term-user-img {
   .term-user-img {
-    width: 25px;
-    height: 25px;
+    width: 20px;
+    height: 20px;
     border-radius: 50%;
     border-radius: 50%;
   }
   }
   .term-user-name {
   .term-user-name {
@@ -298,6 +434,12 @@
     justify-content: center;
     justify-content: center;
     align-items: center;
     align-items: center;
   }
   }
+  .center {
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+    align-items: center;
+  }
 
 
   .list-col::-webkit-scrollbar { /*滚动条整体样式*/
   .list-col::-webkit-scrollbar { /*滚动条整体样式*/
     width: 0px; /*高宽分别对应横竖滚动条的尺寸*/
     width: 0px; /*高宽分别对应横竖滚动条的尺寸*/
@@ -328,4 +470,43 @@
     font-size: 16px;
     font-size: 16px;
     color: rgb(185, 185, 185);
     color: rgb(185, 185, 185);
   }
   }
+
+  .modal-title {
+    margin:10px 5px;
+  }
+
+  .animated {
+    animation-duration: 0.5s;
+  }
+
+  @-webkit-keyframes slideInDown {
+    from {
+      -webkit-transform: translate3d(0,-10%, 0);
+      transform: translate3d(0, -10%, 0) !important;
+      visibility: visible;
+    }
+
+    to {
+      -webkit-transform: translate3d(0, 0%, 0);
+      transform: translate3d(0, 0%, 0);
+    }
+  }
+
+  @keyframes slideInDown {
+    from {
+      -webkit-transform: translate3d(0, -10%, 0);
+      transform: translate3d(0, -10%, 0) !important;
+      visibility: visible;
+    }
+
+    to {
+      -webkit-transform: translate3d(0, 0%, 0);
+      transform: translate3d(0, 0%, 0);
+    }
+  }
+
+  .slideInDown {
+    -webkit-animation-name: slideInDown;
+    animation-name: slideInDown;
+  }
 </style>
 </style>

+ 9 - 9
TEAMModelOS/ClientApp/common/Tree.vue

@@ -607,7 +607,7 @@
     },
     },
   };
   };
 </script>
 </script>
-<style>
+<style scoped>
   .tree-main {
   .tree-main {
     margin-left: 5%;
     margin-left: 5%;
     width: 90%;
     width: 90%;
@@ -660,19 +660,19 @@
     font-size: 14px;
     font-size: 14px;
   }
   }
 
 
-  .tools {
+  .tree-main /deep/ .tools {
     position: absolute;
     position: absolute;
     right: 60px;
     right: 60px;
     display: inline-flex;
     display: inline-flex;
     z-index: 999;
     z-index: 999;
   }
   }
 
 
-    .tools .ivu-icon {
-      margin-right: 15px;
-      font-size: 16px;
-      font-weight:200;
-      color: #808080;
-    }
+  .tree-main /deep/ .tools .ivu-icon {
+    margin-right: 15px;
+    font-size: 16px;
+    font-weight: 200;
+    color: #808080;
+  }
 
 
   .btn_more {
   .btn_more {
     background: #fff;
     background: #fff;
@@ -714,7 +714,7 @@
     animation-name: slideInDown;
     animation-name: slideInDown;
   }
   }
 
 
-  .singleClass {
+  .tree-main /deep/ .singleClass {
     display: inline-flex !important;
     display: inline-flex !important;
     flex-direction: row;
     flex-direction: row;
     align-items: center;
     align-items: center;

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

@@ -656,7 +656,7 @@ export default {
   },
   },
 };
 };
 </script>
 </script>
-<style>
+<style scoped>
 .ivu-icon-ios-paper-outline {
 .ivu-icon-ios-paper-outline {
   font-size: 16px;
   font-size: 16px;
 }
 }

+ 1 - 1
TEAMModelOS/ClientApp/components/SAannulus.vue

@@ -170,7 +170,7 @@
     }
     }
   }
   }
 </script>
 </script>
-<style>
+<style scoped>
   .annulus_box {
   .annulus_box {
     width:100%;
     width:100%;
     height:450px;
     height:450px;

+ 58 - 39
TEAMModelOS/ClientApp/components/SAbargraph.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
   <div class="bargraph">
   <div class="bargraph">
     <!--<div class="bargraph_title"><p>各校成绩排名</p></div>-->
     <!--<div class="bargraph_title"><p>各校成绩排名</p></div>-->
-    <div id="myChart" :style="{width: '100%', height: '450px'}"></div>
+    <div id="myChart" :style="{width: '100%', height: '460px'}"></div>
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
@@ -16,17 +16,14 @@
       this.init();
       this.init();
             },
             },
         computed:{
         computed:{
-        //  	命令发布监听
-        //mode () {
-        //  return this.$store.state.zhuxhuang.mode
-        //},
+
         zhuxhuang () {
         zhuxhuang () {
           return this.$store.state.zhuxhuang
           return this.$store.state.zhuxhuang
-        },
+          },
+        
        },
        },
       methods:{
       methods:{
         drawLine(obj) {
         drawLine(obj) {
-          console.log(obj, '这是调用教师页面方法');
           let _this = this;
           let _this = this;
           this.$store.state.zhuxhuang.mode = false;
           this.$store.state.zhuxhuang.mode = false;
           let myChart = this.$echarts.init(document.getElementById('myChart'));
           let myChart = this.$echarts.init(document.getElementById('myChart'));
@@ -40,24 +37,24 @@
                 fontSize:16
                 fontSize:16
               }
               }
             },
             },
-
             tooltip : {
             tooltip : {
               trigger: 'axis',
               trigger: 'axis',
               axisPointer : {            // 坐标轴指示器,坐标轴触发有效
               axisPointer : {            // 坐标轴指示器,坐标轴触发有效
                 type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
                 type : 'shadow'        // 默认为直线,可选为:'line' | 'shadow'
               },
               },
               formatter: function (value) {
               formatter: function (value) {
-               //console.log(value[0])
-                return value[0].name + '<br/>' +
-                  value[0].seriesName + ':' + value[0].data + '<br/>' +
-                  value[1].seriesName + ':' + value[1].data + '<br/>' +
-                  value[2].seriesName + ':' + value[2].data + '<br/>' +
-                  value[3].seriesName + ':' + value[3].data + '<br/>' +
-                  value[4].seriesName + ':' + value[4].data + '<br/>' +
-                  value[5].seriesName + ':' + value[5].data + '<br/>' +
-                  obj.one_average.name + ':' + obj.one_average.data + '<br/>' +
-                  obj.two_average.name + ':' + obj.two_average.data 
-              }
+                let arr = '';
+                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;
+                };
+                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,
               data:obj.titledata,
@@ -66,10 +63,10 @@
             grid: {
             grid: {
               left: '2%',
               left: '2%',
               right: '4%',
               right: '4%',
-              bottom: '0.5%',
+              bottom: '3.5%',
               containLabel: true,
               containLabel: true,
               x:100,
               x:100,
-              y2:200,
+              y2:100,
             },
             },
             xAxis : [
             xAxis : [
               {
               {
@@ -77,10 +74,10 @@
                 data : obj.object_name,
                 data : obj.object_name,
                 axisLabel: {
                 axisLabel: {
                   interval: 0,    //强制文字产生间隔
                   interval: 0,    //强制文字产生间隔
-                  rotate: 50,     //文字逆时针旋转50°
+                  rotate: 45,     //文字逆时针旋转50°
                   textStyle: {    //文字样式
                   textStyle: {    //文字样式
                     color: "#333",
                     color: "#333",
-                    fontSize: 11,
+                    fontSize: 12,
                     fontFamily: 'Microsoft YaHei',
                     fontFamily: 'Microsoft YaHei',
                   }
                   }
                 },
                 },
@@ -90,10 +87,33 @@
             dataZoom: {
             dataZoom: {
               show: true,
               show: true,
               realtime: true,
               realtime: true,
-              y: 410,
-              height: 15,
+              backgroundColor: "rgba(0,0,0,0)",
+              handleSize: 15,
+              backgroundColor: '#fff',
+              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',
+              fillerColor: new this.$echarts.graphic.LinearGradient(1, 0, 0, 0, [{
+                //给颜色设置渐变色 前面4个参数,给第一个设置1,第四个设置0 ,就是水平渐变
+                //给第一个设置0,第四个设置1,就是垂直渐变
+                offset: 0,
+                color: '#1eb5e5'
+              }, {
+                  offset: 1,
+                  color: '#5ccbb1'
+                }]),
+              handleColor: '#ddd',//h滑动图标的颜色
+              handleStyle: {
+                borderColor: "#cacaca",
+                borderWidth: "1",
+                shadowBlur: 0,
+                background: "#ddd",
+                shadowColor: "#ddd",
+              },
+              backgroundColor: '#eee',//两边未选中的滑动条区域的颜色
+              y: 420,
+              height: 8,
               start: 0,
               start: 0,
-              end: 60
+              end: 45,
             },
             },
             yAxis : [
             yAxis : [
               {
               {
@@ -174,10 +194,10 @@
                 },
                 },
               },
               },
               {
               {
-                name: obj.anotherone_data.name,
+                name: obj.quyudata.anotherone_data.name,
                 type: 'bar',
                 type: 'bar',
                 stack: '区域',
                 stack: '区域',
-                data: obj.anotherone_data.data,
+                data: obj.quyudata.anotherone_data.datalist,
                 barWidth : 20,
                 barWidth : 20,
                 itemStyle:{
                 itemStyle:{
                   normal:{
                   normal:{
@@ -186,10 +206,10 @@
                 },
                 },
               },
               },
               {
               {
-                name: obj.anothertwo_data.name,
+                name: obj.quyudata.anothertwo_data.name,
                 type: 'bar',
                 type: 'bar',
                 stack: '区域',
                 stack: '区域',
-                data: obj.anothertwo_data.data,
+                data: obj.quyudata.anothertwo_data.datalist,
                 barWidth: 20,
                 barWidth: 20,
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
@@ -198,10 +218,10 @@
                 },
                 },
               },
               },
               {
               {
-                name: obj.anotherthree_data.name,
+                name: obj.quyudata.anotherthree_data.name,
                 type: 'bar',
                 type: 'bar',
                 stack: '区域',
                 stack: '区域',
-                data: obj.anotherthree_data.data,
+                data: obj.quyudata.anotherthree_data.datalist,
                 barWidth: 20,
                 barWidth: 20,
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
@@ -210,10 +230,10 @@
                 },
                 },
               },
               },
               {
               {
-                name: obj.anotherfour_data.name,
+                name: obj.quyudata.anotherfour_data.name,
                 type: 'bar',
                 type: 'bar',
                 stack: '区域',
                 stack: '区域',
-                data: obj.anotherfour_data.data,
+                data: obj.quyudata.anotherfour_data.datalist,
                 barWidth: 20,
                 barWidth: 20,
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
@@ -222,10 +242,10 @@
                 },
                 },
               },
               },
               {
               {
-                name: obj.anotherfive_data.name,
+                name: obj.quyudata.anotherfive_data.name,
                 type: 'bar',
                 type: 'bar',
                 stack: '区域',
                 stack: '区域',
-                data: obj.anotherfive_data.data,
+                data: obj.quyudata.anotherfive_data.datalist,
                 barWidth: 20,
                 barWidth: 20,
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
@@ -234,10 +254,10 @@
                 },
                 },
               },
               },
               {
               {
-                name: obj.anothersix_data.name,
+                name: obj.quyudata.anothersix_data.name,
                 type: 'bar',
                 type: 'bar',
                 stack: '区域',
                 stack: '区域',
-                data: obj.anothersix_data.data,
+                data: obj.quyudata.anothersix_data.datalist,
                 barWidth: 20,
                 barWidth: 20,
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
@@ -318,7 +338,6 @@
         init() {
         init() {
             this.$api.FindBargraph({})
             this.$api.FindBargraph({})
               .then((response) => {
               .then((response) => {
-                //console.log(response.result, 111112);
                 this.$store.state.zhuxhuang = response.result.data;
                 this.$store.state.zhuxhuang = response.result.data;
               })
               })
         },
         },

+ 44 - 7
TEAMModelOS/ClientApp/components/SAbarline.vue

@@ -21,6 +21,7 @@
     methods: {
     methods: {
       drawLine(obj) {
       drawLine(obj) {
         let myChart = this.$echarts.init(document.getElementById('barline'));
         let myChart = this.$echarts.init(document.getElementById('barline'));
+        let _this = this;
         myChart.setOption({
         myChart.setOption({
           title: {
           title: {
             text: obj.titlename,
             text: obj.titlename,
@@ -40,7 +41,7 @@
           grid: {
           grid: {
             left: '1.5%',
             left: '1.5%',
             right: '4%',
             right: '4%',
-            bottom: '0.5%',
+            bottom: '4.5%',
             containLabel: true,
             containLabel: true,
             x: 100,
             x: 100,
             y2: 200,
             y2: 200,
@@ -77,10 +78,33 @@
           dataZoom: {
           dataZoom: {
             show: true,
             show: true,
             realtime: true,
             realtime: true,
-            y: 430,
-            height: 15,
+            backgroundColor: "rgba(0,0,0,0)",
+            handleSize: 15,
+            backgroundColor: '#fff',
+            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',
+            fillerColor: new this.$echarts.graphic.LinearGradient(1, 0, 0, 0, [{
+              //给颜色设置渐变色 前面4个参数,给第一个设置1,第四个设置0 ,就是水平渐变
+              //给第一个设置0,第四个设置1,就是垂直渐变
+              offset: 0,
+              color: '#1eb5e5'
+            }, {
+              offset: 1,
+              color: '#5ccbb1'
+            }]),
+            handleColor: '#ddd',//h滑动图标的颜色
+            handleStyle: {
+              borderColor: "#cacaca",
+              borderWidth: "1",
+              shadowBlur: 0,
+              background: "#ddd",
+              shadowColor: "#ddd",
+            },
+            backgroundColor: '#eee',//两边未选中的滑动条区域的颜色
+            y: 420,
+            height: 8,
             start: 0,
             start: 0,
-            end: 60
+            end: 45,
           },
           },
           yAxis: [
           yAxis: [
             {
             {
@@ -172,17 +196,30 @@
               },
               },
             }
             }
           ]
           ]
-
+        })
+        myChart.on('click', function (param) {
+          console.log(param, 123456789);
+          console.log(param.seriesName);
+          console.log(param.name);
+          _this.barclick();
         })
         })
       },
       },
+
       init() {
       init() {
         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;
-            //console.log(this.$store.state.barline,88888)
                 })
                 })
       },
       },
+      //点击班级 联动PR值
+      barclick() {
+        this.$api.FindClickPR({})
+          .then((response) => {
+           //console.log(response.result.data,77777)
+            this.$store.state.accuracyPR = response.result.data;
+          })
+      }
 
 
     },
     },
     watch: {
     watch: {
@@ -195,7 +232,7 @@
     }
     }
               }
               }
 </script>
 </script>
-<style>
+<style scoped>
   .barline_box {
   .barline_box {
     width:100%;
     width:100%;
     height:450px;
     height:450px;

+ 2 - 1
TEAMModelOS/ClientApp/components/SAbasics.vue

@@ -3,7 +3,8 @@
       <div class="basics">
       <div class="basics">
         <li class="basicslist" v-for="(item,index) in basicsdata"  v-if="index ==0">
         <li class="basicslist" v-for="(item,index) in basicsdata"  v-if="index ==0">
           <p class="basicslist_title">{{item.title}}</p>
           <p class="basicslist_title">{{item.title}}</p>
-          <p class="basicslist_num">{{item.num}}<Icon type="md-arrow-dropup"  style="color:red" v-if="icon_show"/></p>
+          <p class="basicslist_num">{{item.num}}<Icon type="ios-arrow-round-up"  style="color:#1acb9f;font-weight: bold;
+    font-size: 40px;margin-top:10px;" v-if="icon_show"/></p>
           <p class="basicslist_total">{{item.total}}</p>
           <p class="basicslist_total">{{item.total}}</p>
           <p class="basicslist_area">{{item.areadata}}</p>
           <p class="basicslist_area">{{item.areadata}}</p>
         </li>
         </li>

+ 9 - 9
TEAMModelOS/ClientApp/components/SAchooseattention.vue

@@ -5,34 +5,34 @@
         <Menu active-name="1-1" theme="dark" width="100%">
         <Menu active-name="1-1" theme="dark" width="100%">
           <MenuItem name="1-1">
           <MenuItem name="1-1">
             <Icon type="ios-home-outline"/>
             <Icon type="ios-home-outline"/>
-            <span>首页</span>
+            <span>{{$t('saindex.index')}}</span>
           </MenuItem>
           </MenuItem>
           <MenuItem name="1-2">
           <MenuItem name="1-2">
             <Icon type="ios-clipboard-outline"/>
             <Icon type="ios-clipboard-outline"/>
-            <span>成绩分析</span>
+            <span>{{$t('saindex.grade')}}</span>
           </MenuItem>
           </MenuItem>
           <MenuItem name="1-3">
           <MenuItem name="1-3">
             <Icon type="md-checkmark-circle-outline"/>
             <Icon type="md-checkmark-circle-outline"/>
-            <span>落点分析</span>
+            <span>{{$t('saindex.droppoint')}}</span>
           </MenuItem>
           </MenuItem>
           <MenuItem name="1-4">
           <MenuItem name="1-4">
             <Icon type="ios-create-outline"/>
             <Icon type="ios-create-outline"/>
-            <span>试题分析</span>
+            <span>{{$t('saindex.examination')}}</span>
           </MenuItem>
           </MenuItem>
           <MenuItem name="1-5">
           <MenuItem name="1-5">
             <Icon type="ios-medal-outline"/>
             <Icon type="ios-medal-outline"/>
-            <span>知识点掌握</span>
+            <span>{{$t('saindex.knowledge')}}</span>
           </MenuItem>
           </MenuItem>
         </Menu>
         </Menu>
       </Sider>
       </Sider>
     </Col>
     </Col>
     <Col span="24" class="choose">
     <Col span="24" class="choose">
     <div class="select">
     <div class="select">
-      <p class="choose_box_tilte" v-if="this.now_url == '/saindex'">选择关注年级</p>
-      <Cascader :data="selectgrade" v-model="grade" placeholder="请选择年级" @on-change="listchange" v-if="this.now_url == '/saindex'"></Cascader>
-      <p class="choose_box_tilte">选择关注学年期</p>
+      <p class="choose_box_tilte" v-if="this.now_url == '/saindex'">{{$t('sasidebar.class')}}</p>
+      <Cascader :data="selectgrade" v-model="grade"  placeholder="请选择年级" @on-change="listchange" v-if="this.now_url == '/saindex'"></Cascader>
+      <p class="choose_box_tilte">{{$t('sasidebar.term')}}</p>
       <Cascader :data="selectterm" v-model="semester" placeholder="请选择年级" @on-change="listterm"></Cascader>
       <Cascader :data="selectterm" v-model="semester" placeholder="请选择年级" @on-change="listterm"></Cascader>
-      <p class="choose_box_tilte" v-if="this.now_url == '/teach'">数据比较</p>
+      <p class="choose_box_tilte" v-if="this.now_url == '/teach'">{{$t('sasidebar.compare')}}</p>
       <Select v-model="model1" style="width:200px"  placeholder="请选择比较的数据"  v-if="this.now_url == '/teach'"  @on-change="datacompare">
       <Select v-model="model1" style="width:200px"  placeholder="请选择比较的数据"  v-if="this.now_url == '/teach'"  @on-change="datacompare">
         <Option v-for="item in selectcontrast" :value="item.value" :key="item.value">{{ item.label }}</Option>
         <Option v-for="item in selectcontrast" :value="item.value" :key="item.value">{{ item.label }}</Option>
       </Select>
       </Select>

+ 6 - 4
TEAMModelOS/ClientApp/components/SAchooseexam.vue

@@ -4,8 +4,8 @@
        <li v-for="(item,index) in selectexam" class="list_box" @click="select_box(index)">
        <li v-for="(item,index) in selectexam" class="list_box" @click="select_box(index)">
          <p class="box_title">{{item.title}}-{{item.type}}</p>
          <p class="box_title">{{item.title}}-{{item.type}}</p>
          <p class="box_time">{{item.time}}</p>
          <p class="box_time">{{item.time}}</p>
-         <p class="box_type">诊断类型:{{item.typename}}</p>
-         <p class="box_num">测试人数:{{item.num}}</p>
+         <p class="box_type">诊断类型{{item.typename}}</p>
+         <p class="box_num">测试人数:{{item.num}}人</p>
        </li>
        </li>
        <infinite-loading  @infinite="onInfinite" ref="infiniteLoading"></infinite-loading>
        <infinite-loading  @infinite="onInfinite" ref="infiniteLoading"></infinite-loading>
      </Col>
      </Col>
@@ -143,16 +143,18 @@
    background-color:#fdfdfd;
    background-color:#fdfdfd;
  }
  }
   .box_title{
   .box_title{
-    font-size: 1.2rem;
+    font-size: 1.1rem;
     color:#4b555e;
     color:#4b555e;
   }
   }
   .box_time{
   .box_time{
     font-size: 0.8rem;
     font-size: 0.8rem;
-    color:#4b555e
+    color:#4b555e;
+    padding-top:5px;
   }
   }
   .box_type,.box_num{
   .box_type,.box_num{
     font-size: 0.9rem;
     font-size: 0.9rem;
     color:#85929a;
     color:#85929a;
+    padding-top:5px;
   }
   }
 
 
 
 

+ 94 - 4
TEAMModelOS/ClientApp/components/SAlinechart.vue

@@ -12,7 +12,7 @@
       </div>
       </div>
     </Col>
     </Col>
     <Col span="24">
     <Col span="24">
-      <div id="myChart_line" :style="{width: '100%', height: '260px'}"></div>
+      <div id="myChart_line" :style="{width: '100%', height: '280px'}"></div>
     </Col>
     </Col>
   </Row>
   </Row>
 </template>
 </template>
@@ -81,10 +81,20 @@
           xAxis: {
           xAxis: {
             type: 'category',
             type: 'category',
             boundaryGap: false,
             boundaryGap: false,
-            data: obj.obj_data
+            data: obj.obj_data,
+            min: 'dataMin',
+            max: 'dataMax',
+            splitLine: {
+              show: true
+            }
           },
           },
           yAxis: {
           yAxis: {
-            type: 'value'
+            type: 'value',
+            min: 'dataMin',
+            max: 'dataMax',
+            splitLine: {
+              show: true
+            }
           },
           },
           series: [
           series: [
             {
             {
@@ -114,7 +124,6 @@
                   }, {
                   }, {
                     offset: 1, color: obj.end_color // 100% 处的颜色
                     offset: 1, color: obj.end_color // 100% 处的颜色
                   }],
                   }],
-                  global: false // 缺省为 false
                 }
                 }
               },
               },
             },
             },
@@ -131,6 +140,22 @@
                   }
                   }
                 }
                 }
               },
               },
+              areaStyle: {
+                color: {
+                  type: 'linear',
+                  x: 0,
+                  y: 0,
+                  x2: 0,
+                  y2: 1,
+                  colorStops: [{
+                    offset: 0, color: 'rgb(245,245,245,.5)' // 0% 处的颜色
+                  }, {
+                    offset: 0.5, color: 'rgb(245,245,245,.3)' // 100% 处的颜色
+                  }, {
+                    offset: 1, color: 'rgb(245,245,245,.1)' // 100% 处的颜色
+                  }],
+                }
+              },
             },
             },
             {
             {
               name: obj.obj_series[2].name,
               name: obj.obj_series[2].name,
@@ -145,6 +170,22 @@
                   }
                   }
                 }
                 }
               },
               },
+              areaStyle: {
+                color: {
+                  type: 'linear',
+                  x: 0,
+                  y: 0,
+                  x2: 0,
+                  y2: 1,
+                  colorStops: [{
+                    offset: 0, color: 'rgb(245,245,245,.5)' // 0% 处的颜色
+                  }, {
+                    offset: 0.5, color: 'rgb(245,245,245,.3)' // 100% 处的颜色
+                  }, {
+                    offset: 1, color: 'rgb(245,245,245,.1)' // 100% 处的颜色
+                  }],
+                }
+              },
             },
             },
             {
             {
               name: obj.obj_series[3].name,
               name: obj.obj_series[3].name,
@@ -159,6 +200,22 @@
                   }
                   }
                 }
                 }
               },
               },
+              areaStyle: {
+                color: {
+                  type: 'linear',
+                  x: 0,
+                  y: 0,
+                  x2: 0,
+                  y2: 1,
+                  colorStops: [{
+                    offset: 0, color: 'rgb(245,245,245,.5)' // 0% 处的颜色
+                  }, {
+                    offset: 0.5, color: 'rgb(245,245,245,.3)' // 100% 处的颜色
+                  }, {
+                    offset: 1, color: 'rgb(245,245,245,.1)' // 100% 处的颜色
+                  }],
+                }
+              },
             },
             },
             {
             {
               name: obj.obj_series[4].name,
               name: obj.obj_series[4].name,
@@ -173,6 +230,22 @@
                   }
                   }
                 }
                 }
               },
               },
+              areaStyle: {
+                color: {
+                  type: 'linear',
+                  x: 0,
+                  y: 0,
+                  x2: 0,
+                  y2: 1,
+                  colorStops: [{
+                    offset: 0, color: 'rgb(245,245,245,.5)' // 0% 处的颜色
+                  }, {
+                    offset: 0.5, color: 'rgb(245,245,245,.3)' // 100% 处的颜色
+                  }, {
+                    offset: 1, color: 'rgb(245,245,245,.1)' // 100% 处的颜色
+                  }],
+                }
+              },
             },
             },
             {
             {
               name: obj.obj_series[5].name,
               name: obj.obj_series[5].name,
@@ -187,6 +260,23 @@
                   }
                   }
                 }
                 }
               },
               },
+              areaStyle: {
+                color: {
+                  type: 'linear',
+                  x: 0,
+                  y: 0,
+                  x2: 0,
+                  y2: 1,
+                  colorStops: [{
+                    offset: 0, color: 'rgb(245,245,245,.5)' // 0% 处的颜色
+                  }, {
+                    offset: 0.5, color: 'rgb(245,245,245,.3)' // 100% 处的颜色
+                  }, {
+                    offset: 1, color: 'rgb(245,245,245,.1)' // 100% 处的颜色
+                  }],
+
+                }
+              },
             }
             }
           ]
           ]
         })
         })

+ 1 - 1
TEAMModelOS/ClientApp/components/SApercent.vue

@@ -496,7 +496,7 @@
       // 		监听指令
       // 		监听指令
       accuracyPRdata(value) {
       accuracyPRdata(value) {
         if (value) {
         if (value) {
-          //console.log(value, 6666);
+          console.log(value, 6666);
           this.accuracydatas = value.accuracydata;
           this.accuracydatas = value.accuracydata;
           this.prdata = value.percentdata;
           this.prdata = value.percentdata;
           let pie_one = value.accuracydata[0];
           let pie_one = value.accuracydata[0];

+ 44 - 45
TEAMModelOS/ClientApp/components/SAsubjectsmanifestation.vue

@@ -4,79 +4,79 @@
       <li class="subjects_listbox">
       <li class="subjects_listbox">
         <div class="top">
         <div class="top">
           <p class="num">{{list_data[0].score}}</p>
           <p class="num">{{list_data[0].score}}</p>
-          <p class="title">{{list_data[0].title}}</p>
+          <p class="datatitle">{{list_data[0].title}}</p>
         </div>
         </div>
         <div class="center">
         <div class="center">
           <div id="myChart_one" :style="{width: '100%', height: '150px'}"></div>
           <div id="myChart_one" :style="{width: '100%', height: '150px'}"></div>
         </div>
         </div>
         <div class="bottom">
         <div class="bottom">
-          <p class="num"><Icon :type="list_data[0].icon_type" :class="list_data[0].icon_color" />{{list_data[0].belowscore}}</p>
-          <p class="title">{{list_data[0].below_title}}</p>
+          <p class="num">{{list_data[0].belowscore}}<Icon :type="list_data[0].icon_type" :class="list_data[0].icon_color" /></p>
+          <p class="datatitle">{{list_data[0].below_title}}</p>
         </div>
         </div>
       </li>
       </li>
     <li class="subjects_listbox">
     <li class="subjects_listbox">
       <div class="top">
       <div class="top">
         <p class="num">{{list_data[1].score}}</p>
         <p class="num">{{list_data[1].score}}</p>
-        <p class="title">{{list_data[1].title}}</p>
+        <p class="datatitle">{{list_data[1].title}}</p>
       </div>
       </div>
       <div class="center">
       <div class="center">
         <div id="myChart_two" :style="{width: '100%', height: '150px'}"></div>
         <div id="myChart_two" :style="{width: '100%', height: '150px'}"></div>
       </div>
       </div>
       <div class="bottom">
       <div class="bottom">
-        <p class="num"><Icon :type="list_data[1].icon_type"  :class="list_data[1].icon_color" />{{list_data[1].belowscore}}</p>
-        <p class="title">{{list_data[1].below_title}}</p>
+        <p class="num">{{list_data[1].belowscore}}<Icon :type="list_data[1].icon_type"  :class="list_data[1].icon_color" /></p>
+        <p class="datatitle">{{list_data[1].below_title}}</p>
       </div>
       </div>
     </li>
     </li>
     <li class="subjects_listbox">
     <li class="subjects_listbox">
       <div class="top">
       <div class="top">
         <p class="num">{{list_data[2].score}}</p>
         <p class="num">{{list_data[2].score}}</p>
-        <p class="title">{{list_data[2].title}}</p>
+        <p class="datatitle">{{list_data[2].title}}</p>
       </div>
       </div>
       <div class="center">
       <div class="center">
         <div id="myChart_three" :style="{width: '100%', height: '150px'}"></div>
         <div id="myChart_three" :style="{width: '100%', height: '150px'}"></div>
       </div>
       </div>
       <div class="bottom">
       <div class="bottom">
-        <p class="num"><Icon :type="list_data[2].icon_type" :class="list_data[2].icon_color" />{{list_data[2].belowscore}}</p>
-        <p class="title">{{list_data[2].below_title}}</p>
+        <p class="num">{{list_data[2].belowscore}}<Icon :type="list_data[2].icon_type" :class="list_data[2].icon_color" /></p>
+        <p class="datatitle">{{list_data[2].below_title}}</p>
       </div>
       </div>
     </li>
     </li>
     <li class="subjects_listbox">
     <li class="subjects_listbox">
       <div class="top">
       <div class="top">
         <p class="num">{{list_data[3].score}}</p>
         <p class="num">{{list_data[3].score}}</p>
-        <p class="title">{{list_data[3].title}}</p>
+        <p class="datatitle">{{list_data[3].title}}</p>
       </div>
       </div>
       <div class="center">
       <div class="center">
         <div id="myChart_four" :style="{width: '100%', height: '150px'}"></div>
         <div id="myChart_four" :style="{width: '100%', height: '150px'}"></div>
       </div>
       </div>
       <div class="bottom">
       <div class="bottom">
-        <p class="num"><Icon :type="list_data[3].icon_type" :class="list_data[3].icon_color" />{{list_data[3].belowscore}}</p>
-        <p class="title">{{list_data[3].below_title}}</p>
+        <p class="num">{{list_data[3].belowscore}}<Icon :type="list_data[3].icon_type" :class="list_data[3].icon_color" /></p>
+        <p class="datatitle">{{list_data[3].below_title}}</p>
       </div>
       </div>
     </li>
     </li>
     <li class="subjects_listbox">
     <li class="subjects_listbox">
       <div class="top">
       <div class="top">
         <p class="num">{{list_data[4].score}}</p>
         <p class="num">{{list_data[4].score}}</p>
-        <p class="title">{{list_data[4].title}}</p>
+        <p class="datatitle">{{list_data[4].title}}</p>
       </div>
       </div>
       <div class="center">
       <div class="center">
         <div id="myChart_five" :style="{width: '100%', height: '150px'}"></div>
         <div id="myChart_five" :style="{width: '100%', height: '150px'}"></div>
       </div>
       </div>
       <div class="bottom">
       <div class="bottom">
-        <p class="num"><Icon :type="list_data[4].icon_type" :class="list_data[4].icon_color" />{{list_data[4].belowscore}}</p>
-        <p class="title">{{list_data[4].below_title}}</p>
+        <p class="num">{{list_data[4].belowscore}}<Icon :type="list_data[4].icon_type" :class="list_data[4].icon_color" /></p>
+        <p class="datatitle">{{list_data[4].below_title}}</p>
       </div>
       </div>
     </li>
     </li>
     <li class="subjects_listbox">
     <li class="subjects_listbox">
       <div class="top">
       <div class="top">
         <p class="num">{{list_data[5].score}}</p>
         <p class="num">{{list_data[5].score}}</p>
-        <p class="title">{{list_data[5].title}}</p>
+        <p class="datatitle">{{list_data[5].title}}</p>
       </div>
       </div>
       <div class="center">
       <div class="center">
         <div id="myChart_six" :style="{width: '100%', height: '150px'}"></div>
         <div id="myChart_six" :style="{width: '100%', height: '150px'}"></div>
       </div>
       </div>
       <div class="bottom">
       <div class="bottom">
-        <p class="num"><Icon :type="list_data[5].icon_type" :class="list_data[5].icon_color" />{{list_data[5].belowscore}}</p>
-        <p class="title">{{list_data[5].below_title}}</p>
+        <p class="num">{{list_data[5].belowscore}}<Icon :type="list_data[5].icon_type" :class="list_data[5].icon_color" /></p>
+        <p class="datatitle">{{list_data[5].below_title}}</p>
       </div>
       </div>
     </li>
     </li>
   </div>
   </div>
@@ -92,7 +92,7 @@
     },
     },
     created() {
     created() {
       this.init();
       this.init();
-     
+
     },
     },
     mounted() {
     mounted() {
       this.init();
       this.init();
@@ -106,7 +106,7 @@
 
 
       methods:{
       methods:{
           //图形一
           //图形一
-        
+
         One(obj) {
         One(obj) {
           //this.$store.state.pie.mode = false;
           //this.$store.state.pie.mode = false;
           let myChart = this.$echarts.init(document.getElementById('myChart_one'));
           let myChart = this.$echarts.init(document.getElementById('myChart_one'));
@@ -120,7 +120,7 @@
             color: obj.color,
             color: obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
-              radius: ['80%', '100%'],
+              radius: ['80%', '97%'],
               hoverAnimation: false,
               hoverAnimation: false,
               label: {
               label: {
                 normal: {
                 normal: {
@@ -170,10 +170,10 @@
                 },
                 },
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   },
                   },
                   emphasis: {
                   emphasis: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   }
                   }
                 },
                 },
                 hoverAnimation: false
                 hoverAnimation: false
@@ -194,7 +194,7 @@
             color: obj.color,
             color: obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
-              radius: ['80%', '100%'],
+              radius: ['80%', '97%'],
               hoverAnimation:false,
               hoverAnimation:false,
               label: {
               label: {
                 normal: {
                 normal: {
@@ -244,10 +244,10 @@
                 },
                 },
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   },
                   },
                   emphasis: {
                   emphasis: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   }
                   }
                 },
                 },
                 hoverAnimation: false
                 hoverAnimation: false
@@ -268,7 +268,7 @@
             color: obj.color,
             color: obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
-              radius: ['80%', '100%'],
+              radius: ['80%', '97%'],
               hoverAnimation:false,
               hoverAnimation:false,
               label: {
               label: {
                 normal: {
                 normal: {
@@ -318,10 +318,10 @@
                 },
                 },
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   },
                   },
                   emphasis: {
                   emphasis: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   }
                   }
                 },
                 },
                 hoverAnimation: false
                 hoverAnimation: false
@@ -342,7 +342,7 @@
             color: obj.color,
             color: obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
-              radius: ['80%', '100%'],
+              radius: ['80%', '97%'],
               hoverAnimation:false,
               hoverAnimation:false,
               label: {
               label: {
                 normal: {
                 normal: {
@@ -392,10 +392,10 @@
                 },
                 },
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   },
                   },
                   emphasis: {
                   emphasis: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   }
                   }
                 },
                 },
                 hoverAnimation: false
                 hoverAnimation: false
@@ -416,7 +416,7 @@
             color:obj.color,
             color:obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
-              radius: ['80%', '100%'],
+              radius: ['80%', '97%'],
               hoverAnimation:false,
               hoverAnimation:false,
               label: {
               label: {
                 normal: {
                 normal: {
@@ -466,10 +466,10 @@
                 },
                 },
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   },
                   },
                   emphasis: {
                   emphasis: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   }
                   }
                 },
                 },
                 hoverAnimation: false
                 hoverAnimation: false
@@ -490,7 +490,7 @@
             color: obj.color,
             color: obj.color,
             series: [{
             series: [{
               type: 'pie',
               type: 'pie',
-              radius: ['80%', '100%'],
+              radius: ['80%', '97%'],
               hoverAnimation:false,
               hoverAnimation:false,
               label: {
               label: {
                 normal: {
                 normal: {
@@ -540,10 +540,10 @@
                 },
                 },
                 itemStyle: {
                 itemStyle: {
                   normal: {
                   normal: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   },
                   },
                   emphasis: {
                   emphasis: {
-                    color: '#cdd4da'
+                    color: '#ddd'
                   }
                   }
                 },
                 },
                 hoverAnimation: false
                 hoverAnimation: false
@@ -591,6 +591,7 @@
 </script>
 </script>
 
 
 <style scoped>
 <style scoped>
+.ivu-icon{font-weight: bold;}
 .subjects_box{
 .subjects_box{
   width:100%;
   width:100%;
   padding: 2.5% 1% 5% 1%;
   padding: 2.5% 1% 5% 1%;
@@ -602,14 +603,12 @@
   color:#333;
   color:#333;
 }
 }
 .subjects_listbox{
 .subjects_listbox{
-  width:15%;
+  width:13.5%;
   height:100%;
   height:100%;
   /*border:1px solid red;*/
   /*border:1px solid red;*/
   text-align: center;
   text-align: center;
-  margin-top: 10%;
   float: left;
   float: left;
-  margin-left: 1%;
-  margin-bottom: 15%;
+  margin:10% 1.5% 15%;
 }
 }
  .top{
  .top{
    width:100%;
    width:100%;
@@ -622,14 +621,14 @@
   .num{
   .num{
     font-size: 1.5rem;
     font-size: 1.5rem;
   }
   }
-  .title{
+  .datatitle{
     font-size: 0.9rem;
     font-size: 0.9rem;
     color:#333;
     color:#333;
   }
   }
   .icon_top {
   .icon_top {
-    color:green;
+    color:#1acb9f;
   }
   }
   .icon_down {
   .icon_down {
-    color: red;
+    color: #f1494a;
   }
   }
 </style>
 </style>

+ 1 - 1
TEAMModelOS/ClientApp/css/site.css

@@ -133,4 +133,4 @@
     overflow:hidden;
     overflow:hidden;
     white-space: nowrap;
     white-space: nowrap;
     text-overflow: ellipsis;
     text-overflow: ellipsis;
-}
+}

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

@@ -16,5 +16,20 @@ export default {
     authSchool: "Authorized School",
     authSchool: "Authorized School",
     currentRole: "Current Role",
     currentRole: "Current Role",
     loginSuc:"Login Success"
     loginSuc:"Login Success"
+  },
+  //StudentAnalysis
+  saindex: {
+    index: "home",
+    grade: "Grade Analysis",
+    droppoint: "Droppoint Analysis",
+    examination: "Analysis of test paper",
+    knowledge:"Knowledge",
+  },
+  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"
   }
   }
 }
 }

+ 15 - 0
TEAMModelOS/ClientApp/locale/lang/zh-CN.js

@@ -16,5 +16,20 @@ export default {
     authSchool: "授权学校",
     authSchool: "授权学校",
     currentRole: "当前身份",
     currentRole: "当前身份",
     loginSuc:"登录成功"
     loginSuc:"登录成功"
+  },
+  //学情分析内容
+  saindex: {
+    index: "首页",
+    grade: "成绩分析",
+    droppoint: "落点分析",
+    examination: "试题分析",
+    knowledge:"知识点掌握",
+  },
+  sasidebar: {
+    class: "选择关注年级",
+    classmsg: "请选择年级",
+    term: "选择关注学年期",
+    term: "请选择学年期",
+    compare:"选择数据对比"
   }
   }
 }
 }

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

@@ -16,5 +16,20 @@ export default {
     authSchool:"授權學校",
     authSchool:"授權學校",
     currentRole: "當前身份",
     currentRole: "當前身份",
     loginSuc:"登陸成功"
     loginSuc:"登陸成功"
+  },
+  //學情分析
+  saindex: {
+    index: "首頁",
+    grade: "成績分析",
+    droppoint: "落點分析",
+    examination:"試題分析",
+    knowledge:"知識點掌握",
+  },
+  sasidebar: {
+    class: "選擇關注年級",
+    classmsg: "請選擇年級",
+    term: "選擇關注學年期",
+    term: "請選擇學年期",
+    compare:"選擇數據對比"
   }
   }
 }
 }

+ 5 - 1
TEAMModelOS/ClientApp/store/api.js

@@ -188,5 +188,9 @@ export default {
   //选择考试数据
   //选择考试数据
   FindClickExam: function () {
   FindClickExam: function () {
     return fetch('/api/class/getExam?identity=TeachChangeExam');
     return fetch('/api/class/getExam?identity=TeachChangeExam');
-  }
+  },
+  //点击班级 联动 RP值
+  FindClickPR: function () {
+    return fetch('/api/class/getExam?identity=TeachClickPR');
+  },
 }
 }

+ 2 - 5
TEAMModelOS/ClientApp/view/SAindex.vue

@@ -152,7 +152,6 @@
     font-family: "微软雅黑";
     font-family: "微软雅黑";
   }
   }
 </style>
 </style>
-
 <style scoped>
 <style scoped>
 .index{
 .index{
   width:100%;
   width:100%;
@@ -176,10 +175,8 @@
     margin-right: 2%;
     margin-right: 2%;
     margin-bottom: 3%;
     margin-bottom: 3%;
     background-color: #fdfdfd;
     background-color: #fdfdfd;
-    box-shadow: -2px 0 5px #a5acb2, /*左边阴影*/
-                2px 0 5px #a5acb2, /*右边阴影*/
-                0 -2px 5px #a5acb2, /*顶部阴影*/
-                0 4px 5px #a5acb2; /*底边阴影*/
+    box-shadow:0 4px 15px rgba(0,0,0,0.5);
+
   }
   }
   .left_echarts{
   .left_echarts{
     width:32%;
     width:32%;

+ 30 - 28
TEAMModelOS/ClientApp/view/index.vue

@@ -7,8 +7,8 @@
       <div class="centerCol" v-if="isSelectRole">
       <div class="centerCol" v-if="isSelectRole">
         <span class="title">{{$t('index.chooseRole')}}</span>
         <span class="title">{{$t('index.chooseRole')}}</span>
         <div class="select-role-wrap center">
         <div class="select-role-wrap center">
-          <div class="role-item centerCol" v-for="item in roleList" @click="handleRole(item)" >
-          <Icon type="ios-ribbon" size="60" /><span class="role-name">{{item.label}}</span>
+          <div class="role-item centerCol" v-for="item in roleList" @click="handleRole(item)">
+            <Icon type="ios-ribbon" size="60" /><span class="role-name">{{item.label}}</span>
           </div>
           </div>
         </div>
         </div>
       </div>
       </div>
@@ -63,11 +63,11 @@
           link: "/saindex"
           link: "/saindex"
         }, {
         }, {
           name: "课纲系统",
           name: "课纲系统",
-          link: "/Syllabus"
-          }, {
+          link: "/sak"
+        }, {
           name: "课纲管理",
           name: "课纲管理",
-          link: "/SyIndex"
-          }]
+          link: "/sak"
+        }]
       }
       }
     },
     },
     methods: {
     methods: {
@@ -149,8 +149,8 @@
               that.$Message.success(this.$t('index.loginSuc'));
               that.$Message.success(this.$t('index.loginSuc'));
             }
             }
             let decode = that.$jwtDecode(res.result.data.jwtToken.access_token);//解析返回的token
             let decode = that.$jwtDecode(res.result.data.jwtToken.access_token);//解析返回的token
-            that.roleList = decode.role;
-            that.changeLoginRoles(decode.role);//身份替换
+            that.roleList = Array.isArray(decode.role) ? decode.role : decode.role.split(' ');
+            that.changeLoginRoles(Array.isArray(decode.role) ? decode.role : decode.role.split(' '));//身份替换
             localStorage.setItem('token', token);
             localStorage.setItem('token', token);
             localStorage.setItem('username', decode.name);
             localStorage.setItem('username', decode.name);
             localStorage.setItem('decodeData', JSON.stringify(decode));
             localStorage.setItem('decodeData', JSON.stringify(decode));
@@ -195,13 +195,13 @@
     }
     }
   }
   }
 </script>
 </script>
-<style>
+<style scoped>
   html, body, #app {
   html, body, #app {
     height: 100% !important;
     height: 100% !important;
-    -moz-user-select: none; /*火狐 firefox*/
-    -webkit-user-select: none; /*webkit浏览器*/
-    -ms-user-select: none; /*IE10+*/
-    user-select: none;
+    /*-moz-user-select: none; /*火狐 firefox*/
+    /*-webkit-user-select: none;/ /*webkit浏览器*/
+    /*-ms-user-select: none;*/ /*IE10+*/
+    /*user-select: none;*/
   }
   }
 
 
   .main-content {
   .main-content {
@@ -280,22 +280,24 @@
     margin-top: 15px;
     margin-top: 15px;
   }
   }
 
 
-  .select-role .ivu-select {
-    color: #fff !important;
-    width: 150px !important;
-  }
+    .select-role /deep/ .ivu-select {
+      color: #000 !important;
+      width: 150px !important;
+    }
+
+    .select-role .ivu-select-selection {
+      background-color: rgba(255,255,255,.18) !important;
+      border-color: #373737 !important;
+    }
 
 
-  .select-role .ivu-select-selection {
-    background-color: rgba(255,255,255,.18) !important;
-    border-color: #373737 !important;
-  }
   .select-role-wrap {
   .select-role-wrap {
     background-color: rgba(218, 218, 218, 0.08);
     background-color: rgba(218, 218, 218, 0.08);
     padding: 5px;
     padding: 5px;
-    justify-content:normal;
-    flex-wrap:wrap;
-    max-width:930px;
+    justify-content: normal;
+    flex-wrap: wrap;
+    max-width: 930px;
   }
   }
+
   .role-item {
   .role-item {
     width: 210px;
     width: 210px;
     height: 210px;
     height: 210px;
@@ -307,10 +309,10 @@
     cursor: pointer;
     cursor: pointer;
   }
   }
 
 
-  .role-item:hover {
-    background: rgba(179,179,179,.42);
-    color: #fff;
-  }
+    .role-item:hover {
+      background: rgba(179,179,179,.42);
+      color: #fff;
+    }
 
 
   .title {
   .title {
     font-size: 26px;
     font-size: 26px;

+ 13 - 1
TEAMModelOS/ClientApp/view/sak/Syllabus.vue

@@ -72,8 +72,20 @@
     height: 100%;
     height: 100%;
   }
   }
   .sak-right {
   .sak-right {
-    width: 40%;
+    width: 40%; 
     height: 100%;
     height: 100%;
   }
   }
+  .center {
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+    align-items: center;
+  }
 
 
+  .centerCol {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+  }
 </style>
 </style>

+ 1 - 1
TEAMModelOS/ClientApp/view/syllabus/BaseKnowPoint.vue

@@ -75,7 +75,7 @@
 
 
   };
   };
 </script>
 </script>
-<style>
+<style scoped>
   .ivu-table-wrapper {
   .ivu-table-wrapper {
     border: 0;
     border: 0;
   }
   }

+ 1 - 1
TEAMModelOS/ClientApp/view/syllabus/BasePreview.vue

@@ -1,4 +1,4 @@
-<template>
+ <template>
   <div class="main">
   <div class="main">
     <Row class="header">
     <Row class="header">
       <span :class='["menu-item",currentMenuIndex == 0 ? "menu-item-active" : ""]' @click="handleMenuClick(0)">
       <span :class='["menu-item",currentMenuIndex == 0 ? "menu-item-active" : ""]' @click="handleMenuClick(0)">

+ 18 - 16
TEAMModelOS/JsonFile/Changearts.json

@@ -1,4 +1,4 @@
-{
+{
   "grade": "3",
   "grade": "3",
   "value": "gaozhong",
   "value": "gaozhong",
   "label": "高中",
   "label": "高中",
@@ -204,30 +204,32 @@
       "name": "政治",
       "name": "政治",
       "data": [ "78", "60", "62", "78", "74", "76", "79" ]
       "data": [ "78", "60", "62", "78", "74", "76", "79" ]
     },
     },
-  "anotherone_data": {
-    "name": "语文",
-    "data": [ "108", "108", "108", "108", "108", "108", "108" ]
-  },
-  "anothertwo_data": {
-    "name": "数学",
-    "data": [ "95", "95", "95", "95", "95", "95", "95" ]
-  },
-  "anotherthree_data": {
-    "name": "英语",
-    "data": [ "98", "98", "98", "98", "98", "98", "98" ]
-  },
+  "quyudata":{
+    "anotherone_data": {
+      "name": "语文",
+      "datalist": [ "98", "98", "98", "98", "98", "98", "98" ]
+    },
+    "anothertwo_data": {
+      "name": "数学",
+      "datalist": [ "115", "115", "115", "115", "115", "115", "115" ]
+    },
+    "anotherthree_data": {
+      "name": "英语",
+      "datalist": [ "92", "92", "92", "92", "92", "92", "92" ]
+    },
     "anotherfour_data": {
     "anotherfour_data": {
       "name": "地理",
       "name": "地理",
-      "data": [ "76", "76", "76", "76", "76", "76", "76" ]
+      "datalist": [ "69", "69", "69", "69", "69", "69", "69" ]
     },
     },
     "anotherfive_data": {
     "anotherfive_data": {
       "name": "历史",
       "name": "历史",
-      "data": [ "78", "78", "78", "78", "78", "78", "78" ]
+      "datalist": [ "75", "75", "75", "75", "75", "75", "75" ]
     },
     },
     "anothersix_data": {
     "anothersix_data": {
       "name": "政治",
       "name": "政治",
-      "data": [ "69", "69", "69", "69", "69", "69", "69" ]
+      "datalist": [ "78", "78", "78", "78", "78", "78", "78" ]
     }
     }
+  }
   },
   },
   "leida": {
   "leida": {
     "titledata": [ "年级数据", "区级数据" ],
     "titledata": [ "年级数据", "区级数据" ],

+ 25 - 24
TEAMModelOS/JsonFile/Changeexam.json

@@ -195,31 +195,32 @@
     "name": "生物",
     "name": "生物",
     "data": [ "78", "60", "62", "78", "74", "76", "79" ]
     "data": [ "78", "60", "62", "78", "74", "76", "79" ]
   },
   },
-  "anotherone_data": {
-    "name": "语文",
-    "data": [ "108", "108", "108", "108", "108", "108", "108" ]
-  },
-  "anothertwo_data": {
-    "name": "数学",
-    "data": [ "95", "95", "95", "95", "95", "95", "95" ]
-  },
-  "anotherthree_data": {
-    "name": "英语",
-    "data": [ "98", "98", "98", "98", "98", "98", "98" ]
-  },
-  "anotherfour_data": {
-    "name": "物理",
-    "data": [ "76", "76", "76", "76", "76", "76", "76" ]
-  },
-  "anotherfive_data": {
-    "name": "化学",
-    "data": [ "78", "78", "78", "78", "78", "78", "78" ]
-  },
-  "anothersix_data": {
-    "name": "生物",
-    "data": [ "69", "69", "69", "69", "69", "69", "69" ]
+   "quyudata":{
+    "anotherone_data": {
+      "name": "语文",
+      "datalist": [ "103", "103", "103", "103", "103", "103", "103" ]
+    },
+    "anothertwo_data": {
+      "name": "数学",
+      "datalist": [ "90", "90", "90", "90", "90", "90", "90" ]
+    },
+    "anotherthree_data": {
+      "name": "英语",
+      "datalist": [ "110", "110", "110", "110", "110", "110", "110" ]
+    },
+    "anotherfour_data": {
+      "name": "物理",
+      "datalist": [ "70", "70", "70", "70", "70", "70", "70" ]
+    },
+    "anotherfive_data": {
+      "name": "化学",
+      "datalist": [ "72", "72", "72", "72", "72", "72", "72" ]
+    },
+    "anothersix_data": {
+      "name": "生物",
+      "datalist": [ "78", "78", "78", "78", "78", "78", "78" ]
+    }
   }
   }
-
   },
   },
   "leida": {
   "leida": {
     "titledata": [ "年级数据", "区级数据" ],
     "titledata": [ "年级数据", "区级数据" ],

+ 26 - 24
TEAMModelOS/JsonFile/Changeexamtype.json

@@ -167,30 +167,32 @@
     "name": "生物",
     "name": "生物",
     "data": [ "78", "60", "62", "78", "74", "76", "79" ]
     "data": [ "78", "60", "62", "78", "74", "76", "79" ]
   },
   },
-  "anotherone_data": {
-    "name": "语文",
-    "data": [ "108", "108", "108", "108", "108", "108", "108" ]
-  },
-  "anothertwo_data": {
-    "name": "数学",
-    "data": [ "95", "95", "95", "95", "95", "95", "95" ]
-  },
-  "anotherthree_data": {
-    "name": "英语",
-    "data": [ "98", "98", "98", "98", "98", "98", "98" ]
-  },
-  "anotherfour_data": {
-    "name": "物理",
-    "data": [ "76", "76", "76", "76", "76", "76", "76" ]
-  },
-  "anotherfive_data": {
-    "name": "化学",
-    "data": [ "78", "78", "78", "78", "78", "78", "78" ]
-  },
-  "anothersix_data": {
-    "name": "生物",
-    "data": [ "69", "69", "69", "69", "69", "69", "69" ]
-  }
+    "quyudata": {
+      "anotherone_data": {
+        "name": "语文",
+        "datalist": [ "105", "105", "105", "105", "105", "105", "105" ]
+      },
+      "anothertwo_data": {
+        "name": "数学",
+        "datalist": [ "93", "93", "93", "93", "93", "93", "93" ]
+      },
+      "anotherthree_data": {
+        "name": "英语",
+        "datalist": [ "101", "101", "101", "101", "101", "101", "101" ]
+      },
+      "anotherfour_data": {
+        "name": "物理",
+        "datalist": [ "75", "75", "75", "75", "75", "75", "75" ]
+      },
+      "anotherfive_data": {
+        "name": "化学",
+        "datalist": [ "70", "70", "70", "70", "70", "70", "70" ]
+      },
+      "anothersix_data": {
+        "name": "生物",
+        "datalist": [ "81", "81", "81", "81", "81", "81", "81" ]
+      }
+    }
 
 
   },
   },
   "leida": {
   "leida": {

+ 26 - 25
TEAMModelOS/JsonFile/Changegrade.json

@@ -181,31 +181,32 @@
     "name": "生物",
     "name": "生物",
     "data": [ "78", "60", "62", "78", "74", "76", "79" ]
     "data": [ "78", "60", "62", "78", "74", "76", "79" ]
   },
   },
-  "anotherone_data": {
-    "name": "语文",
-    "data": [ "108", "108", "108", "108", "108", "108", "108" ]
-  },
-  "anothertwo_data": {
-    "name": "数学",
-    "data": [ "95", "95", "95", "95", "95", "95", "95" ]
-  },
-  "anotherthree_data": {
-    "name": "英语",
-    "data": [ "98", "98", "98", "98", "98", "98", "98" ]
-  },
-  "anotherfour_data": {
-    "name": "物理",
-    "data": [ "76", "76", "76", "76", "76", "76", "76" ]
-  },
-  "anotherfive_data": {
-    "name": "化学",
-    "data": [ "78", "78", "78", "78", "78", "78", "78" ]
-  },
-  "anothersix_data": {
-    "name": "生物",
-    "data": [ "69", "69", "69", "69", "69", "69", "69" ]
-  }
-
+   "quyudata": {
+      "anotherone_data": {
+        "name": "语文",
+        "datalist": [ "100", "100", "100", "100", "100", "100", "100" ]
+      },
+      "anothertwo_data": {
+        "name": "数学",
+        "datalist": [ "98", "98", "98", "98", "98", "98", "98" ]
+      },
+      "anotherthree_data": {
+        "name": "英语",
+        "datalist": [ "95", "95", "95", "95", "95", "95", "95" ]
+      },
+      "anotherfour_data": {
+        "name": "物理",
+        "datalist": [ "78", "78", "78", "78", "78", "78", "78" ]
+      },
+      "anotherfive_data": {
+        "name": "化学",
+        "datalist": [ "62", "62", "62", "62", "62", "62", "62" ]
+      },
+      "anothersix_data": {
+        "name": "生物",
+        "datalist": [ "70", "70", "70", "70", "70", "70", "70" ]
+      }
+    }
   },
   },
   "leida": {
   "leida": {
     "titledata": [ "年级数据", "区级数据" ],
     "titledata": [ "年级数据", "区级数据" ],

+ 25 - 23
TEAMModelOS/JsonFile/Changescience.json

@@ -219,29 +219,31 @@
       "name": "生物",
       "name": "生物",
       "data": [ "78", "60", "62", "78", "74", "76", "79" ]
       "data": [ "78", "60", "62", "78", "74", "76", "79" ]
     },
     },
-  "anotherone_data": {
-    "name": "语文",
-    "data": [ "108", "108", "108", "108", "108", "108", "108" ]
-  },
-  "anothertwo_data": {
-    "name": "数学",
-    "data": [ "95", "95", "95", "95", "95", "95", "95" ]
-  },
-  "anotherthree_data": {
-    "name": "英语",
-    "data": [ "98", "98", "98", "98", "98", "98", "98" ]
-  },
-    "anotherfour_data": {
-      "name": "物理",
-      "data": [ "76", "76", "76", "76", "76", "76", "76" ]
-    },
-    "anotherfive_data": {
-      "name": "化学",
-      "data": [ "78", "78", "78", "78", "78", "78", "78" ]
-    },
-    "anothersix_data": {
-      "name": "生物",
-      "data": [ "69", "69", "69", "69", "69", "69", "69" ]
+    "quyudata": {
+      "anotherone_data": {
+        "name": "语文",
+        "datalist": [ "96", "96", "96", "96", "96", "96", "96" ]
+      },
+      "anothertwo_data": {
+        "name": "数学",
+        "datalist": [ "89", "89", "89", "89", "89", "89", "89" ]
+      },
+      "anotherthree_data": {
+        "name": "英语",
+        "datalist": [ "92", "92", "92", "92", "92", "92", "92" ]
+      },
+      "anotherfour_data": {
+        "name": "物理",
+        "datalist": [ "78", "78", "78", "78", "78", "78", "78" ]
+      },
+      "anotherfive_data": {
+        "name": "化学",
+        "datalist": [ "68", "68", "68", "68", "68", "68", "68" ]
+      },
+      "anothersix_data": {
+        "name": "生物",
+        "datalist": [ "70", "70", "70", "70", "70", "70", "70" ]
+      }
     }
     }
   },
   },
   "leida": {
   "leida": {

+ 25 - 23
TEAMModelOS/JsonFile/Changeterm.json

@@ -196,29 +196,31 @@
       "name": "生物",
       "name": "生物",
       "data": [ "68", "60", "62", "78", "74", "76", "79" ]
       "data": [ "68", "60", "62", "78", "74", "76", "79" ]
     },
     },
-    "anotherone_data": {
-      "name": "语文",
-      "data": [ "108", "108", "108", "108", "108", "108", "108" ]
-    },
-    "anothertwo_data": {
-      "name": "数学",
-      "data": [ "95", "95", "95", "95", "95", "95", "95" ]
-    },
-    "anotherthree_data": {
-      "name": "英语",
-      "data": [ "98", "98", "98", "98", "98", "98", "98" ]
-    },
-    "anotherfour_data": {
-      "name": "物理",
-      "data": [ "76", "76", "76", "76", "76", "76", "76" ]
-    },
-    "anotherfive_data": {
-      "name": "化学",
-      "data": [ "78", "78", "78", "78", "78", "78", "78" ]
-    },
-    "anothersix_data": {
-      "name": "生物",
-      "data": [ "69", "69", "69", "69", "69", "69", "69" ]
+     "quyudata": {
+      "anotherone_data": {
+        "name": "语文",
+        "datalist": [ "106", "106", "106", "106", "106", "106", "106" ]
+      },
+      "anothertwo_data": {
+        "name": "数学",
+        "datalist": [ "99", "99", "99", "99", "99", "99", "99" ]
+      },
+      "anotherthree_data": {
+        "name": "英语",
+        "datalist": [ "90", "90", "90", "90", "90", "90", "90" ]
+      },
+      "anotherfour_data": {
+        "name": "物理",
+        "datalist": [ "72", "72", "72", "72", "72", "72", "72" ]
+      },
+      "anotherfive_data": {
+        "name": "化学",
+        "datalist": [ "68", "68", "68", "68", "68", "68", "68" ]
+      },
+      "anothersix_data": {
+        "name": "生物",
+        "datalist": [ "78", "78", "78", "78", "78", "78", "78" ]
+      }
     }
     }
   },
   },
   "leida": {
   "leida": {

+ 3 - 3
TEAMModelOS/JsonFile/EcharsL.json

@@ -1,9 +1,9 @@
 {
 {
   "mode": false,
   "mode": false,
-  "titledata": [ "校级数据", "区级数据" ],
-  "title_one": "校级数据",
+  "titledata": [ "成都七中", "区级数据" ],
+  "title_one": "成都七中",
   "title_two": "区级数据",
   "title_two": "区级数据",
-  "dataname": [ "校级 VS 区域" ],
+  "dataname": [ "成都七中 VS 区域" ],
   "data1": [ "109", "95", "101", "82", "78", "66" ],
   "data1": [ "109", "95", "101", "82", "78", "66" ],
   "data2": [ "120", "108", "108", "88", "69", "79" ],
   "data2": [ "120", "108", "108", "88", "69", "79" ],
   "indicator": [
   "indicator": [

+ 9 - 9
TEAMModelOS/JsonFile/EcharsY.json

@@ -8,13 +8,13 @@
     "occupy": "80",
     "occupy": "80",
     "surplus": "20",
     "surplus": "20",
     "below_title": "全区平均",
     "below_title": "全区平均",
-    "icon_type": "md-arrow-dropup",
+    "icon_type": "ios-arrow-round-up",
     "icon_color": "icon_top",
     "icon_color": "icon_top",
     "color": "#1cd0a1",
     "color": "#1cd0a1",
     "state": 1
     "state": 1
   },
   },
   {
   {
-   
+
     "id": "2",
     "id": "2",
     "title": "全校平均",
     "title": "全校平均",
     "score": "54.5",
     "score": "54.5",
@@ -23,13 +23,13 @@
     "surplus": "45",
     "surplus": "45",
     "below_title": "全区平均",
     "below_title": "全区平均",
     "belowscore": "68.5",
     "belowscore": "68.5",
-    "icon_type": "md-arrow-dropdown",
+    "icon_type": "ios-arrow-round-down",
     "icon_color": "icon_down",
     "icon_color": "icon_down",
     "color": "#ff6b6b",
     "color": "#ff6b6b",
     "state": 0
     "state": 0
   },
   },
   {
   {
-   
+
     "id": "3",
     "id": "3",
     "title": "全校平均",
     "title": "全校平均",
     "score": "72.9",
     "score": "72.9",
@@ -38,7 +38,7 @@
     "surplus": "30",
     "surplus": "30",
     "below_title": "全区平均",
     "below_title": "全区平均",
     "belowscore": "69.5",
     "belowscore": "69.5",
-    "icon_type": "md-arrow-dropup",
+    "icon_type": "ios-arrow-round-up",
     "icon_color": "icon_top",
     "icon_color": "icon_top",
     "color": "#1cd0a1",
     "color": "#1cd0a1",
     "state": 1
     "state": 1
@@ -53,7 +53,7 @@
     "surplus": "40",
     "surplus": "40",
     "below_title": "全区平均",
     "below_title": "全区平均",
     "belowscore": "70",
     "belowscore": "70",
-    "icon_type": "md-arrow-dropdown",
+    "icon_type": "ios-arrow-round-down",
     "icon_color": "icon_down",
     "icon_color": "icon_down",
     "color": "#FDD889",
     "color": "#FDD889",
     "state": 0
     "state": 0
@@ -68,13 +68,13 @@
     "surplus": "22",
     "surplus": "22",
     "below_title": "全区平均",
     "below_title": "全区平均",
     "belowscore": "73",
     "belowscore": "73",
-    "icon_type": "md-arrow-dropdown",
+    "icon_type": "ios-arrow-round-down",
     "icon_color": "icon_down",
     "icon_color": "icon_down",
     "color": "#FDD889",
     "color": "#FDD889",
     "state": 1
     "state": 1
   },
   },
   {
   {
-   
+
     "id": "6",
     "id": "6",
     "title": "全校平均",
     "title": "全校平均",
     "score": "85.8",
     "score": "85.8",
@@ -83,7 +83,7 @@
     "surplus": "15",
     "surplus": "15",
     "below_title": "全区平均",
     "below_title": "全区平均",
     "belowscore": "78",
     "belowscore": "78",
-    "icon_type": "md-arrow-dropup",
+    "icon_type": "ios-arrow-round-up",
     "icon_color": "icon_top",
     "icon_color": "icon_top",
     "color": "#1cd0a1",
     "color": "#1cd0a1",
     "state": 0
     "state": 0

+ 27 - 24
TEAMModelOS/JsonFile/EcharsZ.json

@@ -8,7 +8,8 @@
     "data": [ "470" ]
     "data": [ "470" ]
   },
   },
   "two_average": {
   "two_average": {
-    "name":"区域总平均分","data": [ "528" ]
+    "name": "区域总平均分",
+    "data": [ "528" ]
   },
   },
   "one_data": {
   "one_data": {
     "name": "语文",
     "name": "语文",
@@ -34,28 +35,30 @@
     "name": "生物",
     "name": "生物",
     "data": [ "78", "60", "62", "78", "74", "76", "79" ]
     "data": [ "78", "60", "62", "78", "74", "76", "79" ]
   },
   },
-  "anotherone_data": {
-    "name": "语文",
-    "data": [ "108", "108", "108", "108", "108", "108", "108" ]
-  },
-  "anothertwo_data": {
-    "name": "数学",
-    "data": [ "95", "95", "95", "95", "95", "95", "95" ]
-  },
-  "anotherthree_data": {
-    "name": "英语",
-    "data": [ "98", "98", "98", "98", "98", "98", "98" ]
-  },
-  "anotherfour_data": {
-    "name": "物理",
-    "data": [ "76", "76", "76", "76", "76", "76", "76" ]
-  },
-  "anotherfive_data": {
-    "name": "化学",
-    "data": [ "78", "78", "78", "78", "78", "78", "78" ]
-  },
-  "anothersix_data": {
-    "name": "生物",
-    "data": [ "69", "69", "69", "69", "69", "69", "69" ]
+  "quyudata":{
+    "anotherone_data": {
+      "name": "语文",
+      "datalist": [ "108", "108", "108", "108", "108", "108", "108" ]
+    },
+    "anothertwo_data": {
+      "name": "数学",
+      "datalist": [ "95", "95", "95", "95", "95", "95", "95" ]
+    },
+    "anotherthree_data": {
+      "name": "英语",
+      "datalist": [ "98", "98", "98", "98", "98", "98", "98" ]
+    },
+    "anotherfour_data": {
+      "name": "物理",
+      "datalist": [ "76", "76", "76", "76", "76", "76", "76" ]
+    },
+    "anotherfive_data": {
+      "name": "化学",
+      "datalist": [ "78", "78", "78", "78", "78", "78", "78" ]
+    },
+    "anothersix_data": {
+      "name": "生物",
+      "datalist": [ "69", "69", "69", "69", "69", "69", "69" ]
+    }
   }
   }
 }
 }

+ 3 - 3
TEAMModelOS/JsonFile/EcharsZx.json

@@ -28,8 +28,8 @@
       "data": [ "540", "635", "548", "515", "540" ]
       "data": [ "540", "635", "548", "515", "540" ]
     }
     }
   ],
   ],
-  "start_color": "rgba(255,48,48,0.6)",
-  "middle_color": "rgba(238,44,44,0.2)",
-  "end_color": "rgba(255,0,0,0.1)"
+  "start_color": "rgba(255,48,48,0.7)",
+  "middle_color": "rgba(238,44,44,0.5)",
+  "end_color": "rgba(255,0,0,0.2)"
 }
 }
 
 

+ 1 - 1
TEAMModelOS/JsonFile/TeachChangeterm.json

@@ -1,4 +1,4 @@
-{
+{
   "grade": "1",
   "grade": "1",
   "value": "gaozhong",
   "value": "gaozhong",
   "label": "高中",
   "label": "高中",

+ 67 - 0
TEAMModelOS/JsonFile/TeachClickPR.json

@@ -0,0 +1,67 @@
+{
+  "accuracydata": [
+    {
+      "id": "1",
+      "idname": "pie_one",
+      "echartstitle": "高一.一班级答对率",
+      "titlenum": "79",
+      "occupy": "79",
+      "residue": "21",
+      "data_name": "高一.一班级答对占比",
+      "high_accuracy": "72",
+      "low_accuracy": "34"
+    },
+    {
+      "id": "2",
+      "idname": "pie_two",
+      "echartstitle": "校级答对率",
+      "titlenum": "75",
+      "occupy": "75",
+      "residue": "25",
+      "high_accuracy": "70",
+      "low_accuracy": "55"
+    },
+    {
+      "id": "3",
+      "idname": "pie_three",
+      "echartstitle": "区级答对率",
+      "titlenum": "73.8",
+      "occupy": "73.8",
+      "residue": "26.2",
+      "high_accuracy": "75",
+      "low_accuracy": "60"
+    }
+  ],
+  "percentdata": [
+    {
+      "id": "4",
+      "idname": "pr_one",
+      "echartstitle": "高一.一班级PR值",
+      "titlenum": "82",
+      "occupy": "82",
+      "residue": "18",
+      "icon_type": "md-arrow-dropdown",
+      "icon_color": "icon_down"
+    },
+    {
+      "id": "5",
+      "idname": "pr_two",
+      "echartstitle": "校级排名PR值",
+      "titlenum": "90",
+      "occupy": "90",
+      "residue": "10",
+      "icon_type": "md-arrow-dropup",
+      "icon_color": "icon_top"
+    },
+    {
+      "id": "6",
+      "idname": "pr_three",
+      "echartstitle": "区级排名PR值",
+      "titlenum": "92",
+      "occupy": "92",
+      "residue": "8",
+      "icon_type": "md-arrow-dropdown",
+      "icon_color": "icon_down"
+    }
+  ]
+}

+ 1 - 1
TEAMModelOS/JsonFile/TeachEcharsZx.json

@@ -29,6 +29,6 @@
     }
     }
   ],
   ],
   "start_color": "rgba(0,206,209,0.6)",
   "start_color": "rgba(0,206,209,0.6)",
-  "middle_color": "rgba(72,209,204,0.3)",
+  "middle_color": "rgba(72,209,204,0.4)",
   "end_color": "rgba(64,224,208,0.1)"
   "end_color": "rgba(64,224,208,0.1)"
 }
 }

+ 1 - 2
TEAMModelOS/Views/Shared/_Layout.cshtml

@@ -4,7 +4,7 @@
 <head>
 <head>
     <meta charset="utf-8" />
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>@ViewData["Title"]TEAMModelOS</title>
+    <title>@ViewData["Title"]TEAM Model OS</title>
     <link rel="stylesheet" href="~/dist/style.css" asp-append-version="true" />
     <link rel="stylesheet" href="~/dist/style.css" asp-append-version="true" />
     <link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://account.habookaclass.biz/dist/6854ccd21afb6b1f994e1556c2360dd8.ico">
     <link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://account.habookaclass.biz/dist/6854ccd21afb6b1f994e1556c2360dd8.ico">
     @*<link rel="stylesheet" href="~/dist/vendor.css" asp-append-version="true" />
     @*<link rel="stylesheet" href="~/dist/vendor.css" asp-append-version="true" />
@@ -15,7 +15,6 @@
 
 
 <body>
 <body>
     @RenderBody()
     @RenderBody()
-
     <script src="~/dist/vendor.js" asp-append-version="true"></script>
     <script src="~/dist/vendor.js" asp-append-version="true"></script>
     @RenderSection("scripts", required: false)
     @RenderSection("scripts", required: false)
 </body>
 </body>

+ 1 - 2
TEAMModelOS/webpack.config.js

@@ -13,7 +13,6 @@ module.exports = () => {
   const extractCSS = new MiniCssExtractPlugin({
   const extractCSS = new MiniCssExtractPlugin({
     filename: 'style.css'
     filename: 'style.css'
   })
   })
-
   return [{
   return [{
     mode: (isDevBuild ? 'development' :'production'  ),
     mode: (isDevBuild ? 'development' :'production'  ),
     stats: { modules: false },
     stats: { modules: false },
@@ -27,7 +26,7 @@ module.exports = () => {
         'utils': path.resolve(__dirname, './ClientApp/utils'),
         'utils': path.resolve(__dirname, './ClientApp/utils'),
         'api': path.resolve(__dirname, './ClientApp/store/api'),
         'api': path.resolve(__dirname, './ClientApp/store/api'),
         '@': path.resolve(__dirname, './ClientApp'),
         '@': path.resolve(__dirname, './ClientApp'),
-      } : {
+      }: {
         'components': path.resolve(__dirname, './ClientApp/components'),
         'components': path.resolve(__dirname, './ClientApp/components'),
         'views': path.resolve(__dirname, './ClientApp/views'),
         'views': path.resolve(__dirname, './ClientApp/views'),
         'utils': path.resolve(__dirname, './ClientApp/utils'),
         'utils': path.resolve(__dirname, './ClientApp/utils'),