<template>
|
<win :title="setting.title" width="800px" @close="close">
|
<el-form ref="form" :model="form" :rules="rules" label-width="200px" class="demo-ruleForm" label-position="right">
|
<el-form-item label="题库大类" prop="rootCatalog">
|
<el-select v-model="form.rootCatalog" placeholder="题库大类">
|
<el-option :value="form.rootCatalog" :label="form.rootCatalogName" :key="form.rootCatalog"/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="二级分类" prop="majorCatalog">
|
<el-select v-model="form.majorCatalog" placeholder="二级分类">
|
<el-option :value="form.majorCatalog" :label="form.majorCatalogName"/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="试题类型" prop="questionType">
|
<el-select v-model="form.questionType" placeholder="试题类型">
|
<el-option v-for="d in this.questionTypeList" :key="d.key" :label="d.value" :value="d.key"/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="试题难度" prop="difficultLevel">
|
<el-input v-model="form.difficultLevel" placeholder="1到5,1表示最简单" maxlength="1" value="3"/>
|
</el-form-item>
|
<el-form-item label="试题内容" prop="content">
|
<el-input type="textarea" :rows="5" v-model="form.content" placeholder="" />
|
</el-form-item>
|
<el-form-item label="参考答案" prop="answer">
|
<el-input v-model="form.answer" placeholder="判断题输入:对、错,多个填空用分号分隔,选择题输入:ABC等" />
|
</el-form-item>
|
<el-form-item label="讲解分析" prop="analysis">
|
<el-input v-model="form.analysis" placeholder="可选" />
|
</el-form-item>
|
|
<el-form-item label="上传图片(可选)" prop="attachImg">
|
<el-input v-model="form.attachImg" placeholder="内容支持图片" />
|
</el-form-item>
|
<el-form-item label="上传视频(可选)" prop="attachVideo">
|
<el-input v-model="form.attachVideo" placeholder="内容支持短视频" />
|
</el-form-item>
|
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<my-button-v2 name="关闭" site="form" @click="close" />
|
<my-button-v2 name="保存" site="form" @click="save" />
|
</div>
|
</win>
|
</template>
|
|
<script>
|
import win from '@/views/components/win'
|
import myButtonV2 from '@/views/components/myButtonV2'
|
import {listQuestionType, add, getCatalogInfo} from "@/api/etaa/question_bank";
|
|
export default {
|
name: "",
|
components: { win, myButtonV2 },
|
// dicts: ['question_difficult'],
|
props: {
|
// setting 中须至少包含控制dialog显示或隐藏的属性,其余属性可拓展
|
// 将添加/修改的大量数据及逻辑从列表页面中分离出来,避免列表页面代码过多,审查困难
|
// 若此页面须回传数据至父页面,可在引用组件时添加事件,本页面使用this.$emit('事件名',参数1,参数2...)回传数据
|
setting: {
|
type: Object,
|
default: () => {
|
}
|
}
|
},
|
data(){
|
return {
|
form: {
|
id: null,
|
orgId: this.setting.orgId,
|
rootCatalog: null,
|
rootCatalogName: null,
|
majorCatalog: null,
|
majorCatalogName: null,
|
questionType: null,
|
difficultLevel: 3,
|
answer: null,
|
analysis: null,
|
attachImg: null,
|
attachVideo: null
|
},
|
// 试题类别列表,2023-03-11
|
questionTypeList: [],
|
|
rules: {
|
rootCatalog: [
|
{ required: true, message: "必须选择题库分类", trigger: "blur" }
|
],
|
questionType: [
|
{ required: true, message: "选择试题类型", trigger: "blur" }
|
],
|
answer: [
|
{ required: true, message: "输入参考答案", trigger: "blur" }
|
],
|
content: [
|
{ required: true, message: "输入试题内容", trigger: "blur" }
|
]
|
},
|
}
|
},
|
|
created() {
|
this.getQuestionTypeList();
|
this.loadCatalogInfo();
|
},
|
|
methods: {
|
/** 获取试题类别集合 2023-03-11 */
|
getQuestionTypeList(){
|
listQuestionType().then(response => {
|
// console.log(response.data);
|
this.questionTypeList = response.data;
|
});
|
},
|
|
loadCatalogInfo(){
|
console.log("catalogId = " + this.setting.catalogId);
|
getCatalogInfo(this.setting.catalogId).then(response => {
|
this.form.rootCatalog = response.data.rootCatalog;
|
this.form.rootCatalogName = response.data.parameter.rootCatalogName;
|
this.form.majorCatalog = response.data.majorCatalog;
|
this.form.majorCatalogName = response.data.parameter.majorCatalogName;
|
this.open = true;
|
});
|
},
|
|
save(){
|
this.$refs.form.validate(validate => {
|
if(validate){
|
add(this.form).then(response => {
|
// this.$modal.msgSuccess("修改成功");
|
// this.open = false;
|
// this.getList();
|
this.$message.success('保存成功!')
|
this.$emit('search')
|
this.close()
|
});
|
}
|
});
|
},
|
|
close() {
|
this.$emit('close')
|
},
|
}
|
}
|
</script>
|
|
<style scoped>
|
|
</style>
|