|
@@ -8,9 +8,13 @@
|
|
|
|
|
|
<div class="home">
|
|
|
|
|
|
- <div>
|
|
|
-
|
|
|
+ <div style="display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 20px">
|
|
|
+ <div>批次: <span></span></div>
|
|
|
+ <div>科目: <span></span></div>
|
|
|
+ <div>平均正确率: <span>{{aveAccuracy}}</span></div>
|
|
|
+ <div>最高正确率: <span>{{maxAccuracy}}</span></div>
|
|
|
</div>
|
|
|
+
|
|
|
<div class="list">
|
|
|
<table>
|
|
|
<tbody class="list-row">
|
|
@@ -52,15 +56,15 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { createNamespacedHelpers } from "vuex";
|
|
|
+// import { createNamespacedHelpers } from "vuex";
|
|
|
import moment from "moment";
|
|
|
-import { mapState as globalMapState } from "vuex";
|
|
|
-const { mapMutations } = createNamespacedHelpers("examHomeModule");
|
|
|
+// import { mapState as globalMapState } from "vuex";
|
|
|
+// const { mapMutations } = createNamespacedHelpers("examHomeModule");
|
|
|
|
|
|
export default {
|
|
|
name: "OnlinePracticeRecordList",
|
|
|
data() {
|
|
|
- return { recordList: [] };
|
|
|
+ return { exam: null, recordList: [] };
|
|
|
},
|
|
|
async created() {
|
|
|
const res = await this.$http.get(
|
|
@@ -80,6 +84,20 @@ export default {
|
|
|
formatTime(ms) {
|
|
|
return moment.utc(ms).format("HH:mm:ss") || "";
|
|
|
}
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ maxAccuracy() {
|
|
|
+ return Math.max(...this.recordList.map(v => v.objectiveAccuracy)) || 0;
|
|
|
+ },
|
|
|
+ aveAccuracy() {
|
|
|
+ if (this.recordList.length === 0) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ return (
|
|
|
+ this.recordList.map(v => v.objectiveAccuracy).reduce((a, b) => a + b) /
|
|
|
+ this.recordList.length
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
@@ -106,4 +124,3 @@ export default {
|
|
|
padding: 10px;
|
|
|
}
|
|
|
</style>
|
|
|
-
|