Explorar o código

Merge branch 'develop3.0-tmd' of http://106.12.23.251:10080/TEAMMODEL/TEAMModelOS into develop3.0-tmd

CrazyIter_Bin %!s(int64=4) %!d(string=hai) anos
pai
achega
249e529856

+ 23 - 0
TEAMModelOS/ClientApp/src/assets/iconfont/demo_index.html

@@ -30,6 +30,12 @@
       <div class="content unicode" style="display: block;">
       <div class="content unicode" style="display: block;">
           <ul class="icon_lists dib-box">
           <ul class="icon_lists dib-box">
           
           
+            <li class="dib">
+              <span class="icon iconfont">&#xe640;</span>
+                <div class="name">半对</div>
+                <div class="code-name">&amp;#xe640;</div>
+              </li>
+          
             <li class="dib">
             <li class="dib">
               <span class="icon iconfont">&#xe99d;</span>
               <span class="icon iconfont">&#xe99d;</span>
                 <div class="name">完成</div>
                 <div class="name">完成</div>
@@ -458,6 +464,15 @@
       <div class="content font-class">
       <div class="content font-class">
         <ul class="icon_lists dib-box">
         <ul class="icon_lists dib-box">
           
           
+          <li class="dib">
+            <span class="icon iconfont icon-half-right"></span>
+            <div class="name">
+              半对
+            </div>
+            <div class="code-name">.icon-half-right
+            </div>
+          </li>
+          
           <li class="dib">
           <li class="dib">
             <span class="icon iconfont icon-complete"></span>
             <span class="icon iconfont icon-complete"></span>
             <div class="name">
             <div class="name">
@@ -1054,6 +1069,14 @@
       <div class="content symbol">
       <div class="content symbol">
           <ul class="icon_lists dib-box">
           <ul class="icon_lists dib-box">
           
           
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-half-right"></use>
+                </svg>
+                <div class="name">半对</div>
+                <div class="code-name">#icon-half-right</div>
+            </li>
+          
             <li class="dib">
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
                 <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-complete"></use>
                   <use xlink:href="#icon-complete"></use>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 10 - 6
TEAMModelOS/ClientApp/src/assets/iconfont/iconfont.css


BIN=BIN
TEAMModelOS/ClientApp/src/assets/iconfont/iconfont.eot


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
TEAMModelOS/ClientApp/src/assets/iconfont/iconfont.js


+ 7 - 0
TEAMModelOS/ClientApp/src/assets/iconfont/iconfont.json

@@ -5,6 +5,13 @@
   "css_prefix_text": "icon-",
   "css_prefix_text": "icon-",
   "description": "",
   "description": "",
   "glyphs": [
   "glyphs": [
+    {
+      "icon_id": "5831259",
+      "name": "半对",
+      "font_class": "half-right",
+      "unicode": "e640",
+      "unicode_decimal": 58944
+    },
     {
     {
       "icon_id": "7674533",
       "icon_id": "7674533",
       "name": "完成",
       "name": "完成",

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 3 - 0
TEAMModelOS/ClientApp/src/assets/iconfont/iconfont.svg


BIN=BIN
TEAMModelOS/ClientApp/src/assets/iconfont/iconfont.ttf


BIN=BIN
TEAMModelOS/ClientApp/src/assets/iconfont/iconfont.woff


BIN=BIN
TEAMModelOS/ClientApp/src/assets/iconfont/iconfont.woff2


+ 289 - 289
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/LessonTestReport.vue

@@ -123,8 +123,6 @@
                 }
                 }
             },
             },
             testJudge() {
             testJudge() {
-                console.log(this.examInfo)
-                console.log(this.paperInfo)
                 if (this.examInfo.subject !== undefined) {
                 if (this.examInfo.subject !== undefined) {
                     this.testState = 0
                     this.testState = 0
                     let k = 0
                     let k = 0
@@ -291,301 +289,303 @@
 </script>
 </script>
 
 
 <style scoped>
 <style scoped>
-        .lesson-test-report {
-            min-height: 600px;
-        }
-
-        .scoreboard {
-            width: 100%;
-            /*height: 638px;*/
-            background: rgb(240, 240, 240);
-            /*border: 1px solid rgba(0, 0, 0, 0.1);*/
-            border-radius: 8px;
-            padding: 44px 50px;
-        }
-
-            .scoreboard .ivu-card {
-                margin-bottom: 20px;
-            }
-
-        .card-title {
-            font-size: 16px;
-            color: rgb(109, 114, 120);
-        }
-
-        .myscore {
-            font-size: 60px;
-            font-weight: 700;
-            /*font-family: Arial, Helvetica, sans-serif;*/
-            color: rgb(72, 72, 72);
-        }
-
-        .card-content {
-            text-align: center;
-        }
-
-        .score-card {
-            height: 140px;
-        }
-
-        .comment-card {
-            padding-bottom: 20px;
-        }
-        /*.chart-card {
-      height: 550px;
-    }*/
-        .keypoint {
-            color: #03966a;
-        }
-
+    .lesson-test-report {
+        min-height: 600px;
+    }
+
+    .scoreboard {
+        width: 100%;
+        /*height: 638px;*/
+        background: rgb(240, 240, 240);
+        /*border: 1px solid rgba(0, 0, 0, 0.1);*/
+        border-radius: 8px;
+        padding: 44px 50px;
+    }
+
+        .scoreboard .ivu-card {
+            margin-bottom: 20px;
+        }
+
+    .card-title {
+        font-size: 16px;
+        color: rgb(109, 114, 120);
+    }
+
+    .myscore {
+        font-size: 60px;
+        font-weight: 700;
+        /*font-family: Arial, Helvetica, sans-serif;*/
+        color: rgb(72, 72, 72);
+    }
+
+    .card-content {
+        text-align: center;
+    }
+
+    .score-card {
+        height: 140px;
+    }
+
+    .comment-card {
+        padding-bottom: 20px;
+    }
+
+    .chart-card {
+        z-index: 1
+    }
+
+    .keypoint {
+        color: #03966a;
+    }
+
+    .difficulty-rate {
+        text-align: center;
+        margin-top: 20px;
+        font-size: 32px;
+        /*font-family: Arial, Helvetica, sans-serif;*/
+        font-weight: 700;
+    }
+
+    .testReport-subject {
+        position: absolute;
+        right: 0px;
+        top: 85px;
+        border: solid 1px rgba(0, 0, 0, 0.2);
+        padding: 0px 20px;
+        border-radius: 4px;
+        font-size: 20px;
+    }
+
+    .subject-title {
+        color: #24b880 !important;
+    }
+
+    @media screen and (max-width: 1366px) {
         .difficulty-rate {
         .difficulty-rate {
-            text-align: center;
-            margin-top: 20px;
-            font-size: 32px;
-            /*font-family: Arial, Helvetica, sans-serif;*/
-            font-weight: 700;
-        }
-
-        .testReport-subject {
-            position: absolute;
-            right: 0px;
-            top: 85px;
-            border: solid 1px rgba(0, 0, 0, 0.2);
-            padding: 0px 20px;
-            border-radius: 4px;
-            font-size: 20px;
-        }
-
-        .subject-title {
-            color: #24b880 !important;
-        }
-
-        @media screen and (max-width: 1366px) {
-            .difficulty-rate {
-                margin-top: 10px !important;
-                line-height: 30px;
-                font-size: 30px;
-            }
-
-            .ivu-rate {
-                white-space: nowrap;
-            }
-        }
-
-        .qcontent {
-            margin-top: 10px;
-            list-style-type: none;
-        }
-
-        .qcol {
-            border-bottom: 1px solid rgba(0, 0, 0, 0.1);
-            padding: 20px 0px;
-            padding-right: 0px;
-        }
-
-        .qtype {
-            color: #6d7278;
-            border: 2px #979797 solid;
-            border-radius: 4px;
-            padding: 2px;
-            text-align: center;
-        }
-
-        .qtypeEn {
-            padding: 2px;
-            font-size: 6px;
-        }
-
-        .qAnsCondition {
-            width: 4%;
-            padding: 2px;
-            text-align: center;
-        }
-
-        .qdesc {
-            color: rgb(72, 72, 72);
-        }
-
-        .qScore {
-            font-weight: 800;
-            color: gray;
-            text-align: right;
-        }
-
-        .qIcon {
-            width: 24px;
-            height: 24px;
-            margin-right: 20px;
-        }
-
+            margin-top: 10px !important;
+            line-height: 30px;
+            font-size: 30px;
+        }
+
+        .ivu-rate {
+            white-space: nowrap;
+        }
+    }
+
+    .qcontent {
+        margin-top: 10px;
+        list-style-type: none;
+    }
+
+    .qcol {
+        border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+        padding: 20px 0px;
+        padding-right: 0px;
+    }
+
+    .qtype {
+        color: #6d7278;
+        border: 2px #979797 solid;
+        border-radius: 4px;
+        padding: 2px;
+        text-align: center;
+    }
+
+    .qtypeEn {
+        padding: 2px;
+        font-size: 6px;
+    }
+
+    .qAnsCondition {
+        width: 4%;
+        padding: 2px;
+        text-align: center;
+    }
+
+    .qdesc {
+        color: rgb(72, 72, 72);
+    }
+
+    .qScore {
+        font-weight: 800;
+        color: gray;
+        text-align: right;
+    }
+
+    .qIcon {
+        width: 24px;
+        height: 24px;
+        margin-right: 20px;
+    }
+
+    .qAnaly {
+        margin-top: 0px;
+        padding-left: 8.5%;
+    }
+
+    @media screen and (max-width: 767px) {
         .qAnaly {
         .qAnaly {
-            margin-top: 0px;
-            padding-left: 8.5%;
-        }
-
-        @media screen and (max-width: 767px) {
-            .qAnaly {
-                padding-left: 4.5%;
-            }
-        }
-
-        .qAnaly .rightAns {
-            color: rgb(20, 114, 199);
-        }
-
-        .qAnserlist {
-            color: gray;
-        }
-
-        .qAnaly .rightAnalys {
-            color: gray;
-        }
-
-        .rightAnsItem {
-            color: rgb(20, 114, 199);
-        }
-
-        .wrongAnsItem {
-            color: rgb(199, 71, 20);
-        }
-
-        .TitleRec1 {
-            position: relative;
-            top: 2px;
-            width: 10px;
-            height: 16px;
-            margin-right: 5px;
-            background-color: rgb(20, 114, 199);
-            float: left;
-        }
-
-        .TitleRec2 {
-            position: relative;
-            top: 2px;
-            width: 10px;
-            height: 16px;
-            margin-right: 5px;
-            float: left;
-            background-color: gray;
-        }
-
-        .TitleRec3 {
-            position: relative;
-            top: 2px;
-            width: 10px;
-            height: 16px;
-            margin-right: 5px;
-            float: left;
-            background-color: gray;
-        }
-
-        .related-question {
-            margin-top: 1%;
-            margin-left: 1.5%;
-        }
-
-            .related-question li {
-                margin-top: 5px;
-            }
-
-        /**對問題進行篩選 */
-        .filterBtn {
-            display: inline-block;
-        }
-
-        .checkAns {
-            display: inline-block;
-            margin-left: 10px;
-        }
-
-            .checkAns input[type="checkbox"] {
-                visibility: hidden;
-                margin-left: -10px;
-            }
-
-            .checkAns:hover {
-                cursor: pointer;
-            }
-
-            .checkAns span {
-                position: relative;
-                z-index: 2;
-                padding: 10px;
-                padding-right: 12px;
-                font-weight: bolder;
-            }
-
-            .checkAns input[type="checkbox"]:checked ~ span {
-                color: #fff;
-                font-weight: bolder;
-            }
-
-            .checkAns input[type="checkbox"]:checked ~ .noAnsBtn {
-                background-color: rgb(183, 183, 183) !important;
-                border: none;
-            }
-
-            .checkAns input[type="checkbox"]:checked ~ .rightBtn {
-                background-color: rgb(20, 114, 199) !important;
-                border: none;
-            }
-
-            .checkAns input[type="checkbox"]:checked ~ .wrongBtn {
-                background-color: rgb(255, 85, 8) !important;
-                border: none;
-            }
-
-        .noAnsBtn,
-        .rightBtn,
-        .wrongBtn {
-            background-color: #fff;
-            position: relative;
-            height: 26px;
-            top: -24px;
-            margin-bottom: -20px;
-            z-index: 1;
-            border-radius: 4px;
-            border: 1px solid rgb(197, 197, 197);
-        }
-
-        .ansDetail,
-        .ansDetail:hover,
-        .closeAnsDetail:hover {
-            float: right;
-            height: 28px;
-            width: 28px;
-            margin-top: -40px;
-            margin-bottom: -40px;
-            color: #03966a;
+            padding-left: 4.5%;
+        }
+    }
+
+    .qAnaly .rightAns {
+        color: rgb(20, 114, 199);
+    }
+
+    .qAnserlist {
+        color: gray;
+    }
+
+    .qAnaly .rightAnalys {
+        color: gray;
+    }
+
+    .rightAnsItem {
+        color: rgb(20, 114, 199);
+    }
+
+    .wrongAnsItem {
+        color: rgb(199, 71, 20);
+    }
+
+    .TitleRec1 {
+        position: relative;
+        top: 2px;
+        width: 10px;
+        height: 16px;
+        margin-right: 5px;
+        background-color: rgb(20, 114, 199);
+        float: left;
+    }
+
+    .TitleRec2 {
+        position: relative;
+        top: 2px;
+        width: 10px;
+        height: 16px;
+        margin-right: 5px;
+        float: left;
+        background-color: gray;
+    }
+
+    .TitleRec3 {
+        position: relative;
+        top: 2px;
+        width: 10px;
+        height: 16px;
+        margin-right: 5px;
+        float: left;
+        background-color: gray;
+    }
+
+    .related-question {
+        margin-top: 1%;
+        margin-left: 1.5%;
+    }
+
+        .related-question li {
+            margin-top: 5px;
+        }
+
+    /**對問題進行篩選 */
+    .filterBtn {
+        display: inline-block;
+    }
+
+    .checkAns {
+        display: inline-block;
+        margin-left: 10px;
+    }
+
+        .checkAns input[type="checkbox"] {
+            visibility: hidden;
+            margin-left: -10px;
+        }
+
+        .checkAns:hover {
             cursor: pointer;
             cursor: pointer;
         }
         }
 
 
-        .closeAnsDetail {
-            float: right;
-            height: 28px;
-            width: 28px;
-            margin-top: -40px;
-            margin-bottom: -40px;
-            color: gray;
-            cursor: pointer;
-        }
-
-        .hideqAnaly {
-            display: none;
+        .checkAns span {
+            position: relative;
+            z-index: 2;
+            padding: 10px;
+            padding-right: 12px;
+            font-weight: bolder;
         }
         }
 
 
-        .aclassoneloading3 {
+        .checkAns input[type="checkbox"]:checked ~ span {
+            color: #fff;
             font-weight: bolder;
             font-weight: bolder;
-            position: absolute;
-            text-align: center;
-            top: -70%;
-            right: -40%;
-            font-size: 20px;
-            color: rgba(0, 0, 0, 0.5)
         }
         }
 
 
-        .vld-overlay {
-            outline: none;
-            border: none
-        }
+        .checkAns input[type="checkbox"]:checked ~ .noAnsBtn {
+            background-color: rgb(183, 183, 183) !important;
+            border: none;
+        }
+
+        .checkAns input[type="checkbox"]:checked ~ .rightBtn {
+            background-color: rgb(20, 114, 199) !important;
+            border: none;
+        }
+
+        .checkAns input[type="checkbox"]:checked ~ .wrongBtn {
+            background-color: rgb(255, 85, 8) !important;
+            border: none;
+        }
+
+    .noAnsBtn,
+    .rightBtn,
+    .wrongBtn {
+        background-color: #fff;
+        position: relative;
+        height: 26px;
+        top: -24px;
+        margin-bottom: -20px;
+        z-index: 1;
+        border-radius: 4px;
+        border: 1px solid rgb(197, 197, 197);
+    }
+
+    .ansDetail,
+    .ansDetail:hover,
+    .closeAnsDetail:hover {
+        float: right;
+        height: 28px;
+        width: 28px;
+        margin-top: -40px;
+        margin-bottom: -40px;
+        color: #03966a;
+        cursor: pointer;
+    }
+
+    .closeAnsDetail {
+        float: right;
+        height: 28px;
+        width: 28px;
+        margin-top: -40px;
+        margin-bottom: -40px;
+        color: gray;
+        cursor: pointer;
+    }
+
+    .hideqAnaly {
+        display: none;
+    }
+
+    .aclassoneloading3 {
+        font-weight: bolder;
+        position: absolute;
+        text-align: center;
+        top: -70%;
+        right: -40%;
+        font-size: 20px;
+        color: rgba(0, 0, 0, 0.5)
+    }
+
+    .vld-overlay {
+        outline: none;
+        border: none
+    }
 </style>
 </style>

+ 16 - 0
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/PaperTest.vue

@@ -474,4 +474,20 @@
 
 
 <style scoped>
 <style scoped>
     @import "~@/assets/student-web/component_styles/lesson-testpop.css";
     @import "~@/assets/student-web/component_styles/lesson-testpop.css";
+    .que-item /deep/ table {
+        border-top: 1px solid #ccc;
+        border-left: 1px solid #ccc;
+    }
+
+    .que-item /deep/ table td,
+    table th {
+        border-right: 1px solid #ccc;
+        padding: 3px 5px;
+    }
+
+        .que-item /deep/ table th {
+            border-bottom: 1px solid #ccc;
+            border-right: 1px solid #ccc;
+            text-align: center;
+        }
 </style>
 </style>

+ 3 - 3
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/PaperView.vue

@@ -115,6 +115,8 @@
                             this.paperData[i].stuAns = resData.stuAns[i]
                             this.paperData[i].stuAns = resData.stuAns[i]
                             this.paperData[i].stuScore = resData.stuScore[i]
                             this.paperData[i].stuScore = resData.stuScore[i]
                         }
                         }
+                        console.log('已有数据',this.selectData)
+                        this.opentestWithSubject(this.paperData[0])
                     })
                     })
                 }
                 }
             },
             },
@@ -154,18 +156,15 @@
                             exam = item
                             exam = item
                         }
                         }
                     }
                     }
-                    console.log(code)
                     if (exam.id == undefined) {
                     if (exam.id == undefined) {
                         this.selectData = await this.$evTools.getStuPaper(code)
                         this.selectData = await this.$evTools.getStuPaper(code)
                         this.examData.push(this.selectData)
                         this.examData.push(this.selectData)
                     } else {
                     } else {
                         this.selectData = exam
                         this.selectData = exam
                     }
                     }
-                    console.log(this.selectData)
                     this.chooseData = data
                     this.chooseData = data
                     this.isLoad = false
                     this.isLoad = false
                     if (this.selectData.item.length > 0) {
                     if (this.selectData.item.length > 0) {
-                        console.log(data.stuAns[0])
                         if (data.stuAns[0] !== undefined) {
                         if (data.stuAns[0] !== undefined) {
                             this.isExamDown = true
                             this.isExamDown = true
                         }
                         }
@@ -188,6 +187,7 @@
         watch: {
         watch: {
             $route: {
             $route: {
                 handler(val, oldval) {
                 handler(val, oldval) {
+                    console.log('122112221212125251')
                     this.isExamDown = false
                     this.isExamDown = false
                     this.examData = []
                     this.examData = []
                     this.getPaperData()
                     this.getPaperData()

+ 0 - 29
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventList.vue

@@ -251,35 +251,6 @@
 
 
         components: { PreviewProgressPie },
         components: { PreviewProgressPie },
         watch: {
         watch: {
-            /*eventTypeCheckers: function (value) {
-              let countfit = 0;
-
-              for (let i = 0; i < this.mockdata.length; i++) {
-                if (
-                  value == "" &&
-                  this.mockdata[i].eventName.includes(this.search) == true
-                ) {
-                  countfit += 1;
-                } else if (
-                  value == "" &&
-                  this.mockdata[i].eventName.includes(this.search) == false
-                ) {
-                  countfit += 0;
-                } else if (value != "") {
-                  if (
-                    value.includes(this.mockdata[i].eventType) &&
-                    this.mockdata[i].eventName.includes(this.search)
-                  ) {
-                    countfit++;
-                  } else if (value.includes(this.mockdata[i].eventType) == false) {
-                    countfit += 0;
-                  }
-                }
-              }
-              if (countfit == 0 && this.search != "") {
-                this.isListNoItem = true;
-              } else this.isListNoItem = false;
-            },*/
             search: function (value) {
             search: function (value) {
                 let countfit = 0;
                 let countfit = 0;
                 for (let i = 0; i < this.eventList.length; i++) {
                 for (let i = 0; i < this.eventList.length; i++) {

+ 0 - 2
TEAMModelOS/ClientApp/src/store/module/studentWeb.js

@@ -139,8 +139,6 @@ export default {
             state.currentQuestionNo = no;
             state.currentQuestionNo = no;
         },
         },
         SetPaperInfo(state, data) {
         SetPaperInfo(state, data) {
-            console.log('存入数据')
-            console.log(data)
             state.paperInfo = {}
             state.paperInfo = {}
             state.paperInfo = data
             state.paperInfo = data
         },
         },

+ 35 - 0
TEAMModelOS/ClientApp/src/view/learnactivity/ManageEvaluation.less

@@ -217,4 +217,39 @@
     margin-left: 2px;
     margin-left: 2px;
     border-radius: 5px;
     border-radius: 5px;
     font-size:12px;
     font-size:12px;
+}
+.overview-box{
+    width: 100%;
+    // min-height: 400px;
+    padding: 10px 20px 10px 10px;
+    display: flex;
+    justify-content: space-between;
+    background: #404040;
+    // margin-top: 5px;
+    .count-box{
+        width: 120px;
+        height: fit-content;
+        text-align: center;
+        background: #404040;
+        padding: 10px 0px;
+        .count-icon{
+            color: white;
+            font-size: 18px;
+            margin-right: 5px;
+            vertical-align: sub;
+            // display: block;
+        }
+        .count-subject-text{
+            display: block;
+            color: white;
+            font-size: 12px;
+        }
+        .count-subject-num{
+            display: block;
+            color: white;
+            font-size: 35px;
+            font-weight: 800;
+        }
+    }
+    
 }
 }

+ 49 - 0
TEAMModelOS/ClientApp/src/view/learnactivity/ManageEvaluation.vue

@@ -73,6 +73,52 @@
                 </div>
                 </div>
                 <!-- 试卷评测打分 -->
                 <!-- 试卷评测打分 -->
                 <div :class="curBarIndex == 0 ? 'animated fadeIn evaluation-base-info':'evaluation-base-info animated fadeOutRight'" v-show="curBarIndex == 0">
                 <div :class="curBarIndex == 0 ? 'animated fadeIn evaluation-base-info':'evaluation-base-info animated fadeOutRight'" v-show="curBarIndex == 0">
+                    <div class="overview-box" style="display:none;">
+                        <div class="count-box">
+                            <span class="count-subject-num">1</span>
+                            <span class="count-subject-text">
+                                <Icon custom="iconfont icon-kecheng" class="count-icon" size="14" style="vertical-align: text-top;" />
+                                学科
+                            </span>
+                        </div>
+                        <div class="count-box">
+                            <span class="count-subject-num">2</span>
+                            <span class="count-subject-text">
+                                <Icon custom="iconfont icon-schedule" class="count-icon" size="14" style="vertical-align: text-top;" />
+                                年级
+                            </span>
+
+                        </div>
+                        <div class="count-box">
+                            <span class="count-subject-num">5</span>
+                            <span class="count-subject-text">
+                                <Icon custom="iconfont icon-class-self" class="count-icon" />
+                                班级
+                            </span>
+
+                        </div>
+                        <div class="count-box">
+                            <span class="count-subject-num">752</span>
+                            <span class="count-subject-text">
+                                <Icon type="ios-people" class="count-icon" />
+                                人数
+                            </span>
+                        </div>
+                        <div class="count-box">
+                            <span class="count-subject-num">602</span>
+                            <span class="count-subject-text">
+                                <Icon type="ios-paper" class="count-icon" />
+                                已作答
+                            </span>
+                        </div>
+                        <div class="count-box">
+                            <span class="count-subject-num">600</span>
+                            <span class="count-subject-text">
+                                <Icon type="md-star" class="count-icon" />
+                                已评分
+                            </span>
+                        </div>
+                    </div>
                     <Scoring :examInfo="examDetaiInfo"></Scoring>
                     <Scoring :examInfo="examDetaiInfo"></Scoring>
                 </div>
                 </div>
                 <Loading :top="200" type="1" style="text-align:center" v-show="isLoading"></Loading>
                 <Loading :top="200" type="1" style="text-align:center" v-show="isLoading"></Loading>
@@ -264,6 +310,9 @@ export default {
             this.$api.learnActivity.FindExamInfo(requestData).then(
             this.$api.learnActivity.FindExamInfo(requestData).then(
                 res => {
                 res => {
                     if (res.error == null) {
                     if (res.error == null) {
+                        res.examInfo = res.examInfo.sort((a, b) => {
+                            return a.createTime - b.createTime > 0 ? -1 : 1
+                        })
                         this.evaluationList = res.examInfo
                         this.evaluationList = res.examInfo
                         this.filterByPeriod()
                         this.filterByPeriod()
                         //如果当前学段没有评测则自动切换下一个学段
                         //如果当前学段没有评测则自动切换下一个学段

+ 6 - 0
TEAMModelOS/ClientApp/src/view/learnactivity/PaperScore.vue

@@ -87,6 +87,9 @@
                                     <p class="answer-title">
                                     <p class="answer-title">
                                         <span v-show="!showQu" class="item-question-order">题号 {{ index + 1 }} .</span>
                                         <span v-show="!showQu" class="item-question-order">题号 {{ index + 1 }} .</span>
                                         【学 生 作 答】
                                         【学 生 作 答】
+                                        <Icon type="md-checkmark" v-if="studentAnswer.scores[typeIndex + index] == item.score" />
+                                        <Icon type="md-close" color="#ed4014" v-else-if="studentAnswer.scores[typeIndex + index] == 0" />
+                                        <Icon custom="iconfont icon-half-right" color="#ff9900" v-else-if="studentAnswer.scores[typeIndex + index] != -1" />
                                     </p>
                                     </p>
                                     <!--学生作答答案显示区域-->
                                     <!--学生作答答案显示区域-->
                                     <div class="stu-answer-box item-explain-details" v-if="studentAnswer.answers && studentAnswer.answers.length">
                                     <div class="stu-answer-box item-explain-details" v-if="studentAnswer.answers && studentAnswer.answers.length">
@@ -202,6 +205,9 @@
                                         <p class="answer-title">
                                         <p class="answer-title">
                                             <span class="child-item-question-order" v-show="!showQu">【题号 {{(index + 1)+'-'+ (childIndex + 1) }}】</span>
                                             <span class="child-item-question-order" v-show="!showQu">【题号 {{(index + 1)+'-'+ (childIndex + 1) }}】</span>
                                             【学 生 作 答】
                                             【学 生 作 答】
+                                            <Icon type="md-checkmark" v-if="studentAnswer.scores[typeIndex + index + childIndex] == childItem.score" />
+                                            <Icon type="md-close" color="#ed4014" v-else-if="studentAnswer.scores[typeIndex + index + childIndex] == 0" />
+                                            <Icon custom="iconfont icon-half-right" color="#ff9900" v-else-if="studentAnswer.scores[typeIndex + index + childIndex] != -1" />
                                         </p>
                                         </p>
                                         <!--学生作答答案显示区域-->
                                         <!--学生作答答案显示区域-->
                                         <div class="stu-answer-box item-explain-details" v-if="studentAnswer.answers && studentAnswer.answers.length">
                                         <div class="stu-answer-box item-explain-details" v-if="studentAnswer.answers && studentAnswer.answers.length">

+ 29 - 6
TEAMModelOS/ClientApp/src/view/learnactivity/Scoring.vue

@@ -13,8 +13,8 @@
             <Select filterable v-model="chooseClass" class="filter-select" style="width:140px;" @on-change="getClassStudent" size="small">
             <Select filterable v-model="chooseClass" class="filter-select" style="width:140px;" @on-change="getClassStudent" size="small">
                 <Option v-for="(item,index) in classList" v-show="item.gradeId == chooseGrade" :value="item.id" :key="index">{{ item.name }}</Option>
                 <Option v-for="(item,index) in classList" v-show="item.gradeId == chooseGrade" :value="item.id" :key="index">{{ item.name }}</Option>
             </Select>
             </Select>
-            <span style="margin-left:5px">学生:</span>
-            <Select filterable v-model="chooseStudent.id" label-in-value class="filter-select" style="width:140px;" size="small" clearable @on-change="setStuInfo">
+            <span style="margin-left:5px" v-show="showTest">学生:</span>
+            <Select filterable v-model="chooseStudent.id" label-in-value class="filter-select" style="width:140px;" size="small" clearable @on-change="setStuInfo" v-show="showTest">
                 <Option v-for="(item,index) in students" :value="item.id" :key="index">
                 <Option v-for="(item,index) in students" :value="item.id" :key="index">
                     <span class="select-status-tag" :style="{'background':item.status == 1 ? '#ed4014' : item.status == 2 ? '#ff9900' : '#19be6b'}"></span>
                     <span class="select-status-tag" :style="{'background':item.status == 1 ? '#ed4014' : item.status == 2 ? '#ff9900' : '#19be6b'}"></span>
                     {{ item.name }}
                     {{ item.name }}
@@ -113,8 +113,31 @@ export default {
         };
         };
     },
     },
     methods: {
     methods: {
-        getNextStu(){
-            
+        getNextStu() {
+            console.log('批改下一位学生')
+            console.log(this.paperInfo)
+            let flag = false
+            for (let index in this.paperInfo[this.chooseClass].studentScores) {
+                if (this.paperInfo[this.chooseClass].studentScores[index].indexOf(-1) >= 0) {
+                    if (this.paperInfo[this.chooseClass].studentAnswers[index].length) {
+                        flag = true
+                        this.chooseStudent.id = this.paperInfo[this.chooseClass].studentIds[index]
+                        let curStu = students.find(item => {
+                            return item.id == this.chooseStudent.id
+                        })
+                        if (curStu) this.chooseStudent.name = curStu.name
+                        this.chooseStudent.answers = this.paperInfo[this.chooseClass].studentAnswers[index]
+                        this.chooseStudent.scores = this.paperInfo[this.chooseClass].studentScores[index]
+                        this.chooseStudent.classId = this.chooseClass
+                        this.chooseStudent.status = false
+                        break
+                    }
+                }
+            }
+            if(!flag){
+                this.showTest = false
+                this.$Message.warning('已完成所有学生作答的评分!')
+            }
         },
         },
         //学生未作答提示
         //学生未作答提示
         noAnswer() {
         noAnswer() {
@@ -390,14 +413,14 @@ export default {
 </style>
 </style>
 <style lang="less">
 <style lang="less">
 .scoring-main-wrap .ivu-table-fixed-body {
 .scoring-main-wrap .ivu-table-fixed-body {
-    background: #353535;
+    background: #2B2B2E;
 }
 }
 .scoring-main-wrap .ivu-table-fixed-right::before,
 .scoring-main-wrap .ivu-table-fixed-right::before,
 .scoring-main-wrap .ivu-table-fixed::before {
 .scoring-main-wrap .ivu-table-fixed::before {
     display: none;
     display: none;
 }
 }
 .scoring-main-wrap .ivu-table-fixed-header thead tr th {
 .scoring-main-wrap .ivu-table-fixed-header thead tr th {
-    background: #404040;
+    background: #2B2B2E;
     border-color: #606060;
     border-color: #606060;
     color: white;
     color: white;
 }
 }

+ 1 - 1
TEAMModelOS/Controllers/Common/ExamController.cs

@@ -201,7 +201,7 @@ namespace TEAMModelOS.Controllers
                 //var id = jwt.Payload.Sub;
                 //var id = jwt.Payload.Sub;
                 var client = _azureCosmos.GetCosmosClient();
                 var client = _azureCosmos.GetCosmosClient();
                 List<ExamInfo> examInfo = new List<ExamInfo>();
                 List<ExamInfo> examInfo = new List<ExamInfo>();
-                var query = $"select c.id,c.name,c.code,c.period,c.startTime,c.stuCount,c.type,c.progress,c.examType from c ";
+                var query = $"select c.id,c.name,c.code,c.period,c.startTime,c.stuCount,c.type,c.progress,c.examType,c.createTime from c ";
                 await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryStreamIterator(queryText: query, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Exam-{school_code}") }))
                 await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryStreamIterator(queryText: query, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Exam-{school_code}") }))
                 {
                 {
                     using var json = await JsonDocument.ParseAsync(item.ContentStream);
                     using var json = await JsonDocument.ParseAsync(item.ContentStream);