Kaynağa Gözat

重构中文数字处理办法;增加答题导航的大题号码

Michael Wang 5 yıl önce
ebeveyn
işleme
62a9c9125f

+ 3 - 1
src/features/OnlineExam/Examing/ExamPaper.vue

@@ -72,6 +72,8 @@
 </template>
 
 <script>
+import { toChineseNumber } from "@/utils/util";
+
 const optionName = "ABCDEFGHIJ".split("");
 
 export default {
@@ -269,7 +271,7 @@ export default {
         .replace(/a>/g, "audio>");
     },
     toChineseNumber(num) {
-      return num.toLocaleString("zh-u-nu-hanidec");
+      return toChineseNumber(num);
     },
     indexToABCD(index) {
       return optionName[index];

+ 3 - 19
src/features/OnlineExam/Examing/QuestionIndex.vue

@@ -8,6 +8,8 @@
 </template>
 
 <script>
+import { toChineseNumber } from "@/utils/util";
+
 export default {
   name: "QuestionIndex",
   props: {
@@ -20,25 +22,7 @@ export default {
   },
   computed: {
     sectionChinese() {
-      const n = this.examQuestion.mainNumber;
-      let ret;
-      if (n < 10) {
-        ret = n.toLocaleString("zh-u-nu-hanidec");
-      } else if (n === 10) {
-        ret = "十";
-      } else if (n > 10 && n < 20) {
-        ret = "十" + (n % 10).toLocaleString("zh-u-nu-hanidec");
-      } else if (n >= 20 && n < 100) {
-        let s = n
-          .toLocaleString("zh-u-nu-hanidec", { useGrouping: false })
-          .split("");
-        s.splice(1, 0, "十");
-        ret = s.join("").replace("〇", "");
-      } else {
-        ret = n.toLocaleString("zh-u-nu-hanidec"); // 假设没有超过100的大题
-      }
-
-      return ret;
+      return toChineseNumber(this.examQuestion.mainNumber);
     },
   },
 };

+ 7 - 1
src/features/OnlineExam/Examing/QuestionNavView.vue

@@ -7,7 +7,9 @@
         class="section"
       >
         <div class="title">
-          {{ struct.groupName }} ({{ struct.groupScore }}分)
+          {{ toChineseNumber(section + 1) }}、{{ struct.groupName }} ({{
+            struct.groupScore
+          }}分)
         </div>
         <div class="list">
           <template v-for="(_, index2) in sectionQuestions(section)">
@@ -33,6 +35,7 @@
 </template>
 
 <script>
+import { toChineseNumber } from "@/utils/util";
 import { createNamespacedHelpers } from "vuex";
 const { mapState } = createNamespacedHelpers("examingHomeModule");
 
@@ -53,6 +56,9 @@ export default {
     ...mapState(["questionFilterType", "examQuestionList"]),
   },
   methods: {
+    toChineseNumber(num) {
+      return toChineseNumber(num);
+    },
     getQuestionNum: function(section, index) {
       if (
         !this.paperStruct ||

+ 20 - 0
src/utils/util.js

@@ -0,0 +1,20 @@
+export function toChineseNumber(num) {
+  let ret;
+  if (num < 10) {
+    ret = num.toLocaleString("zh-u-nu-hanidec");
+  } else if (num === 10) {
+    ret = "十";
+  } else if (num > 10 && num < 20) {
+    ret = "十" + (num % 10).toLocaleString("zh-u-nu-hanidec");
+  } else if (num >= 20 && num < 100) {
+    let s = num
+      .toLocaleString("zh-u-nu-hanidec", { useGrouping: false })
+      .split("");
+    s.splice(1, 0, "十");
+    ret = s.join("").replace("〇", "");
+  } else {
+    ret = num.toLocaleString("zh-u-nu-hanidec"); // 假设没有超过100的大题
+  }
+
+  return ret;
+}