|
@@ -1,218 +1,215 @@
|
|
|
<template>
|
|
|
<div v-loading="fullscreenLoading" id="editSelectApp">
|
|
|
<section class="content">
|
|
|
- <div class="box box-info">
|
|
|
- <!-- 头信息 -->
|
|
|
- <div class="box-header with-border">
|
|
|
- <h3 class="box-title">
|
|
|
- <span v-if="!quesModel.id">试题新增</span>
|
|
|
- <span v-if="quesModel.id">试题修改</span>
|
|
|
- </h3>
|
|
|
- </div>
|
|
|
- <!-- 正文信息 -->
|
|
|
- <div class="box-body">
|
|
|
- <el-form
|
|
|
- :model="quesModel"
|
|
|
- ref="quesModel"
|
|
|
- :rules="rules"
|
|
|
- label-width="100px"
|
|
|
- class="demo-ruleForm"
|
|
|
- label-position="right"
|
|
|
- >
|
|
|
- <el-form-item label="题型">
|
|
|
- <el-select
|
|
|
- :disabled="true"
|
|
|
- v-model="quesModel.questionType"
|
|
|
- placeholder="请输入题型"
|
|
|
+ <!-- 头信息 -->
|
|
|
+ <h3 class="box-title">
|
|
|
+ <span v-if="!quesModel.id"
|
|
|
+ ><LinkTitlesCustom :currentPaths="['试题新增']"
|
|
|
+ /></span>
|
|
|
+ <span v-if="quesModel.id"
|
|
|
+ ><LinkTitlesCustom :currentPaths="['试题修改']"
|
|
|
+ /></span>
|
|
|
+ </h3>
|
|
|
+ <!-- 正文信息 -->
|
|
|
+ <div class="box-body">
|
|
|
+ <el-form
|
|
|
+ :model="quesModel"
|
|
|
+ ref="quesModel"
|
|
|
+ :rules="rules"
|
|
|
+ label-width="100px"
|
|
|
+ class="demo-ruleForm"
|
|
|
+ label-position="right"
|
|
|
+ >
|
|
|
+ <el-form-item label="题型">
|
|
|
+ <el-select
|
|
|
+ :disabled="true"
|
|
|
+ v-model="quesModel.questionType"
|
|
|
+ placeholder="请输入题型"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in questionTypes"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ :key="item.value"
|
|
|
>
|
|
|
- <el-option
|
|
|
- v-for="item in questionTypes"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- :key="item.value"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <!--
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <!--
|
|
|
<el-form-item label="分数">
|
|
|
<el-input placeholder="分数" v-model="quesModel.score" style="width:50px;"></el-input>
|
|
|
</el-form-item>
|
|
|
-->
|
|
|
- <!-- created by weiwenhai -->
|
|
|
- <el-form-item label="难度">
|
|
|
- <el-select
|
|
|
- v-model="quesModel.difficultyDegree"
|
|
|
- placeholder="请输入难度"
|
|
|
+ <!-- created by weiwenhai -->
|
|
|
+ <el-form-item label="难度">
|
|
|
+ <el-select
|
|
|
+ v-model="quesModel.difficultyDegree"
|
|
|
+ placeholder="请输入难度"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in difficultyDegreeList"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ :key="item.value"
|
|
|
>
|
|
|
- <el-option
|
|
|
- v-for="item in difficultyDegreeList"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- :key="item.value"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="公开度">
|
|
|
- <el-select
|
|
|
- v-model="quesModel.publicity"
|
|
|
- placeholder="请输入公开度"
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="公开度">
|
|
|
+ <el-select v-model="quesModel.publicity" placeholder="请输入公开度">
|
|
|
+ <el-option
|
|
|
+ v-for="item in publicityList"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ :key="item.value"
|
|
|
>
|
|
|
- <el-option
|
|
|
- v-for="item in publicityList"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- :key="item.value"
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="属性列表">
|
|
|
+ <el-tooltip
|
|
|
+ placement="top"
|
|
|
+ v-for="(content, index) in quesModel.quesProperties"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
+ <div slot="content">
|
|
|
+ <span v-if="content.firstProperty != null"
|
|
|
+ >一级属性:{{ content.firstProperty.name }}</span
|
|
|
+ ><br />
|
|
|
+ <span v-if="content.secondProperty != null"
|
|
|
+ >二级属性:{{ content.secondProperty.name }}</span
|
|
|
>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="属性列表">
|
|
|
- <el-tooltip
|
|
|
- placement="top"
|
|
|
- v-for="(content, index) in quesModel.quesProperties"
|
|
|
- :key="index"
|
|
|
+ </div>
|
|
|
+ <el-tag
|
|
|
+ style="margin-right:5px;"
|
|
|
+ :key="content.id"
|
|
|
+ closable
|
|
|
+ type="primary"
|
|
|
+ @close="handleClose(content)"
|
|
|
>
|
|
|
- <div slot="content">
|
|
|
- <span v-if="content.firstProperty != null"
|
|
|
- >一级属性:{{ content.firstProperty.name }}</span
|
|
|
- ><br />
|
|
|
- <span v-if="content.secondProperty != null"
|
|
|
- >二级属性:{{ content.secondProperty.name }}</span
|
|
|
- >
|
|
|
- </div>
|
|
|
- <el-tag
|
|
|
- style="margin-right:5px;"
|
|
|
- :key="content.id"
|
|
|
- closable
|
|
|
- type="primary"
|
|
|
- @close="handleClose(content)"
|
|
|
+ {{ content.coursePropertyName }}
|
|
|
+ </el-tag>
|
|
|
+ </el-tooltip>
|
|
|
+ </el-form-item>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :xs="6" :sm="6" :md="6" :lg="6">
|
|
|
+ <el-form-item label="属性名">
|
|
|
+ <el-select
|
|
|
+ v-model="coursePropertyName"
|
|
|
+ placeholder="属性名"
|
|
|
+ @change="searchFirst"
|
|
|
+ class="property_with"
|
|
|
>
|
|
|
- {{ content.coursePropertyName }}
|
|
|
- </el-tag>
|
|
|
- </el-tooltip>
|
|
|
- </el-form-item>
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :xs="6" :sm="6" :md="6" :lg="6">
|
|
|
- <el-form-item label="属性名">
|
|
|
- <el-select
|
|
|
- v-model="coursePropertyName"
|
|
|
- placeholder="属性名"
|
|
|
- @change="searchFirst"
|
|
|
- class="property_with"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in coursePropertyList"
|
|
|
- :label="item.name"
|
|
|
- :value="item.name"
|
|
|
- :key="item.name"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="6" :sm="6" :md="6" :lg="6">
|
|
|
- <el-form-item label="一级">
|
|
|
- <el-select
|
|
|
- v-model="firstPropertyId"
|
|
|
- placeholder="一级"
|
|
|
- @change="searchSecond"
|
|
|
- class="property_with"
|
|
|
+ <el-option
|
|
|
+ v-for="item in coursePropertyList"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.name"
|
|
|
+ :key="item.name"
|
|
|
>
|
|
|
- <el-option
|
|
|
- v-for="item in firstPropertyList"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- :key="item.id"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="6" :sm="6" :md="6" :lg="6">
|
|
|
- <el-form-item label="二级">
|
|
|
- <el-select
|
|
|
- v-model="secondPropertyId"
|
|
|
- placeholder="二级"
|
|
|
- class="property_with"
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="6" :sm="6" :md="6" :lg="6">
|
|
|
+ <el-form-item label="一级">
|
|
|
+ <el-select
|
|
|
+ v-model="firstPropertyId"
|
|
|
+ placeholder="一级"
|
|
|
+ @change="searchSecond"
|
|
|
+ class="property_with"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in firstPropertyList"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ :key="item.id"
|
|
|
>
|
|
|
- <el-option
|
|
|
- v-for="item in secondPropertyList"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- :key="item.id"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="3" :sm="3" :md="3" :lg="3">
|
|
|
- <el-form-item>
|
|
|
- <el-button
|
|
|
- type="info"
|
|
|
- @click="insertProperty"
|
|
|
- style="margin-left:-30px;"
|
|
|
- >新增属性</el-button
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="6" :sm="6" :md="6" :lg="6">
|
|
|
+ <el-form-item label="二级">
|
|
|
+ <el-select
|
|
|
+ v-model="secondPropertyId"
|
|
|
+ placeholder="二级"
|
|
|
+ class="property_with"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in secondPropertyList"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ :key="item.id"
|
|
|
>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <!-- end -->
|
|
|
- <el-form-item label="题干" prop="quesBody">
|
|
|
- <ckeditor v-model="quesModel.quesBody"></ckeditor>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item
|
|
|
- v-for="(option, index) in quesModel.quesOptions"
|
|
|
- :key="option.number"
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :xs="3" :sm="3" :md="3" :lg="3">
|
|
|
+ <el-form-item>
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ @click="insertProperty"
|
|
|
+ style="margin-left:-30px;"
|
|
|
+ >新增属性</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <!-- end -->
|
|
|
+ <el-form-item label="题干" prop="quesBody">
|
|
|
+ <ckeditor v-model="quesModel.quesBody"></ckeditor>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ v-for="(option, index) in quesModel.quesOptions"
|
|
|
+ :key="option.number"
|
|
|
+ >
|
|
|
+ <el-col :span="1">
|
|
|
+ <el-radio
|
|
|
+ v-model="singleRightAnswer"
|
|
|
+ :label="index | optionOrderWordFilter"
|
|
|
+ v-if="quesModel.questionType === 'SINGLE_ANSWER_QUESTION'"
|
|
|
+ ></el-radio>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="multipleRightAnswer"
|
|
|
+ :label="index | optionOrderWordFilter"
|
|
|
+ v-if="quesModel.questionType === 'MULTIPLE_ANSWER_QUESTION'"
|
|
|
+ ></el-checkbox>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="20">
|
|
|
+ <ckeditor v-model="option.optionBody"></ckeditor>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2">
|
|
|
+ <i
|
|
|
+ class="el-icon-delete"
|
|
|
+ @click.prevent="removeQuesOption(option)"
|
|
|
+ title="删除"
|
|
|
+ ></i>
|
|
|
+ </el-col>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="答案">
|
|
|
+ <el-col> <span v-html="answer"></span> </el-col>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" icon="plus" @click="addQuesOption"
|
|
|
+ >新增选项</el-button
|
|
|
>
|
|
|
- <el-col :span="1">
|
|
|
- <el-radio
|
|
|
- v-model="singleRightAnswer"
|
|
|
- :label="index | optionOrderWordFilter"
|
|
|
- v-if="quesModel.questionType === 'SINGLE_ANSWER_QUESTION'"
|
|
|
- ></el-radio>
|
|
|
- <el-checkbox
|
|
|
- v-model="multipleRightAnswer"
|
|
|
- :label="index | optionOrderWordFilter"
|
|
|
- v-if="quesModel.questionType === 'MULTIPLE_ANSWER_QUESTION'"
|
|
|
- ></el-checkbox>
|
|
|
- </el-col>
|
|
|
- <el-col :span="20">
|
|
|
- <ckeditor v-model="option.optionBody"></ckeditor>
|
|
|
- </el-col>
|
|
|
- <el-col :span="2">
|
|
|
- <i
|
|
|
- class="el-icon-delete"
|
|
|
- @click.prevent="removeQuesOption(option)"
|
|
|
- title="删除"
|
|
|
- ></i>
|
|
|
- </el-col>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="答案">
|
|
|
- <el-col> <span v-html="answer"></span> </el-col>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button type="primary" icon="plus" @click="addQuesOption"
|
|
|
- >新增选项</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- icon="check"
|
|
|
- @click="submitForm('quesModel')"
|
|
|
- :disabled="saveDisabled"
|
|
|
- >保存</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- icon="caret-left"
|
|
|
- @click="backToQuesList()"
|
|
|
- >
|
|
|
- 返回列表
|
|
|
- </el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ icon="check"
|
|
|
+ @click="submitForm('quesModel')"
|
|
|
+ :disabled="saveDisabled"
|
|
|
+ >保存</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ icon="caret-left"
|
|
|
+ @click="backToQuesList()"
|
|
|
+ >
|
|
|
+ 返回列表
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
</div>
|
|
|
</section>
|
|
|
</div>
|
|
@@ -221,9 +218,10 @@
|
|
|
import { QUESTION_API } from "@/constants/constants";
|
|
|
import { QUESTION_TYPES } from "../constants/constants";
|
|
|
import ckeditor from "../component/ckeditor.vue";
|
|
|
+import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
|
|
|
export default {
|
|
|
name: "editSelectApp",
|
|
|
- components: { ckeditor },
|
|
|
+ components: { ckeditor, LinkTitlesCustom },
|
|
|
data() {
|
|
|
return {
|
|
|
questionTypes: QUESTION_TYPES,
|