Commit d4e9b596d5bca356f4413eba6ee90e66ae14e0de

Authored by 梁保满
1 parent b248db27

手动创建组卷 删除题目,批量设置显示问题

Showing 1 changed file with 141 additions and 119 deletions
src/views/examinationPaper/add.vue
... ... @@ -260,132 +260,153 @@
260 260 <div class="qs-options">选项设置</div>
261 261 <div class="qs-set">操作</div>
262 262 </li>
263   - <li
264   - class="sub-questions"
  263 + <template
265 264 v-for="(subQuestions, indexs) in question.subQuestions"
266   - :key="indexs"
267 265 >
268   - <div class="qs-num">{{ setNum(index, indexs) }}</div>
269   - <div class="qs-type">
270   - <el-select
271   - v-model="subQuestions.questionType"
272   - placeholder="选择题目类型"
273   - @change="changeSubQuestions($event, subQuestions)"
274   - >
275   - <el-option label="单选题" :value="2"></el-option>
276   - <el-option label="多选题" :value="3"></el-option>
277   - <el-option label="判断题" :value="4"></el-option>
278   - <el-option label="主观题" :value="5"></el-option>
279   - </el-select>
280   - </div>
281   - <div class="qs-score">
282   - <el-input-number
283   - class="number-ipt"
284   - size="medium"
285   - :min="1"
286   - :max="200"
287   - :precision="2"
288   - :step="1"
289   - v-model="subQuestions.score"
290   - label="单题分值"
291   - ></el-input-number>
292   - </div>
293   - <div class="qs-partScore">
294   - <p v-if="subQuestions.questionType != 3">--</p>
295   - <el-input-number
296   - class="number-ipt"
297   - v-else
298   - size="medium"
299   - :min="0"
300   - :precision="2"
301   - :max="subQuestions.score"
302   - :step="0.5"
303   - v-model="subQuestions.partScore"
304   - label="漏选得分"
305   - ></el-input-number>
306   - </div>
307   - <div class="qs-options">
308   - <p v-if="subQuestions.questionType == 5">--</p>
309   - <p v-if="subQuestions.questionType == 4" class="answer-box">
310   - <span
311   - class="answer-s"
312   - :class="subQuestions.correctAnswer == 1 ? 'active' : ''"
313   - @click="subQuestions.correctAnswer = 1"
314   - >✓</span
  266 + <li
  267 + v-if="!subQuestions.qusType && !subQuestions.subNum"
  268 + class="sub-questions"
  269 + :key="indexs"
  270 + >
  271 + <div class="qs-num">{{ setNum(index, indexs) }}</div>
  272 + <div class="qs-type">
  273 + <el-select
  274 + v-model="subQuestions.questionType"
  275 + placeholder="选择题目类型"
  276 + @change="changeSubQuestions($event, subQuestions)"
315 277 >
316   - <span
317   - class="answer-s"
318   - :class="subQuestions.correctAnswer == 2 ? 'active' : ''"
319   - @click="subQuestions.correctAnswer = 2"
320   - >✗</span
  278 + <el-option label="单选题" :value="2"></el-option>
  279 + <el-option label="多选题" :value="3"></el-option>
  280 + <el-option label="判断题" :value="4"></el-option>
  281 + <el-option label="主观题" :value="5"></el-option>
  282 + </el-select>
  283 + </div>
  284 + <div class="qs-score">
  285 + <el-input-number
  286 + class="number-ipt"
  287 + size="medium"
  288 + :min="1"
  289 + :max="200"
  290 + :precision="2"
  291 + :step="1"
  292 + v-model="subQuestions.score"
  293 + label="单题分值"
  294 + ></el-input-number>
  295 + </div>
  296 + <div class="qs-partScore">
  297 + <p v-if="subQuestions.questionType != 3">--</p>
  298 + <el-input-number
  299 + class="number-ipt"
  300 + v-else
  301 + size="medium"
  302 + :min="0"
  303 + :precision="2"
  304 + :max="subQuestions.score"
  305 + :step="0.5"
  306 + v-model="subQuestions.partScore"
  307 + label="漏选得分"
  308 + ></el-input-number>
  309 + </div>
  310 + <div class="qs-options">
  311 + <p v-if="subQuestions.questionType == 5">--</p>
  312 + <p
  313 + v-if="subQuestions.questionType == 4"
  314 + class="answer-box"
321 315 >
322   - </p>
323   - <p v-if="subQuestions.questionType == 3" class="answer-box">
324   - <span
325   - class="answer-s"
326   - v-for="option in subQuestions.answerOptions.split(',')"
327   - :class="
328   - subQuestions.correctAnswer?.includes(option)
329   - ? 'active'
330   - : ''
331   - "
332   - :key="option"
333   - @click="changAnswer(subQuestions, option)"
334   - >{{ option }}</span
  316 + <span
  317 + class="answer-s"
  318 + :class="
  319 + subQuestions.correctAnswer == 1 ? 'active' : ''
  320 + "
  321 + @click="subQuestions.correctAnswer = 1"
  322 + >✓</span
  323 + >
  324 + <span
  325 + class="answer-s"
  326 + :class="
  327 + subQuestions.correctAnswer == 2 ? 'active' : ''
  328 + "
  329 + @click="subQuestions.correctAnswer = 2"
  330 + >✗</span
  331 + >
  332 + </p>
  333 + <p
  334 + v-if="subQuestions.questionType == 3"
  335 + class="answer-box"
335 336 >
336   - </p>
337   - <p v-if="subQuestions.questionType == 2" class="answer-box">
338   - <span
339   - class="answer-s"
340   - v-for="option in subQuestions.answerOptions.split(',')"
341   - :class="
342   - subQuestions.correctAnswer == option ? 'active' : ''
  337 + <span
  338 + class="answer-s"
  339 + v-for="option in subQuestions.answerOptions.split(
  340 + ','
  341 + )"
  342 + :class="
  343 + subQuestions.correctAnswer?.includes(option)
  344 + ? 'active'
  345 + : ''
  346 + "
  347 + :key="option"
  348 + @click="changAnswer(subQuestions, option)"
  349 + >{{ option }}</span
  350 + >
  351 + </p>
  352 + <p
  353 + v-if="subQuestions.questionType == 2"
  354 + class="answer-box"
  355 + >
  356 + <span
  357 + class="answer-s"
  358 + v-for="option in subQuestions.answerOptions.split(
  359 + ','
  360 + )"
  361 + :class="
  362 + subQuestions.correctAnswer == option ? 'active' : ''
  363 + "
  364 + :key="option"
  365 + @click="subQuestions.correctAnswer = option"
  366 + >{{ option }}</span
  367 + >
  368 + </p>
  369 + <p
  370 + v-if="
  371 + subQuestions.questionType == 3 ||
  372 + subQuestions.questionType == 2
343 373 "
344   - :key="option"
345   - @click="subQuestions.correctAnswer = option"
346   - >{{ option }}</span
  374 + class="answer-box answer-box2"
347 375 >
348   - </p>
349   - <p
350   - v-if="
351   - subQuestions.questionType == 3 ||
352   - subQuestions.questionType == 2
353   - "
354   - class="answer-box answer-box2"
355   - >
356   - <el-button
357   - size="mini"
358   - type="primary"
359   - icon="el-icon-plus"
360   - circle
361   - @click="addOptions(subQuestions)"
362   - ></el-button>
363   - <el-button
364   - size="mini"
365   - type="primary"
366   - icon="el-icon-minus"
367   - round
368   - circle
369   - @click="removeOptions(subQuestions)"
370   - ></el-button>
371   - </p>
372   - </div>
373   - <div class="qs-set">
374   - <el-popconfirm
375   - title="确定删除这道题吗?"
376   - @confirm="delTabData(indexs, index)"
377   - >
378   - <el-button
379   - slot="reference"
380   - class="delete"
381   - type="danger"
382   - size="mini"
383   - circle
384   - icon="el-icon-delete"
385   - ></el-button>
386   - </el-popconfirm>
387   - </div>
388   - </li>
  376 + <el-button
  377 + size="mini"
  378 + type="primary"
  379 + icon="el-icon-plus"
  380 + circle
  381 + @click="addOptions(subQuestions)"
  382 + ></el-button>
  383 + <el-button
  384 + size="mini"
  385 + type="primary"
  386 + icon="el-icon-minus"
  387 + round
  388 + circle
  389 + @click="removeOptions(subQuestions)"
  390 + ></el-button>
  391 + </p>
  392 + </div>
  393 + <div class="qs-set">
  394 + <el-popconfirm
  395 + title="确定删除这道题吗?"
  396 + @confirm="delTabData(indexs, index)"
  397 + >
  398 + <el-button
  399 + slot="reference"
  400 + class="delete"
  401 + type="danger"
  402 + size="mini"
  403 + circle
  404 + icon="el-icon-delete"
  405 + ></el-button>
  406 + </el-popconfirm>
  407 + </div>
  408 + </li>
  409 + </template>
389 410 <li class="sub-questions">
390 411 <div class="qs-num">添加</div>
391 412 <div class="qs-type">
... ... @@ -1700,6 +1721,7 @@ export default {
1700 1721 }
1701 1722 }
1702 1723 }
  1724 + console.log(this.form.questionList[0].subQuestions);
1703 1725 },
1704 1726 openQuestion() {
1705 1727 this.questionForm = { ...questionForm };
... ...