瀏覽代碼

音频重复校验

xiatian 4 年之前
父節點
當前提交
034a998b69
共有 1 個文件被更改,包括 55 次插入0 次删除
  1. 55 0
      src/modules/questions/views/EditPaper.vue

+ 55 - 0
src/modules/questions/views/EditPaper.vue

@@ -1510,6 +1510,61 @@ export default {
         });
       } else {
         this.dialogLoading = true;
+        //校验音频重复
+        let audiomap = new Map();
+        let regex = new RegExp(
+          '<a id="[^<>]+" name="([^<>]+\\.mp3)"></a>',
+          "ig"
+        );
+        let ret = "";
+        let quesBodyStr = paperDetailUnitExp.question.quesBody;
+        if (quesBodyStr) {
+          while ((ret = regex.exec(quesBodyStr))) {
+            if (audiomap.get(ret[1])) {
+              this.dialogLoading = false;
+              this.$notify({
+                type: "error",
+                message: "题干中存在相同的音频文件"
+              });
+              return;
+            } else {
+              audiomap.set(ret[1], ret[1]);
+            }
+          }
+        }
+        let quesAnswerStr = paperDetailUnitExp.question.quesAnswer;
+        if (quesAnswerStr) {
+          while ((ret = regex.exec(quesAnswerStr))) {
+            if (audiomap.get(ret[1])) {
+              this.dialogLoading = false;
+              this.$notify({
+                type: "error",
+                message: "答案中存在相同的音频文件"
+              });
+              return;
+            } else {
+              audiomap.set(ret[1], ret[1]);
+            }
+          }
+        }
+        let quesOptions = paperDetailUnitExp.question.quesOptions;
+        if (quesOptions) {
+          for (let i = 0; i < quesOptions.length; i++) {
+            let quesOptionStr = quesOptions[i].optionBody;
+            while ((ret = regex.exec(quesOptionStr))) {
+              if (audiomap.get(ret[1])) {
+                this.dialogLoading = false;
+                this.$notify({
+                  type: "error",
+                  message: "选项中存在相同的音频文件"
+                });
+                return;
+              } else {
+                audiomap.set(ret[1], ret[1]);
+              }
+            }
+          }
+        }
         this.$http
           .put(QUESTION_API + "/paperDetailUnit", paperDetailUnitExp)
           .then(() => {