Browse Source

修改考试样式

aaa 3 years ago
parent
commit
df9a97ff24
3 changed files with 57 additions and 20 deletions
  1. 2 1
      src/store/modules/exam.js
  2. 31 19
      src/views/home/exam/page-exam.vue
  3. 24 0
      src/views/home/index.vue

+ 2 - 1
src/store/modules/exam.js

@@ -1,7 +1,8 @@
 const exam = {
   state: {
     examItem: null, // 单个考试的信息
-    examItemQuestionsList: [] // 单个考试的试题信息
+    examItemQuestionsList: [], // 单个考试的试题信息
+    examHistoryObj: null // 考试所有历史记录
   },
   mutations: {
     updateExamItemStore(state, { field, value }) {

+ 31 - 19
src/views/home/exam/page-exam.vue

@@ -12,13 +12,13 @@
           <div
             :class="{
               'exam-item-states': true,
-              'exam-item-states-yellow':
+              'exam-item-states-gray':
                 item.examStatus === examStatesType.NOT_START,
               'exam-item-states-green':
                 item.examStatus === examStatesType.STARTED,
               'exam-item-states-red':
-                item.examStatus === examStatesType.STARTEXAMING,
-              'exam-item-states-gray': item.examStatus === examStatesType.OVER
+                item.examStatus === examStatesType.EXAMOVER ||
+                item.examStatus === examStatesType.NOTEXAM,
             }"
           >
             {{ item.examStatusTxt }}
@@ -40,21 +40,27 @@
 
 <script>
 import { Toast } from "vant";
+import { mapState } from "vuex";
 export default {
   name: "page-exam",
   components: {},
   data() {
     return {
       examStatesType: {
-        NOT_START: 0, // 未开
-        STARTED: 1, // 已开
+        NOT_START: 0, // 未开
+        STARTED: 1, // 已开
         STARTEXAMING: 2, // 考试中
-        OVER: 3 // 已结束
+        EXAMOVER: 3, // 已考完
+        NOTEXAM: 4 // 未参考
       },
       examList: []
     };
   },
-  computed: {},
+  computed: {
+    ...mapState({
+      exam: state => state.exam
+    })
+  },
   created() {
     this.getExamListFun(); // 查询:考试的场次列表信息
   },
@@ -70,10 +76,7 @@ export default {
               let formateTimeDiff = this.formateTimeDiffFun(item.duration);
               item.examTimeMins = formateTimeDiff.examTimeMins;
               item.examTimeMinsTxt = formateTimeDiff.examTimeMinsTxt;
-              let obj = this.formateExamStatesFun(
-                item.startTime,
-                item.deadline
-              );
+              let obj = this.formateExamStatesFun(item);
               item.examStatus = obj.status;
               item.examStatusTxt = obj.statusTxt;
             });
@@ -108,26 +111,35 @@ export default {
       };
     },
     // 过滤考试状态
-    formateExamStatesFun(startTime, endTime) {
+    formateExamStatesFun(exam) {
+      let startTime = exam.startTime;
+      let endTime = exam.deadline;
       let curTime = Date.now();
       let startTimesCeconds = new Date(startTime).getTime();
       let endTimeCeconds = new Date(endTime).getTime();
       if (curTime >= startTimesCeconds) {
-        if (endTimeCeconds >= curTime) {
-          return {
-            status: this.examStatesType.OVER,
-            statusTxt: "已结束"
-          };
+        if (curTime >= endTimeCeconds) {
+          if (this.exam.examHistoryObj[exam.id]) {
+            return {
+              status: this.examStatesType.EXAMOVER,
+              statusTxt: "已考完"
+            };
+          } else {
+            return {
+              status: this.examStatesType.NOTEXAM,
+              statusTxt: "未参考"
+            };
+          }
         } else {
           return {
             status: this.examStatesType.STARTED,
-            statusTxt: "已开始"
+            statusTxt: "已开"
           };
         }
       } else {
         return {
           status: this.examStatesType.NOT_START,
-          statusTxt: "未开"
+          statusTxt: "未开"
         };
       }
     },

+ 24 - 0
src/views/home/index.vue

@@ -125,6 +125,8 @@ export default {
           });
           // 获取所有收藏
           this.getCollection();
+          // 获取所有考试历史
+          this.getExamHistory();
         })
         .catch(() => {
           this.$store.commit("toggleLoading", false);
@@ -176,6 +178,28 @@ export default {
         .catch(() => {
           this.$store.commit("toggleLoading", false);
         });
+    },
+    // 查询:考试记录
+    getExamHistory() {
+      this.$store.commit("toggleLoading", true);
+      let params = {
+        user: this.user.userInfo.userName
+      };
+      this.$_http
+        .get(this.$_API.JTXT_GET_USER_EXAMS_HISTORY, { params })
+        .then(res => {
+          let obj = {};
+          res.data.forEach(element => {
+            obj[element.examId] = element;
+          });
+          this.$store.commit("updateExamItemStore", {
+            field: "examHistoryObj",
+            value: obj
+          });
+        })
+        .catch(() => {
+          this.$store.commit("toggleLoading", false);
+        });
     }
   }
 };