Commit 813d4d64428327ee5d4d555560744c9fcef27758

Authored by 梁保满
1 parent e3b0e3e7

批量设置答案添加输入

src/components/backBox.vue
@@ -11,10 +11,20 @@ @@ -11,10 +11,20 @@
11 </template> 11 </template>
12 12
13 <script> 13 <script>
  14 +import BusEvent from "@/utils/busEvent";
14 export default { 15 export default {
15 name: "back", 16 name: "back",
  17 + props:{
  18 + params:{
  19 + type:Object,
  20 + default:function(){
  21 + return {}
  22 + }
  23 + }
  24 + },
16 methods: { 25 methods: {
17 back() { 26 back() {
  27 + BusEvent.$emit("querySel", this.params);
18 this.$router.go(-1); 28 this.$router.go(-1);
19 }, 29 },
20 }, 30 },
src/components/setAnswer.vue
@@ -90,8 +90,15 @@ @@ -90,8 +90,15 @@
90 <p>{{ setSubPro(formAns.qusType) }}:</p> 90 <p>{{ setSubPro(formAns.qusType) }}:</p>
91 <p class="ipt"> 91 <p class="ipt">
92 <el-input 92 <el-input
  93 + v-if="formAns.qusType == 2 || formAns.qusType == 3"
93 v-model="formAns.answerList" 94 v-model="formAns.answerList"
94 - @keydown.native="keydownAnswer($event)" 95 + @keydown.native="keydownAnswer($event, formAns.qusType)"
  96 + @input="setAllAnswer($event, formAns.qusType)"
  97 + ></el-input>
  98 + <el-input
  99 + v-if="formAns.qusType == 4"
  100 + v-model="formAns.answerList"
  101 + readonly=""
95 ></el-input> 102 ></el-input>
96 </p> 103 </p>
97 <p class="answer-box"> 104 <p class="answer-box">
@@ -195,7 +202,7 @@ export default { @@ -195,7 +202,7 @@ export default {
195 let types = [{}]; 202 let types = [{}];
196 let addndex = 0; 203 let addndex = 0;
197 this.FormQuestionList?.map((sub, index) => { 204 this.FormQuestionList?.map((sub, index) => {
198 - if (!!sub.questionType && sub.questionType!=5) { 205 + if (!!sub.questionType && sub.questionType != 5) {
199 if (sub.questionType == types[addndex].qusType) { 206 if (sub.questionType == types[addndex].qusType) {
200 //同类型批量答案+1 207 //同类型批量答案+1
201 types[addndex].subNum += 1; 208 types[addndex].subNum += 1;
@@ -220,7 +227,7 @@ export default { @@ -220,7 +227,7 @@ export default {
220 //不同类型时如果原有类型数量大于等于5,保存批量答案 227 //不同类型时如果原有类型数量大于等于5,保存批量答案
221 types[addndex].endIndex = 228 types[addndex].endIndex =
222 this.questionList[index - 1].questionIndex; 229 this.questionList[index - 1].questionIndex;
223 - types[addndex].index = index-1; 230 + types[addndex].index = index - 1;
224 addndex += 1; 231 addndex += 1;
225 types[addndex] = {}; 232 types[addndex] = {};
226 } 233 }
@@ -300,8 +307,35 @@ export default { @@ -300,8 +307,35 @@ export default {
300 } 307 }
301 return tit; 308 return tit;
302 }, 309 },
303 - keydownAnswer(event) {  
304 - //快速答案设置禁止输入 310 + // keydownAnswer(event) {
  311 + // //快速答案设置禁止输入
  312 + // if (
  313 + // event.key == "Meta" ||
  314 + // event.key == "CapsLock" ||
  315 + // event.key == "Shift" ||
  316 + // event.key == "Enter" ||
  317 + // event.key == "Alt" ||
  318 + // event.key == "Backspace" ||
  319 + // event.key == "Delete" ||
  320 + // event.key == "ArrowUp" ||
  321 + // event.key == "ArrowDown" ||
  322 + // event.key == "ArrowLeft" ||
  323 + // event.key == "v" ||
  324 + // event.key == "V" ||
  325 + // event.key == "ArrowRight"
  326 + // ) {
  327 + // return;
  328 + // } else {
  329 + // event.returnValue = "";
  330 + // }
  331 + // },
  332 + keydownAnswer(event, type) {
  333 + let answerA = "ABCDEFG";
  334 + let answer_a = "abcdefg";
  335 + answerA = answerA.substring(0, this.formAns.subNum);
  336 + answer_a = answer_a.substring(0, this.formAns.subNum);
  337 + answerA += answer_a;
  338 + answerA = type == 2 ? answerA : answerA + ",";
305 if ( 339 if (
306 event.key == "Meta" || 340 event.key == "Meta" ||
307 event.key == "CapsLock" || 341 event.key == "CapsLock" ||
@@ -316,12 +350,22 @@ export default { @@ -316,12 +350,22 @@ export default {
316 event.key == "v" || 350 event.key == "v" ||
317 event.key == "V" || 351 event.key == "V" ||
318 event.key == "ArrowRight" 352 event.key == "ArrowRight"
319 - ) { 353 + )
320 return; 354 return;
321 - } else { 355 + if (!answerA.includes(event.key)) {
322 event.returnValue = ""; 356 event.returnValue = "";
323 } 357 }
324 }, 358 },
  359 + setAllAnswer(event, type) {
  360 + let str = this.formAns.answerList;
  361 + let str2 = checkAnswer(
  362 + str,
  363 + type,
  364 + this.formAns.answerOptions.split(",").length,
  365 + this.formAns.subNum
  366 + );
  367 + this.formAns.answerList = str2;
  368 + },
325 setAnswer(type, ans) { 369 setAnswer(type, ans) {
326 let txt = ""; 370 let txt = "";
327 if (type == 2) { 371 if (type == 2) {
@@ -329,7 +373,7 @@ export default { @@ -329,7 +373,7 @@ export default {
329 } else if (type == 3) { 373 } else if (type == 3) {
330 txt = ans + ","; 374 txt = ans + ",";
331 } else if (type == 4) { 375 } else if (type == 4) {
332 - txt = ans == 1 ? "✓" : "✗"; 376 + txt = ans == 1 ? "✓" : ans == 2 ? "✗" : "";
333 } 377 }
334 return txt; 378 return txt;
335 }, 379 },
src/utils/busEvent.js 0 → 100644
  1 +// busEvent.js
  2 +import Vue from 'vue'
  3 +
  4 +/**
  5 + * 非父子组件传值
  6 + */
  7 +var BusEvent = new Vue({});
  8 +export default BusEvent;
0 \ No newline at end of file 9 \ No newline at end of file
src/views/examinationPaper/add.vue
@@ -519,8 +519,15 @@ @@ -519,8 +519,15 @@
519 <p>{{ setSubPro(formAns.qusType) }}:</p> 519 <p>{{ setSubPro(formAns.qusType) }}:</p>
520 <p class="ipt"> 520 <p class="ipt">
521 <el-input 521 <el-input
  522 + v-if="formAns.qusType ==2 ||formAns.qusType==3"
522 v-model="formAns.answerList" 523 v-model="formAns.answerList"
523 - @keydown.native="keydownAnswer($event)" 524 + @keydown.native="keydownAnswer($event,formAns.qusType)"
  525 + @input="setAllAnswer($event, formAns.qusType)"
  526 + ></el-input>
  527 + <el-input
  528 + v-if="formAns.qusType ==4"
  529 + v-model="formAns.answerList"
  530 + readonly=""
524 ></el-input> 531 ></el-input>
525 </p> 532 </p>
526 <p class="answer-box"> 533 <p class="answer-box">
@@ -856,8 +863,35 @@ export default { @@ -856,8 +863,35 @@ export default {
856 } 863 }
857 this.diaSetAns = false; 864 this.diaSetAns = false;
858 }, 865 },
859 - keydownAnswer(event) {  
860 - //快速答案设置禁止输入 866 + // keydownAnswer(event) {
  867 + // //快速答案设置禁止输入
  868 + // if (
  869 + // event.key == "Meta" ||
  870 + // event.key == "CapsLock" ||
  871 + // event.key == "Shift" ||
  872 + // event.key == "Enter" ||
  873 + // event.key == "Alt" ||
  874 + // event.key == "Backspace" ||
  875 + // event.key == "Delete" ||
  876 + // event.key == "ArrowUp" ||
  877 + // event.key == "ArrowDown" ||
  878 + // event.key == "ArrowLeft" ||
  879 + // event.key == "v" ||
  880 + // event.key == "V" ||
  881 + // event.key == "ArrowRight"
  882 + // ) {
  883 + // return;
  884 + // } else {
  885 + // event.returnValue = "";
  886 + // }
  887 + // },
  888 + keydownAnswer(event, type) {
  889 + let answerA = "ABCDEFG";
  890 + let answer_a = "abcdefg";
  891 + answerA = answerA.substring(0, this.formAns.subNum);
  892 + answer_a = answer_a.substring(0, this.formAns.subNum);
  893 + answerA += answer_a;
  894 + answerA = type == 2 ? answerA : answerA + ",";
861 if ( 895 if (
862 event.key == "Meta" || 896 event.key == "Meta" ||
863 event.key == "CapsLock" || 897 event.key == "CapsLock" ||
@@ -872,12 +906,22 @@ export default { @@ -872,12 +906,22 @@ export default {
872 event.key == "v" || 906 event.key == "v" ||
873 event.key == "V" || 907 event.key == "V" ||
874 event.key == "ArrowRight" 908 event.key == "ArrowRight"
875 - ) { 909 + )
876 return; 910 return;
877 - } else { 911 + if (!answerA.includes(event.key)) {
878 event.returnValue = ""; 912 event.returnValue = "";
879 } 913 }
880 }, 914 },
  915 + setAllAnswer(event, type){
  916 + let str = this.formAns.answerList;
  917 + let str2 = checkAnswer(
  918 + str,
  919 + type,
  920 + this.formAns.answerOptions.split(',').length,
  921 + this.formAns.subNum
  922 + );
  923 + this.formAns.answerList = str2;
  924 + },
881 setAnswer(type, ans) { 925 setAnswer(type, ans) {
882 let txt = ""; 926 let txt = "";
883 if (type == 2) { 927 if (type == 2) {
src/views/login/index.vue
@@ -95,8 +95,8 @@ export default { @@ -95,8 +95,8 @@ export default {
95 loginForm: { 95 loginForm: {
96 // username: "15911715665", 96 // username: "15911715665",
97 // password: "715665", 97 // password: "715665",
98 - username: "18314340313",  
99 - password: "Pw340313#", 98 + // username: "18314340313",
  99 + // password: "Pw340313#",
100 // username: "18687826606", 100 // username: "18687826606",
101 // password: "Pw826606#", 101 // password: "Pw826606#",
102 // username: "18893712576", 102 // username: "18893712576",
src/views/test/editAnswer.vue
@@ -220,8 +220,15 @@ @@ -220,8 +220,15 @@
220 <p>{{ setSubPro(formAns.qusType) }}:</p> 220 <p>{{ setSubPro(formAns.qusType) }}:</p>
221 <p class="ipt"> 221 <p class="ipt">
222 <el-input 222 <el-input
  223 + v-if="formAns.qusType == 2 || formAns.qusType == 3"
223 v-model="formAns.answerList" 224 v-model="formAns.answerList"
224 - @keydown.native="keydownAnswer($event)" 225 + @keydown.native="keydownAnswer($event, formAns.qusType)"
  226 + @input="setAllAnswer($event, formAns.qusType)"
  227 + ></el-input>
  228 + <el-input
  229 + v-if="formAns.qusType == 4"
  230 + v-model="formAns.answerList"
  231 + readonly=""
225 ></el-input> 232 ></el-input>
226 </p> 233 </p>
227 <p class="answer-box"> 234 <p class="answer-box">
@@ -377,8 +384,35 @@ export default { @@ -377,8 +384,35 @@ export default {
377 384
378 return txt; 385 return txt;
379 }, 386 },
380 - keydownAnswer(event) {  
381 - //快速答案设置禁止输入 387 + // keydownAnswer(event) {
  388 + // //快速答案设置禁止输入
  389 + // if (
  390 + // event.key == "Meta" ||
  391 + // event.key == "CapsLock" ||
  392 + // event.key == "Shift" ||
  393 + // event.key == "Enter" ||
  394 + // event.key == "Alt" ||
  395 + // event.key == "Backspace" ||
  396 + // event.key == "Delete" ||
  397 + // event.key == "ArrowUp" ||
  398 + // event.key == "ArrowDown" ||
  399 + // event.key == "ArrowLeft" ||
  400 + // event.key == "v" ||
  401 + // event.key == "V" ||
  402 + // event.key == "ArrowRight"
  403 + // ) {
  404 + // return;
  405 + // } else {
  406 + // event.returnValue = "";
  407 + // }
  408 + // },
  409 + keydownAnswer(event, type) {
  410 + let answerA = "ABCDEFG";
  411 + let answer_a = "abcdefg";
  412 + answerA = answerA.substring(0, this.formAns.subNum);
  413 + answer_a = answer_a.substring(0, this.formAns.subNum);
  414 + answerA += answer_a;
  415 + answerA = type == 2 ? answerA : answerA + ",";
382 if ( 416 if (
383 event.key == "Meta" || 417 event.key == "Meta" ||
384 event.key == "CapsLock" || 418 event.key == "CapsLock" ||
@@ -393,12 +427,22 @@ export default { @@ -393,12 +427,22 @@ export default {
393 event.key == "v" || 427 event.key == "v" ||
394 event.key == "V" || 428 event.key == "V" ||
395 event.key == "ArrowRight" 429 event.key == "ArrowRight"
396 - ) { 430 + )
397 return; 431 return;
398 - } else { 432 + if (!answerA.includes(event.key)) {
399 event.returnValue = ""; 433 event.returnValue = "";
400 } 434 }
401 }, 435 },
  436 + setAllAnswer(event, type){
  437 + let str = this.formAns.answerList;
  438 + let str2 = checkAnswer(
  439 + str,
  440 + type,
  441 + this.formAns.answerOptions.split(',').length,
  442 + this.formAns.subNum
  443 + );
  444 + this.formAns.answerList = str2;
  445 + },
402 setAnswer(type, ans) { 446 setAnswer(type, ans) {
403 let txt = ""; 447 let txt = "";
404 if (type == 2) { 448 if (type == 2) {
@@ -406,7 +450,7 @@ export default { @@ -406,7 +450,7 @@ export default {
406 } else if (type == 3) { 450 } else if (type == 3) {
407 txt = ans + ","; 451 txt = ans + ",";
408 } else if (type == 4) { 452 } else if (type == 4) {
409 - txt = ans == 1 ? "✓" : "✗"; 453 + txt = ans == 1 ? "✓" : ans == 2 ? "✗" : "";
410 } 454 }
411 return txt; 455 return txt;
412 }, 456 },