Blame view

src/views/examinationPaper/addQs.vue 39.6 KB
ce278878   梁保满   2-2 bugfix
1
  <!-- 备题 -->
4c4f7640   梁保满   路由表,路由前端文件
2
  <template>
ca39cc52   阿宝   飞书问题处理
3
    <div ref="content" class="content-box">
13b58a42   梁保满   备题组卷部分前端页面基本完成
4
5
      <back-box>
        <template slot="title">
8af7657f   梁保满   修改添加备题,组卷
6
          <span>导入课件</span>
13b58a42   梁保满   备题组卷部分前端页面基本完成
7
8
9
        </template>
      </back-box>
      <div class="content">
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
10
        <el-steps :active="step" finish-status="success" simple style="margin: 20px 0">
13b58a42   梁保满   备题组卷部分前端页面基本完成
11
12
          <el-step title="基础信息" icon="el-icon-edit"></el-step>
          <el-step title="题目编辑" icon="el-icon-tickets"></el-step>
8af7657f   梁保满   修改添加备题,组卷
13
          <el-step title="课件预览" icon="el-icon-edit-outline"></el-step>
13b58a42   梁保满   备题组卷部分前端页面基本完成
14
15
        </el-steps>
        <div v-show="step == 0">
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
16
          <el-form ref="forms" :model="form" :rules="formRules" label-width="140px">
8af7657f   梁保满   修改添加备题,组卷
17
            <el-form-item label="课件名称:" prop="title">
23659274   梁保满   备题接口对接
18
              <el-input class="sel2" type="text" placeholder="请输入答题卡名称" v-model.trim="form.title" maxlength="50" size="45"
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
19
                show-word-limit>
ca39cc52   阿宝   飞书问题处理
20
              </el-input>
13b58a42   梁保满   备题组卷部分前端页面基本完成
21
            </el-form-item>
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
22
23
24
            <el-form-item v-if="role != 'ROLE_PERSONAL'" label="年级:" prop="gradeName">
              <el-select class="sel" v-model="form.gradeName" placeholder="" @change="changeGrade">
                <el-option v-for="item in gradeList" :key="item" :label="item" :value="item">
13b58a42   梁保满   备题组卷部分前端页面基本完成
25
26
27
                </el-option>
              </el-select>
            </el-form-item>
ee6e7628   梁保满   备题组卷借口数据对接调整
28
29
            <el-form-item label="科目:" prop="subjectName">
              <el-select class="sel" v-model="form.subjectName" placeholder="">
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
30
31
                <el-option v-for="item in subjectList" :key="item.value" :label="item.label" :value="item.value">{{
                  item.label }}
13b58a42   梁保满   备题组卷部分前端页面基本完成
32
33
34
                </el-option>
              </el-select>
            </el-form-item>
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
35
            <el-form-item v-if="role != 'ROLE_PERSONAL'" label="分享范围:" prop="sharingType">
ee6e7628   梁保满   备题组卷借口数据对接调整
36
              <el-radio-group v-model="form.sharingType">
f356590c   阿宝   即时测列表,分析页面
37
38
                <el-radio :label="0">任课班级分享</el-radio>
                <el-radio :label="1">全年级分享</el-radio>
13b58a42   梁保满   备题组卷部分前端页面基本完成
39
40
41
42
              </el-radio-group>
            </el-form-item>
          </el-form>
          <div class="btn-box">
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
43
            <el-button type="danger" plain round @click="linkBack">取消</el-button>
13b58a42   梁保满   备题组卷部分前端页面基本完成
44
45
            <el-button type="primary" round @click="setStep1">下一步</el-button>
          </div>
13b58a42   梁保满   备题组卷部分前端页面基本完成
46
47
        </div>
        <div v-show="step == 1">
f26ecfa4   阿宝   测试bug
48
49
          <div class="answer-title">
            <p class="name">{{ form.title }}</p>
f26ecfa4   阿宝   测试bug
50
          </div>
8af7657f   梁保满   修改添加备题,组卷
51
          <div class="question-box">
f5729396   梁保满   批量设置答案
52
53
54
55
56
57
58
            <ul class="questions-ul">
              <li class="sub-questions">
                <div class="qs-num">题号</div>
                <div class="qs-type">题型</div>
                <div class="qs-score">分数</div>
                <div class="qs-partScore">漏选得分</div>
                <div class="qs-options qs-options2">选项设置</div>
8af7657f   梁保满   修改添加备题,组卷
59
                <div class="qs-upload">提干</div>
cb6ceaa8   梁保满   添加备题,组卷参数调整
60
                <div class="qs-upload">题目解析</div>
23659274   梁保满   备题接口对接
61
62
                <div class="qs-upload" v-if="knowledgeData.length">知识点</div>
                <div class="qs-set">操作</div>
f5729396   梁保满   批量设置答案
63
              </li>
f5729396   梁保满   批量设置答案
64
            </ul>
c6f2a550   梁保满   创建备题组卷,修改备题
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
            <template v-for="(question, index) in form.questionList">
              <ul class="questions-ul">
                <li v-for="(subQuestions, indexs) in question.subQuestions" :key="indexs">
                  <p class="set-ans-btn" v-if="subQuestions.qusType &&
                    subQuestions.subNum &&
                    subQuestions.subNum > 4
                    ">
                    <el-button type="primary" @click="setFormAns(indexs, index)">批量设置答案</el-button>
                  </p>
                  <div v-else class="sub-questions">
                    <div class="qs-num">
                      {{ setNum(index, indexs, subQuestions) }}
                    </div>
                    <div class="qs-type">
                      <el-select v-model="subQuestions.questionType" placeholder="选择题目类型"
                        @change="changeSubQuestions($event, subQuestions)">
384a2a54   梁保满   请求头添加班主任信息,bug修改
81
                        <el-option v-for="options in questionOptions" :key="options.value" :label="options.label"
c6f2a550   梁保满   创建备题组卷,修改备题
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
                          :value="options.value"></el-option>
                      </el-select>
                    </div>
                    <div class="qs-score">
                      <el-input-number class="number-ipt" size="medium" :min="1" :max="200" :precision="2"
                        v-model="subQuestions.score" label="单题分值"></el-input-number>
                    </div>
                    <div class="qs-partScore">
                      <p v-if="subQuestions.questionType != 3">--</p>
                      <el-input-number class="number-ipt" v-else size="medium" :min="0" :precision="2"
                        :max="subQuestions.score" :step="0.5" v-model="subQuestions.partScore"
                        label="漏选得分"></el-input-number>
                    </div>
                    <div class="qs-options qs-options2">
                      <p v-if="subQuestions.questionType == 5">--</p>
                      <p v-if="subQuestions.questionType == 4" class="answer-box">
                        <span class="answer-s" :class="subQuestions.correctAnswer == 1 ? 'active' : ''"
                          @click="subQuestions.correctAnswer = 1">✓</span>
                        <span class="answer-s" :class="subQuestions.correctAnswer == 2 ? 'active' : ''"
                          @click="subQuestions.correctAnswer = 2">✗</span>
                      </p>
                      <p v-if="subQuestions.questionType == 3" class="answer-box">
                        <span class="answer-s" v-for="option in subQuestions.answerOptions.split(',')" :class="subQuestions.correctAnswer?.includes(option)
                          ? 'active'
                          : ''
                          " :key="option" @click="changAnswer(subQuestions, option)">{{ option }}</span>
                      </p>
                      <p v-if="subQuestions.questionType == 2" class="answer-box">
                        <span class="answer-s" v-for="option in subQuestions.answerOptions.split(',')" :class="subQuestions.correctAnswer == option ? 'active' : ''
                          " :key="option" @click="subQuestions.correctAnswer = option">{{ option }}</span>
                      </p>
77da338a   梁保满   自测问题修改
113
114
115
116
117
118
119
120
                      <p v-if="subQuestions.questionType == 3 ||
                        subQuestions.questionType == 2
                        " class="answer-box answer-box2">
                        <el-button size="mini" type="primary" icon="el-icon-plus" circle
                          @click="addOptions(subQuestions)"></el-button>
                        <el-button size="mini" type="primary" icon="el-icon-minus" round circle
                          @click="removeOptions(subQuestions)"></el-button>
                      </p>
c6f2a550   梁保满   创建备题组卷,修改备题
121
122
123
                    </div>
  
                    <div class="qs-upload">
ce278878   梁保满   2-2 bugfix
124
125
                      <el-button slot="reference" class="icon-tickets" type="primary" circle size="mini"
                        icon="el-icon-tickets" @click="openStem(subQuestions, index, indexs, 1)"></el-button>
c6f2a550   梁保满   创建备题组卷,修改备题
126
127
                    </div>
                    <div class="qs-upload">
ce278878   梁保满   2-2 bugfix
128
129
                      <el-button slot="reference" class="icon-tickets" type="primary" circle size="mini"
                        icon="el-icon-tickets" @click="openStem(subQuestions, index, indexs, 2)"></el-button>
c6f2a550   梁保满   创建备题组卷,修改备题
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
                    </div>
                    <div class="qs-upload" v-if="knowledgeData.length">
                      <el-button type="primary" circle size="mini" icon="el-icon-price-tag"
                        @click="openKnowledge(subQuestions, index, indexs)"></el-button>
                    </div>
                    <div class="qs-set">
                      <el-popconfirm title="确定删除这道题吗?" @confirm="delTabData(indexs, index)">
                        <el-button slot="reference" class="delete" type="danger" size="mini" circle
                          icon="el-icon-delete"></el-button>
                      </el-popconfirm>
                    </div>
                  </div>
                </li>
              </ul>
            </template>
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
145
          </div>
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
146
147
          <el-dialog :close-on-click-modal="false" title="批量设置答案" :visible.sync="diaSetAns" width="400"
            :modal-append-to-body="false">
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
148
149
150
151
152
153
            <div class="qs-options">
              <p class="dia-tips">
                请点击选项按钮设置答案,多选题题目之间用“,”隔开,若添加5道题:“AC,AD,BD,AC,CD”
              </p>
              <p>{{ setSubPro(formAns.qusType) }}:</p>
              <p class="ipt">
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
154
                <el-input v-if="formAns.qusType == 2 || formAns.qusType == 3" ref="formAnsIpt" v-model="formAns.answerList"
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
155
                  @keydown.native="keydownAnswer($event, formAns.qusType)"
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
156
157
                  @input="setAllAnswer($event, formAns.qusType)"></el-input>
                <el-input v-if="formAns.qusType == 4" v-model="formAns.answerList" readonly=""></el-input>
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
158
159
160
              </p>
              <p class="answer-box">
                <template v-if="formAns.qusType == 4">
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
161
162
163
164
165
166
167
168
169
170
                  <span class="answer-s active" @click="
                    formAns.answerList.length < formAns.subNum
                      ? (formAns.answerList += '✓')
                      : ''
                    ">✓</span>
                  <span class="answer-s active" @click="
                    formAns.answerList.length < formAns.subNum
                      ? (formAns.answerList += '✗')
                      : ''
                    ">✗</span>
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
171
172
                </template>
                <template v-if="formAns.qusType == 3">
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
173
174
175
                  <span class="answer-s active" v-for="option in formAns.answerOptions.split(',')" :key="option"
                    @click="setMultiple(formAns, option, 2)">{{ option }}</span>
                  <span class="answer-s active" @click="setMultiple(formAns, ',', 2)">,</span>
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
176
                </template>
21dfdeae   梁保满   平台管理员
177
                <template v-if="formAns.qusType == 2">
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
178
179
180
181
182
                  <span class="answer-s active" v-for="option in formAns.answerOptions.split(',')" :key="option" @click="
                    formAns.answerList.length < formAns.subNum
                      ? (formAns.answerList += option)
                      : ''
                    ">{{ option }}</span>
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
183
                </template>
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
184
185
                <span class="answer-s delButton" @click="formAns.answerList = formAns.answerList.slice(0, -1)">x</span>
                <span class="answer-s ac" @click="formAns.answerList = ''">ac</span>
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
186
187
188
189
190
191
192
              </p>
            </div>
            <div class="dialog-footer" slot="footer">
              <el-button @click="saveFormAns">确 定</el-button>
              <el-button @click="diaSetAns = false">取 消</el-button>
            </div>
          </el-dialog>
13b58a42   梁保满   备题组卷部分前端页面基本完成
193
          <div class="btn-box">
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
194
            <el-button type="danger" plain round @click="linkBack">取消</el-button>
8af7657f   梁保满   修改添加备题,组卷
195
196
            <el-button round @click="step = 0">上一步</el-button>
            <el-button type="primary" round @click="toStep(2)">下一步</el-button>
13b58a42   梁保满   备题组卷部分前端页面基本完成
197
          </div>
cb6ceaa8   梁保满   添加备题,组卷参数调整
198
199
          <el-dialog :close-on-click-modal="false" :title="stem.type == 1 ? '上传题干' : '上传题目解析'" :visible.sync="dialogStem"
            v-if="dialogStem" width="500">
8af7657f   梁保满   修改添加备题,组卷
200
            <div class="upload-box">
cb6ceaa8   梁保满   添加备题,组卷参数调整
201
              <template v-show="stem.type == 1">
ce278878   梁保满   2-2 bugfix
202
                <iframe class="screenshot" v-if="stem.screenshot" :src="stem.screenshot"></iframe>
cb6ceaa8   梁保满   添加备题,组卷参数调整
203
204
              </template>
              <template v-show="stem.type == 2">
ce278878   梁保满   2-2 bugfix
205
                <iframe class="screenshot" v-if="stem.answerScreenshot" :src="stem.answerScreenshot"></iframe>
cb6ceaa8   梁保满   添加备题,组卷参数调整
206
              </template>
ce278878   梁保满   2-2 bugfix
207
208
209
              <el-upload class="upload-demo" :action="uploadUrl" :limit="1" :on-success="upSuccess" :on-error="upError"
                accept="image/*">
                <el-button size="small" type="primary">选择上传照片</el-button>
8af7657f   梁保满   修改添加备题,组卷
210
211
212
              </el-upload>
            </div>
            <div slot="footer">
ce278878   梁保满   2-2 bugfix
213
              <el-button @click="dialogStem = false">保存</el-button>
8af7657f   梁保满   修改添加备题,组卷
214
215
            </div>
          </el-dialog>
cb6ceaa8   梁保满   添加备题,组卷参数调整
216
217
218
219
220
221
222
223
224
225
226
227
228
229
          <el-dialog :close-on-click-modal="false" title="知识点" :visible.sync="dialogKnowledge" width="500">
            <div>
              <el-form ref="form" :model="stem" label-width="160px">
                <el-form-item label="知识点:">
                  <el-cascader size="small" filterable :show-all-levels="false" collapse clearable placeholder="选择知识点"
                    v-model="stem.knowledge" :options="knowledgeData" :props="{ expandTrigger: 'hover' }"></el-cascader>
                </el-form-item>
              </el-form>
            </div>
            <div slot="footer">
              <el-button @click="dialogKnowledge = false">取 消</el-button>
              <el-button type="primary" @click="setKnowledge">确 定</el-button>
            </div>
          </el-dialog>
13b58a42   梁保满   备题组卷部分前端页面基本完成
230
        </div>
8af7657f   梁保满   修改添加备题,组卷
231
232
233
        <div v-show="step == 2">
          <div class="answer-title">
            <p class="name">{{ form.title }}</p>
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
234
          </div>
8af7657f   梁保满   修改添加备题,组卷
235
          <div class="question-box">
c6f2a550   梁保满   创建备题组卷,修改备题
236
237
            <template v-for="question in form.questionList">
              <div class="screenshot-box" v-for="subQuestions in question.subQuestions">
ce278878   梁保满   2-2 bugfix
238
                <iframe class="screenshot" v-if="subQuestions.screenshot" :src="subQuestions.screenshot"></iframe>
c6f2a550   梁保满   创建备题组卷,修改备题
239
240
              </div>
            </template>
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
241
          </div>
8af7657f   梁保满   修改添加备题,组卷
242
243
244
245
246
247
          <div class="btn-box">
            <el-button type="danger" plain round @click="linkBack">取消</el-button>
            <el-button round @click="toStep(1)">上一步</el-button>
            <el-button type="primary" round @click="save">保存</el-button>
          </div>
        </div>
13b58a42   梁保满   备题组卷部分前端页面基本完成
248
249
      </div>
    </div>
4c4f7640   梁保满   路由表,路由前端文件
250
251
252
  </template>
  
  <script>
533a17d8   梁保满   备题组卷添加批量设置答案
253
  import { deepClone, checkAnswer } from "utils";
cb6ceaa8   梁保满   添加备题,组卷参数调整
254
  import knowledgeList from "assets/js/knowledgeList.js";
4c4f7640   梁保满   路由表,路由前端文件
255
  export default {
13b58a42   梁保满   备题组卷部分前端页面基本完成
256
257
    data() {
      return {
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
258
        role: "",
13b58a42   梁保满   备题组卷部分前端页面基本完成
259
        step: 0, //步骤
cb6ceaa8   梁保满   添加备题,组卷参数调整
260
        gradeClassList: [], //年级-班级数据
13b58a42   梁保满   备题组卷部分前端页面基本完成
261
262
        gradeList: [], //年级
        subjectList: [], //科目
13b58a42   梁保满   备题组卷部分前端页面基本完成
263
264
265
        form: {
          //答题卡详情
          title: "",
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
266
          gradeName: "",
8af7657f   梁保满   修改添加备题,组卷
267
          subjectName: "",
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
268
          sharingType: 0,
8af7657f   梁保满   修改添加备题,组卷
269
          questionList: [],
13b58a42   梁保满   备题组卷部分前端页面基本完成
270
271
272
273
274
275
276
        },
        formRules: {
          //答题卡验证
          title: [
            { required: true, message: "请输入答题卡名称", trigger: "blur" },
            {
              min: 1,
23659274   梁保满   备题接口对接
277
278
              max: 50,
              message: "长度在 1 到 50 个字符",
13b58a42   梁保满   备题组卷部分前端页面基本完成
279
280
281
              trigger: "blur",
            },
          ],
8af7657f   梁保满   修改添加备题,组卷
282
283
284
          gradeName: [
            { required: true, message: "请选择年级", trigger: "blur" },
          ],
ee6e7628   梁保满   备题组卷借口数据对接调整
285
286
287
          subjectName: [
            { required: true, message: "请选择科目", trigger: "blur" },
          ],
13b58a42   梁保满   备题组卷部分前端页面基本完成
288
        },
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
289
        diaSetAns: false, //答案开关
cb6ceaa8   梁保满   添加备题,组卷参数调整
290
        dialogKnowledge: false, //知识点
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
291
        dialogStem: false, //截图开关
533a17d8   梁保满   备题组卷添加批量设置答案
292
        formAns: {
c6f2a550   梁保满   创建备题组卷,修改备题
293
294
          listIndex: 0, //大题位置
          endIndex: 0, //相同题目最后一位题目的questionIndex
98f6a547   梁保满   创建答题卡,统计答题信息
295
          index: 0, //相同题目最后一位题目的位置
533a17d8   梁保满   备题组卷添加批量设置答案
296
297
298
299
300
          qusType: "", //题目类型
          subNum: 0, //数量
          answerOptions: [], //答案选项
          answerList: "", //答案列表-字符串
        },
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
301
        stem: {
cb6ceaa8   梁保满   添加备题,组卷参数调整
302
          type: 1,
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
303
          index: 0, //大题位置
c6f2a550   梁保满   创建备题组卷,修改备题
304
          indexs: 0, //小题位置
8af7657f   梁保满   修改添加备题,组卷
305
          screenshot: "", //题干图片地址
cb6ceaa8   梁保满   添加备题,组卷参数调整
306
307
          answerScreenshot: "", //题目解析图片地址
          knowledge: [], //知识点
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
308
309
        },
        type: 1, //1-创建,2-复制答题卡
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
310
311
312
313
314
315
316
        questionOptions: [
          { label: "单选题", value: 2 },
          { label: "多选题", value: 3 },
          { label: "判断题", value: 4 },
          { label: "主观题", value: 5 },
        ],
        rightOptions: ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"],
384a2a54   梁保满   请求头添加班主任信息,bug修改
317
318
319
320
        knowledgeList: { ...knowledgeList },
        //返回列表页参数记录
        listType: 1,
        listShare: 0,
ce278878   梁保满   2-2 bugfix
321
        uploadUrl: "/file/uploadImgToHtml"
13b58a42   梁保满   备题组卷部分前端页面基本完成
322
323
      };
    },
23659274   梁保满   备题接口对接
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
    computed: {
      // 知识点列表 根据学段-科目筛选
      knowledgeData: function () {
        let jsons = []
        if (this.form.gradeName && this.form.subjectName) {
          let sectionName = ""
          this.gradeClassList.map(item => {
            if (this.form.gradeName == item.gradeName) {
              sectionName = item.sectionName
            }
          })
          if (sectionName && Object.keys(this.knowledgeList).includes(sectionName)) {
            if (Object.keys(this.knowledgeList[sectionName]).includes(this.form.subjectName)) {
              jsons = this.knowledgeList[sectionName][this.form.subjectName]
            }
          }
        }
        return jsons
      },
    },
    watch: {
      step: function () {
        this.$nextTick(function () {
          this.$refs.content.scrollTop = 0;
        });
      },
    },
5424ef82   梁保满   接口调整
351
    async created() {
384a2a54   梁保满   请求头添加班主任信息,bug修改
352
353
      this.listType = this.$route.query.listType ? this.$route.query.listType : 1;
      this.listShare = this.$route.query.listShare ? this.$route.query.listShare : 0;
f26ecfa4   阿宝   测试bug
354
      this.type = this.$route.query.type ? this.$route.query.type : 1;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
355
356
357
      this.role =
        this.$store.getters.info.showRole ||
        this.$store.getters.info.permissions[0].role;
ce278878   梁保满   2-2 bugfix
358
359
360
361
362
363
364
      if (this.type != 2) {
        let params = this.$route.query.params && JSON.parse(this.$route.query.params) || null
        this.form.title = params?.name
        this.form.id = params?.id
        this.form.sharingType = params?.sharingType || 0
        this.formatData(params)
      }
8af7657f   梁保满   修改添加备题,组卷
365
      console.log(this.form)
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
366
367
368
369
370
371
      if (this.role != "ROLE_PERSONAL") {
        this.formRules.gradeName = [
          { required: true, message: "请选择年级", trigger: "blur" },
        ];
        await this._GradeList();
      }
8f573b82   阿宝   组卷接口联调
372
      await this._QuerySubjectList(this.gradeList[0]);
13b58a42   梁保满   备题组卷部分前端页面基本完成
373
      if (this.type == 2) {
ee6e7628   梁保满   备题组卷借口数据对接调整
374
        this._QueryDetail();
13b58a42   梁保满   备题组卷部分前端页面基本完成
375
376
377
      }
    },
    methods: {
8af7657f   梁保满   修改添加备题,组卷
378
      // v1.5
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
379
      //上传截图
c6f2a550   梁保满   创建备题组卷,修改备题
380
      openStem(obj, index, indexs, type) {
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
381
        this.stem.index = index;
c6f2a550   梁保满   创建备题组卷,修改备题
382
383
        this.stem.indexs = indexs;
        this.stem.type = type;
cb6ceaa8   梁保满   添加备题,组卷参数调整
384
385
386
387
388
389
390
        if (type == 1) {
          this.stem.screenshot = obj.screenshot || "";
          this.stem.answerScreenshot = "";
        } else {
          this.stem.answerScreenshot = obj.answerScreenshot || "";
          this.stem.screenshot = "";
        }
c6f2a550   梁保满   创建备题组卷,修改备题
391
  
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
392
393
        this.dialogStem = true;
      },
c6f2a550   梁保满   创建备题组卷,修改备题
394
395
396
  
      // 图片上传成功
      upSuccess(res) {
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
397
        if (res && res.status == 0) {
cb6ceaa8   梁保满   添加备题,组卷参数调整
398
399
          if (this.stem.type == 1) {
            this.stem.screenshot = res.data.url;
c6f2a550   梁保满   创建备题组卷,修改备题
400
            this.form.questionList[this.stem.index].subQuestions[this.stem.indexs].screenshot = this.stem.screenshot;
cb6ceaa8   梁保满   添加备题,组卷参数调整
401
402
          } else {
            this.stem.answerScreenshot = res.data.url;
c6f2a550   梁保满   创建备题组卷,修改备题
403
            this.form.questionList[this.stem.index].subQuestions[this.stem.indexs].answerScreenshot = this.stem.answerScreenshot;
cb6ceaa8   梁保满   添加备题,组卷参数调整
404
          }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
405
406
407
408
409
410
411
412
413
          this.$message.success("上传成功");
        } else {
          this.$message.error(res.info);
        }
      },
  
      upError(res) {
        this.$message.error("上传失败");
      },
cb6ceaa8   梁保满   添加备题,组卷参数调整
414
415
416
      // 知识点
      openKnowledge(obj, index) {
        this.stem.index = index;
c6f2a550   梁保满   创建备题组卷,修改备题
417
        this.stem.indexs = indexs;
384a2a54   梁保满   请求头添加班主任信息,bug修改
418
        this.stem.knowledge = (obj.knowledge && obj.knowledge.split("#")) || [];
cb6ceaa8   梁保满   添加备题,组卷参数调整
419
420
421
422
        this.dialogKnowledge = true;
      },
      // 知识点
      setKnowledge() {
384a2a54   梁保满   请求头添加班主任信息,bug修改
423
        this.form.questionList[this.stem.index].subQuestions[this.stem.indexs].knowledge = this.stem.knowledge.join("#");
cb6ceaa8   梁保满   添加备题,组卷参数调整
424
425
426
        this.dialogKnowledge = false;
      },
  
8af7657f   梁保满   修改添加备题,组卷
427
      //end
13b58a42   梁保满   备题组卷部分前端页面基本完成
428
429
      linkBack() {
        this.$confirm(
8af7657f   梁保满   修改添加备题,组卷
430
431
          (this.type == 2 ? "修改复制的" : "导入的") +
          "课件未保存,确认退出吗?",
13b58a42   梁保满   备题组卷部分前端页面基本完成
432
433
434
435
436
437
438
439
440
441
442
443
          "提示",
          {
            confirmButtonText: "取消",
            cancelButtonText: "确定",
            confirmButtonClass: "el-button--danger1",
            cancelButtonClass: "el-button--primary",
            showClose: false,
            roundButton: true,
            center: true,
            type: "warning",
          }
        )
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
444
          .then(() => { })
13b58a42   梁保满   备题组卷部分前端页面基本完成
445
446
447
          .catch(() => {
            this.$router.push({
              path: "/examinationPaper",
384a2a54   梁保满   请求头添加班主任信息,bug修改
448
449
450
451
              query: {
                type: this.listType,
                share: this.listShare,
              }
13b58a42   梁保满   备题组卷部分前端页面基本完成
452
453
454
            });
          });
      },
c6f2a550   梁保满   创建备题组卷,修改备题
455
      //转换题型显示方式
13b58a42   梁保满   备题组卷部分前端页面基本完成
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
      setSubPro(type) {
        let tit;
        switch (type) {
          case 2:
            tit = "单选题";
            break;
          case 3:
            tit = "多选题";
            break;
          case 4:
            tit = "判断题";
            break;
          case 5:
            tit = "主观题";
            break;
        }
        return tit;
      },
c6f2a550   梁保满   创建备题组卷,修改备题
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
      //计算题号
      setNum(index, indexs, sub) {
        let lengths = 0;//所在大题之前的所有小题数量
        let subIndex = 0;//所在大题的位置
        for (let i = 0; i < index; i++) {
          let subArr = this.form.questionList[i].subQuestions.filter((item) => {
            return !!item.questionType;
          });
          lengths += subArr.length;
        }
        for (let i = 0; i < indexs; i++) {
          if (!!this.form.questionList[index].subQuestions[i].questionType) {
            subIndex += 1;
          }
        }
        return lengths + subIndex + 1;
      },
8af7657f   梁保满   修改添加备题,组卷
491
492
      //整理问题
      formateQuestion() {
8af7657f   梁保满   修改添加备题,组卷
493
        this.formatQuestionList()
c6f2a550   梁保满   创建备题组卷,修改备题
494
495
496
497
498
        this.form.questionList?.map((item) => {
          let types = [{}];
          let addndex = 0;
          item.subQuestions?.map((sub, index) => {
            if (!!sub.questionType) {
8af7657f   梁保满   修改添加备题,组卷
499
              if (
c6f2a550   梁保满   创建备题组卷,修改备题
500
501
                sub.questionType == types[addndex].qusType &&
                sub.questionType != 5
8af7657f   梁保满   修改添加备题,组卷
502
              ) {
c6f2a550   梁保满   创建备题组卷,修改备题
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
                //同类型批量答案+1
                types[addndex].subNum += 1;
                if (
                  types[addndex].answerOptions.length < sub.answerOptions.length
                ) {
                  types[addndex].answerOptions = sub.answerOptions;
                }
  
                // types[addndex].answerList += this.setAnswer(
                //   sub.questionType,
                //   sub.correctAnswer
                // );
                types[addndex].answerList = "";
                if (index == item.subQuestions.length - 1) {
                  //循环最后类型数量大于等于5,保存批量答案
                  if (types[addndex].subNum && types[addndex].subNum >= 5) {
                    types[addndex].endIndex = sub.questionIndex;
                    types[addndex].index = index;
                  }
                }
              } else {
                if (types[addndex].subNum && types[addndex].subNum >= 5) {
                  //不同类型时如果原有类型数量大于等于5,保存批量答案
                  types[addndex].endIndex =
                    item.subQuestions[index - 1].questionIndex;
                  types[addndex].index = index - 1;
                  addndex += 1;
                  types[addndex] = {};
                }
                //不同类型初始化批量答案
                types[addndex].qusType = sub.questionType;
                types[addndex].subNum = 1;
8af7657f   梁保满   修改添加备题,组卷
535
                types[addndex].answerOptions = sub.answerOptions;
c6f2a550   梁保满   创建备题组卷,修改备题
536
                types[addndex].answerList = "";
8af7657f   梁保满   修改添加备题,组卷
537
              }
c6f2a550   梁保满   创建备题组卷,修改备题
538
539
540
541
542
543
544
545
546
            }
          });
          for (let i = 0; i < types.length; i++) {
            if (types[i].subNum >= 5) {
              item.subQuestions?.splice(
                types[i].index + i + 1,
                0,
                deepClone(types[i])
              );
8af7657f   梁保满   修改添加备题,组卷
547
            }
533a17d8   梁保满   备题组卷添加批量设置答案
548
          }
0e46bc25   梁保满   优化
549
        });
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
550
      },
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
551
      //初始化要修改的答案
c6f2a550   梁保满   创建备题组卷,修改备题
552
553
554
      setFormAns(indexs, index) {
        this.formAns = { ...this.form.questionList[index].subQuestions[indexs] };
        this.formAns.listIndex = index;
11a4e518   梁保满   背题组卷修改答案设置,即使测随堂问...
555
        let answerList = "";
c6f2a550   梁保满   创建备题组卷,修改备题
556
557
558
        let startIndex = indexs - this.formAns.subNum; //批量设置大难开始位置
        this.form.questionList[index].subQuestions.map((item, subIdx) => {
          if (subIdx >= startIndex && subIdx < indexs) {
f5729396   梁保满   批量设置答案
559
            answerList += this.setAnswer(item.questionType, item.correctAnswer);
c6f2a550   梁保满   创建备题组卷,修改备题
560
  
8af7657f   梁保满   修改添加备题,组卷
561
562
            if (item.qusType == 3) {
              answerList = answerList.slice(0, -1);
11a4e518   梁保满   背题组卷修改答案设置,即使测随堂问...
563
            }
11a4e518   梁保满   背题组卷修改答案设置,即使测随堂问...
564
565
          }
        });
c6f2a550   梁保满   创建备题组卷,修改备题
566
567
        this.formAns.answerList = answerList;
  
533a17d8   梁保满   备题组卷添加批量设置答案
568
569
        this.diaSetAns = true;
      },
def690b2   梁保满   批量设置答案
570
      insertTxtAndSetcursor(element, answerList, str) {
f5729396   梁保满   批量设置答案
571
572
573
574
575
576
577
578
579
580
581
582
583
584
        let startPos = element.selectionStart; // 获取光标开始的位置
        if (startPos === undefined) {
          // 如果没有光标位置 不操作
          return answerList;
        } else {
          return {
            text:
              answerList.substring(0, startPos) +
              str +
              answerList.substring(startPos), // 将文本插入
            startPos: startPos + str.length,
          };
        }
      },
77da338a   梁保满   自测问题修改
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
      //添加选项
      addOptions(subQuestions) {
        let length = subQuestions.answerOptions.split(",").length;
        if (length > 9) return;
        subQuestions.selectNum = length + 1;
        subQuestions.answerOptions = this.rightOptions
          .slice(0, subQuestions.selectNum)
          .join(",");
      },
      //删除选项
      removeOptions(subQuestions) {
        let length = subQuestions.answerOptions.split(",").length;
        if (length < 3) return;
        subQuestions.selectNum = length - 1;
        subQuestions.answerOptions = this.rightOptions
          .slice(0, subQuestions.selectNum)
          .join(",");
        subQuestions.correctAnswer = subQuestions.correctAnswer.slice(
          0,
          subQuestions.selectNum
        );
      },
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
607
      //多选答案设置
def690b2   梁保满   批量设置答案
608
      setMultiple(obj, answer, type) {
def690b2   梁保满   批量设置答案
609
610
611
612
613
614
615
616
617
        let elements =
          type == 1
            ? this.$refs["formAnsIpt2"].$el.children[0]
            : this.$refs["formAnsIpt"].$el.children[0];
        let resault = this.insertTxtAndSetcursor(
          elements,
          obj.answerList || "",
          answer
        );
f5729396   梁保满   批量设置答案
618
        obj.answerList = resault.text;
533a17d8   梁保满   备题组卷添加批量设置答案
619
        let str = obj.answerList;
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
620
621
622
623
624
625
        let str2;
        if (!!obj.answerOptions) {
          str2 = checkAnswer(
            str,
            3,
            obj.answerOptions.split(",").length,
b2d3d803   梁保满   批量设置答案优化
626
            obj.subNum
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
627
628
          );
        } else {
b2d3d803   梁保满   批量设置答案优化
629
          str2 = checkAnswer(str, 3, obj.selectNum, obj.number);
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
630
        }
533a17d8   梁保满   备题组卷添加批量设置答案
631
        obj.answerList = str2;
def690b2   梁保满   批量设置答案
632
633
        elements.focus();
        elements.selectionStart = resault.startPos;
533a17d8   梁保满   备题组卷添加批量设置答案
634
      },
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
635
      //批量修改答案
533a17d8   梁保满   备题组卷添加批量设置答案
636
      saveFormAns() {
533a17d8   梁保满   备题组卷添加批量设置答案
637
638
        let EndIndex;
        let subNum = this.formAns.subNum - 1;
c6f2a550   梁保满   创建备题组卷,修改备题
639
        this.form.questionList[this.formAns.listIndex].subQuestions.some(
533a17d8   梁保满   备题组卷添加批量设置答案
640
          (item, index) => {
c6f2a550   梁保满   创建备题组卷,修改备题
641
            if (this.formAns.endIndex == item.questionIndex) {
533a17d8   梁保满   备题组卷添加批量设置答案
642
              EndIndex = index;
533a17d8   梁保满   备题组卷添加批量设置答案
643
            }
c6f2a550   梁保满   创建备题组卷,修改备题
644
            return this.formAns.endIndex == item.questionIndex
533a17d8   梁保满   备题组卷添加批量设置答案
645
646
          }
        );
533a17d8   梁保满   备题组卷添加批量设置答案
647
648
649
        for (let i = 0; i <= subNum; i++) {
          let correctAnswer = "";
          if (this.formAns.qusType == 2) {
f5729396   梁保满   批量设置答案
650
            correctAnswer = this.formAns.answerList[subNum - i] || "";
533a17d8   梁保满   备题组卷添加批量设置答案
651
          } else if (this.formAns.qusType == 3) {
f5729396   梁保满   批量设置答案
652
            correctAnswer = this.formAns.answerList.split(",")[subNum - i] || "";
533a17d8   梁保满   备题组卷添加批量设置答案
653
          } else if (this.formAns.qusType == 4) {
503b6063   梁保满   判断题答案选项
654
655
656
657
            correctAnswer =
              this.formAns.answerList[subNum - i] == "✓"
                ? 1
                : this.formAns.answerList[subNum - i] == "✗"
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
658
659
                  ? 2
                  : "";
533a17d8   梁保满   备题组卷添加批量设置答案
660
          }
c6f2a550   梁保满   创建备题组卷,修改备题
661
          this.form.questionList[this.formAns.listIndex].subQuestions[
533a17d8   梁保满   备题组卷添加批量设置答案
662
663
664
665
666
            EndIndex - i
          ].correctAnswer = correctAnswer;
        }
        this.diaSetAns = false;
      },
8af7657f   梁保满   修改添加备题,组卷
667
      keydownAnswer(event, type) {
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
668
669
        let answerA = "ABCDEFGHIJ";
        let answer_a = "abcdefghij";
8af7657f   梁保满   修改添加备题,组卷
670
671
672
673
  
        answerA = answerA.substring(0, this.formAns.subNum);
        answer_a = answer_a.substring(0, this.formAns.subNum);
  
813d4d64   梁保满   批量设置答案添加输入
674
675
        answerA += answer_a;
        answerA = type == 2 ? answerA : answerA + ",";
533a17d8   梁保满   备题组卷添加批量设置答案
676
677
678
679
680
681
682
683
684
685
686
687
688
689
        if (
          event.key == "Meta" ||
          event.key == "CapsLock" ||
          event.key == "Shift" ||
          event.key == "Enter" ||
          event.key == "Alt" ||
          event.key == "Backspace" ||
          event.key == "Delete" ||
          event.key == "ArrowUp" ||
          event.key == "ArrowDown" ||
          event.key == "ArrowLeft" ||
          event.key == "v" ||
          event.key == "V" ||
          event.key == "ArrowRight"
813d4d64   梁保满   批量设置答案添加输入
690
        )
533a17d8   梁保满   备题组卷添加批量设置答案
691
          return;
813d4d64   梁保满   批量设置答案添加输入
692
        if (!answerA.includes(event.key)) {
533a17d8   梁保满   备题组卷添加批量设置答案
693
694
695
          event.returnValue = "";
        }
      },
8af7657f   梁保满   修改添加备题,组卷
696
697
698
699
700
701
702
703
704
705
706
      setAllAnswer(event, type) {
  
        let str = this.formAns.answerList;
        let str2 = checkAnswer(
          str,
          type,
          this.formAns.answerOptions.split(",").length,
          this.formAns.subNum
        );
        this.formAns.answerList = str2;
  
813d4d64   梁保满   批量设置答案添加输入
707
      },
533a17d8   梁保满   备题组卷添加批量设置答案
708
709
710
      setAnswer(type, ans) {
        let txt = "";
        if (type == 2) {
c6f2a550   梁保满   创建备题组卷,修改备题
711
          txt = ans || "";
533a17d8   梁保满   备题组卷添加批量设置答案
712
        } else if (type == 3) {
c6f2a550   梁保满   创建备题组卷,修改备题
713
          txt = (ans || "") + ",";
533a17d8   梁保满   备题组卷添加批量设置答案
714
        } else if (type == 4) {
d32e461c   梁保满   备题组卷
715
          txt = ans == 1 ? "✓" : ans == 2 ? "✗" : "";
533a17d8   梁保满   备题组卷添加批量设置答案
716
717
718
        }
        return txt;
      },
8af7657f   梁保满   修改添加备题,组卷
719
      toStep(step) {
533a17d8   梁保满   备题组卷添加批量设置答案
720
        this.formatQuestionList();
8af7657f   梁保满   修改添加备题,组卷
721
        this.step = step;
cb6ceaa8   梁保满   添加备题,组卷参数调整
722
        if (step == 1) {
8af7657f   梁保满   修改添加备题,组卷
723
724
          this.formateQuestion()
        }
533a17d8   梁保满   备题组卷添加批量设置答案
725
      },
13b58a42   梁保满   备题组卷部分前端页面基本完成
726
      setStep1() {
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
727
728
729
730
        if (this.subjectList.length == 0) {
          this.$message.warning("暂无绑定年级信息,请先联系管理员设置。");
          return;
        }
13b58a42   梁保满   备题组卷部分前端页面基本完成
731
732
733
        this.$refs["forms"].validate((valid) => {
          // 验证通过:保存
          if (valid) {
8af7657f   梁保满   修改添加备题,组卷
734
            this.formateQuestion()
13b58a42   梁保满   备题组卷部分前端页面基本完成
735
736
737
738
739
740
741
            this.step = 1;
          } else {
            this.$message.error("数据有误,请检查!");
            return false;
          }
        });
      },
8af7657f   梁保满   修改添加备题,组卷
742
  
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
743
      //删除批量操作数据
533a17d8   梁保满   备题组卷添加批量设置答案
744
745
      formatQuestionList() {
        for (let i = 0; i < this.form.questionList.length; i++) {
c6f2a550   梁保满   创建备题组卷,修改备题
746
747
748
749
750
751
752
753
          for (
            let j = 0;
            j < this.form.questionList[i].subQuestions?.length;
            j++
          ) {
            if (this.form.questionList[i].subQuestions[j]?.qusType) {
              this.form.questionList[i].subQuestions?.splice(j, 1);
            }
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
754
          }
13b58a42   梁保满   备题组卷部分前端页面基本完成
755
        }
13b58a42   梁保满   备题组卷部分前端页面基本完成
756
      },
8af7657f   梁保满   修改添加备题,组卷
757
      //删除题
c6f2a550   梁保满   创建备题组卷,修改备题
758
759
      delTabData(subIndex, index) {
        this.form.questionList[index].subQuestions.splice(subIndex, 1);
8af7657f   梁保满   修改添加备题,组卷
760
        this.formateQuestion()
13b58a42   梁保满   备题组卷部分前端页面基本完成
761
      },
23659274   梁保满   备题接口对接
762
      //切换题型
13b58a42   梁保满   备题组卷部分前端页面基本完成
763
      changeSubQuestions(val, subQuestions) {
13b58a42   梁保满   备题组卷部分前端页面基本完成
764
765
766
767
768
769
770
        const that = this;
        subQuestions.score = 1;
        subQuestions.partScore = 0;
        subQuestions.correctAnswer = "";
        subQuestions.selectNum = 4;
        switch (val) {
          case 2:
8f573b82   阿宝   组卷接口联调
771
772
773
            subQuestions.answerOptions = that.rightOptions
              .slice(0, subQuestions.selectNum)
              .join(",");
13b58a42   梁保满   备题组卷部分前端页面基本完成
774
775
            break;
          case 3:
8f573b82   阿宝   组卷接口联调
776
777
778
            subQuestions.answerOptions = that.rightOptions
              .slice(0, subQuestions.selectNum)
              .join(",");
13b58a42   梁保满   备题组卷部分前端页面基本完成
779
780
            break;
          case 4:
503b6063   梁保满   判断题答案选项
781
782
783
            subQuestions.selectNum = 0;
            subQuestions.answerOptions = "1,2";
            break;
13b58a42   梁保满   备题组卷部分前端页面基本完成
784
785
786
787
          case 5:
            subQuestions.selectNum = 0;
            break;
        }
c6f2a550   梁保满   创建备题组卷,修改备题
788
        this.formateQuestion()
13b58a42   梁保满   备题组卷部分前端页面基本完成
789
      },
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
790
      //设置多选答案
13b58a42   梁保满   备题组卷部分前端页面基本完成
791
      changAnswer(sub, option) {
13b58a42   梁保满   备题组卷部分前端页面基本完成
792
793
794
795
796
797
798
799
800
        let str = new RegExp(option, "g");
        if (sub.correctAnswer?.includes(option)) {
          sub.correctAnswer = sub.correctAnswer.replace(str, "");
        } else {
          let arrs = (sub.correctAnswer && sub.correctAnswer.split("")) || [];
          arrs.push(option);
          sub.correctAnswer = arrs.sort().join("");
        }
      },
8af7657f   梁保满   修改添加备题,组卷
801
802
803
804
  
  
  
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
805
      async save() {
8f573b82   阿宝   组卷接口联调
806
807
        if (this.saveLoading) return;
        this.saveLoading = true;
533a17d8   梁保满   备题组卷添加批量设置答案
808
        this.formatQuestionList();
f5729396   梁保满   批量设置答案
809
        let formDatas = deepClone(this.form);
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
810
811
812
813
814
        let addPaper =
          this.role == "ROLE_PERSONAL"
            ? this.$request.pAddPaper
            : this.$request.addPaper;
        const { data, status, info } = await addPaper({
8af7657f   梁保满   修改添加备题,组卷
815
          type: 1,
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
816
          ...formDatas,
13b58a42   梁保满   备题组卷部分前端页面基本完成
817
        });
8f573b82   阿宝   组卷接口联调
818
        this.saveLoading = false;
ee6e7628   梁保满   备题组卷借口数据对接调整
819
        if (status == 0) {
13b58a42   梁保满   备题组卷部分前端页面基本完成
820
          this.$router.push({
ee6e7628   梁保满   备题组卷借口数据对接调整
821
            path: "/examinationPaper",
384a2a54   梁保满   请求头添加班主任信息,bug修改
822
823
824
825
            query: {
              type: this.listType,
              share: this.listShare,
            }
ee6e7628   梁保满   备题组卷借口数据对接调整
826
          });
13b58a42   梁保满   备题组卷部分前端页面基本完成
827
        } else {
6fffbd55   阿宝   组卷接口调整
828
          this.$message.error(info);
13b58a42   梁保满   备题组卷部分前端页面基本完成
829
830
831
832
833
834
        }
      },
      async changeGrade() {
        //切换年级查询科目
        this._QuerySubjectList(this.form.gradeName);
      },
8af7657f   梁保满   修改添加备题,组卷
835
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
836
837
      async _GradeList() {
        //查询年级列表
cb6ceaa8   梁保满   添加备题,组卷参数调整
838
839
840
841
842
843
844
845
846
        // const { data, status, info } = await this.$request.fetchGradeList();
        // 查找班级
  
        let fetchClassList =
          this.role == "ROLE_PERSONAL"
            ? this.$request.pClassList
            : this.$request.fetchClassList;
  
        const { data, status, info } = await fetchClassList();
ee6e7628   梁保满   备题组卷借口数据对接调整
847
        if (status == 0) {
cb6ceaa8   梁保满   添加备题,组卷参数调整
848
849
850
851
852
853
854
855
          this.gradeClassList = data.list?.map((item) => {
            console.log(!this.gradeList.includes(item.gradeName))
            if (!this.gradeList.includes(item.gradeName)) {
              this.gradeList.push(item.gradeName)
            }
            return item
          })
          // this.gradeList = (data.gradeNames && [...data.gradeNames]) || [];
13b58a42   梁保满   备题组卷部分前端页面基本完成
856
857
858
          if (this.type != 2) {
            this.form.gradeName = this.gradeList[0];
          }
13b58a42   梁保满   备题组卷部分前端页面基本完成
859
        } else {
6fffbd55   阿宝   组卷接口调整
860
          this.$message.error(info);
13b58a42   梁保满   备题组卷部分前端页面基本完成
861
862
        }
      },
5424ef82   梁保满   接口调整
863
      async _QuerySubjectList(grade) {
13b58a42   梁保满   备题组卷部分前端页面基本完成
864
        //查询科目列表
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
865
866
867
868
869
870
871
872
873
874
875
876
        if (!grade) {
          return;
        }
        let query = {};
        let fetchSubjectList =
          this.role == "ROLE_PERSONAL"
            ? this.$request.pSubjectList
            : this.$request.fetchSubjectList;
        if (this.role != "ROLE_PERSONAL") {
          query.gradeName = grade;
        }
        const { data, status, info } = await fetchSubjectList({ ...query });
ee6e7628   梁保满   备题组卷借口数据对接调整
877
        if (status === 0) {
f26ecfa4   阿宝   测试bug
878
879
880
          this.subjectList =
            data.subjectNames?.map((item) => {
              return {
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
881
882
                value: this.role == "ROLE_PERSONAL" ? item.subjectName : item,
                label: this.role == "ROLE_PERSONAL" ? item.subjectName : item,
f26ecfa4   阿宝   测试bug
883
884
              };
            }) || [];
ee6e7628   梁保满   备题组卷借口数据对接调整
885
886
          if (this.subjectList.length) {
            this.form.subjectName = this.subjectList[0].value;
13b58a42   梁保满   备题组卷部分前端页面基本完成
887
          }
13b58a42   梁保满   备题组卷部分前端页面基本完成
888
        } else {
6fffbd55   阿宝   组卷接口调整
889
          this.$message.error(info);
13b58a42   梁保满   备题组卷部分前端页面基本完成
890
891
        }
      },
ee6e7628   梁保满   备题组卷借口数据对接调整
892
      async _QueryDetail() {
03bce046   梁保满   个人版调整
893
        //查询答题卡详情
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
894
895
896
897
898
        let fetchPaperDetail =
          this.role == "ROLE_PERSONAL"
            ? this.$request.pPaperDetail
            : this.$request.fetchPaperDetail;
        const { data, status, info } = await fetchPaperDetail({
ee6e7628   梁保满   备题组卷借口数据对接调整
899
900
901
          paperId: this.$route.query.paperId,
        });
        if (status == 0) {
f26ecfa4   阿宝   测试bug
902
          this.form.title = data.title + "_副本";
ce278878   梁保满   2-2 bugfix
903
904
  
          this.form.examsDuration = data.examsDuration;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
905
906
          if (this.role != "ROLE_PERSONAL") {
            this.form.sharingType = data.sharingType;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
907
          }
ce278878   梁保满   2-2 bugfix
908
          this.form.tagId = "";
8af7657f   梁保满   修改添加备题,组卷
909
          this.formatData(data)
ee6e7628   梁保满   备题组卷借口数据对接调整
910
        } else {
6fffbd55   阿宝   组卷接口调整
911
          this.$message.error(info);
ee6e7628   梁保满   备题组卷借口数据对接调整
912
913
        }
      },
8af7657f   梁保满   修改添加备题,组卷
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
      formatData(data) {
        if (this.subjectList.length) {
          this.subjectList.map((item) => {
            if (item.label == data.subjectName) {
              this.form.subjectName = item.value;
            }
          });
        } else {
          this.form.subjectName = "";
        }
  
        if (this.role != "ROLE_PERSONAL") {
          if (this.gradeList.length) {
            this.gradeList.map((item) => {
              if (item == data.gradeName) {
                this.form.gradeName = data.gradeName;
              }
            });
          } else {
            this.form.gradeName = "";
          }
        }
        this.form.questionList = data.questionList?.map((item) => {
c6f2a550   梁保满   创建备题组卷,修改备题
937
938
939
940
941
942
943
944
945
946
947
          let subQuestions =
            item.subQuestions?.map((items) => {
              return {
                ...items,
                selectNum: items.answerOptions?.split(",").length,
                answerOptions: items.answerOptions || "A,B,C,D",
                screenshot: items.screenshot || "",
                correctAnswer: items.correctAnswer || "",
                knowledge: items.knowledge || "",
              };
            }) || [];
8af7657f   梁保满   修改添加备题,组卷
948
          return {
c6f2a550   梁保满   创建备题组卷,修改备题
949
950
951
952
            questionTitle: item.questionTitle,
            subQuestions: subQuestions,
            show: false,
          };
8af7657f   梁保满   修改添加备题,组卷
953
954
        });
      }
13b58a42   梁保满   备题组卷部分前端页面基本完成
955
956
957
    },
  };
  </script>
8af7657f   梁保满   修改添加备题,组卷
958
959
  <style>
  .screenshot-box {
c6f2a550   梁保满   创建备题组卷,修改备题
960
    width: 600px;
8af7657f   梁保满   修改添加备题,组卷
961
  }
4c4f7640   梁保满   路由表,路由前端文件
962
  
8af7657f   梁保满   修改添加备题,组卷
963
964
965
966
  .screenshot {
    width: 100%;
    box-shadow: none;
    border: none;
c6f2a550   梁保满   创建备题组卷,修改备题
967
    height: 400px;
8af7657f   梁保满   修改添加备题,组卷
968
969
970
971
972
973
974
975
976
977
  }
  
  .screenshot-img {
    display: block;
    width: auto;
    max-width: 100%;
    margin: 0 auto;
    margin-bottom: 10px;
  }
  </style>
13b58a42   梁保满   备题组卷部分前端页面基本完成
978
979
980
981
  <style lang="scss" scoped>
  .red {
    color: #f30;
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
982
  
533a17d8   梁保满   备题组卷添加批量设置答案
983
984
  .qs-options {
    flex: 1;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
985
  
533a17d8   梁保满   备题组卷添加批量设置答案
986
987
988
    .ipt {
      margin-bottom: 5px;
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
989
  
533a17d8   梁保满   备题组卷添加批量设置答案
990
991
992
993
    .answer-box {
      .answer-s {
        cursor: pointer;
        user-select: none;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
994
995
        margin-bottom: 10px;
  
533a17d8   梁保满   备题组卷添加批量设置答案
996
997
998
999
1000
        &:first-of-type {
          margin-left: 0;
        }
      }
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1001
1002
1003
1004
1005
  
    .answer-box2 {
      margin-bottom: 10px;
    }
  
533a17d8   梁保满   备题组卷添加批量设置答案
1006
1007
1008
    .delButton {
      text-indent: -9999999px;
      border-color: #ff6868;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1009
      background: #ff6868 url("../../assets/images/arrow.png") no-repeat center;
533a17d8   梁保满   备题组卷添加批量设置答案
1010
1011
1012
      background-size: 19px;
      color: transparent;
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1013
  
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
1014
1015
    .answer-s.ac {
      border: none;
11a4e518   梁保满   背题组卷修改答案设置,即使测随堂问...
1016
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1017
  
533a17d8   梁保满   备题组卷添加批量设置答案
1018
1019
1020
    .ac {
      border-color: #ff6868;
      background: #ff6868;
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
1021
      color: #fff !important;
533a17d8   梁保满   备题组卷添加批量设置答案
1022
1023
1024
    }
  }
  
255e2506   梁保满   飞书bug及优化
1025
1026
  .sel2 {
    width: 480px;
e5ff81a1   阿宝   集团管理员接口
1027
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1028
  
533a17d8   梁保满   备题组卷添加批量设置答案
1029
1030
1031
1032
1033
1034
1035
  .set-ans-btn {
    width: 100%;
    padding: 10px 0 10px 630px;
    box-sizing: border-box;
    border-right: 1px solid #e2e2e2;
    border-bottom: 1px solid #e2e2e2;
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1036
  
255e2506   梁保满   飞书bug及优化
1037
1038
1039
  .content-box {
    width: 100%;
    height: 100%;
ca39cc52   阿宝   飞书问题处理
1040
1041
    overflow-y: auto;
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1042
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1043
1044
1045
  .content {
    width: 100%;
    box-sizing: border-box;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1046
1047
    padding: 0 24px;
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1048
1049
1050
    .ml-20 {
      margin-left: 20px;
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1051
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1052
1053
1054
1055
1056
    .btn-box {
      text-align: right;
      margin-left: 140px;
    }
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1057
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1058
1059
1060
1061
1062
1063
1064
  .dia-content {
    .dia-tit {
      font-size: 20px;
      color: #333;
      font-weight: 700;
      text-align: center;
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1065
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1066
    .add-type {
818e50d7   梁保满   标签删除,修改
1067
1068
      width: 100%;
      margin-bottom: 10px;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1069
  
818e50d7   梁保满   标签删除,修改
1070
1071
1072
1073
      .js-set {
        margin: 2.5px 10px 0 0;
        font-size: 14px;
      }
13b58a42   梁保满   备题组卷部分前端页面基本完成
1074
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1075
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1076
1077
1078
1079
    .add-btn {
      margin-left: 20px;
    }
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1080
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1081
1082
1083
1084
1085
  .el-message-box {
    :deep(.el-button--default) {
      color: #fff;
    }
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1086
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1087
1088
1089
1090
  .add-box {
    display: flex;
    justify-content: center;
    align-items: center;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1091
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1092
1093
1094
1095
1096
1097
1098
1099
    .add-question {
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 16px;
      font-weight: bolder;
      padding: 2px;
      cursor: pointer;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1100
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1101
1102
1103
      .s1 {
        margin-left: 6px;
      }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1104
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1105
1106
1107
1108
      :deep(.el-icon-plus) {
        font-size: 24px;
        font-weight: 900;
      }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1109
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1110
1111
1112
1113
1114
      :deep(.el-button--mini.is-circle) {
        padding: 3px;
      }
    }
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1115
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1116
1117
  .dialog-footer {
    text-align: center;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1118
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1119
1120
1121
1122
1123
1124
    :deep(.el-button) {
      border-radius: 20px;
      padding: 8px 20px 7px;
      margin: 0 12px;
    }
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1125
  
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
1126
1127
  .question-box {
    margin-bottom: 20px;
8af7657f   梁保满   修改添加备题,组卷
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
  
    .screenshot-box {
      width: 100%;
      border: 1px solid #e2e2e2;
      margin-bottom: 20px;
  
      .screenshot-img {
        margin: 0;
      }
    }
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
1138
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1139
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1140
1141
  .question-title {
    line-height: 40px;
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
1142
1143
1144
    display: flex;
    align-items: center;
    margin-bottom: 12px;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1145
  
503b6063   梁保满   判断题答案选项
1146
    .m20 {
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1147
      margin: 0 20px;
d32e461c   梁保满   备题组卷
1148
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1149
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1150
1151
1152
    .ipt {
      width: 300px;
      margin: 0 16px 0 10px;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1153
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1154
1155
1156
1157
1158
1159
      :deep(.el-input__inner) {
        border-radius: 20px;
        border-color: #667ffd;
        background: rgba($color: #667ffd, $alpha: 0.05);
      }
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1160
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1161
1162
1163
    .delete {
      margin-right: 8px;
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1164
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1165
1166
1167
1168
1169
    .title-txt {
      margin-right: 20px;
      font-size: 16px;
      font-weight: 700;
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1170
  
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
1171
1172
1173
1174
1175
1176
    .el-icon-caret-right {
      font-size: 24px;
      color: #888;
      transition: all 0.4s;
      margin-right: 12px;
      cursor: pointer;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1177
  
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
1178
1179
1180
1181
1182
      &.active {
        transform: rotate(90deg);
      }
    }
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1183
  
3ba60a63   梁保满   发卡补卡,设备状态上传下载接口联调
1184
1185
  .questions-ul {
    border-left: 1px solid #e2e2e2;
c6f2a550   梁保满   创建备题组卷,修改备题
1186
1187
1188
1189
  
    &:first-child {
      border-top: 1px solid #e2e2e2;
    }
13b58a42   梁保满   备题组卷部分前端页面基本完成
1190
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1191
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1192
1193
1194
  .el-input-number {
    width: 140px;
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1195
  
f26ecfa4   阿宝   测试bug
1196
1197
1198
1199
1200
1201
  .answer-title {
    text-align: center;
    font-size: 20px;
    color: #333;
    font-weight: 700;
    padding-bottom: 20px;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1202
  
f26ecfa4   阿宝   测试bug
1203
1204
1205
1206
1207
1208
    .totals {
      font-size: 16px;
      color: #888;
      font-weight: normal;
    }
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1209
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
  .answer-box {
    .answer-s {
      display: inline-block;
      width: 30px;
      height: 30px;
      border: 1px solid #e2e2e2;
      border-radius: 3px;
      margin: 0 6px;
      font-size: 16px;
      color: #333;
      text-align: center;
      line-height: 30px;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1222
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1223
1224
1225
1226
1227
1228
1229
      &.active {
        background: #5e78fa;
        border-color: #5e78fa;
        color: #fff;
      }
    }
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1230
  
255e2506   梁保满   飞书bug及优化
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
  .qs-options {
    .answer-s {
      display: inline-block;
      width: 30px;
      height: 30px;
      border: 1px solid #e2e2e2;
      border-radius: 3px;
      margin: 0 6px;
      font-size: 16px;
      color: #333;
      text-align: center;
      line-height: 30px;
      cursor: pointer;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1244
  
255e2506   梁保满   飞书bug及优化
1245
1246
1247
1248
1249
1250
1251
      &.active {
        background: #5e78fa;
        border-color: #5e78fa;
        color: #fff;
      }
    }
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1252
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1253
1254
1255
1256
  .sub-questions {
    width: 100%;
    display: flex;
    border-bottom: 1px solid #e2e2e2;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1257
1258
  
    &>div {
13b58a42   梁保满   备题组卷部分前端页面基本完成
1259
1260
1261
1262
1263
1264
1265
1266
      min-height: 40px;
      padding: 5px;
      flex-shrink: 0;
      border-right: 1px solid #e2e2e2;
      display: flex;
      justify-content: center;
      align-items: center;
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1267
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1268
    .qs-num {
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1269
      width: 70px;
13b58a42   梁保满   备题组卷部分前端页面基本完成
1270
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1271
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1272
1273
1274
    .qs-type {
      width: 160px;
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1275
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1276
1277
1278
1279
    .qs-score,
    .qs-partScore {
      width: 160px;
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1280
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1281
1282
1283
    .qs-options {
      flex: 1;
    }
cb6ceaa8   梁保满   添加备题,组卷参数调整
1284
1285
  
    .qs-upload {
8af7657f   梁保满   修改添加备题,组卷
1286
1287
      width: 60px;
    }
cb6ceaa8   梁保满   添加备题,组卷参数调整
1288
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1289
    .qs-set {
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1290
      width: 60px;
13b58a42   梁保满   备题组卷部分前端页面基本完成
1291
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1292
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1293
1294
1295
1296
    .qs-options2 {
      text-align: left;
      justify-content: flex-start;
      padding-left: 20px;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1297
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1298
1299
1300
1301
      .answer-s {
        cursor: pointer;
      }
    }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1302
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1303
1304
1305
1306
1307
1308
1309
1310
1311
    :deep(.el-select) {
      .el-input__inner {
        border-radius: 20px;
        border-color: #667ffd;
        width: 150px;
        height: 32px;
        line-height: 32px;
        background: rgba($color: #667ffd, $alpha: 0.05);
      }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1312
  
13b58a42   梁保满   备题组卷部分前端页面基本完成
1313
1314
1315
1316
1317
      .el-input__icon {
        line-height: 32px;
      }
    }
  }
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1318
1319
1320
1321
1322
1323
1324
1325
1326
  
  .upload-box {
    .upload-demo {
      text-align: center;
    }
  
    .stem-pic {
      display: block;
      margin: 0 auto 20px;
77da338a   梁保满   自测问题修改
1327
1328
      max-width: 100%;
      max-height: 200px;
6192eba8   梁保满   引用上传文件组件问题,备题组卷顶部
1329
1330
1331
      object-fit: cover;
    }
  }
4c4f7640   梁保满   路由表,路由前端文件
1332
  </style>