zhouwx
2024-07-17 246f7b6fd81cf2ba620b8f9bf7cf24b61d7cf521
src/views/onlineEducation/questionBankManagement/questionManage/components/questionDialog.vue
@@ -5,10 +5,12 @@
        :title="title"
        width="50%"
        :before-close="handleClose"
        :close-on-press-escape="false"
        :close-on-click-modal="false"
    >
      <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
        <el-form-item label="题目类型:" prop="questionType">
          <el-select v-model="state.form.questionType" placeholder="请选择题型" style="width: 100%">
          <el-select v-model="state.form.questionType" placeholder="请选择题型" style="width: 100%"  @change="changeType">
            <el-option
                v-for="item in state.questionTypeList"
                :key="item.id"
@@ -41,17 +43,17 @@
        </el-form-item>
        <el-form-item label="选项:" prop="content">
          <div style="display: flex;flex-direction: column;width: 100%">
            <el-button type="primary"  @click="addOption" size="default" style="width: 65px;margin-bottom: 15px">添加</el-button>
            <el-button :disabled="state.form.questionType ===3" type="primary"  @click="addOption" size="default" style="width: 65px;margin-bottom: 15px">添加</el-button>
            <div v-for="(item,index) in state.optionItem.items" :key="index" style="width: 100%">
              <div style="display: flex;align-items: center">
                <span>{{String.fromCharCode(index + 65)}}</span>
                <el-input type="textarea" v-model="state.optionItem.items[index].content" placeholder="请输入选项内容" style="width: 100%;margin-left: 20px;margin-bottom: 10px"></el-input>
                <Delete style="width: 15px; height: 15px; margin-left: 8px;color: #ed5565" @click="delOption(index)" />
                <el-input  :disabled="state.form.questionType ===3" type="textarea" v-model="state.optionItem.items[index].content" placeholder="请输入选项内容" style="width: 100%;margin-left: 20px;margin-bottom: 10px"></el-input>
                <Delete v-if="state.form.questionType !==3" style="width: 15px; height: 15px; margin-left: 8px;color: #ed5565" @click="delOption(index)" />
              </div>
            </div>
          </div>
        </el-form-item>
        <el-form-item label="解析:" prop="answer">
        <el-form-item label="解析:" >
          <el-input type="textarea" v-model="state.optionItem.analyze" placeholder="请输入题目解析" style="width: 100%;margin-bottom: 10px"></el-input>
        </el-form-item>
        <el-form-item label="正确答案:" prop="answer">
@@ -117,7 +119,7 @@
    questionType: [{required: true, trigger: "blur", message: '请选择题目类型'}],
    bankName: [{required: true, trigger: "blur", message: '请选择归属题库'}],
    title: [{required: true, trigger: "blur", message: '请输入题目内容'}],
    // answer: [{required: true, trigger: "blur", message: '请选择正确答案'}],
    answer: [{required: true, trigger: "blur", message: '请选择正确答案'}],
  },
  classifyList: [],
  isAdmin: false,
@@ -171,6 +173,7 @@
}
const delOption = (val) => {
  state.optionItem.items.splice(val,1)
  state.form.answer = ''
  console.log(" state.optionItem.items.", state.optionItem.items)
}
const openDialog = async (type, value) => {
@@ -289,7 +292,22 @@
    }
  }
}
const changeType = () => {
  if(state.form.questionType === 3) {
    state.optionItem.items = [
      {
        prefix: 'A',
        content: '是'
      },
      {
        prefix: 'B',
        content: '否'
      }
    ]
  }
}
const handleClose = () => {
  busRef.value.clearValidate();
  reset();