Commit 03cd547e3b4a4852294d543159d5cae550182e92

Authored by 梁保满
1 parent 0586b4d7

单体型以及其他类型试卷修改答案逻辑

src/api/urls/apis.js
@@ -414,7 +414,7 @@ export default { @@ -414,7 +414,7 @@ export default {
414 414
415 // 删除班级信息(新) 415 // 删除班级信息(新)
416 deleteClass: "/api_html/school/manager/deleteClass", 416 deleteClass: "/api_html/school/manager/deleteClass",
417 - // 清除老师所有关联班级 417 + // 清除老师所有关联班级
418 clearTeacherClasses: "/api_html/school/manager/clearTeacherClasses", 418 clearTeacherClasses: "/api_html/school/manager/clearTeacherClasses",
419 419
420 // 下载即时测导入分数模板 420 // 下载即时测导入分数模板
src/views/basic/test/analysis.vue
@@ -2,29 +2,62 @@ @@ -2,29 +2,62 @@
2 <div ref="main" class="page-container"> 2 <div ref="main" class="page-container">
3 <back-box> 3 <back-box>
4 <template slot="title"> 4 <template slot="title">
5 - <span>{{ type == 1 ? '单卷测练报表' : type == 2 ? subjectName + "汇总报表" : type == 3 ? "多科汇总报表" :  
6 - `多班_${subjectName}_${title}_测练成绩对比分析` }}</span> 5 + <span>{{
  6 + type == 1
  7 + ? "单卷测练报表"
  8 + : type == 2
  9 + ? subjectName + "汇总报表"
  10 + : type == 3
  11 + ? "多科汇总报表"
  12 + : `多班_${subjectName}_${title}_测练成绩对比分析`
  13 + }}</span>
7 </template> 14 </template>
8 </back-box> 15 </back-box>
9 - <Test v-if="type == 1" :role="role" :id="id" :classId="classId" :subjectName="subjectName" :title="title"  
10 - :score="score" />  
11 - <MultipleTest v-else-if="type == 2" :role="role" :ids="ids" :classId="classId" :subjectName="subjectName" />  
12 - <MultipleSubTest v-else-if="type == 3" :role="role" :ids="ids" :classId="classId" :subjectName="subjectName" />  
13 - <Contrast v-else-if="type == 4" :role="role" :ids="ids" :subjectName="subjectName" :title="title" /> 16 + <Test
  17 + v-if="type == 1"
  18 + :role="role"
  19 + :id="id"
  20 + :classId="classId"
  21 + :subjectName="subjectName"
  22 + :title="title"
  23 + :score="score"
  24 + :examType="examType"
  25 + />
  26 + <MultipleTest
  27 + v-else-if="type == 2"
  28 + :role="role"
  29 + :ids="ids"
  30 + :classId="classId"
  31 + :subjectName="subjectName"
  32 + />
  33 + <MultipleSubTest
  34 + v-else-if="type == 3"
  35 + :role="role"
  36 + :ids="ids"
  37 + :classId="classId"
  38 + :subjectName="subjectName"
  39 + />
  40 + <Contrast
  41 + v-else-if="type == 4"
  42 + :role="role"
  43 + :ids="ids"
  44 + :subjectName="subjectName"
  45 + :title="title"
  46 + />
14 </div> 47 </div>
15 </template> 48 </template>
16 49
17 <script> 50 <script>
18 -import Test from "./components/test.vue"  
19 -import MultipleTest from "./components/multipleTest.vue"  
20 -import MultipleSubTest from "./components/multipleSubTest.vue"  
21 -import Contrast from "./components/contrast.vue" 51 +import Test from "./components/test.vue";
  52 +import MultipleTest from "./components/multipleTest.vue";
  53 +import MultipleSubTest from "./components/multipleSubTest.vue";
  54 +import Contrast from "./components/contrast.vue";
22 export default { 55 export default {
23 components: { 56 components: {
24 Test, 57 Test,
25 MultipleTest, 58 MultipleTest,
26 MultipleSubTest, 59 MultipleSubTest,
27 - Contrast 60 + Contrast,
28 }, 61 },
29 data() { 62 data() {
30 return { 63 return {
@@ -33,9 +66,10 @@ export default { @@ -33,9 +66,10 @@ export default {
33 ids: [], 66 ids: [],
34 type: 0, 67 type: 0,
35 classId: "", 68 classId: "",
36 - subjectName: '',  
37 - title: '',  
38 - score: 0 69 + subjectName: "",
  70 + title: "",
  71 + score: 0,
  72 + examType: 2,
39 }; 73 };
40 }, 74 },
41 created() { 75 created() {
@@ -43,16 +77,16 @@ export default { @@ -43,16 +77,16 @@ export default {
43 this.$store.getters.info.showRole || 77 this.$store.getters.info.showRole ||
44 this.$store.getters.info.permissions[0].role; 78 this.$store.getters.info.permissions[0].role;
45 this.id = this.$route.query.id || ""; 79 this.id = this.$route.query.id || "";
  80 + this.examType = this.$route.query.examType || 2;
46 this.score = Number(this.$route.query.score) || 0; 81 this.score = Number(this.$route.query.score) || 0;
47 - this.ids = this.$route.query.ids && this.$route.query.ids.split(",") || [];  
48 - this.type = this.$route.query.type 82 + this.ids =
  83 + (this.$route.query.ids && this.$route.query.ids.split(",")) || [];
  84 + this.type = this.$route.query.type;
49 this.classId = this.$route.query.classId || ""; 85 this.classId = this.$route.query.classId || "";
50 - this.title = this.$route.query.title || ""  
51 - this.subjectName = this.$route.query.subjectName || "" 86 + this.title = this.$route.query.title || "";
  87 + this.subjectName = this.$route.query.subjectName || "";
52 }, 88 },
53 - methods: {  
54 -  
55 - } 89 + methods: {},
56 }; 90 };
57 </script> 91 </script>
58 <style lang="scss" scoped> 92 <style lang="scss" scoped>
@@ -67,8 +101,6 @@ export default { @@ -67,8 +101,6 @@ export default {
67 &.active { 101 &.active {
68 overflow: hidden; 102 overflow: hidden;
69 } 103 }
70 -  
71 -  
72 } 104 }
73 105
74 .error { 106 .error {
@@ -79,7 +111,6 @@ export default { @@ -79,7 +111,6 @@ export default {
79 padding: 20px 20px 0; 111 padding: 20px 20px 0;
80 } 112 }
81 113
82 -  
83 .down { 114 .down {
84 padding-top: 20px; 115 padding-top: 20px;
85 width: 100%; 116 width: 100%;
src/views/basic/test/components/test.vue
@@ -8,47 +8,128 @@ @@ -8,47 +8,128 @@
8 }}修改了答案,是否重新记分? 8 }}修改了答案,是否重新记分?
9 </p> 9 </p>
10 <div class="btn-box"> 10 <div class="btn-box">
11 - <el-button type="danger" round @click="_ReScore" size="mini">重新计分</el-button>  
12 - <el-button type="danger" round plain size="mini" @click="paperModifyLog.modifiedTime = ''">暂时不计</el-button> 11 + <el-button type="danger" round @click="_ReScore" size="mini"
  12 + >重新计分</el-button
  13 + >
  14 + <el-button
  15 + type="danger"
  16 + round
  17 + plain
  18 + size="mini"
  19 + @click="paperModifyLog.modifiedTime = ''"
  20 + >暂时不计</el-button
  21 + >
13 </div> 22 </div>
14 </div> 23 </div>
15 <div class="content-header"> 24 <div class="content-header">
16 <div class="tab-box"> 25 <div class="tab-box">
17 - <span v-for="(item, index) in tabList" :key="item" class="tab-item" :class="type == index ? 'active' : ''"  
18 - @click="setType(index)">{{ item }}</span> 26 + <span
  27 + v-for="(item, index) in tabList"
  28 + :key="item"
  29 + class="tab-item"
  30 + :class="type == index ? 'active' : ''"
  31 + @click="setType(index)"
  32 + >{{ item }}</span
  33 + >
19 </div> 34 </div>
20 - <el-button v-if="!status" class="setMinScore" @click="diaMinScore = true" round size="small">设置低分值</el-button> 35 + <el-button
  36 + v-if="!status"
  37 + class="setMinScore"
  38 + @click="diaMinScore = true"
  39 + round
  40 + size="small"
  41 + >设置低分值</el-button
  42 + >
21 </div> 43 </div>
22 <div id="print-content" v-loading="loading"> 44 <div id="print-content" v-loading="loading">
23 <div class="table-box"> 45 <div class="table-box">
24 - <el-table :max-height="tableMaxHeight" v-show="type == 0" :data="tableData" border style="width: 100%">  
25 - <el-table-column prop="questionIndex" label="题号" align="center" fixed width="60"></el-table-column>  
26 - <el-table-column prop="questionType" label="题型" align="center" fixed width="100"><template slot-scope="scope">{{  
27 - setSubPro(scope.row.questionType)  
28 - }}</template></el-table-column>  
29 - <el-table-column prop="score" width="100" label="满分值" sortable align="center"></el-table-column>  
30 - <el-table-column width="110" prop="highestScore" label="班最高分" sortable align="center"></el-table-column>  
31 - <el-table-column width="110" prop="lowestScore" label="班最低分" sortable align="center"></el-table-column>  
32 - <el-table-column width="110" prop="avgScore" label="班平均分" sortable align="center"></el-table-column>  
33 - <el-table-column prop="classScoringRate" width="120" sortable label="班级得分率" align="center"><template  
34 - slot-scope="scoped">{{ scoped.row.classScoringRate }}%</template></el-table-column>  
35 - <el-table-column prop="correctAnswer" label="答案" align="center"><template slot-scope="scoped">{{  
36 - scoped.row.correctAnswer == 1  
37 - ? "✓"  
38 - : scoped.row.correctAnswer == 2  
39 - ? "✗"  
40 - : scoped.row.correctAnswer  
41 - }}</template> 46 + <el-table
  47 + :max-height="tableMaxHeight"
  48 + v-show="type == 0"
  49 + :data="tableData"
  50 + border
  51 + style="width: 100%"
  52 + >
  53 + <el-table-column
  54 + prop="questionIndex"
  55 + label="题号"
  56 + align="center"
  57 + fixed
  58 + width="60"
  59 + ></el-table-column>
  60 + <el-table-column
  61 + prop="questionType"
  62 + label="题型"
  63 + align="center"
  64 + fixed
  65 + width="100"
  66 + ><template slot-scope="scope">{{
  67 + setSubPro(scope.row.questionType)
  68 + }}</template></el-table-column
  69 + >
  70 + <el-table-column
  71 + prop="score"
  72 + width="100"
  73 + label="满分值"
  74 + sortable
  75 + align="center"
  76 + ></el-table-column>
  77 + <el-table-column
  78 + width="110"
  79 + prop="highestScore"
  80 + label="班最高分"
  81 + sortable
  82 + align="center"
  83 + ></el-table-column>
  84 + <el-table-column
  85 + width="110"
  86 + prop="lowestScore"
  87 + label="班最低分"
  88 + sortable
  89 + align="center"
  90 + ></el-table-column>
  91 + <el-table-column
  92 + width="110"
  93 + prop="avgScore"
  94 + label="班平均分"
  95 + sortable
  96 + align="center"
  97 + ></el-table-column>
  98 + <el-table-column
  99 + prop="classScoringRate"
  100 + width="120"
  101 + sortable
  102 + label="班级得分率"
  103 + align="center"
  104 + ><template slot-scope="scoped"
  105 + >{{ scoped.row.classScoringRate }}%</template
  106 + ></el-table-column
  107 + >
  108 + <el-table-column prop="correctAnswer" label="答案" align="center"
  109 + ><template slot-scope="scoped">{{
  110 + scoped.row.correctAnswer == 1
  111 + ? "✓"
  112 + : scoped.row.correctAnswer == 2
  113 + ? "✗"
  114 + : scoped.row.correctAnswer
  115 + }}</template>
42 </el-table-column> 116 </el-table-column>
43 - <el-table-column v-for="(item, index) in optionsList" :key="index" :label="item.title" :prop="'count' + index"  
44 - align="center" width="120"><template slot-scope="scope"> 117 + <el-table-column
  118 + v-for="(item, index) in optionsList"
  119 + :key="index"
  120 + :label="item.title"
  121 + :prop="'count' + index"
  122 + align="center"
  123 + width="120"
  124 + ><template slot-scope="scope">
45 <p class="persent"> 125 <p class="persent">
46 {{ 126 {{
47 scope.row.questionType == "5" 127 scope.row.questionType == "5"
48 - ? ""  
49 - : scope.row["option" + index]  
50 - ? `${scope.row["option" + index]}(${scope.row["persent" + index]  
51 - })` 128 + ? ""
  129 + : scope.row["option" + index]
  130 + ? `${scope.row["option" + index]}(${
  131 + scope.row["persent" + index]
  132 + })`
52 : "" 133 : ""
53 }} 134 }}
54 </p> 135 </p>
@@ -86,18 +167,22 @@ @@ -86,18 +167,22 @@
86 <td> 167 <td>
87 {{ 168 {{
88 tr.correctAnswer == 1 169 tr.correctAnswer == 1
89 - ? "✓"  
90 - : tr.correctAnswer == 2 170 + ? "✓"
  171 + : tr.correctAnswer == 2
91 ? "✗" 172 ? "✗"
92 : tr.correctAnswer 173 : tr.correctAnswer
93 }} 174 }}
94 </td> 175 </td>
95 - <td v-for="(item, index) in optionsList" :key="index" width="120"> 176 + <td
  177 + v-for="(item, index) in optionsList"
  178 + :key="index"
  179 + width="120"
  180 + >
96 <p class="persent"> 181 <p class="persent">
97 {{ 182 {{
98 tr.questionType == "5" 183 tr.questionType == "5"
99 - ? ""  
100 - : tr["option" + index] 184 + ? ""
  185 + : tr["option" + index]
101 ? `${tr["option" + index]}(${tr["persent" + index]})` 186 ? `${tr["option" + index]}(${tr["persent" + index]})`
102 : "" 187 : ""
103 }} 188 }}
@@ -121,7 +206,9 @@ @@ -121,7 +206,9 @@
121 <span class="hui-s s2">{{ 206 <span class="hui-s s2">{{
122 examReport.subjectiveAvgScore 207 examReport.subjectiveAvgScore
123 }}</span> 208 }}</span>
124 - <span class="hui-s s3">{{ examReport.subjectiveClassScoringRate }}%</span> 209 + <span class="hui-s s3"
  210 + >{{ examReport.subjectiveClassScoringRate }}%</span
  211 + >
125 </li> 212 </li>
126 <li class="hui-li"> 213 <li class="hui-li">
127 <span class="hui-s s1">客观题</span> 214 <span class="hui-s s1">客观题</span>
@@ -133,7 +220,9 @@ @@ -133,7 +220,9 @@
133 examReport.objectiveLowestScore 220 examReport.objectiveLowestScore
134 }}</span> 221 }}</span>
135 <span class="hui-s s2">{{ examReport.objectiveAvgScore }}</span> 222 <span class="hui-s s2">{{ examReport.objectiveAvgScore }}</span>
136 - <span class="hui-s s3">{{ examReport.objectiveClassScoringRate }}%</span> 223 + <span class="hui-s s3"
  224 + >{{ examReport.objectiveClassScoringRate }}%</span
  225 + >
137 </li> 226 </li>
138 <li class="hui-li"> 227 <li class="hui-li">
139 <span class="hui-s s1">整卷</span> 228 <span class="hui-s s1">整卷</span>
@@ -146,51 +235,176 @@ @@ -146,51 +235,176 @@
146 </ul> 235 </ul>
147 </div> 236 </div>
148 </div> 237 </div>
149 - <el-table v-show="type == 1" :max-height="tableMaxHeight" :data="tableData2" border style="width: 100%"  
150 - :default-sort="{ prop: 'dadui', order: 'descending' }">  
151 - <el-table-column prop="studentCode" label="学号" align="center" fixed></el-table-column>  
152 - <el-table-column prop="studentName" label="姓名" fixed align="center"></el-table-column>  
153 - <el-table-column prop="examScore" label="总分" sortable align="center"></el-table-column>  
154 - <el-table-column prop="scoringRate" label="得分率" sortable align="center"><template slot-scope="scope">{{  
155 - scope.row.scoringRate }}%</template></el-table-column>  
156 - <el-table-column prop="classRank" label="班名" sortable align="center"></el-table-column> 238 + <el-table
  239 + v-show="type == 1"
  240 + :max-height="tableMaxHeight"
  241 + :data="tableData2"
  242 + border
  243 + style="width: 100%"
  244 + :default-sort="{ prop: 'dadui', order: 'descending' }"
  245 + >
  246 + <el-table-column
  247 + prop="studentCode"
  248 + label="学号"
  249 + align="center"
  250 + fixed
  251 + ></el-table-column>
  252 + <el-table-column
  253 + prop="studentName"
  254 + label="姓名"
  255 + fixed
  256 + align="center"
  257 + ></el-table-column>
  258 + <el-table-column
  259 + prop="examScore"
  260 + label="总分"
  261 + sortable
  262 + align="center"
  263 + ></el-table-column>
  264 + <el-table-column
  265 + prop="scoringRate"
  266 + label="得分率"
  267 + sortable
  268 + align="center"
  269 + ><template slot-scope="scope"
  270 + >{{ scope.row.scoringRate }}%</template
  271 + ></el-table-column
  272 + >
  273 + <el-table-column
  274 + prop="classRank"
  275 + label="班名"
  276 + sortable
  277 + align="center"
  278 + ></el-table-column>
157 <el-table-column label="客观题" align="center"> 279 <el-table-column label="客观题" align="center">
158 - <el-table-column prop="objectiveExamScore" label="得分" align="center"></el-table-column>  
159 - <el-table-column prop="objectiveScoringRate" label="得分率" align="center"><template slot-scope="scope">{{  
160 - scope.row.objectiveScoringRate }}%</template></el-table-column> 280 + <el-table-column
  281 + prop="objectiveExamScore"
  282 + label="得分"
  283 + align="center"
  284 + ></el-table-column>
  285 + <el-table-column
  286 + prop="objectiveScoringRate"
  287 + label="得分率"
  288 + align="center"
  289 + ><template slot-scope="scope"
  290 + >{{ scope.row.objectiveScoringRate }}%</template
  291 + ></el-table-column
  292 + >
161 </el-table-column> 293 </el-table-column>
162 <el-table-column label="主观题" align="center"> 294 <el-table-column label="主观题" align="center">
163 - <el-table-column prop="subjectiveExamScore" label="得分" align="center"></el-table-column>  
164 - <el-table-column prop="subjectiveScoringRate" label="得分率" align="center"><template slot-scope="scope">{{  
165 - scope.row.subjectiveScoringRate }}%</template></el-table-column> 295 + <el-table-column
  296 + prop="subjectiveExamScore"
  297 + label="得分"
  298 + align="center"
  299 + ></el-table-column>
  300 + <el-table-column
  301 + prop="subjectiveScoringRate"
  302 + label="得分率"
  303 + align="center"
  304 + ><template slot-scope="scope"
  305 + >{{ scope.row.subjectiveScoringRate }}%</template
  306 + ></el-table-column
  307 + >
166 </el-table-column> 308 </el-table-column>
167 </el-table> 309 </el-table>
168 - <el-table v-show="type == 2" :max-height="tableMaxHeight" :data="tableData2" border style="width: 100%"  
169 - :default-sort="{ prop: '', order: 'descending' }">  
170 - <el-table-column prop="studentCode" label="学号" fixed align="center" width="120"></el-table-column>  
171 - <el-table-column prop="studentName" label="姓名" fixed align="center"></el-table-column>  
172 - <el-table-column prop="examScore" label="总分" sortable align="center"></el-table-column> 310 + <el-table
  311 + v-show="type == 2"
  312 + :max-height="tableMaxHeight"
  313 + :data="tableData2"
  314 + border
  315 + style="width: 100%"
  316 + :default-sort="{ prop: '', order: 'descending' }"
  317 + >
  318 + <el-table-column
  319 + prop="studentCode"
  320 + label="学号"
  321 + fixed
  322 + align="center"
  323 + width="120"
  324 + ></el-table-column>
  325 + <el-table-column
  326 + prop="studentName"
  327 + label="姓名"
  328 + fixed
  329 + align="center"
  330 + ></el-table-column>
  331 + <el-table-column
  332 + prop="examScore"
  333 + label="总分"
  334 + sortable
  335 + align="center"
  336 + ></el-table-column>
173 <el-table-column label="分数组成" align="center"> 337 <el-table-column label="分数组成" align="center">
174 - <el-table-column prop="objectiveExamScore" label="客观题分" align="center"></el-table-column>  
175 - <el-table-column prop="subjectiveExamScore" label="主观题分" align="center"></el-table-column> 338 + <el-table-column
  339 + prop="objectiveExamScore"
  340 + label="客观题分"
  341 + align="center"
  342 + ></el-table-column>
  343 + <el-table-column
  344 + prop="subjectiveExamScore"
  345 + label="主观题分"
  346 + align="center"
  347 + ></el-table-column>
176 </el-table-column> 348 </el-table-column>
177 - <el-table-column align="center" v-for="(item, index) in questionList" :key="index" :label="'Q' + item.id"  
178 - :prop="'score' + item.id"> 349 + <el-table-column
  350 + align="center"
  351 + v-for="(item, index) in questionList"
  352 + :key="index"
  353 + :label="'Q' + item.id"
  354 + :prop="'score' + item.id"
  355 + >
179 </el-table-column> 356 </el-table-column>
180 </el-table> 357 </el-table>
181 - <el-table :max-height="tableMaxHeight" v-show="type == 3" :data="tableData2" border style="width: 100%"  
182 - :default-sort="{ prop: '', order: 'descending' }">  
183 - <el-table-column prop="studentCode" label="学号" fixed align="center"></el-table-column>  
184 - <el-table-column prop="studentName" label="姓名" fixed align="center"></el-table-column>  
185 - <el-table-column prop="className" label="班级" align="center"></el-table-column>  
186 - <el-table-column prop="examScore" label="总分" sortable align="center"></el-table-column>  
187 - <el-table-column align="center" v-for="(item, index) in questionList" :key="index" :label="'Q' + item.id"> 358 + <el-table
  359 + :max-height="tableMaxHeight"
  360 + v-show="type == 3"
  361 + :data="tableData2"
  362 + border
  363 + style="width: 100%"
  364 + :default-sort="{ prop: '', order: 'descending' }"
  365 + >
  366 + <el-table-column
  367 + prop="studentCode"
  368 + label="学号"
  369 + fixed
  370 + align="center"
  371 + ></el-table-column>
  372 + <el-table-column
  373 + prop="studentName"
  374 + label="姓名"
  375 + fixed
  376 + align="center"
  377 + ></el-table-column>
  378 + <el-table-column
  379 + prop="className"
  380 + label="班级"
  381 + align="center"
  382 + ></el-table-column>
  383 + <el-table-column
  384 + prop="examScore"
  385 + label="总分"
  386 + sortable
  387 + align="center"
  388 + ></el-table-column>
  389 + <el-table-column
  390 + align="center"
  391 + v-for="(item, index) in questionList"
  392 + :key="index"
  393 + :label="'Q' + item.id"
  394 + >
188 <template slot-scope="scope"> 395 <template slot-scope="scope">
189 <span v-if="tableData[index]?.questionType == 5">*</span> 396 <span v-if="tableData[index]?.questionType == 5">*</span>
190 - <span v-else-if="scope.row['answer' + item.id]" :class="scope.row['isRight' + item.id] ? '' : 'error'"> 397 + <span
  398 + v-else-if="scope.row['answer' + item.id]"
  399 + :class="scope.row['isRight' + item.id] ? '' : 'error'"
  400 + >
191 {{ scope.row["answer" + item.id] }} 401 {{ scope.row["answer" + item.id] }}
192 </span> 402 </span>
193 - <span v-else :class="scope.row['questionType' + item.id] == 5 ? '' : 'error'">-</span> 403 + <span
  404 + v-else
  405 + :class="scope.row['questionType' + item.id] == 5 ? '' : 'error'"
  406 + >-</span
  407 + >
194 </template> 408 </template>
195 </el-table-column> 409 </el-table-column>
196 </el-table> 410 </el-table>
@@ -198,22 +412,56 @@ @@ -198,22 +412,56 @@
198 </div> 412 </div>
199 <div class="down"> 413 <div class="down">
200 <div> 414 <div>
201 - <el-button @click="exportData" type="primary" plain round icon="fa fa-cloud-download">导出报表</el-button>  
202 - <el-button v-if="!this.$store.getters.code" @click="print" type="primary" plain round  
203 - icon="el-icon-printer">打印</el-button> 415 + <el-button
  416 + @click="exportData"
  417 + type="primary"
  418 + plain
  419 + round
  420 + icon="fa fa-cloud-download"
  421 + >导出报表</el-button
  422 + >
  423 + <el-button
  424 + v-if="!this.$store.getters.code"
  425 + @click="print"
  426 + type="primary"
  427 + plain
  428 + round
  429 + icon="el-icon-printer"
  430 + >打印</el-button
  431 + >
204 </div> 432 </div>
205 <div v-if="!status"> 433 <div v-if="!status">
206 - <el-button type="primary" round @click="openScoreSet">答卷录分</el-button> 434 + <el-button type="primary" round @click="openScoreSet"
  435 + >答卷录分</el-button
  436 + >
207 437
208 <template v-if="role != 'ROLE_BANZHUREN'"> 438 <template v-if="role != 'ROLE_BANZHUREN'">
209 - <el-button @click="edit" type="primary" v-if="examReport.subjectiveScore != examReport.examPaperScore"  
210 - round>查看题目</el-button></template> 439 + <el-button
  440 + @click="edit"
  441 + type="primary"
  442 + v-if="examReport.subjectiveScore != examReport.examPaperScore"
  443 + round
  444 + >查看题目</el-button
  445 + ></template
  446 + >
211 </div> 447 </div>
212 </div> 448 </div>
213 - <ScoreSet v-show="diaScoreSet" :role="role" :id="id" :title="title" :examScore="score" :diaScoreSet="diaScoreSet"  
214 - @closeScoreSet="closeScoreSet" />  
215 - <el-dialog :close-on-click-modal="false" title="低分区间设置" :visible.sync="diaMinScore" width="480px"  
216 - @closed="closeDiaMinScore"> 449 + <ScoreSet
  450 + v-show="diaScoreSet"
  451 + :role="role"
  452 + :id="id"
  453 + :title="title"
  454 + :examScore="score"
  455 + :diaScoreSet="diaScoreSet"
  456 + @closeScoreSet="closeScoreSet"
  457 + />
  458 + <el-dialog
  459 + :close-on-click-modal="false"
  460 + title="低分区间设置"
  461 + :visible.sync="diaMinScore"
  462 + width="480px"
  463 + @closed="closeDiaMinScore"
  464 + >
217 <el-form> 465 <el-form>
218 <el-form-item label="低分设置模式:"> 466 <el-form-item label="低分设置模式:">
219 <el-select v-model="lowRange.type" @change="changeScore"> 467 <el-select v-model="lowRange.type" @change="changeScore">
@@ -223,16 +471,35 @@ @@ -223,16 +471,35 @@
223 </el-select> 471 </el-select>
224 </el-form-item> 472 </el-form-item>
225 <el-form-item label="低分区间:"> 473 <el-form-item label="低分区间:">
226 - <el-input class="score-ipt" type="number" v-model="lowRange.range[0]" :min="0" :max="100" 474 + <el-input
  475 + class="score-ipt"
  476 + type="number"
  477 + v-model="lowRange.range[0]"
  478 + :min="0"
  479 + :max="100"
227 @input="lowRange.range[1] > 100 ? (lowRange.range[1] = 100) : ''" 480 @input="lowRange.range[1] > 100 ? (lowRange.range[1] = 100) : ''"
228 - @keydown.native="keydownRange($event)"></el-input>{{ lowRange.type != 0 ? "%" : "分" }}(含)  
229 - <el-input class="score-ipt" type="number" v-model="lowRange.range[1]" :min="0" :max="100" 481 + @keydown.native="keydownRange($event)"
  482 + ></el-input
  483 + >{{ lowRange.type != 0 ? "%" : "分" }}(含)
  484 + <el-input
  485 + class="score-ipt"
  486 + type="number"
  487 + v-model="lowRange.range[1]"
  488 + :min="0"
  489 + :max="100"
230 @input="lowRange.range[1] > 100 ? (lowRange.range[1] = 100) : ''" 490 @input="lowRange.range[1] > 100 ? (lowRange.range[1] = 100) : ''"
231 - @keydown.native="keydownRange($event)"></el-input>{{ lowRange.type != 0 ? "%" : "分" }}(含) 491 + @keydown.native="keydownRange($event)"
  492 + ></el-input
  493 + >{{ lowRange.type != 0 ? "%" : "分" }}(含)
232 </el-form-item> 494 </el-form-item>
233 </el-form> 495 </el-form>
234 496
235 - <div class="dialog-footer" slot="footer" align="center" v-loading="loadingTange"> 497 + <div
  498 + class="dialog-footer"
  499 + slot="footer"
  500 + align="center"
  501 + v-loading="loadingTange"
  502 + >
236 <el-button type="danger" @click="_SavelowRange">保存</el-button> 503 <el-button type="danger" @click="_SavelowRange">保存</el-button>
237 <el-button @click="diaMinScore = false">取 消</el-button> 504 <el-button @click="diaMinScore = false">取 消</el-button>
238 </div> 505 </div>
@@ -240,7 +507,7 @@ @@ -240,7 +507,7 @@
240 </div> 507 </div>
241 </template> 508 </template>
242 <script> 509 <script>
243 -import ScoreSet from "./scoreSet.vue" 510 +import ScoreSet from "./scoreSet.vue";
244 import { downloadFile, tablePrint } from "@/utils"; 511 import { downloadFile, tablePrint } from "@/utils";
245 export default { 512 export default {
246 components: { 513 components: {
@@ -252,20 +519,22 @@ export default { @@ -252,20 +519,22 @@ export default {
252 title: String, 519 title: String,
253 classId: String, 520 classId: String,
254 subjectName: String, 521 subjectName: String,
  522 + examType: String,
255 score: { 523 score: {
256 type: Number, 524 type: Number,
257 - default: 0 525 + default: 0,
258 }, 526 },
259 }, 527 },
260 data() { 528 data() {
261 return { 529 return {
262 - status: 0,// 1:已归档试卷 530 + status: 0, // 1:已归档试卷
263 tableMaxHeight: 600, 531 tableMaxHeight: 600,
264 loading: false, 532 loading: false,
265 exportLoading: false, 533 exportLoading: false,
266 tabList: ["试题分析", "成绩排名", "小题分报表", "作答明细表"], 534 tabList: ["试题分析", "成绩排名", "小题分报表", "作答明细表"],
267 type: 0, 535 type: 0,
268 - paperModifyLog: { //修改信息 536 + paperModifyLog: {
  537 + //修改信息
269 realName: "", 538 realName: "",
270 modifiedTime: "", 539 modifiedTime: "",
271 }, 540 },
@@ -309,7 +578,7 @@ export default { @@ -309,7 +578,7 @@ export default {
309 578
310 //导出相关 579 //导出相关
311 diaShow: false, 580 diaShow: false,
312 - exportStudent: [] 581 + exportStudent: [],
313 }; 582 };
314 }, 583 },
315 created() { 584 created() {
@@ -330,7 +599,7 @@ export default { @@ -330,7 +599,7 @@ export default {
330 }, 599 },
331 //关闭设置分数 600 //关闭设置分数
332 closeScoreSet() { 601 closeScoreSet() {
333 - this.diaScoreSet = false 602 + this.diaScoreSet = false;
334 this._QueryData(); 603 this._QueryData();
335 }, 604 },
336 setType(type) { 605 setType(type) {
@@ -362,6 +631,7 @@ export default { @@ -362,6 +631,7 @@ export default {
362 paperId: this.id, 631 paperId: this.id,
363 title: this.title, 632 title: this.title,
364 type: 2, 633 type: 2,
  634 + examType: this.examType,
365 }, 635 },
366 }); 636 });
367 }, 637 },
@@ -386,9 +656,12 @@ export default { @@ -386,9 +656,12 @@ export default {
386 }, 656 },
387 // 保存低分设置 657 // 保存低分设置
388 async _SavelowRange() { 658 async _SavelowRange() {
389 - if (this.lowRange.range[0].trim() == "" || this.lowRange.range[1].trim() == "") { 659 + if (
  660 + this.lowRange.range[0].trim() == "" ||
  661 + this.lowRange.range[1].trim() == ""
  662 + ) {
390 this.$message.warning("请补全低分设置!"); 663 this.$message.warning("请补全低分设置!");
391 - return 664 + return;
392 } 665 }
393 this.loadingTange = true; 666 this.loadingTange = true;
394 let { data, status, info } = await this.$request.setLowRange({ 667 let { data, status, info } = await this.$request.setLowRange({
@@ -413,9 +686,10 @@ export default { @@ -413,9 +686,10 @@ export default {
413 async examDetail() { 686 async examDetail() {
414 //详情 687 //详情
415 this.loading = true; 688 this.loading = true;
416 - const examDetail = this.role == "ROLE_PERSONAL" ?  
417 - this.$request.pExamDetail  
418 - : this.$request.examDetail; 689 + const examDetail =
  690 + this.role == "ROLE_PERSONAL"
  691 + ? this.$request.pExamDetail
  692 + : this.$request.examDetail;
419 693
420 let { data, info, status } = await examDetail({ 694 let { data, info, status } = await examDetail({
421 examId: this.id, 695 examId: this.id,
@@ -444,7 +718,7 @@ export default { @@ -444,7 +718,7 @@ export default {
444 }); 718 });
445 this.loading = false; 719 this.loading = false;
446 if (status === 0) { 720 if (status === 0) {
447 - this.$store.commit("setRefreshTestList", true) 721 + this.$store.commit("setRefreshTestList", true);
448 this.$message.success(info); 722 this.$message.success(info);
449 this._QueryData(); 723 this._QueryData();
450 this.paperModifyLog.modifiedTime = ""; 724 this.paperModifyLog.modifiedTime = "";
@@ -456,9 +730,10 @@ export default { @@ -456,9 +730,10 @@ export default {
456 async examStudentReport() { 730 async examStudentReport() {
457 //成绩排名-小题分-作答明细 731 //成绩排名-小题分-作答明细
458 this.loading = true; 732 this.loading = true;
459 - const examStudentReport = this.role == "ROLE_PERSONAL" ?  
460 - this.$request.pExamStudentReport  
461 - : this.$request.examStudentReport; 733 + const examStudentReport =
  734 + this.role == "ROLE_PERSONAL"
  735 + ? this.$request.pExamStudentReport
  736 + : this.$request.examStudentReport;
462 let { data, info, status } = await examStudentReport({ 737 let { data, info, status } = await examStudentReport({
463 examId: this.id, 738 examId: this.id,
464 }); 739 });
@@ -491,7 +766,7 @@ export default { @@ -491,7 +766,7 @@ export default {
491 this.questionList = optionsList.sort((a, b) => { 766 this.questionList = optionsList.sort((a, b) => {
492 return a.id - b.id; 767 return a.id - b.id;
493 }); 768 });
494 - this.exportStudent = [...this.tableData2] 769 + this.exportStudent = [...this.tableData2];
495 } else { 770 } else {
496 this.$message.error(info); 771 this.$message.error(info);
497 } 772 }
@@ -499,9 +774,10 @@ export default { @@ -499,9 +774,10 @@ export default {
499 async examQuestionReport() { 774 async examQuestionReport() {
500 //试题分析 775 //试题分析
501 this.loading = true; 776 this.loading = true;
502 - const examQuestionReport = this.role == "ROLE_PERSONAL" ?  
503 - this.$request.pExamQuestionReport  
504 - : this.$request.examQuestionReport; 777 + const examQuestionReport =
  778 + this.role == "ROLE_PERSONAL"
  779 + ? this.$request.pExamQuestionReport
  780 + : this.$request.examQuestionReport;
505 781
506 let { data, info, status } = await examQuestionReport({ 782 let { data, info, status } = await examQuestionReport({
507 examId: this.id, 783 examId: this.id,
@@ -537,8 +813,8 @@ export default { @@ -537,8 +813,8 @@ export default {
537 ? defaultArr[index]?.option == 1 813 ? defaultArr[index]?.option == 1
538 ? "✓" 814 ? "✓"
539 : defaultArr[index]?.option == 2 815 : defaultArr[index]?.option == 2
540 - ? "✗"  
541 - : defaultArr[index]?.option 816 + ? "✗"
  817 + : defaultArr[index]?.option
542 : ""; 818 : "";
543 items["title"] = "选项" + (index + 1); 819 items["title"] = "选项" + (index + 1);
544 } else { 820 } else {
@@ -567,9 +843,10 @@ export default { @@ -567,9 +843,10 @@ export default {
567 async exportData() { 843 async exportData() {
568 if (this.exportLoading == true) return; 844 if (this.exportLoading == true) return;
569 this.exportLoading = true; 845 this.exportLoading = true;
570 - const exportExamReport = this.role == "ROLE_PERSONAL" ?  
571 - this.$request.pExportExamReport  
572 - : this.$request.exportExamReport; 846 + const exportExamReport =
  847 + this.role == "ROLE_PERSONAL"
  848 + ? this.$request.pExportExamReport
  849 + : this.$request.exportExamReport;
573 850
574 const data = await exportExamReport({ 851 const data = await exportExamReport({
575 examId: this.id, 852 examId: this.id,
@@ -624,8 +901,6 @@ div::-webkit-scrollbar-thumb { @@ -624,8 +901,6 @@ div::-webkit-scrollbar-thumb {
624 color: #f30; 901 color: #f30;
625 } 902 }
626 903
627 -  
628 -  
629 .tips { 904 .tips {
630 height: 48px; 905 height: 48px;
631 box-sizing: border-box; 906 box-sizing: border-box;
src/views/basic/test/list.vue
@@ -299,6 +299,7 @@ export default { @@ -299,6 +299,7 @@ export default {
299 subjectName: obj.subjectName, 299 subjectName: obj.subjectName,
300 classId: this.query.classId[0], 300 classId: this.query.classId[0],
301 params: this.$route.query.params, 301 params: this.$route.query.params,
  302 + examType: obj.examPaperId == 0 ? 1 : 2,
302 }, 303 },
303 }); 304 });
304 }, 305 },
@@ -404,6 +405,7 @@ export default { @@ -404,6 +405,7 @@ export default {
404 paperId: item.id, 405 paperId: item.id,
405 title: item.title, 406 title: item.title,
406 type: 2, 407 type: 2,
  408 + examType: item.examType || 1,
407 }, 409 },
408 }); 410 });
409 }, 411 },
src/views/examinationPaper/add.vue
@@ -1260,13 +1260,13 @@ export default { @@ -1260,13 +1260,13 @@ export default {
1260 this.stem.indexs = indexs; 1260 this.stem.indexs = indexs;
1261 this.stem.type = type; 1261 this.stem.type = type;
1262 if (type == 1) { 1262 if (type == 1) {
1263 - if (obj.screenshot == "") { 1263 + if (!obj.screenshot || obj.screenshot == "") {
1264 this.iframeLoading = false; 1264 this.iframeLoading = false;
1265 } 1265 }
1266 this.stem.screenshot = obj.screenshot || ""; 1266 this.stem.screenshot = obj.screenshot || "";
1267 this.stem.answerScreenshot = ""; 1267 this.stem.answerScreenshot = "";
1268 } else { 1268 } else {
1269 - if (obj.answerScreenshot == "") { 1269 + if (!obj.answerScreenshot || obj.answerScreenshot == "") {
1270 this.iframeLoading = false; 1270 this.iframeLoading = false;
1271 } 1271 }
1272 this.stem.answerScreenshot = obj.answerScreenshot || ""; 1272 this.stem.answerScreenshot = obj.answerScreenshot || "";
@@ -2044,10 +2044,12 @@ export default { @@ -2044,10 +2044,12 @@ export default {
2044 let subjectArr = []; 2044 let subjectArr = [];
2045 this.subjectList = 2045 this.subjectList =
2046 data.subjectNames?.map((item) => { 2046 data.subjectNames?.map((item) => {
2047 - subjectArr.push(item.subjectName || item); 2047 + let subName =
  2048 + this.role == "ROLE_PERSONAL" ? item.subjectName : item;
  2049 + subjectArr.push(subName);
2048 return { 2050 return {
2049 - value: this.role == "ROLE_PERSONAL" ? item.subjectName : item,  
2050 - label: this.role == "ROLE_PERSONAL" ? item.subjectName : item, 2051 + value: subName,
  2052 + label: subName,
2051 }; 2053 };
2052 }) || []; 2054 }) || [];
2053 if (this.subjectList.length) { 2055 if (this.subjectList.length) {
src/views/examinationPaper/addQs.vue
@@ -448,7 +448,7 @@ @@ -448,7 +448,7 @@
448 </div> 448 </div>
449 </el-dialog> 449 </el-dialog>
450 </div> 450 </div>
451 - <div v-show="step == 2"> 451 + <div v-if="step == 2">
452 <div class="answer-title"> 452 <div class="answer-title">
453 <p class="name">{{ form.title }}</p> 453 <p class="name">{{ form.title }}</p>
454 </div> 454 </div>
@@ -547,6 +547,7 @@ export default { @@ -547,6 +547,7 @@ export default {
547 listShare: 0, 547 listShare: 0,
548 uploadUrl: "/file/uploadImgToHtml", 548 uploadUrl: "/file/uploadImgToHtml",
549 iframeLoading: false, 549 iframeLoading: false,
  550 + subjectName: "",
550 }; 551 };
551 }, 552 },
552 computed: { 553 computed: {
@@ -588,6 +589,7 @@ export default { @@ -588,6 +589,7 @@ export default {
588 this.listShare = this.$route.query.listShare 589 this.listShare = this.$route.query.listShare
589 ? this.$route.query.listShare 590 ? this.$route.query.listShare
590 : 0; 591 : 0;
  592 + this.subjectName = this.$route.query.subjectName || "";
591 this.type = this.$route.query.type ? this.$route.query.type : 1; 593 this.type = this.$route.query.type ? this.$route.query.type : 1;
592 this.role = 594 this.role =
593 this.$store.getters.info.showRole || 595 this.$store.getters.info.showRole ||
@@ -622,13 +624,13 @@ export default { @@ -622,13 +624,13 @@ export default {
622 this.stem.indexs = indexs; 624 this.stem.indexs = indexs;
623 this.stem.type = type; 625 this.stem.type = type;
624 if (type == 1) { 626 if (type == 1) {
625 - if (obj.screenshot == "") { 627 + if (!obj.screenshot || obj.screenshot == "") {
626 this.iframeLoading = false; 628 this.iframeLoading = false;
627 } 629 }
628 this.stem.screenshot = obj.screenshot || ""; 630 this.stem.screenshot = obj.screenshot || "";
629 this.stem.answerScreenshot = ""; 631 this.stem.answerScreenshot = "";
630 } else { 632 } else {
631 - if (obj.answerScreenshot == "") { 633 + if (!obj.answerScreenshot || obj.answerScreenshot == "") {
632 this.iframeLoading = false; 634 this.iframeLoading = false;
633 } 635 }
634 this.stem.answerScreenshot = obj.answerScreenshot || ""; 636 this.stem.answerScreenshot = obj.answerScreenshot || "";
@@ -1121,15 +1123,23 @@ export default { @@ -1121,15 +1123,23 @@ export default {
1121 } 1123 }
1122 const { data, status, info } = await fetchSubjectList({ ...query }); 1124 const { data, status, info } = await fetchSubjectList({ ...query });
1123 if (status === 0) { 1125 if (status === 0) {
  1126 + let subjectArr = [];
1124 this.subjectList = 1127 this.subjectList =
1125 data.subjectNames?.map((item) => { 1128 data.subjectNames?.map((item) => {
  1129 + let subName =
  1130 + this.role == "ROLE_PERSONAL" ? item.subjectName : item;
  1131 + subjectArr.push(subName);
1126 return { 1132 return {
1127 - value: this.role == "ROLE_PERSONAL" ? item.subjectName : item,  
1128 - label: this.role == "ROLE_PERSONAL" ? item.subjectName : item, 1133 + value: subName,
  1134 + label: subName,
1129 }; 1135 };
1130 }) || []; 1136 }) || [];
1131 if (this.subjectList.length) { 1137 if (this.subjectList.length) {
1132 - this.form.subjectName = this.subjectList[0].value; 1138 + if (subjectArr.includes(this.$route.query.subjectName)) {
  1139 + this.form.subjectName = this.$route.query.subjectName;
  1140 + } else {
  1141 + this.form.subjectName = this.subjectList[0].value;
  1142 + }
1133 } 1143 }
1134 } else { 1144 } else {
1135 this.$message.error(info); 1145 this.$message.error(info);
src/views/examinationPaper/edit.vue
@@ -23,10 +23,7 @@ @@ -23,10 +23,7 @@
23 <p class="totals">卷面总分:{{ allScore }}分</p> 23 <p class="totals">卷面总分:{{ allScore }}分</p>
24 </div> 24 </div>
25 <div class="question-box"> 25 <div class="question-box">
26 - <ul  
27 - class="questions-ul questions-ul2"  
28 - v-if="!questionList[0]?.subQuestions"  
29 - > 26 + <ul class="questions-ul questions-ul2" v-if="examType == 1">
30 <li class="sub-questions"> 27 <li class="sub-questions">
31 <div class="qs-num">题号</div> 28 <div class="qs-num">题号</div>
32 <div class="qs-type">题型</div> 29 <div class="qs-type">题型</div>
@@ -155,9 +152,9 @@ @@ -155,9 +152,9 @@
155 </div> 152 </div>
156 </li> 153 </li>
157 </ul> 154 </ul>
158 - <template v-if="questionList[0]?.subQuestions"> 155 + <template v-if="examType == 2">
159 <template v-for="(question, index) in questionList"> 156 <template v-for="(question, index) in questionList">
160 - <p class="question-title"> 157 + <p class="question-title" v-if="paperType == 2">
161 <span>{{ setBigNum(index) }}、</span> 158 <span>{{ setBigNum(index) }}、</span>
162 <el-input 159 <el-input
163 class="ipt" 160 class="ipt"
@@ -167,7 +164,10 @@ @@ -167,7 +164,10 @@
167 ></el-input> 164 ></el-input>
168 <span>共 {{ setScore(question) }} 分</span> 165 <span>共 {{ setScore(question) }} 分</span>
169 </p> 166 </p>
170 - <div class="questions-ul"> 167 + <div
  168 + class="questions-ul"
  169 + :class="paperType == 1 ? 'questions-ul2' : ''"
  170 + >
171 <div class="sub-questions"> 171 <div class="sub-questions">
172 <div class="qs-num">题号</div> 172 <div class="qs-num">题号</div>
173 <div class="qs-type">题型</div> 173 <div class="qs-type">题型</div>
@@ -195,7 +195,7 @@ @@ -195,7 +195,7 @@
195 > 195 >
196 </p> 196 </p>
197 <div v-else class="sub-questions"> 197 <div v-else class="sub-questions">
198 - <div class="qs-num">{{ subQuestions.questionIndex }}</div> 198 + <div class="qs-num">{{ setNum(index, indexs) }}</div>
199 <div class="qs-type"> 199 <div class="qs-type">
200 {{ setSubPro(subQuestions.questionType) }} 200 {{ setSubPro(subQuestions.questionType) }}
201 </div> 201 </div>
@@ -531,6 +531,7 @@ export default { @@ -531,6 +531,7 @@ export default {
531 gradeClassList: [], //学段列表 531 gradeClassList: [], //学段列表
532 uploadUrl: "/file/uploadImgToHtml", 532 uploadUrl: "/file/uploadImgToHtml",
533 iframeLoading: false, 533 iframeLoading: false,
  534 + examType: 2,
534 }; 535 };
535 }, 536 },
536 computed: { 537 computed: {
@@ -580,6 +581,7 @@ export default { @@ -580,6 +581,7 @@ export default {
580 this.$store.getters.info.showRole || 581 this.$store.getters.info.showRole ||
581 this.$store.getters.info.permissions[0].role; 582 this.$store.getters.info.permissions[0].role;
582 this.type = this.$route.query.type || 1; 583 this.type = this.$route.query.type || 1;
  584 + this.examType = this.$route.query.examType || 2;
583 this.paperType = this.$route.query.paperType || 1; 585 this.paperType = this.$route.query.paperType || 1;
584 this.form.title = this.$route.query.title || ""; 586 this.form.title = this.$route.query.title || "";
585 this._QueryDetail(); 587 this._QueryDetail();
@@ -594,13 +596,13 @@ export default { @@ -594,13 +596,13 @@ export default {
594 this.stem.index = index; 596 this.stem.index = index;
595 this.stem.indexs = indexs; 597 this.stem.indexs = indexs;
596 if (type == 1) { 598 if (type == 1) {
597 - if (obj.screenshot == "") { 599 + if (!obj.screenshot || obj.screenshot == "") {
598 this.iframeLoading = false; 600 this.iframeLoading = false;
599 } 601 }
600 this.stem.screenshot = obj.screenshot || ""; 602 this.stem.screenshot = obj.screenshot || "";
601 this.stem.answerScreenshot = ""; 603 this.stem.answerScreenshot = "";
602 } else { 604 } else {
603 - if (obj.answerScreenshot == "") { 605 + if (!obj.answerScreenshot || obj.answerScreenshot == "") {
604 this.iframeLoading = false; 606 this.iframeLoading = false;
605 } 607 }
606 this.stem.answerScreenshot = obj.answerScreenshot || ""; 608 this.stem.answerScreenshot = obj.answerScreenshot || "";
@@ -724,6 +726,23 @@ export default { @@ -724,6 +726,23 @@ export default {
724 726
725 return txt; 727 return txt;
726 }, 728 },
  729 + //计算题号
  730 + setNum(index, indexs, sub) {
  731 + let lengths = 0; //所在大题之前的所有小题数量
  732 + let subIndex = 0; //所在大题的位置
  733 + for (let i = 0; i < index; i++) {
  734 + let subArr = this.questionList[i].subQuestions.filter((item) => {
  735 + return !!item.questionType;
  736 + });
  737 + lengths += subArr.length;
  738 + }
  739 + for (let i = 0; i < indexs; i++) {
  740 + if (!!this.questionList[index].subQuestions[i].questionType) {
  741 + subIndex += 1;
  742 + }
  743 + }
  744 + return lengths + subIndex + 1;
  745 + },
727 setScore(question) { 746 setScore(question) {
728 let score = question.subQuestions.reduce((a, b) => { 747 let score = question.subQuestions.reduce((a, b) => {
729 return a + (b.score || 0); 748 return a + (b.score || 0);
src/views/examinationPaper/index.vue
@@ -414,6 +414,7 @@ export default { @@ -414,6 +414,7 @@ export default {
414 ...query, 414 ...query,
415 listType: this.query.type, 415 listType: this.query.type,
416 listShare: this.query.share, 416 listShare: this.query.share,
  417 + subjectName: this.query.subjectName,
417 }, 418 },
418 }; 419 };
419 this.$router.push(routerItem); 420 this.$router.push(routerItem);
@@ -887,7 +888,7 @@ export default { @@ -887,7 +888,7 @@ export default {
887 888
888 .img-box { 889 .img-box {
889 position: relative; 890 position: relative;
890 - color: #409EFF; 891 + color: #409eff;
891 892
892 .img { 893 .img {
893 position: absolute; 894 position: absolute;