shikeying
2023-05-08 83efa8f1ebd3ad80dfb5078a10caf9fcc4499dc8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<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>