Commit aea3399d6794849738447ca4e4a883cd0efeca70

Authored by liufangjia
1 parent 45b98e8e

feat: 代码提交

src/api/apis/apis.js
... ... @@ -7,22 +7,22 @@ const defaltService = (url, data) => {
7 7 method: "POST",
8 8 data,
9 9 });
10   -}
  10 +};
11 11 const defaltGetService = (url, data) => {
12 12 return service({
13 13 url: url,
14 14 method: "Get",
15 15 data,
16 16 });
17   -}
  17 +};
18 18 const downService = (url, data) => {
19 19 return service({
20 20 url: url,
21 21 method: "POST",
22 22 data,
23   - responseType: 'arraybuffer',
  23 + responseType: "arraybuffer",
24 24 });
25   -}
  25 +};
26 26 export default {
27 27 // 知识点
28 28 gKnowledge(section, subject) {
... ... @@ -33,133 +33,135 @@ export default {
33 33 if (subject) {
34 34 requestParams.push("subject=" + subject);
35 35 }
36   - var requestUrl = setUpUrls.gKnowledge + (requestParams.length >= 1 ? "?" + requestParams.join("&") : "");
37   - return defaltGetService(requestUrl)
  36 + var requestUrl =
  37 + setUpUrls.gKnowledge +
  38 + (requestParams.length >= 1 ? "?" + requestParams.join("&") : "");
  39 + return defaltGetService(requestUrl);
38 40 },
39   - // 年级组长-成绩概要
  41 + // 年级组长-成绩概要
40 42 gclassdiffReport(data) {
41   - return defaltService(setUpUrls.gclassdiffReport, data)
  43 + return defaltService(setUpUrls.gclassdiffReport, data);
42 44 },
43 45 // 年级组长-成绩测验单
44 46 gTestExamReport(data) {
45   - return defaltService(setUpUrls.gtestExamReport, data)
  47 + return defaltService(setUpUrls.gtestExamReport, data);
46 48 },
47 49 // 年级组长-试题分析
48 50 gPaperExamReport(data) {
49   - return defaltService(setUpUrls.gpaperExamReport, data)
  51 + return defaltService(setUpUrls.gpaperExamReport, data);
50 52 },
51 53 // 年级组长-学生成绩排行
52 54 gStudentExamReport(data) {
53   - return defaltService(setUpUrls.gstudentExamReport, data)
  55 + return defaltService(setUpUrls.gstudentExamReport, data);
54 56 },
55 57 // 年级组长-班级情况对比
56 58 gClassdiffExamReport(data) {
57   - return defaltService(setUpUrls.gclassdiffExamReport, data)
  59 + return defaltService(setUpUrls.gclassdiffExamReport, data);
58 60 },
59 61 // 年级组长-查询即时测数据
60 62 gExamListReport(data) {
61   - return defaltService(setUpUrls.gListExamReport, data)
  63 + return defaltService(setUpUrls.gListExamReport, data);
62 64 },
63 65 // 年级组长-查询管理的班级
64 66 gClass(data) {
65   - return defaltGetService(setUpUrls.gClassList, data)
  67 + return defaltGetService(setUpUrls.gClassList, data);
66 68 },
67 69 // 年级组长-导出阶段问答报表-多科
68 70 gExportPhaseAnswerReport(data) {
69   - return defaltService(setUpUrls.gExportPhaseAnswerReport, data)
  71 + return defaltService(setUpUrls.gExportPhaseAnswerReport, data);
70 72 },
71 73 // 年级组长-导出阶段测练
72 74 gExportPhaseExamReport(data) {
73   - return downService(setUpUrls.gExportPhaseExamReport, data)
  75 + return downService(setUpUrls.gExportPhaseExamReport, data);
74 76 },
75 77 // 年级组长-导出阶段问答
76 78 gExportPhaseInteractiveReport(data) {
77   - return downService(setUpUrls.gExportPhaseInteractiveReport, data)
  79 + return downService(setUpUrls.gExportPhaseInteractiveReport, data);
78 80 },
79 81  
80 82 // 年级组长-首页统计数据
81 83 gIndex(data) {
82   - return defaltService(setUpUrls.gIndex, data)
  84 + return defaltService(setUpUrls.gIndex, data);
83 85 },
84 86 // 年级组长-查询阶段问答-多科
85 87 gPhaseAnswerReport(data) {
86   - return defaltService(setUpUrls.gPhaseAnswerReport, data)
  88 + return defaltService(setUpUrls.gPhaseAnswerReport, data);
87 89 },
88 90 // 年级组长-查询阶段测练-多科
89 91 gPhaseExamReport(data) {
90   - return defaltService(setUpUrls.gPhaseExamReport, data)
  92 + return defaltService(setUpUrls.gPhaseExamReport, data);
91 93 },
92 94 // 年级组长-查询阶段互动-多科
93 95 gPhaseInteractiveReport(data) {
94   - return defaltService(setUpUrls.gPhaseInteractiveReport, data)
  96 + return defaltService(setUpUrls.gPhaseInteractiveReport, data);
95 97 },
96 98 // 年级组长-查询年级授课科目
97 99 gSubjectList(data) {
98   - return defaltService(setUpUrls.gSubjectList + data, null)
  100 + return defaltService(setUpUrls.gSubjectList + data, null);
99 101 },
100 102 // 教师首页数据
101 103 teacherIndex(data) {
102   - return defaltService(setUpUrls.teacherIndex, data)
  104 + return defaltService(setUpUrls.teacherIndex, data);
103 105 },
104 106 // 学校管理员首页数据
105 107 schoolIndex(data) {
106   - return defaltService(setUpUrls.schoolIndex, data)
  108 + return defaltService(setUpUrls.schoolIndex, data);
107 109 },
108 110 // 集团管理员首页数据
109 111 tenantIndex(data) {
110   - return defaltService(setUpUrls.tenantIndex, data)
  112 + return defaltService(setUpUrls.tenantIndex, data);
111 113 },
112 114 // 班主任首页数据
113 115 classIndex(data) {
114   - return defaltService(setUpUrls.classIndex, data)
  116 + return defaltService(setUpUrls.classIndex, data);
115 117 },
116 118 // 个人版首页数据
117 119 personalIndex(data) {
118   - return defaltService(setUpUrls.personalIndex, data)
  120 + return defaltService(setUpUrls.personalIndex, data);
119 121 },
120 122 //班主任-查询管理的班级
121 123 cTTestExamReport(data) {
122   - return defaltService(setUpUrls.cTTestExamReport, data)
  124 + return defaltService(setUpUrls.cTTestExamReport, data);
123 125 },
124 126 //班主任-查询管理的班级
125 127 cTClassList(data) {
126   - return defaltService(setUpUrls.cTClassList, data)
  128 + return defaltService(setUpUrls.cTClassList, data);
127 129 },
128 130 //班主任-查询管理班级授课科目
129 131 cTSubjectList(data) {
130   - return defaltService(setUpUrls.cTSubjectList, data)
  132 + return defaltService(setUpUrls.cTSubjectList, data);
131 133 },
132 134 //班主任-查询阶段问答报表
133 135 cTPhaseAnswerReport(data) {
134   - return defaltService(setUpUrls.cTPhaseAnswerReport, data)
  136 + return defaltService(setUpUrls.cTPhaseAnswerReport, data);
135 137 },
136 138 //班主任-查询阶段互动报表
137 139 cTPhaseInteractiveReport(data) {
138   - return defaltService(setUpUrls.cTPhaseInteractiveReport, data)
  140 + return defaltService(setUpUrls.cTPhaseInteractiveReport, data);
139 141 },
140 142 //班主任-查询阶段测练报表
141 143 cTPhaseExamReport(data) {
142   - return defaltService(setUpUrls.cTPhaseExamReport, data)
  144 + return defaltService(setUpUrls.cTPhaseExamReport, data);
143 145 },
144 146 //班主任-导出阶段问答报表
145 147 cTExportPhaseAnswerReport(data) {
146   - return downService(setUpUrls.cTExportPhaseAnswerReport, data)
  148 + return downService(setUpUrls.cTExportPhaseAnswerReport, data);
147 149 },
148 150 //班主任-导出阶段互动报表
149 151 cTExportPhaseInteractiveReport(data) {
150   - return downService(setUpUrls.cTExportPhaseInteractiveReport, data)
  152 + return downService(setUpUrls.cTExportPhaseInteractiveReport, data);
151 153 },
152 154 //班主任-导出阶段测练报表
153 155 cTExportPhaseExamReport(data) {
154   - return downService(setUpUrls.cTExportPhaseExamReport, data)
  156 + return downService(setUpUrls.cTExportPhaseExamReport, data);
155 157 },
156 158 //任课老师-查询管理的班级
157 159 tTestExamReport(data) {
158   - return defaltService(setUpUrls.tTestExamReport, data)
  160 + return defaltService(setUpUrls.tTestExamReport, data);
159 161 },
160 162 //任课老师-查询管理的班级
161 163 tClassList(data) {
162   - return defaltService(setUpUrls.tClassList, data)
  164 + return defaltService(setUpUrls.tClassList, data);
163 165 },
164 166 //任课老师-查询管理的班级
165 167 tClassFromGrade(classId = null, subjectName = null) {
... ... @@ -170,8 +172,10 @@ export default {
170 172 if (subjectName) {
171 173 requestParams.push("subjectName=" + subjectName);
172 174 }
173   - var requestUrl = setUpUrls.tClassFromGrade + (requestParams.length >= 1 ? "?" + requestParams.join("&") : "");
174   - return defaltGetService(requestUrl)
  175 + var requestUrl =
  176 + setUpUrls.tClassFromGrade +
  177 + (requestParams.length >= 1 ? "?" + requestParams.join("&") : "");
  178 + return defaltGetService(requestUrl);
175 179 },
176 180 tClassGrade(grade = null, subjectName = null) {
177 181 var requestParams = [];
... ... @@ -181,122 +185,124 @@ export default {
181 185 if (subjectName) {
182 186 requestParams.push("subjectName=" + subjectName);
183 187 }
184   - var requestUrl = setUpUrls.tClassGrade + (requestParams.length >= 1 ? "?" + requestParams.join("&") : "");
185   - return defaltGetService(requestUrl)
  188 + var requestUrl =
  189 + setUpUrls.tClassGrade +
  190 + (requestParams.length >= 1 ? "?" + requestParams.join("&") : "");
  191 + return defaltGetService(requestUrl);
186 192 },
187 193 tPaperDetail(data) {
188   - return defaltService(setUpUrls.tPaperDetail, data)
  194 + return defaltService(setUpUrls.tPaperDetail, data);
189 195 },
190 196 //任课老师-查询管理班级授课科目
191 197 tSubjectList(data) {
192   - return defaltService(setUpUrls.tSubjectList, data)
  198 + return defaltService(setUpUrls.tSubjectList, data);
193 199 },
194 200 // 年级组长-试题分析
195 201 tPaperExamReport(data) {
196   - return defaltService(setUpUrls.tpaperExamReport, data)
  202 + return defaltService(setUpUrls.tpaperExamReport, data);
197 203 },
198 204 // 年级组长-学生成绩排行
199 205 tStudentExamReport(data) {
200   - return defaltService(setUpUrls.tstudentExamReport, data)
  206 + return defaltService(setUpUrls.tstudentExamReport, data);
201 207 },
202 208 // 年级组长-班级情况对比
203 209 tClassdiffExamReport(data) {
204   - return defaltService(setUpUrls.tclassdiffExamReport, data)
  210 + return defaltService(setUpUrls.tclassdiffExamReport, data);
205 211 },
206 212 tgexportPhaseExamReport(data) {
207   - return downService(setUpUrls.gExportPhaseExamReport, data)
  213 + return downService(setUpUrls.gExportPhaseExamReport, data);
208 214 },
209 215 tgexportPhaseExamReport2(data) {
210   - return downService(setUpUrls.gexportPhaseExamReport2, data)
  216 + return downService(setUpUrls.gexportPhaseExamReport2, data);
211 217 },
212 218 tgexportPhaseExamReport3(data) {
213   - return downService(setUpUrls.gexportPhaseExamReport3, data)
  219 + return downService(setUpUrls.gexportPhaseExamReport3, data);
214 220 },
215 221 tgexportPhaseExamReport4(data) {
216   - return downService(setUpUrls.gexportPhaseExamReport4, data)
  222 + return downService(setUpUrls.gexportPhaseExamReport4, data);
217 223 },
218 224 //任课老师-查询管理班级授课科目
219 225 tListExamReport(data) {
220   - return defaltService(setUpUrls.tListExamReport, data)
  226 + return defaltService(setUpUrls.tListExamReport, data);
221 227 },
222 228 //任课老师-分页查询课时报表列表
223 229 periodReportList(data) {
224   - return defaltService(setUpUrls.periodReportList, data)
  230 + return defaltService(setUpUrls.periodReportList, data);
225 231 },
226 232 classdiffreport(data) {
227   - return defaltService(setUpUrls.classdiffreport, data)
  233 + return defaltService(setUpUrls.classdiffreport, data);
228 234 },
229 235 //任课老师-查询阶段问答报表
230 236 phaseAnswerReport(data) {
231   - return defaltService(setUpUrls.phaseAnswerReport, data)
  237 + return defaltService(setUpUrls.phaseAnswerReport, data);
232 238 },
233 239 //任课老师-查询阶段互动报表
234 240 phaseInteractiveReport(data) {
235   - return defaltService(setUpUrls.phaseInteractiveReport, data)
  241 + return defaltService(setUpUrls.phaseInteractiveReport, data);
236 242 },
237 243 //任课老师-查询课时题目列表
238 244 periodQuestionList(data) {
239   - return defaltService(setUpUrls.periodQuestionList, data)
  245 + return defaltService(setUpUrls.periodQuestionList, data);
240 246 },
241 247 //任课老师-设置课时报表答案
242 248 setPeriodAnswer(data) {
243   - return defaltService(setUpUrls.setPeriodAnswer, data)
  249 + return defaltService(setUpUrls.setPeriodAnswer, data);
244 250 },
245 251 //任课老师-查询课时报表详情
246 252 periodDetail(data) {
247   - return defaltService(setUpUrls.periodDetail, data)
  253 + return defaltService(setUpUrls.periodDetail, data);
248 254 },
249 255 //任课老师-分页查询课时题目统计列表
250 256 periodQuestionReport(data) {
251   - return defaltService(setUpUrls.periodQuestionReport, data)
  257 + return defaltService(setUpUrls.periodQuestionReport, data);
252 258 },
253 259 //任课老师-查询课时学生答题明细
254 260 periodStudentReport(data) {
255   - return defaltService(setUpUrls.periodStudentReport, data)
  261 + return defaltService(setUpUrls.periodStudentReport, data);
256 262 },
257 263 //任课老师-分页查询即时测报表
258 264 examReportList(data) {
259   - return defaltService(setUpUrls.examReportList, data)
  265 + return defaltService(setUpUrls.examReportList, data);
260 266 },
261 267 //任课老师-查询阶段测练报表
262 268 phaseExamReport(data) {
263   - return defaltService(setUpUrls.phaseExamReport, data)
  269 + return defaltService(setUpUrls.phaseExamReport, data);
264 270 },
265 271 //任课老师-查询即时测报表题目列表
266 272 examQuestionList(data) {
267   - return defaltService(setUpUrls.examQuestionList, data)
  273 + return defaltService(setUpUrls.examQuestionList, data);
268 274 },
269 275 //任课老师-设置即时测报表答案
270 276 setExamAnswer(data) {
271   - return defaltService(setUpUrls.setExamAnswer, data)
  277 + return defaltService(setUpUrls.setExamAnswer, data);
272 278 },
273 279 //任课老师-查询即时测报表详情
274 280 examDetail(data) {
275   - return defaltService(setUpUrls.examDetail, data)
  281 + return defaltService(setUpUrls.examDetail, data);
276 282 },
277 283 //任课老师-下载导入主观题分模板
278 284 subjectiveScoreTemplate(data) {
279   - return downService(setUpUrls.subjectiveScoreTemplate, data)
  285 + return downService(setUpUrls.subjectiveScoreTemplate, data);
280 286 },
281 287 //任课老师-导入主观题得分
282 288 importSubjectiveScore(data) {
283   - return defaltService(setUpUrls.importSubjectiveScore, data)
  289 + return defaltService(setUpUrls.importSubjectiveScore, data);
284 290 },
285 291 //任课老师-分页查询即时测题目统计
286 292 examQuestionReport(data) {
287   - return defaltService(setUpUrls.examQuestionReport, data)
  293 + return defaltService(setUpUrls.examQuestionReport, data);
288 294 },
289 295 //任课老师-查询即时测学生统计
290 296 examStudentReport(data) {
291   - return defaltService(setUpUrls.examStudentReport, data)
  297 + return defaltService(setUpUrls.examStudentReport, data);
292 298 },
293 299 //任课老师-重新判分
294 300 reScore(data) {
295   - return defaltService(setUpUrls.reScore, data)
  301 + return defaltService(setUpUrls.reScore, data);
296 302 },
297 303 //任课老师-数据导出
298 304 exportData(data) {
299   - return downService(setUpUrls.exportData, data)
  305 + return downService(setUpUrls.exportData, data);
300 306 // return service({
301 307 // url: setUpUrls.exportData,
302 308 // method: "POST",
... ... @@ -309,241 +315,241 @@ export default {
309 315 },
310 316 //任课老师-数据导入
311 317 importData(data) {
312   - return defaltService(setUpUrls.importData, data)
  318 + return defaltService(setUpUrls.importData, data);
313 319 },
314 320 //任课老师-导出阶段问答报表
315 321 exportPhaseAnswerReport(data) {
316   - return downService(setUpUrls.exportPhaseAnswerReport, data)
  322 + return downService(setUpUrls.exportPhaseAnswerReport, data);
317 323 },
318 324 //任课老师-导出阶段互动报表
319 325 exportPhaseInteractiveReport(data) {
320   - return downService(setUpUrls.exportPhaseInteractiveReport, data)
  326 + return downService(setUpUrls.exportPhaseInteractiveReport, data);
321 327 },
322 328 //任课老师-导出单课时报表
323 329 exportPeriodReport(data) {
324   - return downService(setUpUrls.exportPeriodReport, data)
  330 + return downService(setUpUrls.exportPeriodReport, data);
325 331 },
326 332 //任课老师-导出阶段测练报表
327 333 exportPhaseExamReport(data) {
328   - return downService(setUpUrls.exportPhaseExamReport, data)
  334 + return downService(setUpUrls.exportPhaseExamReport, data);
329 335 },
330 336 //任课老师-导出单卷测练报表
331 337 exportExamReport(data) {
332   - return downService(setUpUrls.exportExamReport, data)
  338 + return downService(setUpUrls.exportExamReport, data);
333 339 },
334 340 // 任课老师-查询学生列表
335 341 tStudentList(data) {
336   - return defaltService(setUpUrls.tStudentList, data)
  342 + return defaltService(setUpUrls.tStudentList, data);
337 343 },
338 344 //任课老师-学生测练统计
339 345 tgStudentExamReport(data) {
340   - return defaltService(setUpUrls.tstudentExamReport2, data)
  346 + return defaltService(setUpUrls.tstudentExamReport2, data);
341 347 },
342 348  
343 349 // 查询角色列表
344 350 roleList(data) {
345   - return defaltService(setUpUrls.roleList, data)
  351 + return defaltService(setUpUrls.roleList, data);
346 352 },
347 353 // 分页查询账号
348 354 userPage(data) {
349   - return defaltService(setUpUrls.userPage, data)
  355 + return defaltService(setUpUrls.userPage, data);
350 356 },
351 357 // 修改账号 禁用账号、修改账号密码等
352 358 updateUser(data) {
353   - return defaltService(setUpUrls.updateUser, data)
  359 + return defaltService(setUpUrls.updateUser, data);
354 360 },
355 361 // 查询学校详情
356 362 schoolDetail(data) {
357   - return defaltService(setUpUrls.schoolDetail, data)
  363 + return defaltService(setUpUrls.schoolDetail, data);
358 364 },
359 365 // 修改学校信息
360 366 updateSchool(data) {
361   - return defaltService(setUpUrls.updateSchool, data)
  367 + return defaltService(setUpUrls.updateSchool, data);
362 368 },
363 369 // 学校年级管理
364 370 gradeList(data) {
365   - return defaltService(setUpUrls.gradeList, data)
  371 + return defaltService(setUpUrls.gradeList, data);
366 372 },
367 373 // 查询学校所有科目
368 374 subjectList(data) {
369   - return defaltService(setUpUrls.subjectList, data)
  375 + return defaltService(setUpUrls.subjectList, data);
370 376 },
371 377 // 删除科目
372 378 delSubject(data) {
373   - return defaltService(setUpUrls.delSubject, data)
  379 + return defaltService(setUpUrls.delSubject, data);
374 380 },
375 381 // 修改年级信息
376 382 updateGrade(data) {
377   - return defaltService(setUpUrls.updateGrade, data)
  383 + return defaltService(setUpUrls.updateGrade, data);
378 384 },
379 385 // 查询学校班级列表
380 386 schoolClassList(data) {
381   - return defaltService(setUpUrls.classList, data)
  387 + return defaltService(setUpUrls.classList, data);
382 388 },
383 389 // 查询学生列表
384 390 studentList(data) {
385   - return defaltService(setUpUrls.studentList, data)
  391 + return defaltService(setUpUrls.studentList, data);
386 392 },
387 393 // 修改班级信息
388 394 updateClass(data) {
389   - return defaltService(setUpUrls.updateClass, data)
  395 + return defaltService(setUpUrls.updateClass, data);
390 396 },
391 397 // 增加学生
392 398 addStudent(data) {
393   - return defaltService(setUpUrls.addStudent, data)
  399 + return defaltService(setUpUrls.addStudent, data);
394 400 },
395 401 // 导入学生答题器绑定模板下载地址
396 402 studentClickerTemplateUrl(data) {
397   - return defaltService(setUpUrls.studentClickerTemplateUrl, data)
  403 + return defaltService(setUpUrls.studentClickerTemplateUrl, data);
398 404 },
399 405 // 导入学生答题器文件上传
400 406 importStudentClicker(data) {
401   - return defaltService(setUpUrls.importStudentClicker, data)
  407 + return defaltService(setUpUrls.importStudentClicker, data);
402 408 },
403 409 // 班级名册模板下载
404 410 classAndStudentTemplate(data) {
405   - return downService(setUpUrls.classAndStudentTemplate, data)
  411 + return downService(setUpUrls.classAndStudentTemplate, data);
406 412 },
407 413 // 班级名册导出
408 414 exportClassAndStudent(data) {
409   - return downService(setUpUrls.exportClassAndStudent, data)
  415 + return downService(setUpUrls.exportClassAndStudent, data);
410 416 },
411 417 // 教师模板下载
412 418 teacherTemplate(data) {
413   - return downService(setUpUrls.teacherTemplate, data)
  419 + return downService(setUpUrls.teacherTemplate, data);
414 420 },
415 421 // 教师导出
416 422 exportTeacher(data) {
417   - return downService(setUpUrls.exportTeacher, data)
  423 + return downService(setUpUrls.exportTeacher, data);
418 424 },
419 425  
420 426 // 删除学生
421 427 delStudent(data) {
422   - return defaltService(setUpUrls.delStudent, data)
  428 + return defaltService(setUpUrls.delStudent, data);
423 429 },
424 430 // 查询学校教师列表
425 431 teacherList(data) {
426   - return defaltService(setUpUrls.teacherList, data)
  432 + return defaltService(setUpUrls.teacherList, data);
427 433 },
428 434 // 新增教师
429 435 addTeacher(data) {
430   - return defaltService(setUpUrls.addTeacher, data)
  436 + return defaltService(setUpUrls.addTeacher, data);
431 437 },
432 438 // 修改教师信息
433 439 updateTeacher(data) {
434   - return defaltService(setUpUrls.updateTeacher, data)
  440 + return defaltService(setUpUrls.updateTeacher, data);
435 441 },
436 442 // 删除教师管理班级或年级
437 443 delTeacherManager(data) {
438   - return defaltService(setUpUrls.delTeacherManager, data)
  444 + return defaltService(setUpUrls.delTeacherManager, data);
439 445 },
440 446 // 查询基站统计数据
441 447 stationReport(data) {
442   - return defaltService(setUpUrls.stationReport, data)
  448 + return defaltService(setUpUrls.stationReport, data);
443 449 },
444 450 // 查询答题器统计数据
445 451 keyboardReport(data) {
446   - return defaltService(setUpUrls.keyboardReport, data)
  452 + return defaltService(setUpUrls.keyboardReport, data);
447 453 },
448 454 // 分页查询设备列表
449 455 deviceList(data) {
450   - return defaltService(setUpUrls.deviceList, data)
  456 + return defaltService(setUpUrls.deviceList, data);
451 457 },
452 458 // 导出设备列表
453 459 exportDevice(data) {
454   - return downService(setUpUrls.exportDevice, data)
  460 + return downService(setUpUrls.exportDevice, data);
455 461 },
456 462 // 查询设备详情
457 463 deviceDetail(data) {
458   - return defaltService(setUpUrls.deviceDetail, data)
  464 + return defaltService(setUpUrls.deviceDetail, data);
459 465 },
460 466 // 分页查询设备日志列表
461 467 deviceLogList(data) {
462   - return defaltService(setUpUrls.deviceLogList, data)
  468 + return defaltService(setUpUrls.deviceLogList, data);
463 469 },
464 470 // 修改设备自动升级状态
465 471 modifyUpgradeFlag(data) {
466   - return defaltService(setUpUrls.modifyUpgradeFlag, data)
  472 + return defaltService(setUpUrls.modifyUpgradeFlag, data);
467 473 },
468 474 // 设备自动升级状态(全部)
469 475 modifyUpgradeFlagBySchool(data) {
470   - return defaltService(setUpUrls.modifyUpgradeFlagBySchool, data)
  476 + return defaltService(setUpUrls.modifyUpgradeFlagBySchool, data);
471 477 },
472 478 // 修改基站信息
473 479 updateDevice(data) {
474   - return defaltService(setUpUrls.updateDevice, data)
  480 + return defaltService(setUpUrls.updateDevice, data);
475 481 },
476 482 // 新增基站
477 483 addStation(data) {
478   - return defaltService(setUpUrls.addStation, data)
  484 + return defaltService(setUpUrls.addStation, data);
479 485 },
480 486 // 导入基站模板下载老地址
481 487 stationTemplateUrl(data) {
482   - return defaltService(setUpUrls.stationTemplateUrl, data)
  488 + return defaltService(setUpUrls.stationTemplateUrl, data);
483 489 },
484 490 // 导入基站模板下载新地址
485 491 stationTemplate(data) {
486   - return downService(setUpUrls.stationTemplate, data)
  492 + return downService(setUpUrls.stationTemplate, data);
487 493 },
488 494 // 查询下载配置列表
489 495 appConfigList(data) {
490   - return defaltService(setUpUrls.appConfigList, data)
  496 + return defaltService(setUpUrls.appConfigList, data);
491 497 },
492 498 // 查询最新的授课端应用版本
493 499 latestVersion(data) {
494   - return defaltService(setUpUrls.latestVersion, data)
  500 + return defaltService(setUpUrls.latestVersion, data);
495 501 },
496 502 // 下载指定配置的最新版本授课端
497 503 getAppDownloadUrl(data) {
498   - return defaltService(setUpUrls.getAppDownloadUrl, data)
  504 + return defaltService(setUpUrls.getAppDownloadUrl, data);
499 505 },
500 506 // 新增授课端应用配置
501 507 addAppConfig(data) {
502   - return defaltService(setUpUrls.addAppConfig, data)
  508 + return defaltService(setUpUrls.addAppConfig, data);
503 509 },
504 510 // 修改授课端应用配置
505 511 updateAppConfig(data) {
506   - return defaltService(setUpUrls.updateAppConfig, data)
  512 + return defaltService(setUpUrls.updateAppConfig, data);
507 513 },
508 514 // 发卡记录
509 515 cardList(data) {
510   - return defaltService(setUpUrls.cardList, data)
  516 + return defaltService(setUpUrls.cardList, data);
511 517 },
512 518 // 设备使用分析
513 519 usageAnalysis(data) {
514   - return defaltService(setUpUrls.usageAnalysis, data)
  520 + return defaltService(setUpUrls.usageAnalysis, data);
515 521 },
516 522 // 导出设备使用分析
517 523 exportUsageAnalysis(data) {
518   - return downService(setUpUrls.exportUsageAnalysis, data)
  524 + return downService(setUpUrls.exportUsageAnalysis, data);
519 525 },
520 526 // 发卡应用下载
521 527 latestClickersApp(data) {
522   - return defaltService(setUpUrls.latestClickersApp, data)
  528 + return defaltService(setUpUrls.latestClickersApp, data);
523 529 },
524 530 // 发卡数据导出
525 531 exportClickersLog(data) {
526   - return downService(setUpUrls.exportClickersLog, data)
  532 + return downService(setUpUrls.exportClickersLog, data);
527 533 },
528 534 // 班级归档
529 535 classArchiving(data) {
530   - return defaltService(setUpUrls.classArchiving, data)
  536 + return defaltService(setUpUrls.classArchiving, data);
531 537 },
532 538 // 查询学校已归档班级列表
533 539 archivingClassList(data) {
534   - return defaltService(setUpUrls.archivingClassList, data)
  540 + return defaltService(setUpUrls.archivingClassList, data);
535 541 },
536 542 // 学生换班
537 543 studentChangeClass(data) {
538   - return defaltService(setUpUrls.studentChangeClass, data)
  544 + return defaltService(setUpUrls.studentChangeClass, data);
539 545 },
540 546 // 升级年级
541 547 upgradeGrade(data) {
542   - return defaltService(setUpUrls.upgradeGrade, data)
  548 + return defaltService(setUpUrls.upgradeGrade, data);
543 549 },
544 550 // 学校学段
545 551 sectionList(data) {
546   - return defaltService(setUpUrls.sectionList, data)
  552 + return defaltService(setUpUrls.sectionList, data);
547 553 },
548 554  
549 555 /**
... ... @@ -551,79 +557,79 @@ export default {
551 557 */
552 558 // 区域列表
553 559 regionList(data) {
554   - return defaltService(setUpUrls.regionList, data)
  560 + return defaltService(setUpUrls.regionList, data);
555 561 },
556 562 // 学校列表
557 563 schoolList(data) {
558   - return defaltService(setUpUrls.schoolList, data)
  564 + return defaltService(setUpUrls.schoolList, data);
559 565 },
560 566 // 新增或修改学校
561 567 saveSchool(data) {
562   - return defaltService(setUpUrls.saveSchool, data)
  568 + return defaltService(setUpUrls.saveSchool, data);
563 569 },
564 570 // 删除学校
565 571 removeSchool(data) {
566   - return defaltService(setUpUrls.removeSchool, data)
  572 + return defaltService(setUpUrls.removeSchool, data);
567 573 },
568 574 // 新增或修改区域
569 575 saveRegion(data) {
570   - return defaltService(setUpUrls.saveRegion, data)
  576 + return defaltService(setUpUrls.saveRegion, data);
571 577 },
572 578 // 新增学校管理员
573 579 addSchoolManager(data) {
574   - return defaltService(setUpUrls.addSchoolManager, data)
  580 + return defaltService(setUpUrls.addSchoolManager, data);
575 581 },
576 582 // 查询角色列表
577 583 tenantRoleList(data) {
578   - return defaltService(setUpUrls.tenantRoleList, data)
  584 + return defaltService(setUpUrls.tenantRoleList, data);
579 585 },
580 586 // 账号列表
581 587 tenantUserPage(data) {
582   - return defaltService(setUpUrls.tenantUserPage, data)
  588 + return defaltService(setUpUrls.tenantUserPage, data);
583 589 },
584 590 // 新增账号
585 591 addUser(data) {
586   - return defaltService(setUpUrls.addUser, data)
  592 + return defaltService(setUpUrls.addUser, data);
587 593 },
588 594 // 禁用账号、修改账号密码等
589 595 tenantUpdateUser(data) {
590   - return defaltService(setUpUrls.tenantUpdateUser, data)
  596 + return defaltService(setUpUrls.tenantUpdateUser, data);
591 597 },
592 598 // 查询基站统计数据
593 599 tenantStationReport(data) {
594   - return defaltService(setUpUrls.tenantStationReport, data)
  600 + return defaltService(setUpUrls.tenantStationReport, data);
595 601 },
596 602 // 查询答题器统计数据
597 603 tenantKeyboardReport(data) {
598   - return defaltService(setUpUrls.tenantKeyboardReport, data)
  604 + return defaltService(setUpUrls.tenantKeyboardReport, data);
599 605 },
600 606 // 分页查询设备列表
601 607 tenantDeviceList(data) {
602   - return defaltService(setUpUrls.tenantDeviceList, data)
  608 + return defaltService(setUpUrls.tenantDeviceList, data);
603 609 },
604 610 // 查询学校年级
605 611 tenantGradeList(data) {
606   - return defaltService(setUpUrls.tenantGradeList, data)
  612 + return defaltService(setUpUrls.tenantGradeList, data);
607 613 },
608 614 // 查询学校班级
609 615 tenantClassList(data) {
610   - return defaltService(setUpUrls.tenantClassList, data)
  616 + return defaltService(setUpUrls.tenantClassList, data);
611 617 },
612 618 // 学校使用对比
613 619 schoolContrast(data) {
614   - return defaltService(setUpUrls.schoolContrast, data)
  620 + return defaltService(setUpUrls.schoolContrast, data);
615 621 },
616 622 // 年级使用对比
617 623 gradeContrast(data) {
618   - return defaltService(setUpUrls.gradeContrast, data)
  624 + return defaltService(setUpUrls.gradeContrast, data);
619 625 },
620 626 // 导出学校使用对比
621 627 exportSchoolContrast(data) {
622   - return downService(setUpUrls.exportSchoolContrast, data)
  628 + return downService(setUpUrls.exportSchoolContrast, data);
623 629 },
624 630 // 导出年级使用对比
625 631 exportGradeContrast(data) {
626   - return downService(setUpUrls.exportGradeContrast, data)
  632 + return downService(setUpUrls.exportGradeContrast, data);
627 633 },
628 634 // 同步教师账号
629 635 syncUser(data) {
... ... @@ -634,308 +640,308 @@ export default {
634 640 },
635 641 // 导出设备列表
636 642 tenantExportDevice(data) {
637   - return downService(setUpUrls.tenantExportDevice, data)
  643 + return downService(setUpUrls.tenantExportDevice, data);
638 644 },
639 645  
640 646 /** 个人版 */
641 647 // 修改个人信息
642 648 getInfo(data) {
643   - return defaltService(setUpUrls.getInfo, data)
  649 + return defaltService(setUpUrls.getInfo, data);
644 650 },
645 651 modifyInfo(data) {
646   - return defaltService(setUpUrls.modifyInfo, data)
  652 + return defaltService(setUpUrls.modifyInfo, data);
647 653 },
648 654 // 查询班级列表
649 655 pClassList(data) {
650   - return defaltService(setUpUrls.pClassList, data)
  656 + return defaltService(setUpUrls.pClassList, data);
651 657 },
652 658 // 查询科目列表
653 659 pSubjectList(data) {
654   - return defaltService(setUpUrls.pSubjectList, data)
  660 + return defaltService(setUpUrls.pSubjectList, data);
655 661 },
656 662 // 查询学生列表
657 663 pStudentList(data) {
658   - return defaltService(setUpUrls.pStudentList, data)
  664 + return defaltService(setUpUrls.pStudentList, data);
659 665 },
660 666 // 新增或修改班级
661 667 pSaveClass(data) {
662   - return defaltService(setUpUrls.pSaveClass, data)
  668 + return defaltService(setUpUrls.pSaveClass, data);
663 669 },
664 670 // 删除班级
665 671 pDelClass(data) {
666   - return defaltService(setUpUrls.pDelClass, data)
  672 + return defaltService(setUpUrls.pDelClass, data);
667 673 },
668 674 // 增加学生
669 675 pAddStudent(data) {
670   - return defaltService(setUpUrls.pAddStudent, data)
  676 + return defaltService(setUpUrls.pAddStudent, data);
671 677 },
672 678 // 删除学生
673 679 pDelStudent(data) {
674   - return defaltService(setUpUrls.pDelStudent, data)
  680 + return defaltService(setUpUrls.pDelStudent, data);
675 681 },
676 682 // 查询答题卡类型列表
677 683 pPaperTagList(data) {
678   - return defaltService(setUpUrls.pPaperTagList, data)
  684 + return defaltService(setUpUrls.pPaperTagList, data);
679 685 },
680 686 // 查询答题卡列表
681 687 pPaperList(data) {
682   - return defaltService(setUpUrls.pPaperList, data)
  688 + return defaltService(setUpUrls.pPaperList, data);
683 689 },
684 690 // 查询答题卡详情
685 691 pPaperDetail(data) {
686   - return defaltService(setUpUrls.pPaperDetail, data)
  692 + return defaltService(setUpUrls.pPaperDetail, data);
687 693 },
688 694 // 增加答题卡
689 695 pAddPaper(data) {
690   - return defaltService(setUpUrls.pAddPaper, data)
  696 + return defaltService(setUpUrls.pAddPaper, data);
691 697 },
692 698 // 修改答题卡
693 699 pModifyPaper(data) {
694   - return defaltService(setUpUrls.pModifyPaper, data)
  700 + return defaltService(setUpUrls.pModifyPaper, data);
695 701 },
696 702 pModifyPaperNew(data) {
697   - return defaltService(setUpUrls.pModifyPaperNew, data)
  703 + return defaltService(setUpUrls.pModifyPaperNew, data);
698 704 },
699 705 // 删除答题卡
700 706 pDelPaper(data) {
701   - return defaltService(setUpUrls.pDelPaper, data)
  707 + return defaltService(setUpUrls.pDelPaper, data);
702 708 },
703 709 // 增加答题卡类型
704 710 pAddPaperType(data) {
705   - return defaltService(setUpUrls.pAddPaperType, data)
  711 + return defaltService(setUpUrls.pAddPaperType, data);
706 712 },
707 713 // 修改答题卡类型
708 714 pModifyPaperType(data) {
709   - return defaltService(setUpUrls.pModifyPaperType, data)
  715 + return defaltService(setUpUrls.pModifyPaperType, data);
710 716 },
711 717 // 删除答题卡类型
712 718 pDelPaperType(data) {
713   - return defaltService(setUpUrls.pDelPaperType, data)
  719 + return defaltService(setUpUrls.pDelPaperType, data);
714 720 },
715 721 // 分页查询课时报表列表
716 722 pPeriodReportList(data) {
717   - return defaltService(setUpUrls.pPeriodReportList, data)
  723 + return defaltService(setUpUrls.pPeriodReportList, data);
718 724 },
719 725 // 查询阶段问答报表
720 726 pPhaseAnswerReport(data) {
721   - return defaltService(setUpUrls.pPhaseAnswerReport, data)
  727 + return defaltService(setUpUrls.pPhaseAnswerReport, data);
722 728 },
723 729 // 查询阶段互动报表
724 730 pPhaseInteractiveReport(data) {
725   - return defaltService(setUpUrls.pPhaseInteractiveReport, data)
  731 + return defaltService(setUpUrls.pPhaseInteractiveReport, data);
726 732 },
727 733 // 查询课时题目列表
728 734 pPeriodQuestionList(data) {
729   - return defaltService(setUpUrls.pPeriodQuestionList, data)
  735 + return defaltService(setUpUrls.pPeriodQuestionList, data);
730 736 },
731 737 // 设置课时报表答案
732 738 pSetPeriodAnswer(data) {
733   - return defaltService(setUpUrls.pSetPeriodAnswer, data)
  739 + return defaltService(setUpUrls.pSetPeriodAnswer, data);
734 740 },
735 741 // 查询课时报表详情
736 742 pPeriodDetail(data) {
737   - return defaltService(setUpUrls.pPeriodDetail, data)
  743 + return defaltService(setUpUrls.pPeriodDetail, data);
738 744 },
739 745 // 分页查询课时题目统计列表
740 746 pPeriodQuestionReport(data) {
741   - return defaltService(setUpUrls.pPeriodQuestionReport, data)
  747 + return defaltService(setUpUrls.pPeriodQuestionReport, data);
742 748 },
743 749 // 查询课时学生答题明细
744 750 pPeriodStudentReport(data) {
745   - return defaltService(setUpUrls.pPeriodStudentReport, data)
  751 + return defaltService(setUpUrls.pPeriodStudentReport, data);
746 752 },
747 753 // 导出阶段报表
748 754 pExportPhaseReport(data) {
749   - return downService(setUpUrls.pExportPhaseReport, data)
  755 + return downService(setUpUrls.pExportPhaseReport, data);
750 756 },
751 757 // 分页查询即时测报表
752 758 pExamReportList(data) {
753   - return defaltService(setUpUrls.pExamReportList, data)
  759 + return defaltService(setUpUrls.pExamReportList, data);
754 760 },
755 761 // 查询阶段测练报表
756 762 pPhaseExamReport(data) {
757   - return defaltService(setUpUrls.pPhaseExamReport, data)
  763 + return defaltService(setUpUrls.pPhaseExamReport, data);
758 764 },
759 765 // 查询即时测报表题目列表
760 766 pExamQuestionList(data) {
761   - return defaltService(setUpUrls.pExamQuestionList, data)
  767 + return defaltService(setUpUrls.pExamQuestionList, data);
762 768 },
763 769 // 设置即时测报表答案
764 770 pSetExamAnswer(data) {
765   - return defaltService(setUpUrls.pSetExamAnswer, data)
  771 + return defaltService(setUpUrls.pSetExamAnswer, data);
766 772 },
767 773 // 查询即时测报表详情
768 774 pExamDetail(data) {
769   - return defaltService(setUpUrls.pExamDetail, data)
  775 + return defaltService(setUpUrls.pExamDetail, data);
770 776 },
771 777 // 下载导入主观题分模板
772 778 pSubjectiveScoreTemplate(data) {
773   - return downService(setUpUrls.pSubjectiveScoreTemplate, data)
  779 + return downService(setUpUrls.pSubjectiveScoreTemplate, data);
774 780 },
775 781 // 导入主观题得分
776 782 pImportSubjectiveScore(data) {
777   - return defaltService(setUpUrls.pImportSubjectiveScore, data)
  783 + return defaltService(setUpUrls.pImportSubjectiveScore, data);
778 784 },
779 785 // 分页查询即时测题目统计
780 786 pExamQuestionReport(data) {
781   - return defaltService(setUpUrls.pExamQuestionReport, data)
  787 + return defaltService(setUpUrls.pExamQuestionReport, data);
782 788 },
783 789 // 查询即时测学生统计
784 790 pExamStudentReport(data) {
785   - return defaltService(setUpUrls.pExamStudentReport, data)
  791 + return defaltService(setUpUrls.pExamStudentReport, data);
786 792 },
787 793 // 重新判分
788 794 pReScore(data) {
789   - return defaltService(setUpUrls.pReScore, data)
  795 + return defaltService(setUpUrls.pReScore, data);
790 796 },
791 797 // 导出单课时报表
792 798 pExportPeriodReport(data) {
793   - return downService(setUpUrls.pExportPeriodReport, data)
  799 + return downService(setUpUrls.pExportPeriodReport, data);
794 800 },
795 801 // 导出阶段测练报表
796 802 pExportPhaseExamReport(data) {
797   - return downService(setUpUrls.pExportPhaseExamReport, data)
  803 + return downService(setUpUrls.pExportPhaseExamReport, data);
798 804 },
799 805 // 导出单卷测练报表
800 806 pExportExamReport(data) {
801   - return downService(setUpUrls.pExportExamReport, data)
  807 + return downService(setUpUrls.pExportExamReport, data);
802 808 },
803 809 // 数据导出
804 810 pExportData(data) {
805   - return downService(setUpUrls.pExportData, data)
  811 + return downService(setUpUrls.pExportData, data);
806 812 },
807 813 // 数据导入
808 814 pImportData(data) {
809   - return defaltService(setUpUrls.pImportData, data)
  815 + return defaltService(setUpUrls.pImportData, data);
810 816 },
811 817 // 导出随堂问单科多课时报表
812 818 pExportPhaseAnswerReport(data) {
813   - return downService(setUpUrls.pExportPhaseAnswerReport, data)
  819 + return downService(setUpUrls.pExportPhaseAnswerReport, data);
814 820 },
815 821  
816 822 /** 平台管理 */
817 823 //账户管理
818 824 tenantPage(data) {
819   - return defaltService(setUpUrls.tenantPage, data)
  825 + return defaltService(setUpUrls.tenantPage, data);
820 826 },
821 827 //修改账号
822 828 updateTenant(data) {
823   - return defaltService(setUpUrls.updateTenant, data)
  829 + return defaltService(setUpUrls.updateTenant, data);
824 830 },
825 831 //新增租户账号
826 832 addTenant(data) {
827   - return defaltService(setUpUrls.addTenant, data)
  833 + return defaltService(setUpUrls.addTenant, data);
828 834 },
829 835 //授课端版本管理
830 836 versionPage(data) {
831   - return defaltService(setUpUrls.versionPage, data)
  837 + return defaltService(setUpUrls.versionPage, data);
832 838 },
833 839 //新增授课端版本
834 840 addVersion(data) {
835   - return defaltService(setUpUrls.addVersion, data)
  841 + return defaltService(setUpUrls.addVersion, data);
836 842 },
837 843 //删除授课端版本
838 844 delVersion(data) {
839   - return defaltService(setUpUrls.delVersion, data)
  845 + return defaltService(setUpUrls.delVersion, data);
840 846 },
841 847 //基站统计数据
842 848 pStationReport(data) {
843   - return defaltService(setUpUrls.pStationReport, data)
  849 + return defaltService(setUpUrls.pStationReport, data);
844 850 },
845 851 //答题器统计数据
846 852 pKeyboardReport(data) {
847   - return defaltService(setUpUrls.pKeyboardReport, data)
  853 + return defaltService(setUpUrls.pKeyboardReport, data);
848 854 },
849 855 //查询设备列表
850 856 pDeviceList(data) {
851   - return defaltService(setUpUrls.pDeviceList, data)
  857 + return defaltService(setUpUrls.pDeviceList, data);
852 858 },
853 859 //查询设备详情
854 860 pDeviceDetail(data) {
855   - return defaltService(setUpUrls.pDeviceDetail, data)
  861 + return defaltService(setUpUrls.pDeviceDetail, data);
856 862 },
857 863 //查询设备日志列表
858 864 pDeviceLogList(data) {
859   - return defaltService(setUpUrls.pDeviceLogList, data)
  865 + return defaltService(setUpUrls.pDeviceLogList, data);
860 866 },
861 867 //班级名册导入
862 868 studentTemplateUrl(data) {
863   - return defaltService(setUpUrls.studentTemplateUrl, data)
  869 + return defaltService(setUpUrls.studentTemplateUrl, data);
864 870 },
865 871 //班级名册导出
866 872 exportStudent(data) {
867   - return downService(setUpUrls.exportStudent, data)
  873 + return downService(setUpUrls.exportStudent, data);
868 874 },
869 875 //上传图片
870 876 puploadImg(data) {
871   - return defaltService(setUpUrls.uploadImg, data)
  877 + return defaltService(setUpUrls.uploadImg, data);
872 878 },
873 879 //学生测练统计
874 880 pStudentExamReport(data) {
875   - return defaltService(setUpUrls.pStudentExamReport, data)
  881 + return defaltService(setUpUrls.pStudentExamReport, data);
876 882 },
877 883 //查询最新的授课端应用版本
878 884 pLatestVersion(data) {
879   - return defaltService(setUpUrls.pLatestVersion, data)
  885 + return defaltService(setUpUrls.pLatestVersion, data);
880 886 },
881 887 //载指定版本授课端
882 888 pGetAppDownloadUrl(data) {
883   - return defaltService(setUpUrls.pGetAppDownloadUrl, data)
  889 + return defaltService(setUpUrls.pGetAppDownloadUrl, data);
884 890 },
885 891 //修改密码
886 892 changePwd(data) {
887   - return defaltService(setUpUrls.changePwd, data)
  893 + return defaltService(setUpUrls.changePwd, data);
888 894 },
889 895 /**
890 896 * v1.4
891 897 */
892 898 //班级管理
893 899 classManager(data) {
894   - return defaltService(setUpUrls.classManager, data)
  900 + return defaltService(setUpUrls.classManager, data);
895 901 },
896 902 //班级排序
897 903 classSort(data) {
898   - return defaltService(setUpUrls.classSort, data)
  904 + return defaltService(setUpUrls.classSort, data);
899 905 },
900 906 //学生分班轨迹
901 907 studentClassLogs(data) {
902   - return defaltService(setUpUrls.studentClassLogs, data)
  908 + return defaltService(setUpUrls.studentClassLogs, data);
903 909 },
904 910 //修改科目
905 911 updateSubject(data) {
906   - return defaltService(setUpUrls.updateSubject, data)
  912 + return defaltService(setUpUrls.updateSubject, data);
907 913 },
908 914 //.net下载地址
909 915 runtimeEnvFileUrl(data) {
910   - return defaltService(setUpUrls.runtimeEnvFileUrl, data)
  916 + return defaltService(setUpUrls.runtimeEnvFileUrl, data);
911 917 },
912 918 //学校学段及年级
913 919 sectionAndGradeList(data) {
914   - return defaltService(setUpUrls.sectionAndGradeList, data)
  920 + return defaltService(setUpUrls.sectionAndGradeList, data);
915 921 },
916 922 //学校设备使用分析
917 923 usageStatistics(data) {
918   - return defaltService(setUpUrls.usageStatistics, data)
  924 + return defaltService(setUpUrls.usageStatistics, data);
919 925 },
920 926 //集团设备使用分析
921 927 tenantUsageStatistics(data) {
922   - return defaltService(setUpUrls.tenantUsageStatistics, data)
  928 + return defaltService(setUpUrls.tenantUsageStatistics, data);
923 929 },
924 930 //集团学段及年级
925 931 tenantSectionAndGradeList(data) {
926   - return defaltService(setUpUrls.tenantSectionAndGradeList, data)
  932 + return defaltService(setUpUrls.tenantSectionAndGradeList, data);
927 933 },
928 934 //集团查询科目列表
929 935 tenantSubjectList(data) {
930   - return defaltService(setUpUrls.tenantSubjectList, data)
  936 + return defaltService(setUpUrls.tenantSubjectList, data);
931 937 },
932 938 // 未分班学生名单导出
933 939 exportNoClassStudent(data) {
934   - return downService(setUpUrls.exportNoClassStudent, data)
  940 + return downService(setUpUrls.exportNoClassStudent, data);
935 941 },
936 942 // 未分配教师名单导出
937 943 exportNoClassTeacher(data) {
938   - return downService(setUpUrls.exportNoClassTeacher, data)
  944 + return downService(setUpUrls.exportNoClassTeacher, data);
939 945 },
940 946 // 学校查询异常设备总数
941 947 abnormalDeviceCount(data) {
... ... @@ -953,89 +959,104 @@ export default {
953 959 },
954 960 // 设备异常备注
955 961 abnormalRemark(data) {
956   - return defaltService(setUpUrls.abnormalRemark, data)
  962 + return defaltService(setUpUrls.abnormalRemark, data);
957 963 },
958 964 // 删除班级信息
959 965 removeClass(data) {
960   - return defaltService(setUpUrls.removeClass, data)
  966 + return defaltService(setUpUrls.removeClass, data);
961 967 },
962 968  
963 969 // 删除即时测考试
964 970 deleteReport(data) {
965   - return defaltService(setUpUrls.deleteReport, data)
  971 + return defaltService(setUpUrls.deleteReport, data);
966 972 },
967 973 // 设置单班科目分析低分区间
968 974 setLowRange(data) {
969   - return defaltService(setUpUrls.setLowRange, data)
  975 + return defaltService(setUpUrls.setLowRange, data);
970 976 },
971 977 // 查询即时测多班对比情况详情
972 978 examMultiClassReport(data) {
973   - return defaltService(setUpUrls.examMultiClassReport, data)
  979 + return defaltService(setUpUrls.examMultiClassReport, data);
974 980 },
975 981 // 导出即时测多班报表
976 982 exportExamMultiReport(data) {
977   - return downService(setUpUrls.exportExamMultiReport, data)
  983 + return downService(setUpUrls.exportExamMultiReport, data);
978 984 },
979 985 // 查询即时测多班默认等级列表
980 986 defaultLevels(data) {
981   - return defaltService(setUpUrls.defaultLevels, data)
982   - }, // 查询即时测多班默认等级列表
  987 + return defaltService(setUpUrls.defaultLevels, data);
  988 + }, // 查询即时测多班默认等级列表
983 989 gdefaultLevels(data) {
984   - return defaltService(setUpUrls.gdefaultLevels, data)
  990 + return defaltService(setUpUrls.gdefaultLevels, data);
985 991 },
986 992  
987   -
988 993 // 删除随堂问报表
989 994 deletePaperReport(data) {
990   - return defaltService(setUpUrls.deletePaperReport, data)
  995 + return defaltService(setUpUrls.deletePaperReport, data);
991 996 },
992 997  
993 998 //删除基站
994 999 deleteStation(data) {
995   - return defaltService(setUpUrls.deleteStation, data)
  1000 + return defaltService(setUpUrls.deleteStation, data);
996 1001 },
997 1002 //导出授课端日志
998 1003 downloadDeviceLog(data) {
999   - return defaltService(setUpUrls.downloadDeviceLog, data)
  1004 + return defaltService(setUpUrls.downloadDeviceLog, data);
1000 1005 },
1001 1006 // 教学班模版下载
1002 1007 tClassAndStudentTemplate(data) {
1003   - return downService(setUpUrls.tClassAndStudentTemplate, data)
  1008 + return downService(setUpUrls.tClassAndStudentTemplate, data);
1004 1009 },
1005 1010 //教学班班级名册导出
1006 1011 exportTClassAndStudent(data) {
1007   - return downService(setUpUrls.exportTClassAndStudent, data)
  1012 + return downService(setUpUrls.exportTClassAndStudent, data);
1008 1013 },
1009 1014 // 删除班级信息(新)
1010 1015 deleteClass(data) {
1011   - return defaltService(setUpUrls.deleteClass, data)
  1016 + return defaltService(setUpUrls.deleteClass, data);
1012 1017 },
1013 1018 // 清除老师下所有关联班级
1014 1019 clearTeacherClasses(data) {
1015   - return defaltService(setUpUrls.clearTeacherClasses, data)
  1020 + return defaltService(setUpUrls.clearTeacherClasses, data);
1016 1021 },
1017 1022 // 下载即时测导入分数模板
1018 1023 scoreTemplate(data) {
1019   - return downService(setUpUrls.scoreTemplate, data)
  1024 + return downService(setUpUrls.scoreTemplate, data);
1020 1025 },
1021 1026 // 导入即时测报表分数
1022 1027 importScore(data) {
1023   - return defaltService(setUpUrls.importScore, data)
  1028 + return defaltService(setUpUrls.importScore, data);
1024 1029 },
1025 1030 // 获取即时测报表学生名单和题目列表
1026 1031 listStudentsAndQuestions(data) {
1027   - return defaltService(setUpUrls.listStudentsAndQuestions, data)
  1032 + return defaltService(setUpUrls.listStudentsAndQuestions, data);
1028 1033 },
1029 1034 // 提交即时测报表分数
1030 1035 submitScore(data) {
1031   - return defaltService(setUpUrls.submitScore, data)
  1036 + return defaltService(setUpUrls.submitScore, data);
1032 1037 },
1033 1038 // 提交即时测报表分数
1034 1039 deviceZipLogList(data) {
1035   - return defaltService(setUpUrls.deviceZipLogList, data)
  1040 + return defaltService(setUpUrls.deviceZipLogList, data);
1036 1041 },
1037 1042 // 获取即时测报表录分情况
1038 1043 getScoreType(data) {
1039   - return defaltService(setUpUrls.getScoreType, data)
  1044 + return defaltService(setUpUrls.getScoreType, data);
  1045 + },
  1046 + // 获取错题组卷列表
  1047 + getWrongQuestionList(data) {
  1048 + return defaltService(setUpUrls.wrongQuestionList, data);
  1049 + },
  1050 + // 获取科目列表
  1051 + getSubjectList(data) {
  1052 + return defaltService(setUpUrls.subjectList, data);
  1053 + },
  1054 + // 获取年级信息
  1055 + getClassList(data) {
  1056 + return defaltService(setUpUrls.classList, data);
  1057 + },
  1058 + // 获取班级信息
  1059 + getGradeList(data) {
  1060 + return defaltGetService(setUpUrls.gradeList, data);
1040 1061 },
1041 1062 };
... ...
src/api/urls/apis.js
1   -
2 1 export default {
3 2 // 年级组长-查询报表列表
4 3 gKnowledge: "/knowledge/list",
... ... @@ -14,7 +13,8 @@ export default {
14 13 gexportPhaseExamReport3: "/api_html/grade/manager/exportPhaseExamReport3",
15 14 gexportPhaseExamReport4: "/api_html/grade/manager/exportPhaseExamReport4",
16 15 // 年级组长-导出阶段问答
17   - gExportPhaseInteractiveReport: "/api_html/grade/manager/exportPhaseInteractiveReport",
  16 + gExportPhaseInteractiveReport:
  17 + "/api_html/grade/manager/exportPhaseInteractiveReport",
18 18 // 年级组长-成绩测验单
19 19 gtestExamReport: "/api_html/grade/manager/testExamReport",
20 20 // 年级组长-考试概要
... ... @@ -56,7 +56,8 @@ export default {
56 56 //班主任-导出阶段问答报表
57 57 cTExportPhaseAnswerReport: "/api_html/class/manager/exportPhaseAnswerReport",
58 58 //班主任- 导出阶段互动报表
59   - cTExportPhaseInteractiveReport: "/api_html/class/manager/exportPhaseInteractiveReport",
  59 + cTExportPhaseInteractiveReport:
  60 + "/api_html/class/manager/exportPhaseInteractiveReport",
60 61 //班主任- 导出阶段测练报表
61 62 cTExportPhaseExamReport: "/api_html/class/manager/exportPhaseExamReport",
62 63 //班主任- 测验成绩单
... ... @@ -72,7 +73,7 @@ export default {
72 73 // 任课老师-班级情况对比
73 74 tclassdiffExamReport: "/api_html/teaching/classdiffExamReport",
74 75 tClassFromGrade: "/api_html/teaching/grade/classList",
75   - tClassGrade: '/api_html/teaching/grade',
  76 + tClassGrade: "/api_html/teaching/grade",
76 77 //任课老师-测验成绩单
77 78 tTestExamReport: "/api_html/teaching/testExamReport",
78 79 //任课老师-查询答题卡详情
... ... @@ -126,7 +127,8 @@ export default {
126 127 //任课老师-导出阶段问答报表
127 128 exportPhaseAnswerReport: "/api_html/teaching/exportPhaseAnswerReport",
128 129 //任课老师-导出阶段互动报表
129   - exportPhaseInteractiveReport: "/api_html/teaching/exportPhaseInteractiveReport",
  130 + exportPhaseInteractiveReport:
  131 + "/api_html/teaching/exportPhaseInteractiveReport",
130 132 //任课老师-导出单课时报表
131 133 exportPeriodReport: "/api_html/teaching/exportPeriodReport",
132 134  
... ... @@ -137,7 +139,6 @@ export default {
137 139 //任课老师-学生测练统计
138 140 tStudentExamReport: "/api_html/teaching/studentExamReport",
139 141  
140   -
141 142 // 查询角色列表
142 143 roleList: "/api_html/school/manager/roleList",
143 144 // 分页查询账号
... ... @@ -165,7 +166,8 @@ export default {
165 166 // 增加学生
166 167 addStudent: "/api_html/school/manager/addStudent",
167 168 // 导入学生答题器绑定模板下载地址
168   - studentClickerTemplateUrl: "/api_html/school/manager/studentClickerTemplateUrl",
  169 + studentClickerTemplateUrl:
  170 + "/api_html/school/manager/studentClickerTemplateUrl",
169 171 // 导入学生答题器文件上传
170 172 importStudentClicker: "/api_html/school/manager/importStudentClicker",
171 173 // 班级名册模板下载
... ... @@ -204,7 +206,8 @@ export default {
204 206 // 修改设备自动升级状态
205 207 modifyUpgradeFlag: "/api_html/school/manager/modifyUpgradeFlag",
206 208 // 设备自动升级状态(全部)
207   - modifyUpgradeFlagBySchool: "/api_html/school/manager/modifyUpgradeFlagBySchool",
  209 + modifyUpgradeFlagBySchool:
  210 + "/api_html/school/manager/modifyUpgradeFlagBySchool",
208 211 // 修改基站信息
209 212 updateDevice: "/api_html/school/manager/updateDevice",
210 213 // 新增基站
... ... @@ -245,7 +248,6 @@ export default {
245 248 // 学校学段
246 249 sectionList: "/api_html/school/manager/sectionList",
247 250  
248   -
249 251 // 查询区域列表
250 252 regionList: "/api_html/tenant/regionList",
251 253 // 查询学校列表
... ... @@ -290,7 +292,6 @@ export default {
290 292 // 导出设备列表
291 293 tenantExportDevice: "/api_html/tenant/exportDevice",
292 294  
293   -
294 295 // 个人版首页统计数据
295 296 personalIndex: "/api_html/personal/index",
296 297 // 个人信息
... ... @@ -378,7 +379,6 @@ export default {
378 379 // 数据导入
379 380 pImportData: "/api_html/personal/importData",
380 381  
381   -
382 382 /** 平台管理 */
383 383 //账户管理
384 384 tenantPage: "/api_html/system/tenantPage",
... ... @@ -417,11 +417,9 @@ export default {
417 417 // 载指定版本授课端
418 418 pGetAppDownloadUrl: "/api_html/personal/getAppDownloadUrl",
419 419  
420   -
421 420 // 修改密码
422 421 changePwd: "/api_html/changePwd",
423 422  
424   -
425 423 /**
426 424 * v1.4
427 425 */
... ... @@ -499,9 +497,15 @@ export default {
499 497 //分页查询授课端日志列表
500 498 deviceZipLogList: "/api_html/school/manager/deviceZipLogList",
501 499  
502   -
503 500 //获取即时测报表录分情况
504 501 getScoreType: "/api_html/teaching/getScoreType",
505 502  
506   -
507   -}
  503 + // 获取错题本列表
  504 + wrongQuestionList: "api_html/teaching/wrongQuestion/list",
  505 + // 获取科目列表
  506 + subjectList: "api_html/teaching/subjectList",
  507 + // 获取年级信息
  508 + classList: "api_html/teaching/classList",
  509 + // 获取班级信息
  510 + gradeList: "api_html/teaching/grade",
  511 +};
... ...
src/assets/css/index.scss
... ... @@ -18,7 +18,7 @@
18 18 margin-left: 12px;
19 19 }
20 20  
21   - .el-radio-button__orig-radio:checked+.el-radio-button__inner {
  21 + .el-radio-button__orig-radio:checked + .el-radio-button__inner {
22 22 background: transparent !important;
23 23 color: #6b7ef5 !important;
24 24 font-weight: bold;
... ... @@ -29,7 +29,7 @@
29 29  
30 30 .lowLevelClass {
31 31 color: white;
32   - background: #FFA41C;
  32 + background: #ffa41c;
33 33 background-size: 200% 200%;
34 34 height: 100%;
35 35 width: 100%;
... ... @@ -54,7 +54,6 @@
54 54 color: white;
55 55 border-color: rgba(65, 204, 149, 1);
56 56 }
57   -
58 57 }
59 58  
60 59 .answer-header {
... ... @@ -188,7 +187,7 @@
188 187 background: #f9f9f9;
189 188 }
190 189  
191   -.el-table th.el-table__cell.p0>.cell {
  190 +.el-table th.el-table__cell.p0 > .cell {
192 191 padding-left: 0;
193 192 padding-right: 0;
194 193 }
... ... @@ -275,7 +274,6 @@ ul {
275 274 }
276 275 }
277 276  
278   -
279 277 @media screen and (max-width: 1500px) {
280 278 .answer-box {
281 279 .answer-s {
... ... @@ -307,13 +305,12 @@ ul {
307 305 }
308 306 }
309 307  
310   -
311 308 .parent-number {
312 309 position: relative;
313 310 }
314 311  
315 312 .parent-number::after {
316   - content: '%';
  313 + content: "%";
317 314 display: inline-block;
318 315 height: 20px;
319 316 line-height: 20px;
... ... @@ -331,7 +328,6 @@ ul {
331 328 padding-right: 48px;
332 329 }
333 330  
334   -
335 331 // 默认标题
336 332 .default-title {
337 333 height: 36px;
... ... @@ -344,10 +340,8 @@ ul {
344 340 text-transform: none;
345 341 }
346 342  
347   -
348 343 // 默认实体
349 344 .default-body {
350   -
351 345 .anwser-column {
352 346 border: 1px solid #ebeef5;
353 347  
... ... @@ -361,7 +355,7 @@ ul {
361 355 .red {
362 356 height: 100%;
363 357 width: 100%;
364   - background: #FBEEDC;
  358 + background: #fbeedc;
365 359 color: red;
366 360 display: block;
367 361 }
... ... @@ -370,11 +364,11 @@ ul {
370 364 font-size: 14px;
371 365 font-weight: 400;
372 366 color: #303133;
373   - background-color: #F5F6FA;
  367 + background-color: #f5f6fa;
374 368  
375 369 .default-filter,
376 370 .el-main {
377   - background: #FFFFFF;
  371 + background: #ffffff;
378 372 box-shadow: 0px 1px 4px 0px rgba(21, 34, 50, 0.08);
379 373 }
380 374  
... ... @@ -398,7 +392,7 @@ ul {
398 392 th {
399 393 font-weight: 400;
400 394 font-size: 14px;
401   - color: #5A607F;
  395 + color: #5a607f;
402 396 text-align: left;
403 397 font-style: normal;
404 398 text-transform: none;
... ... @@ -419,19 +413,19 @@ ul {
419 413 }
420 414  
421 415 .el-tabs__header {
422   - background: #F5F7FA !important;
  416 + background: #f5f7fa !important;
423 417 }
424 418  
425 419 .el-tabs__item.is-active {
426 420 background: white !important;
427   - color: #667FFD !important;
  421 + color: #667ffd !important;
428 422 }
429 423 }
430 424 }
431 425  
432 426 .el-footer-pagination {
433 427 height: 40px !important;
434   - background: #FFFFFF;
  428 + background: #ffffff;
435 429 margin: 0px 20px !important;
436 430  
437 431 .el-footer-pagination-box,
... ... @@ -536,16 +530,28 @@ ul {
536 530 background-color: white !important;
537 531 width: calc(100% - 280px) !important;
538 532 }
539   -
540 533 }
541 534  
542   -
543 535 @media screen and (max-width: 1920px) {
544   - * :not(.p1, .fa, .el-button, .el-icon-upload, h1, h2, h3, h4, h5, h6, .el-progress__text, .text-radius) {
545   -
  536 + *
  537 + :not(
  538 + .p1,
  539 + .fa,
  540 + .el-button,
  541 + .el-icon-upload,
  542 + h1,
  543 + h2,
  544 + h3,
  545 + h4,
  546 + h5,
  547 + h6,
  548 + .el-progress__text,
  549 + .text-radius,
  550 +
  551 + ) {
546 552 font-size: 18px !important;
547 553  
548   - .text-radius *{
  554 + .text-radius * {
549 555 font-size: 16px !important;
550 556 }
551 557  
... ... @@ -578,15 +584,28 @@ ul {
578 584 }
579 585  
580 586 @media screen and (min-width: 1921px) {
581   - * :not(.p1, .fa, .el-button, .el-icon-upload, h1, h2, h3, h4, h5, h6, .el-progress__text, .text-radius) {
582   -
  587 + *
  588 + :not(
  589 + .p1,
  590 + .fa,
  591 + .el-button,
  592 + .el-icon-upload,
  593 + h1,
  594 + h2,
  595 + h3,
  596 + h4,
  597 + h5,
  598 + h6,
  599 + .el-progress__text,
  600 + .text-radius
  601 + ) {
583 602 font-size: 14px !important;
584 603  
585 604 .text-radius * {
586 605 font-size: 14px !important;
587 606 }
588 607  
589   - .default-body-detail * {
  608 + .default-body-detail * {
590 609 font-size: 13px !important;
591 610  
592 611 .cell {
... ... @@ -619,6 +638,5 @@ ul {
619 638 .el-checkbox__label {
620 639 font-size: 12px !important;
621 640 }
622   -
623 641 }
624   -}
625 642 \ No newline at end of file
  643 +}
... ...
src/config/index.js
1 1 const modeUrl = {
2 2 // 开发环境
3 3 development: {
4   - baseURL: "/",
  4 + baseURL: "/api/",
5 5 authBaseURL: "",
6   - $cdn:""
  6 + $cdn: "",
7 7 },
8 8 // 生产环境
9 9 production: {
10 10 baseURL: "/",
11 11 authBaseURL: "",
12   - $cdn:""
  12 + $cdn: "",
13 13 },
14 14 };
15   -module.exports = modeUrl[process.env.NODE_ENV]
  15 +module.exports = modeUrl[process.env.NODE_ENV];
... ...
src/router/index.js
1   -import Vue from "vue"
2   -import Router from "vue-router"
3   -import Login from "@/views/login/index"
4   -import Layout from "@/views/layout/layout"
5   -import HomeMain from "@/views/index/mainIndex"
6   -
  1 +import Vue from "vue";
  2 +import Router from "vue-router";
  3 +import Login from "@/views/login/index";
  4 +import Layout from "@/views/layout/layout";
  5 +import HomeMain from "@/views/index/mainIndex";
7 6  
8 7 // 不是必须加载的组件使用懒加载
9   -const NotFound = () => import("@/views/page404")
10   -const ExaminationPaper = () => import("@/views/examinationPaper/index")
11   -const ExaminationPaperAdd = () => import("@/views/examinationPaper/add")
12   -const ExaminationPaperAddQs = () => import("@/views/examinationPaper/addQs")
13   -const ExaminationPaperEdit = () => import("@/views/examinationPaper/edit")
14   -const ExaminationPaperRecycle = () => import("@/views/examinationPaper/recycle")
15   -const ExaminationPaperArchiving = () => import("@/views/examinationPaper/archiving")
16   -const Portrait = () => import("@/views/portrait/index")
17   -const PortraitDetail = () => import("@/views/portrait/detail")
18   -
  8 +const NotFound = () => import("@/views/page404");
  9 +const ExaminationPaper = () => import("@/views/examinationPaper/index");
  10 +const ExaminationPaperAdd = () => import("@/views/examinationPaper/add");
  11 +const ExaminationPaperAddQs = () => import("@/views/examinationPaper/addQs");
  12 +const ExaminationPaperEdit = () => import("@/views/examinationPaper/edit");
  13 +const ExaminationPaperRecycle = () =>
  14 + import("@/views/examinationPaper/recycle");
  15 +const ExaminationPaperArchiving = () =>
  16 + import("@/views/examinationPaper/archiving");
  17 +const Portrait = () => import("@/views/portrait/index");
  18 +const PortraitDetail = () => import("@/views/portrait/detail");
19 19  
20   -const Ask = () => import("@/views/basic/ask/index")
21   -const AskList = () => import("@/views/basic/ask/list")
22   -const AskAnalysis = () => import("@/views/basic/ask/analysis")
23   -const AskArchiving = () => import("@/views/basic/ask/archiving")
24   -const Test = () => import("@/views/basic/test/index")
25   -const TestList = () => import("@/views/basic/test/list")
26   -const TestAnalysis = () => import("@/views/basic/test/analysis")
27   -const TestArchiving = () => import("@/views/basic/test/archiving")
28   -const DataSync = () => import("@/views/basic/dataSync/index")
29   -const Card = () => import("@/views/basic/card/index")
30   -const Analysis = () => import("@/views/basic/analysis/index")
31   -const Device = () => import("@/views/basic/device/index")
32   -const DeviceLog = () => import("@/views/basic/device/log")
33   -const Down = () => import("@/views/basic/down/index")
34   -const DownClient = () => import("@/views/basic/down/client")
35   -const SetUpAccount = () => import("@/views/basic/setUp/account")
36   -const SetUpConglomerate = () => import("@/views/basic/setUp/conglomerate")
37   -const SetUpSchool = () => import("@/views/basic/setUp/school")
38   -const SetUpTeacher = () => import("@/views/basic/setUp/teacher")
39   -const SetUpStudent = () => import("@/views/basic/setUp/student")
40   -const SetUpPersonalSetUpStudent = () => import("@/views/basic/setUp/PersonalStudent")
41   -const ArchivedClazz = () => import("@/views/basic/setUp/archivedClazz")
42   -const UserInfo = () => import("@/views/basic/userInfo/index")
  20 +const Ask = () => import("@/views/basic/ask/index");
  21 +const AskList = () => import("@/views/basic/ask/list");
  22 +const AskAnalysis = () => import("@/views/basic/ask/analysis");
  23 +const AskArchiving = () => import("@/views/basic/ask/archiving");
  24 +const Test = () => import("@/views/basic/test/index");
  25 +const TestList = () => import("@/views/basic/test/list");
  26 +const TestAnalysis = () => import("@/views/basic/test/analysis");
  27 +const TestArchiving = () => import("@/views/basic/test/archiving");
  28 +const DataSync = () => import("@/views/basic/dataSync/index");
  29 +const Card = () => import("@/views/basic/card/index");
  30 +const Analysis = () => import("@/views/basic/analysis/index");
  31 +const Device = () => import("@/views/basic/device/index");
  32 +const DeviceLog = () => import("@/views/basic/device/log");
  33 +const Down = () => import("@/views/basic/down/index");
  34 +const DownClient = () => import("@/views/basic/down/client");
  35 +const SetUpAccount = () => import("@/views/basic/setUp/account");
  36 +const SetUpConglomerate = () => import("@/views/basic/setUp/conglomerate");
  37 +const SetUpSchool = () => import("@/views/basic/setUp/school");
  38 +const SetUpTeacher = () => import("@/views/basic/setUp/teacher");
  39 +const SetUpStudent = () => import("@/views/basic/setUp/student");
  40 +const SetUpPersonalSetUpStudent = () =>
  41 + import("@/views/basic/setUp/PersonalStudent");
  42 +const ArchivedClazz = () => import("@/views/basic/setUp/archivedClazz");
  43 +const UserInfo = () => import("@/views/basic/userInfo/index");
43 44  
44 45 // 个人版
45 46 // const PersonalAsk = () => import("@/views/personal/ask/index")
... ... @@ -53,52 +54,57 @@ const UserInfo = () => import("@/views/basic/userInfo/index")
53 54 // const PersonalDown = () => import("@/views/personal/down/index")
54 55 // const PersonalUserInfo = () => import("@/views/personal/userInfo/index")
55 56  
56   -
57 57 // 超级管理员
58   -const AdminDevice = () => import("@/views/admin/device/index")
59   -const AdminDeviceLog = () => import("@/views/admin/device/log")
60   -const AdminAccount = () => import("@/views/admin/account/index")
61   -const AdminClientVersion = () => import("@/views/admin/clientVersion/index")
  58 +const AdminDevice = () => import("@/views/admin/device/index");
  59 +const AdminDeviceLog = () => import("@/views/admin/device/log");
  60 +const AdminAccount = () => import("@/views/admin/account/index");
  61 +const AdminClientVersion = () => import("@/views/admin/clientVersion/index");
62 62  
63 63 /**
64   - * v1.4
  64 + * v1.4
65 65 */
66   -const SetUpClazz = () => import("@/views/basic/setUp/clazz")
67   -const Archived = () => import("@/views/basic/setUp/archived")
68   -const DeviceError = () => import("@/views/basic/device/error")
  66 +const SetUpClazz = () => import("@/views/basic/setUp/clazz");
  67 +const Archived = () => import("@/views/basic/setUp/archived");
  68 +const DeviceError = () => import("@/views/basic/device/error");
69 69  
70 70 // v1.5 年级组长
71   -const gradeAnalysis = () => import("@/views/basic/askTestQuestion/gradeAnalysis")
72   -const gradeDetail = () => import("@/views/basic/askTestQuestion/gradeAnalysisDetail")
  71 +const gradeAnalysis = () =>
  72 + import("@/views/basic/askTestQuestion/gradeAnalysis");
  73 +const gradeDetail = () =>
  74 + import("@/views/basic/askTestQuestion/gradeAnalysisDetail");
73 75  
74   -const askTestQuestion = () => import("@/views/basic/askTestQuestion/index")
75   -const askTestDetail = () => import("@/views/basic/askTestQuestion/view")
76   -const askTestUpdate = () => import("@/views/basic/askTestQuestion/update")
77   -const askTestReport = () => import("@/views/basic/askTestQuestion/report")
78   -const askTestReportDetail = () => import("@/views/basic/askTestQuestion/detail")
79   -const askTestReportRecycle = () => import("@/views/basic/askTestQuestion/recycle")
  76 +const askTestQuestion = () => import("@/views/basic/askTestQuestion/index");
  77 +const askTestDetail = () => import("@/views/basic/askTestQuestion/view");
  78 +const askTestUpdate = () => import("@/views/basic/askTestQuestion/update");
  79 +const askTestReport = () => import("@/views/basic/askTestQuestion/report");
  80 +const wrongQuestion = () =>
  81 + import("@/views/basic/askTestQuestion/wrongQuestion");
  82 +const askTestReportDetail = () =>
  83 + import("@/views/basic/askTestQuestion/detail");
  84 +const askTestReportRecycle = () =>
  85 + import("@/views/basic/askTestQuestion/recycle");
80 86  
81 87 /**
82 88 * 重写路由的push方法
83 89 */
84   -const routerPush = Router.prototype.push
  90 +const routerPush = Router.prototype.push;
85 91 Router.prototype.push = function push(location) {
86   - return routerPush.call(this, location).catch(error => error)
87   -}
88   -Vue.use(Router)
  92 + return routerPush.call(this, location).catch((error) => error);
  93 +};
  94 +Vue.use(Router);
89 95 let defaultRouter = [
90 96 {
91 97 path: "/",
92 98 redirect: "/index",
93 99 hidden: true,
94   - children: []
  100 + children: [],
95 101 },
96 102 {
97 103 path: "/login",
98 104 component: Login,
99 105 name: "登录",
100 106 hidden: true,
101   - children: []
  107 + children: [],
102 108 },
103 109 {
104 110 path: "/index",
... ... @@ -114,9 +120,9 @@ let defaultRouter = [
114 120 iconCls: "fa fa-dashboard", // 图标样式class
115 121 name: "主页",
116 122 component: HomeMain,
117   - children: []
118   - }
119   - ]
  123 + children: [],
  124 + },
  125 + ],
120 126 },
121 127 {
122 128 path: "/deviceError",
... ... @@ -129,9 +135,9 @@ let defaultRouter = [
129 135 path: "/deviceError",
130 136 name: "异常设备信息",
131 137 component: DeviceError,
132   - hidden: true
133   - }
134   - ]
  138 + hidden: true,
  139 + },
  140 + ],
135 141 },
136 142 {
137 143 path: "/userInfo",
... ... @@ -145,18 +151,18 @@ let defaultRouter = [
145 151 iconCls: "fa fa-user", // 图标样式class
146 152 name: "个人信息",
147 153 component: UserInfo,
148   - children: []
149   - }
150   - ]
  154 + children: [],
  155 + },
  156 + ],
151 157 },
152 158 {
153 159 path: "/404",
154 160 component: NotFound,
155 161 name: "404",
156 162 hidden: true,
157   - children: []
158   - }
159   -]
  163 + children: [],
  164 + },
  165 +];
160 166 //标准版路由表
161 167 let addrouters = [
162 168 {
... ... @@ -172,7 +178,7 @@ let addrouters = [
172 178 iconCls: "fa fa-file-text", // 图标样式class
173 179 name: "examinationPaper",
174 180 component: ExaminationPaper,
175   - children: []
  181 + children: [],
176 182 },
177 183 {
178 184 path: "/examinationPaperAdd",
... ... @@ -180,7 +186,7 @@ let addrouters = [
180 186 name: "examinationPaperAdd",
181 187 component: ExaminationPaperAdd,
182 188 parent: "examinationPaper",
183   - children: []
  189 + children: [],
184 190 },
185 191 {
186 192 path: "/examinationPaperAddQs",
... ... @@ -188,7 +194,7 @@ let addrouters = [
188 194 name: "examinationPaperAddQs",
189 195 component: ExaminationPaperAddQs,
190 196 parent: "examinationPaper",
191   - children: []
  197 + children: [],
192 198 },
193 199 {
194 200 path: "/examinationPaperEdit",
... ... @@ -196,7 +202,7 @@ let addrouters = [
196 202 name: "修改答题卡",
197 203 component: ExaminationPaperEdit,
198 204 parent: "examinationPaper",
199   - children: []
  205 + children: [],
200 206 },
201 207 {
202 208 path: "/examinationPaperRecycle",
... ... @@ -204,7 +210,7 @@ let addrouters = [
204 210 name: "回收站答题卡",
205 211 component: ExaminationPaperRecycle,
206 212 parent: "examinationPaper",
207   - children: []
  213 + children: [],
208 214 },
209 215 {
210 216 path: "/examinationPaperArchiving",
... ... @@ -213,9 +219,9 @@ let addrouters = [
213 219 component: ExaminationPaperArchiving,
214 220 parent: "examinationPaper",
215 221 hidden: true,
216   - children: []
  222 + children: [],
217 223 },
218   - ]
  224 + ],
219 225 },
220 226 {
221 227 path: "/testGrade",
... ... @@ -227,154 +233,181 @@ let addrouters = [
227 233 path: "/testGradeReport",
228 234 iconImage: require("@/assets/images/aside/suitangwen-baobiao-default.png"),
229 235 selectedIconImage: require("@/assets/images/aside/suitangwen-baobiao-selected.png"),
230   - name: '即时测报表',
  236 + name: "即时测报表",
231 237 demoRoles: ["ROLE_NIANJI"],
232 238 component: gradeAnalysis,
233   - children: []
234   - }, {
  239 + children: [],
  240 + },
  241 + {
235 242 path: "/testGradeReportDetail",
236 243 iconCls: "",
237 244 name: "testGradeReportDetail",
238 245 demoRoles: ["ROLE_NIANJI"],
239 246 component: gradeDetail,
240 247 hidden: true,
241   - children: []
242   - }
243   - ]
  248 + children: [],
  249 + },
  250 + ],
244 251 },
245 252 {
246 253 path: "/askTeacher",
247 254 iconImage: require("@/assets/images/aside/ask-default.png"),
248 255 name: "随堂问",
249 256 component: Layout,
250   - children: [{
251   - path: "/askPreparationQuestions",
252   - iconImage: require("@/assets/images/aside/paper-default.png"),
253   - selectedIconImage: require("@/assets/images/aside/paper-selected.png"),
254   - name: '备题',
255   - demoRoles: ["ROLE_JIAOSHI"],
256   - component: askTestQuestion,
257   - children: []
258   - }, {
259   - path: "/askReport",
260   - iconImage: require("@/assets/images/aside/suitangwen-baobiao-default.png"),
261   - selectedIconImage: require("@/assets/images/aside/suitangwen-baobiao-selected.png"),
262   - name: '报表',
263   - demoRoles: ["ROLE_JIAOSHI", "ROLE_BANZHUREN"],
264   - component: askTestReport,
265   - children: []
266   - }, {
267   - path: "/askPreparationQuestionsDetail",
268   - iconCls: "",
269   - name: "askPreparationQuestionsDetail",
270   - demoRoles: ["ROLE_JIAOSHI"],
271   - component: askTestDetail,
272   - hidden: true,
273   - children: []
274   - }, {
275   - path: "/askPreparationQuestionsUpdate",
276   - iconCls: "",
277   - name: "askPreparationQuestionsUpdate",
278   - demoRoles: ["ROLE_JIAOSHI"],
279   - component: askTestUpdate,
280   - hidden: true,
281   - children: []
282   - }, {
283   - path: "/askReportDetail",
284   - iconCls: "",
285   - name: "askReportDetail",
286   - demoRoles: ["ROLE_JIAOSHI"],
287   - component: askTestReportDetail,
288   - hidden: true,
289   - children: []
290   - }, {
291   - path: "/askPreparationQuestionsRecycle",
292   - iconCls: "",
293   - name: "askPreparationQuestionsRecycle",
294   - demoRoles: ["ROLE_JIAOSHI"],
295   - component: askTestReportRecycle,
296   - hidden: true,
297   - children: []
298   - }, {
299   - path: "/askPreparationQuestionsAdd",
300   - iconCls: "",
301   - name: "askPreparationQuestionsAdd",
302   - demoRoles: ["ROLE_JIAOSHI"],
303   - component: ExaminationPaperAddQs,
304   - hidden: true,
305   - children: []
306   - }]
  257 + children: [
  258 + {
  259 + path: "/askPreparationQuestions",
  260 + iconImage: require("@/assets/images/aside/paper-default.png"),
  261 + selectedIconImage: require("@/assets/images/aside/paper-selected.png"),
  262 + name: "备题",
  263 + demoRoles: ["ROLE_JIAOSHI"],
  264 + component: askTestQuestion,
  265 + children: [],
  266 + },
  267 + {
  268 + path: "/askReport",
  269 + iconImage: require("@/assets/images/aside/suitangwen-baobiao-default.png"),
  270 + selectedIconImage: require("@/assets/images/aside/suitangwen-baobiao-selected.png"),
  271 + name: "报表",
  272 + demoRoles: ["ROLE_JIAOSHI", "ROLE_BANZHUREN"],
  273 + component: askTestReport,
  274 + children: [],
  275 + },
  276 + {
  277 + path: "/askPreparationQuestionsDetail",
  278 + iconCls: "",
  279 + name: "askPreparationQuestionsDetail",
  280 + demoRoles: ["ROLE_JIAOSHI"],
  281 + component: askTestDetail,
  282 + hidden: true,
  283 + children: [],
  284 + },
  285 + {
  286 + path: "/askPreparationQuestionsUpdate",
  287 + iconCls: "",
  288 + name: "askPreparationQuestionsUpdate",
  289 + demoRoles: ["ROLE_JIAOSHI"],
  290 + component: askTestUpdate,
  291 + hidden: true,
  292 + children: [],
  293 + },
  294 + {
  295 + path: "/askReportDetail",
  296 + iconCls: "",
  297 + name: "askReportDetail",
  298 + demoRoles: ["ROLE_JIAOSHI"],
  299 + component: askTestReportDetail,
  300 + hidden: true,
  301 + children: [],
  302 + },
  303 + {
  304 + path: "/askPreparationQuestionsRecycle",
  305 + iconCls: "",
  306 + name: "askPreparationQuestionsRecycle",
  307 + demoRoles: ["ROLE_JIAOSHI"],
  308 + component: askTestReportRecycle,
  309 + hidden: true,
  310 + children: [],
  311 + },
  312 + {
  313 + path: "/askPreparationQuestionsAdd",
  314 + iconCls: "",
  315 + name: "askPreparationQuestionsAdd",
  316 + demoRoles: ["ROLE_JIAOSHI"],
  317 + component: ExaminationPaperAddQs,
  318 + hidden: true,
  319 + children: [],
  320 + },
  321 + ],
307 322 },
308 323 {
309 324 path: "/testTeacher",
310 325 iconImage: require("@/assets/images/aside/test-default.png"),
311 326 name: "即时测",
312 327 component: Layout,
313   - children: [{
314   - path: "/testPaper",
315   - iconImage: require("@/assets/images/aside/paper-default.png"),
316   - selectedIconImage: require("@/assets/images/aside/paper-selected.png"),
317   - name: '组卷',
318   - demoRoles: ["ROLE_JIAOSHI"],
319   - component: askTestQuestion,
320   - children: []
321   - }, {
322   - path: "/testReport",
323   - iconImage: require("@/assets/images/aside/suitangwen-baobiao-default.png"),
324   - selectedIconImage: require("@/assets/images/aside/suitangwen-baobiao-selected.png"),
325   - name: '报表',
326   - demoRoles: ["ROLE_JIAOSHI", "ROLE_BANZHUREN"],
327   - component: askTestReport,
328   - children: []
329   - }, {
330   - path: "/testPaperQuestionsDetail",
331   - iconCls: "",
332   - name: "testPaperQuestionsDetail",
333   - demoRoles: ["ROLE_JIAOSHI"],
334   - component: askTestDetail,
335   - hidden: true,
336   - children: []
337   - }, {
338   - path: "/testPaperQuestionsUpdate",
339   - iconCls: "",
340   - name: "testPaperQuestionsUpdate",
341   - demoRoles: ["ROLE_JIAOSHI"],
342   - component: askTestUpdate,
343   - hidden: true,
344   - children: []
345   - }, {
346   - path: "/testReportDetail",
347   - iconCls: "",
348   - name: "testReportDetail",
349   - demoRoles: ["ROLE_JIAOSHI","ROLE_BANZHUREN"],
350   - component: askTestReportDetail,
351   - hidden: true,
352   - children: []
353   - }, {
354   - path: "/testReportRecycle",
355   - iconCls: "",
356   - name: "testReportRecycle",
357   - demoRoles: ["ROLE_JIAOSHI"],
358   - component: askTestReportRecycle,
359   - hidden: true,
360   - children: []
361   - }, {
362   - path: "/testPaperRecycle",
363   - iconCls: "",
364   - name: "testPaperRecycle",
365   - demoRoles: ["ROLE_JIAOSHI"],
366   - component: askTestReportRecycle,
367   - hidden: true,
368   - children: []
369   - }, {
370   - path: "/testPaperAdd",
371   - iconCls: "",
372   - name: "testPaperAdd",
373   - demoRoles: ["ROLE_JIAOSHI"],
374   - component: ExaminationPaperAdd,
375   - hidden: true,
376   - children: []
377   - }]
  328 + children: [
  329 + {
  330 + path: "/testPaper",
  331 + iconImage: require("@/assets/images/aside/paper-default.png"),
  332 + selectedIconImage: require("@/assets/images/aside/paper-selected.png"),
  333 + name: "组卷",
  334 + demoRoles: ["ROLE_JIAOSHI"],
  335 + component: askTestQuestion,
  336 + children: [],
  337 + },
  338 + {
  339 + path: "/testReport",
  340 + iconImage: require("@/assets/images/aside/suitangwen-baobiao-default.png"),
  341 + selectedIconImage: require("@/assets/images/aside/suitangwen-baobiao-selected.png"),
  342 + name: "报表",
  343 + demoRoles: ["ROLE_JIAOSHI", "ROLE_BANZHUREN"],
  344 + component: askTestReport,
  345 + children: [],
  346 + },
  347 + {
  348 + path: "/wrongQuestion",
  349 + iconImage: require("@/assets/images/aside/suitangwen-baobiao-default.png"),
  350 + selectedIconImage: require("@/assets/images/aside/suitangwen-baobiao-selected.png"),
  351 + name: "错题组卷",
  352 + demoRoles: ["ROLE_JIAOSHI"],
  353 + component: wrongQuestion,
  354 + children: [],
  355 + },
  356 + {
  357 + path: "/testPaperQuestionsDetail",
  358 + iconCls: "",
  359 + name: "testPaperQuestionsDetail",
  360 + demoRoles: ["ROLE_JIAOSHI"],
  361 + component: askTestDetail,
  362 + hidden: true,
  363 + children: [],
  364 + },
  365 + {
  366 + path: "/testPaperQuestionsUpdate",
  367 + iconCls: "",
  368 + name: "testPaperQuestionsUpdate",
  369 + demoRoles: ["ROLE_JIAOSHI"],
  370 + component: askTestUpdate,
  371 + hidden: true,
  372 + children: [],
  373 + },
  374 + {
  375 + path: "/testReportDetail",
  376 + iconCls: "",
  377 + name: "testReportDetail",
  378 + demoRoles: ["ROLE_JIAOSHI", "ROLE_BANZHUREN"],
  379 + component: askTestReportDetail,
  380 + hidden: true,
  381 + children: [],
  382 + },
  383 + {
  384 + path: "/testReportRecycle",
  385 + iconCls: "",
  386 + name: "testReportRecycle",
  387 + demoRoles: ["ROLE_JIAOSHI"],
  388 + component: askTestReportRecycle,
  389 + hidden: true,
  390 + children: [],
  391 + },
  392 + {
  393 + path: "/testPaperRecycle",
  394 + iconCls: "",
  395 + name: "testPaperRecycle",
  396 + demoRoles: ["ROLE_JIAOSHI"],
  397 + component: askTestReportRecycle,
  398 + hidden: true,
  399 + children: [],
  400 + },
  401 + {
  402 + path: "/testPaperAdd",
  403 + iconCls: "",
  404 + name: "testPaperAdd",
  405 + demoRoles: ["ROLE_JIAOSHI"],
  406 + component: ExaminationPaperAdd,
  407 + hidden: true,
  408 + children: [],
  409 + },
  410 + ],
378 411 },
379 412 {
380 413 path: "/setUpConglomerate",
... ... @@ -386,11 +419,11 @@ let addrouters = [
386 419 {
387 420 path: "/setUpConglomerate",
388 421 iconCls: "fa fa-building",
389   - name: '集团管理',
  422 + name: "集团管理",
390 423 component: SetUpConglomerate,
391   - children: []
  424 + children: [],
392 425 },
393   - ]
  426 + ],
394 427 },
395 428 {
396 429 path: "/setUpAccount",
... ... @@ -402,64 +435,64 @@ let addrouters = [
402 435 {
403 436 path: "/setUpAccount",
404 437 iconCls: "fa fa-id-card-o",
405   - name: '',
  438 + name: "",
406 439 component: SetUpAccount,
407   - children: []
  440 + children: [],
408 441 },
409   - ]
  442 + ],
410 443 },
411 444  
412 445 {
413 446 path: "/",
414 447 iconCls: "fa fa-cog",
415   - name: '学校管理',
  448 + name: "学校管理",
416 449 component: Layout,
417 450 children: [
418 451 {
419 452 path: "/setUpSchool",
420 453 iconCls: "fa fa-calculator",
421   - name: '学校设置',
  454 + name: "学校设置",
422 455 component: SetUpSchool,
423   - children: []
  456 + children: [],
424 457 },
425 458 {
426 459 path: "/setUpClazz",
427 460 iconCls: "fa fa-sitemap",
428   - name: '班级管理',
  461 + name: "班级管理",
429 462 component: SetUpClazz,
430   - children: []
  463 + children: [],
431 464 },
432 465 {
433 466 path: "/setUpTeacher",
434 467 iconCls: "fa fa-male",
435   - name: '教师管理',
  468 + name: "教师管理",
436 469 component: SetUpTeacher,
437   - children: []
  470 + children: [],
438 471 },
439 472 {
440 473 path: "/setUpStudent",
441 474 iconCls: "fa fa-mortar-board",
442   - name: '学生管理',
  475 + name: "学生管理",
443 476 component: SetUpStudent,
444   - children: []
  477 + children: [],
445 478 },
446 479 {
447 480 path: "/archivedClazz",
448 481 iconCls: "fa fa-list-ul",
449   - name: '已归档班级',
  482 + name: "已归档班级",
450 483 component: ArchivedClazz,
451 484 hidden: true,
452   - children: []
  485 + children: [],
453 486 },
454 487 {
455 488 path: "/archived",
456 489 iconCls: "fa fa-list-ul",
457   - name: '分班',
  490 + name: "分班",
458 491 component: Archived,
459 492 hidden: true,
460   - children: []
  493 + children: [],
461 494 },
462   - ]
  495 + ],
463 496 },
464 497 {
465 498 path: "/card",
... ... @@ -473,9 +506,9 @@ let addrouters = [
473 506 iconCls: "fa fa-id-card", // 图标样式class
474 507 name: "",
475 508 component: Card,
476   - children: []
477   - }
478   - ]
  509 + children: [],
  510 + },
  511 + ],
479 512 },
480 513 {
481 514 path: "/device",
... ... @@ -492,7 +525,7 @@ let addrouters = [
492 525 meta: {
493 526 keepAlive: true,
494 527 },
495   - children: []
  528 + children: [],
496 529 },
497 530 {
498 531 path: "/deviceLog",
... ... @@ -500,9 +533,9 @@ let addrouters = [
500 533 name: "",
501 534 component: DeviceLog,
502 535 parent: "device",
503   - children: []
504   - }
505   - ]
  536 + children: [],
  537 + },
  538 + ],
506 539 },
507 540 {
508 541 path: "/analysis",
... ... @@ -516,9 +549,9 @@ let addrouters = [
516 549 iconCls: "fa fa-area-chart", // 图标样式class
517 550 name: "",
518 551 component: Analysis,
519   - children: []
520   - }
521   - ]
  552 + children: [],
  553 + },
  554 + ],
522 555 },
523 556 {
524 557 path: "/down",
... ... @@ -532,7 +565,7 @@ let addrouters = [
532 565 iconCls: "fa fa-download", // 图标样式class
533 566 name: "发卡软件",
534 567 component: Down,
535   - children: []
  568 + children: [],
536 569 },
537 570 {
538 571 path: "/downClient",
... ... @@ -540,9 +573,9 @@ let addrouters = [
540 573 name: "授课端软件",
541 574 component: DownClient,
542 575 parent: "down",
543   - children: []
544   - }
545   - ]
  576 + children: [],
  577 + },
  578 + ],
546 579 },
547 580 {
548 581 path: "/dataSync",
... ... @@ -556,9 +589,9 @@ let addrouters = [
556 589 iconCls: "fa fa-random", // 图标样式class
557 590 name: "",
558 591 component: DataSync,
559   - children: []
560   - }
561   - ]
  592 + children: [],
  593 + },
  594 + ],
562 595 },
563 596 // {
564 597 // path: "/portrait",
... ... @@ -587,7 +620,7 @@ let addrouters = [
587 620 // }
588 621 // ]
589 622 // },
590   -]
  623 +];
591 624  
592 625 //长水版路由表
593 626 let csAddrouters = [
... ... @@ -603,7 +636,7 @@ let csAddrouters = [
603 636 iconCls: "fa fa-file-text",
604 637 name: "examinationPaper",
605 638 component: ExaminationPaper,
606   - children: []
  639 + children: [],
607 640 },
608 641 {
609 642 path: "/examinationPaperAdd",
... ... @@ -611,7 +644,7 @@ let csAddrouters = [
611 644 name: "examinationPaperAdd",
612 645 component: ExaminationPaperAdd,
613 646 parent: "examinationPaper",
614   - children: []
  647 + children: [],
615 648 },
616 649 {
617 650 path: "/examinationPaperEdit",
... ... @@ -619,7 +652,7 @@ let csAddrouters = [
619 652 name: "修改答题卡",
620 653 component: ExaminationPaperEdit,
621 654 parent: "examinationPaper",
622   - children: []
  655 + children: [],
623 656 },
624 657 {
625 658 path: "/examinationPaperRecycle",
... ... @@ -627,7 +660,7 @@ let csAddrouters = [
627 660 name: "回收站答题卡",
628 661 component: ExaminationPaperRecycle,
629 662 parent: "examinationPaper",
630   - children: []
  663 + children: [],
631 664 },
632 665 {
633 666 path: "/examinationPaperArchiving",
... ... @@ -636,9 +669,9 @@ let csAddrouters = [
636 669 component: ExaminationPaperArchiving,
637 670 parent: "examinationPaper",
638 671 hidden: true,
639   - children: []
  672 + children: [],
640 673 },
641   - ]
  674 + ],
642 675 },
643 676 {
644 677 path: "/ask",
... ... @@ -656,7 +689,7 @@ let csAddrouters = [
656 689 meta: {
657 690 keepAlive: true,
658 691 },
659   - children: []
  692 + children: [],
660 693 },
661 694 {
662 695 path: "/askAnalysis",
... ... @@ -664,9 +697,9 @@ let csAddrouters = [
664 697 name: "随堂问报表分析",
665 698 component: AskAnalysis,
666 699 parent: "ask",
667   - children: []
668   - }
669   - ]
  700 + children: [],
  701 + },
  702 + ],
670 703 },
671 704 {
672 705 path: "/test",
... ... @@ -683,7 +716,7 @@ let csAddrouters = [
683 716 meta: {
684 717 keepAlive: true,
685 718 },
686   - children: []
  719 + children: [],
687 720 },
688 721 {
689 722 path: "/testAnalysis",
... ... @@ -691,10 +724,9 @@ let csAddrouters = [
691 724 name: "即时测报表分析",
692 725 component: TestAnalysis,
693 726 parent: "test",
694   - children: []
695   - }
696   -
697   - ]
  727 + children: [],
  728 + },
  729 + ],
698 730 },
699 731 {
700 732 path: "/setUpConglomerate",
... ... @@ -706,11 +738,11 @@ let csAddrouters = [
706 738 {
707 739 path: "/setUpConglomerate",
708 740 iconCls: "fa fa-building",
709   - name: '集团管理',
  741 + name: "集团管理",
710 742 component: SetUpConglomerate,
711   - children: []
  743 + children: [],
712 744 },
713   - ]
  745 + ],
714 746 },
715 747 {
716 748 path: "/setUpAccount",
... ... @@ -722,40 +754,40 @@ let csAddrouters = [
722 754 {
723 755 path: "/setUpAccount",
724 756 iconCls: "fa fa-id-card-o",
725   - name: '',
  757 + name: "",
726 758 component: SetUpAccount,
727   - children: []
  759 + children: [],
728 760 },
729   - ]
  761 + ],
730 762 },
731 763 {
732 764 path: "/",
733 765 iconCls: "fa fa-cog",
734   - name: '学校管理',
  766 + name: "学校管理",
735 767 component: Layout,
736 768 children: [
737 769 {
738 770 path: "/setUpSchool",
739 771 iconCls: "fa fa-calculator",
740   - name: '学校设置',
  772 + name: "学校设置",
741 773 component: SetUpSchool,
742   - children: []
  774 + children: [],
743 775 },
744 776 {
745 777 path: "/setUpTeacher",
746 778 iconCls: "fa fa-male",
747   - name: '教师管理',
  779 + name: "教师管理",
748 780 component: SetUpTeacher,
749   - children: []
  781 + children: [],
750 782 },
751 783 {
752 784 path: "/setUpStudent",
753 785 iconCls: "fa fa-mortar-board",
754   - name: '学生管理',
  786 + name: "学生管理",
755 787 component: SetUpStudent,
756   - children: []
  788 + children: [],
757 789 },
758   - ]
  790 + ],
759 791 },
760 792 {
761 793 path: "/card",
... ... @@ -769,9 +801,9 @@ let csAddrouters = [
769 801 iconCls: "fa fa-id-card",
770 802 name: "",
771 803 component: Card,
772   - children: []
773   - }
774   - ]
  804 + children: [],
  805 + },
  806 + ],
775 807 },
776 808 {
777 809 path: "/device",
... ... @@ -788,7 +820,7 @@ let csAddrouters = [
788 820 meta: {
789 821 keepAlive: true,
790 822 },
791   - children: []
  823 + children: [],
792 824 },
793 825 {
794 826 path: "/deviceLog",
... ... @@ -796,9 +828,9 @@ let csAddrouters = [
796 828 name: "",
797 829 component: DeviceLog,
798 830 parent: "device",
799   - children: []
800   - }
801   - ]
  831 + children: [],
  832 + },
  833 + ],
802 834 },
803 835 {
804 836 path: "/analysis",
... ... @@ -812,9 +844,9 @@ let csAddrouters = [
812 844 iconCls: "fa fa-area-chart",
813 845 name: "",
814 846 component: Analysis,
815   - children: []
816   - }
817   - ]
  847 + children: [],
  848 + },
  849 + ],
818 850 },
819 851 {
820 852 path: "/down",
... ... @@ -828,7 +860,7 @@ let csAddrouters = [
828 860 iconCls: "fa fa-download",
829 861 name: "发卡软件",
830 862 component: Down,
831   - children: []
  863 + children: [],
832 864 },
833 865 {
834 866 path: "/downClient",
... ... @@ -836,9 +868,9 @@ let csAddrouters = [
836 868 name: "授课端软件",
837 869 component: DownClient,
838 870 parent: "down",
839   - children: []
840   - }
841   - ]
  871 + children: [],
  872 + },
  873 + ],
842 874 },
843 875 {
844 876 path: "/dataSync",
... ... @@ -852,29 +884,29 @@ let csAddrouters = [
852 884 iconCls: "fa fa-random",
853 885 name: "",
854 886 component: DataSync,
855   - children: []
856   - }
857   - ]
  887 + children: [],
  888 + },
  889 + ],
858 890 },
859   -]
  891 +];
860 892  
861 893 //个人版版路由表
862 894 const addroutersPersonal = [
863 895 {
864 896 path: "/setUpStudent",
865 897 iconCls: "fa fa-mortar-board",
866   - name: '班级名单',
  898 + name: "班级名单",
867 899 component: Layout,
868 900 alone: true,
869 901 children: [
870 902 {
871 903 path: "/setUpStudent",
872 904 iconCls: "a fa-mortar-board",
873   - name: '',
  905 + name: "",
874 906 component: SetUpPersonalSetUpStudent,
875   - children: []
  907 + children: [],
876 908 },
877   - ]
  909 + ],
878 910 },
879 911  
880 912 // {
... ... @@ -1040,7 +1072,7 @@ const addroutersPersonal = [
1040 1072 iconCls: "fa fa-file-text", // 图标样式class
1041 1073 name: "examinationPaper",
1042 1074 component: ExaminationPaper,
1043   - children: []
  1075 + children: [],
1044 1076 },
1045 1077 {
1046 1078 path: "/examinationPaperAdd",
... ... @@ -1048,7 +1080,7 @@ const addroutersPersonal = [
1048 1080 name: "examinationPaperAdd",
1049 1081 component: ExaminationPaperAdd,
1050 1082 parent: "examinationPaper",
1051   - children: []
  1083 + children: [],
1052 1084 },
1053 1085 {
1054 1086 path: "/examinationPaperAddQs",
... ... @@ -1056,7 +1088,7 @@ const addroutersPersonal = [
1056 1088 name: "examinationPaperAddQs",
1057 1089 component: ExaminationPaperAddQs,
1058 1090 parent: "examinationPaper",
1059   - children: []
  1091 + children: [],
1060 1092 },
1061 1093 {
1062 1094 path: "/examinationPaperEdit",
... ... @@ -1064,7 +1096,7 @@ const addroutersPersonal = [
1064 1096 name: "修改答题卡",
1065 1097 component: ExaminationPaperEdit,
1066 1098 parent: "examinationPaper",
1067   - children: []
  1099 + children: [],
1068 1100 },
1069 1101 {
1070 1102 path: "/examinationPaperRecycle",
... ... @@ -1072,7 +1104,7 @@ const addroutersPersonal = [
1072 1104 name: "回收站答题卡",
1073 1105 component: ExaminationPaperRecycle,
1074 1106 parent: "examinationPaper",
1075   - children: []
  1107 + children: [],
1076 1108 },
1077 1109 {
1078 1110 path: "/examinationPaperArchiving",
... ... @@ -1081,9 +1113,9 @@ const addroutersPersonal = [
1081 1113 component: ExaminationPaperArchiving,
1082 1114 parent: "examinationPaper",
1083 1115 hidden: true,
1084   - children: []
  1116 + children: [],
1085 1117 },
1086   - ]
  1118 + ],
1087 1119 },
1088 1120 {
1089 1121 path: "/ask",
... ... @@ -1097,8 +1129,7 @@ const addroutersPersonal = [
1097 1129 iconCls: "fa fa-bar-chart", // 图标样式class
1098 1130 name: "随堂问报表",
1099 1131 component: Ask,
1100   - children: []
1101   -
  1132 + children: [],
1102 1133 },
1103 1134 {
1104 1135 path: "/askList",
... ... @@ -1112,9 +1143,8 @@ const addroutersPersonal = [
1112 1143 name: "随堂问报表分析",
1113 1144 component: AskAnalysis,
1114 1145 parent: "askList",
1115   - children: []
  1146 + children: [],
1116 1147 },
1117   -
1118 1148 ],
1119 1149 },
1120 1150 {
... ... @@ -1127,10 +1157,9 @@ const addroutersPersonal = [
1127 1157 meta: {
1128 1158 keepAlive: true,
1129 1159 },
1130   - children: []
1131   -
1132   - }
1133   - ]
  1160 + children: [],
  1161 + },
  1162 + ],
1134 1163 },
1135 1164 {
1136 1165 path: "/test",
... ... @@ -1144,7 +1173,7 @@ const addroutersPersonal = [
1144 1173 iconCls: "fa fa-pie-chart", // 图标样式class
1145 1174 name: "",
1146 1175 component: Test,
1147   - children: []
  1176 + children: [],
1148 1177 },
1149 1178 {
1150 1179 path: "/testList",
... ... @@ -1158,9 +1187,9 @@ const addroutersPersonal = [
1158 1187 name: "即时测报表分析",
1159 1188 component: TestAnalysis,
1160 1189 parent: "test",
1161   - children: []
  1190 + children: [],
1162 1191 },
1163   - ]
  1192 + ],
1164 1193 },
1165 1194 {
1166 1195 path: "/testArchiving",
... ... @@ -1172,10 +1201,9 @@ const addroutersPersonal = [
1172 1201 meta: {
1173 1202 keepAlive: true,
1174 1203 },
1175   - children: []
1176   - }
1177   -
1178   - ]
  1204 + children: [],
  1205 + },
  1206 + ],
1179 1207 },
1180 1208  
1181 1209 {
... ... @@ -1193,7 +1221,7 @@ const addroutersPersonal = [
1193 1221 meta: {
1194 1222 keepAlive: true,
1195 1223 },
1196   - children: []
  1224 + children: [],
1197 1225 },
1198 1226 {
1199 1227 path: "/portraitDetail",
... ... @@ -1201,9 +1229,9 @@ const addroutersPersonal = [
1201 1229 name: "授课端软件",
1202 1230 component: PortraitDetail,
1203 1231 parent: "down",
1204   - children: []
1205   - }
1206   - ]
  1232 + children: [],
  1233 + },
  1234 + ],
1207 1235 },
1208 1236 {
1209 1237 path: "/dataSync",
... ... @@ -1217,9 +1245,9 @@ const addroutersPersonal = [
1217 1245 iconCls: "fa fa-random",
1218 1246 name: "",
1219 1247 component: DataSync,
1220   - children: []
1221   - }
1222   - ]
  1248 + children: [],
  1249 + },
  1250 + ],
1223 1251 },
1224 1252 {
1225 1253 path: "/down",
... ... @@ -1233,11 +1261,11 @@ const addroutersPersonal = [
1233 1261 iconCls: "fa fa-download",
1234 1262 name: "发卡软件",
1235 1263 component: Down,
1236   - children: []
1237   - }
1238   - ]
  1264 + children: [],
  1265 + },
  1266 + ],
1239 1267 },
1240   -]
  1268 +];
1241 1269  
1242 1270 // 超级管理员路由表
1243 1271 const addRoutersAdmin = [
... ... @@ -1251,11 +1279,11 @@ const addRoutersAdmin = [
1251 1279 {
1252 1280 path: "/account",
1253 1281 iconCls: "fa fa-id-card-o",
1254   - name: '',
  1282 + name: "",
1255 1283 component: AdminAccount,
1256   - children: []
  1284 + children: [],
1257 1285 },
1258   - ]
  1286 + ],
1259 1287 },
1260 1288 {
1261 1289 path: "/device",
... ... @@ -1272,7 +1300,7 @@ const addRoutersAdmin = [
1272 1300 meta: {
1273 1301 keepAlive: true,
1274 1302 },
1275   - children: []
  1303 + children: [],
1276 1304 },
1277 1305 {
1278 1306 path: "/deviceLog",
... ... @@ -1280,9 +1308,9 @@ const addRoutersAdmin = [
1280 1308 name: "",
1281 1309 component: AdminDeviceLog,
1282 1310 parent: "device",
1283   - children: []
1284   - }
1285   - ]
  1311 + children: [],
  1312 + },
  1313 + ],
1286 1314 },
1287 1315 {
1288 1316 path: "/clientVersion",
... ... @@ -1294,15 +1322,21 @@ const addRoutersAdmin = [
1294 1322 {
1295 1323 path: "/clientVersion",
1296 1324 iconCls: "fa fa-id-card-o",
1297   - name: '',
  1325 + name: "",
1298 1326 component: AdminClientVersion,
1299   - children: []
  1327 + children: [],
1300 1328 },
1301   - ]
  1329 + ],
1302 1330 },
1303   -]
  1331 +];
1304 1332  
1305 1333 export default new Router({
1306   - routes: defaultRouter
1307   -})
1308   -export { defaultRouter, addrouters, addroutersPersonal, addRoutersAdmin, csAddrouters }
  1334 + routes: defaultRouter,
  1335 +});
  1336 +export {
  1337 + defaultRouter,
  1338 + addrouters,
  1339 + addroutersPersonal,
  1340 + addRoutersAdmin,
  1341 + csAddrouters,
  1342 +};
... ...
src/utils/index.js
... ... @@ -56,6 +56,10 @@ export function setDateRules(type) {
56 56 that.startDay = `${aYear}-${aMonth}-01`;
57 57 that.endDay = formatDate(new Date(), "yyyy-MM-dd");
58 58 break;
  59 + case "term":
  60 + that.startDay = getDateRange()[0];
  61 + that.endDay = getDateRange()[1];
  62 + break;
59 63 case "onQuarter":
60 64 if (aMonth > 0 && aMonth < 4) {
61 65 aMonth = "1";
... ... @@ -111,18 +115,18 @@ export function getKnowledge(knowledgeParam) {
111 115  
112 116 var knowledge = knowledgeParam + "";
113 117  
114   - var knowledges = knowledge.split(',');
  118 + var knowledges = knowledge.split(",");
115 119  
116 120 var resultArray = [];
117 121  
118   - knowledges.forEach(ksplit => {
119   - var ss = ksplit.split('#').filter(dd => dd.length >= 1);
  122 + knowledges.forEach((ksplit) => {
  123 + var ss = ksplit.split("#").filter((dd) => dd.length >= 1);
120 124 if (ss.length > 0) {
121 125 resultArray.push(ss[ss.length - 1]);
122 126 }
123   - })
  127 + });
124 128  
125   - return resultArray.join(';');
  129 + return resultArray.join(";");
126 130 }
127 131  
128 132 // // 3DES加密
... ... @@ -272,7 +276,7 @@ export function b64DecodeUnicode(str) {
272 276 })
273 277 .join("")
274 278 );
275   - } catch (e) { }
  279 + } catch (e) {}
276 280 return uni;
277 281 }
278 282  
... ... @@ -827,7 +831,7 @@ export function formatGradeNameClass(data) {
827 831 {
828 832 value: item.id,
829 833 label: item.className,
830   - leaf: true
  834 + leaf: true,
831 835 },
832 836 ],
833 837 });
... ... @@ -841,16 +845,15 @@ export function formatGradeNameClass(data) {
841 845 gradeNameArr[gradeIndex].children.push({
842 846 value: item.id,
843 847 label: item.className,
844   - leaf: true
  848 + leaf: true,
845 849 });
846 850 }
847 851 });
848 852 return gradeNameArr;
849 853 }
850   -_
  854 +_;
851 855  
852 856 export function tablePrint(options) {
853   -
854 857 var id = options.id;
855 858 var title = options.title;
856 859 var lindex = options.lindex;
... ... @@ -861,9 +864,7 @@ export function tablePrint(options) {
861 864 var diffStNumber = options.diffStNumber ?? 0;
862 865 let divs = document.getElementById(id);
863 866 let awin = window.open("中天易教", "_blank");
864   - awin.document.getElementsByTagName(
865   - "head"
866   - )[0].innerHTML = `<style>
  867 + awin.document.getElementsByTagName("head")[0].innerHTML = `<style>
867 868 @media print {
868 869 @page {
869 870 size: A4 portrait;
... ... @@ -1115,37 +1116,32 @@ export function tablePrint(options) {
1115 1116  
1116 1117 let aDom = divs.cloneNode(true);
1117 1118  
1118   - let thead = aDom.querySelectorAll('.el-table__header-wrapper thead');
  1119 + let thead = aDom.querySelectorAll(".el-table__header-wrapper thead");
1119 1120  
1120   - let tbody = aDom.querySelectorAll('.el-table__body-wrapper table');
  1121 + let tbody = aDom.querySelectorAll(".el-table__body-wrapper table");
1121 1122  
1122 1123 var lastNotHiddenNumber = 0;
1123 1124  
1124 1125 if (tbody.length >= 1) {
1125   -
1126 1126 for (var tb = 0; tb < tbody.length; tb++) {
1127   -
1128 1127 var currentTbody = tbody[tb];
1129 1128  
1130 1129 var currentThead = thead[tb];
1131 1130  
1132   - var headTrs = currentThead.querySelectorAll('tr');
  1131 + var headTrs = currentThead.querySelectorAll("tr");
1133 1132  
1134 1133 var headThs = null;
1135 1134  
1136 1135 if (lindex != null && lindex >= 0)
1137   - headThs = headTrs[lindex].querySelectorAll('th');
1138   - else
1139   - headThs = headTrs[headTrs.length - 1].querySelectorAll('th');
  1136 + headThs = headTrs[lindex].querySelectorAll("th");
  1137 + else headThs = headTrs[headTrs.length - 1].querySelectorAll("th");
1140 1138  
1141 1139 if (headThs.length > splitNumber) {
1142   -
1143   - var bodyTrs = currentTbody.querySelectorAll('tr');
  1140 + var bodyTrs = currentTbody.querySelectorAll("tr");
1144 1141  
1145 1142 var roas = Math.ceil(headThs.length / splitNumber);
1146 1143  
1147 1144 if (fixedColumn) {
1148   -
1149 1145 var thLength = headThs.length;
1150 1146  
1151 1147 thLength -= splitNumber;
... ... @@ -1155,31 +1151,27 @@ export function tablePrint(options) {
1155 1151 splitNumber -= fixedColumn;
1156 1152  
1157 1153 roas += Math.ceil(thLength / splitNumber);
1158   -
1159 1154 } else fixedColumn = 0;
1160 1155  
1161 1156 for (var stao = 1; stao < roas; stao++) {
1162   -
1163 1157 var newThead = currentThead.cloneNode(true);
1164 1158  
1165 1159 var newTbody = currentTbody.cloneNode();
1166 1160  
1167   - var newTrs = newThead.querySelectorAll('tr');
  1161 + var newTrs = newThead.querySelectorAll("tr");
1168 1162  
1169 1163 for (var trds = 0; trds < newTrs.length; trds++) {
1170   -
1171   - var newThs = newTrs[trds].querySelectorAll('th');
  1164 + var newThs = newTrs[trds].querySelectorAll("th");
1172 1165  
1173 1166 var index = 0;
1174 1167  
1175 1168 for (var lpss = 0; lpss < newThs.length; lpss++) {
1176   -
1177 1169 var newTh = newThs[lpss];
1178 1170  
1179 1171 if (!newTh) continue;
1180 1172  
1181   - if (stao == roas - 1 && index >= (splitNumber + fixedColumn)) {
1182   - var currentTh = headTrs[trds].querySelectorAll('th')[lpss];
  1173 + if (stao == roas - 1 && index >= splitNumber + fixedColumn) {
  1174 + var currentTh = headTrs[trds].querySelectorAll("th")[lpss];
1183 1175 if (currentTh) {
1184 1176 currentTh.style.display = "none";
1185 1177 }
... ... @@ -1200,11 +1192,9 @@ export function tablePrint(options) {
1200 1192 continue;
1201 1193 }
1202 1194 newTh.style.display = "none";
1203   - }
1204   - else if (stao == roas - 1) lastNotHiddenNumber += 1;
  1195 + } else if (stao == roas - 1) lastNotHiddenNumber += 1;
1205 1196  
1206   -
1207   - var colspan = Number(newTh.getAttribute('colspan')) || 0;
  1197 + var colspan = Number(newTh.getAttribute("colspan")) || 0;
1208 1198  
1209 1199 index += 1;
1210 1200  
... ... @@ -1217,15 +1207,15 @@ export function tablePrint(options) {
1217 1207 for (var trd = 0; trd < bodyTrs.length; trd++) {
1218 1208 var currentTr = bodyTrs[trd];
1219 1209 var newTr = currentTr.cloneNode(true);
1220   - var currentTds = currentTr.querySelectorAll('td');
1221   - var newTds = newTr.querySelectorAll('td');
  1210 + var currentTds = currentTr.querySelectorAll("td");
  1211 + var newTds = newTr.querySelectorAll("td");
1222 1212 var length = headThs.length + diffNumber;
1223 1213 for (var lps = 0; lps < length; lps++) {
1224 1214 var lpsIndex = lps;
1225 1215 if (lps > diffStNumber) lpsIndex = lps - diffNumber;
1226 1216 var newTd = newTds[lps];
1227 1217 if (!newTd) continue;
1228   - if (stao == roas - 1 && lpsIndex >= (splitNumber + fixedColumn)) {
  1218 + if (stao == roas - 1 && lpsIndex >= splitNumber + fixedColumn) {
1229 1219 var currentTd = currentTds[lps];
1230 1220 if (currentTd) {
1231 1221 currentTd.style.display = "none";
... ... @@ -1248,7 +1238,7 @@ export function tablePrint(options) {
1248 1238 if (lastNotHiddenNumber == fixedColumn) continue;
1249 1239 newTbody.appendChild(newThead);
1250 1240  
1251   - newTbody.classList.add('_addedList');
  1241 + newTbody.classList.add("_addedList");
1252 1242  
1253 1243 currentTbody.parentNode.parentNode.append(newTbody);
1254 1244 }
... ... @@ -1259,28 +1249,64 @@ export function tablePrint(options) {
1259 1249 }
1260 1250  
1261 1251 if (title) {
1262   - let pTit = awin.document.createElement('p')
1263   - pTit.className = "tit"
1264   - pTit.innerHTML = title
1265   - awin.document.body.append(pTit)
  1252 + let pTit = awin.document.createElement("p");
  1253 + pTit.className = "tit";
  1254 + pTit.innerHTML = title;
  1255 + awin.document.body.append(pTit);
1266 1256 }
1267 1257  
1268   - let pagedoc = awin.document.createElement('div')
1269   - pagedoc.className = "page-number"
1270   - awin.document.body.append(pagedoc)
1271   - awin.document.body.append(aDom);
1272   -
1273   - let pagedom = awin.document.querySelectorAll('.page-number');
1274   -
  1258 + let pagedoc = awin.document.createElement("div");
  1259 + pagedoc.className = "page-number";
  1260 + awin.document.body.append(pagedoc);
  1261 + awin.document.body.append(aDom);
  1262 +
  1263 + let pagedom = awin.document.querySelectorAll(".page-number");
  1264 +
1275 1265 awin.print();
1276 1266  
1277   - awin.close()
  1267 + awin.close();
1278 1268 }
1279 1269  
1280   -export const cNum = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二", "十三", "十四", "十五",
  1270 +export const cNum = [
  1271 + "一",
  1272 + "二",
  1273 + "三",
  1274 + "四",
  1275 + "五",
  1276 + "六",
  1277 + "七",
  1278 + "八",
  1279 + "九",
  1280 + "十",
  1281 + "十一",
  1282 + "十二",
  1283 + "十三",
  1284 + "十四",
  1285 + "十五",
1281 1286 "十六",
1282 1287 "十七",
1283 1288 "十八",
1284 1289 "十九",
1285 1290 "二十",
1286   -];
1287 1291 \ No newline at end of file
  1292 +];
  1293 +
  1294 +// 当学期时间
  1295 +function getDateRange() {
  1296 + const currentDate = new Date();
  1297 + const currentYear = currentDate.getFullYear();
  1298 + const currentMonth = currentDate.getMonth() + 1; // getMonth() 返回的是 0-11
  1299 +
  1300 + let startDate, endDate;
  1301 +
  1302 + if (currentMonth >= 2 && currentMonth <= 7) {
  1303 + // 在 2 月到 7 月之间
  1304 + startDate = `${currentYear}-02-01`;
  1305 + endDate = `${currentYear}-07-31`;
  1306 + } else {
  1307 + // 不在 2 月到 7 月之间
  1308 + startDate = `${currentYear}-08-01`;
  1309 + endDate = `${currentYear + 1}-01-31`; // 下一年的 1 月 31 日
  1310 + }
  1311 +
  1312 + return [startDate, endDate];
  1313 +}
... ...
src/views/basic/askTestQuestion/components/wrongQuestionDialog.vue 0 → 100644
  1 +<template>
  2 + <el-dialog
  3 + :visible.sync="visible"
  4 + width="70%"
  5 + :before-close="handleClose"
  6 + :modal-append-to-body="false"
  7 + >
  8 + <div class="test-box" v-if="groups">
  9 + <div class="test">
  10 + <div class="test-title" @dblclick="enableEditing">
  11 + <div
  12 + class="test-title"
  13 + v-if="!isEditing"
  14 + @mouseenter="handleMouseEnter"
  15 + @mouseleave="handleMouseLeave"
  16 + :class="isHovered ? 'hover' : ''"
  17 + >
  18 + {{ inputValue }}
  19 + </div>
  20 + <div
  21 + v-if="isHovered"
  22 + class="tooltip"
  23 + :style="{
  24 + top: tooltipPosition.y + 'px',
  25 + left: tooltipPosition.x + 'px',
  26 + }"
  27 + >
  28 + 双击设置试卷标题
  29 + </div>
  30 + <el-input
  31 + class="test-title"
  32 + ref="editInput"
  33 + v-if="isEditing"
  34 + v-model="inputValue"
  35 + @blur="save"
  36 + @keyup.enter.native="save"
  37 + style="padding: 0 200px"
  38 + />
  39 + </div>
  40 + <div class="test-group">
  41 + <div
  42 + class="outer-item"
  43 + v-for="(group, index) in groups"
  44 + :key="group.id"
  45 + :class="{
  46 + border: selectedIndex === group.id,
  47 + }"
  48 + >
  49 + <div
  50 + v-if="selectedIndex === group.id"
  51 + class="border-del"
  52 + @click="handleDel(group.id, 'all')"
  53 + >
  54 + 删除
  55 + </div>
  56 + <!-- 每个组的标题 -->
  57 + <div class="test-group-title" @click="selectItem(group.id, 'all')">
  58 + <div class="size-16" style="font-weight: 600">
  59 + {{ index + 1 }}、
  60 + <span
  61 + class="size-16"
  62 + @dblclick="groupEditing(index)"
  63 + v-show="!group.input"
  64 + >{{ group.questionTitle }}</span
  65 + >
  66 +
  67 + <el-input
  68 + :ref="'refInput' + index"
  69 + class="size-16"
  70 + size="mini"
  71 + v-show="group.input"
  72 + v-model="group.questionTitle"
  73 + @blur="groupSave(index)"
  74 + @keyup.enter.native="groupSave(index)"
  75 + style="width: fit-content"
  76 + />
  77 + <span
  78 + v-if="group.subQuestionIds"
  79 + class="size-16"
  80 + style="margin-left: 10px"
  81 + >(共{{ group.subQuestionIds.length }}题 / 共{{
  82 + group.questionScore * group.subQuestionIds.length
  83 + }}分)</span
  84 + >
  85 + </div>
  86 + </div>
  87 +
  88 + <!-- 内部的题目列表,允许组内排序 -->
  89 + <div
  90 + style="display: flex; padding: 10px 0"
  91 + v-for="(question, subIndex) in group.subQuestionIds"
  92 + :key="question.id"
  93 + :class="{
  94 + border: selectedItemIndex === question.id,
  95 + }"
  96 + @click="selectItem(question.id, 'number')"
  97 + class="inner-item"
  98 + >
  99 + <div
  100 + v-if="selectedItemIndex === question.id"
  101 + class="border-del"
  102 + @click="handleDel(question.id, 'number')"
  103 + >
  104 + 删除
  105 + </div>
  106 + <div class="size color">{{ question.globalIndex }}、</div>
  107 +
  108 + <iframe
  109 + :src="question.screenshot"
  110 + :ref="'iframe' + subIndex"
  111 + @load="onIFrameLoad(subIndex)"
  112 + style="width: 100%"
  113 + ></iframe>
  114 + </div>
  115 + </div>
  116 + </div>
  117 + </div>
  118 + <div class="edit">
  119 + <div class="edit-title"></div>
  120 + <div class="edit-info">
  121 + <div class="title size color" style="padding: 15px 0 0 10px">
  122 + 题目排序
  123 + <span class="title size" style="color: #999999"
  124 + >(拖拽题号可拖拽排序)</span
  125 + >
  126 + </div>
  127 + <!-- 外层容器,允许拖拽整个组 -->
  128 + <draggable v-model="groups" group="groups" @end="onEnd">
  129 + <div
  130 + v-for="(group, index) in groups"
  131 + :key="group.id"
  132 + class="group-item"
  133 + >
  134 + <!-- 每个组的标题 -->
  135 + <div class="group-title">
  136 + <div class="size" style="font-weight: 600">
  137 + {{ index + 1 }}、{{ group.questionTitle }}
  138 + </div>
  139 + <div class="size">
  140 + 单题分值:
  141 + <el-input-number
  142 + size="mini"
  143 + v-model="group.questionScore"
  144 + :min="1"
  145 + :max="30"
  146 + style="width: 100px"
  147 + ></el-input-number>
  148 + </div>
  149 + </div>
  150 +
  151 + <!-- 内部的题目列表,允许组内排序 -->
  152 + <draggable
  153 + class="questions"
  154 + v-model="group.subQuestionIds"
  155 + group="questions"
  156 + @end="onItemEnd(group)"
  157 + >
  158 + <div
  159 + v-for="question in group.subQuestionIds"
  160 + :key="question.id"
  161 + class="question-item"
  162 + >
  163 + {{ question.globalIndex }}
  164 + </div>
  165 + </draggable>
  166 + </div>
  167 + </draggable>
  168 + </div>
  169 + </div>
  170 + </div>
  171 +
  172 + <span slot="title" class="title"> 试卷预览 </span>
  173 + </el-dialog>
  174 +</template>
  175 +<script>
  176 +import draggable from "vuedraggable";
  177 +export default {
  178 + components: { draggable },
  179 + name: "wrongQuestionDialog",
  180 + props: {
  181 + visible: {
  182 + type: Boolean,
  183 + default() {
  184 + return false;
  185 + },
  186 + },
  187 + ids: {
  188 + // 用于请求详情接口
  189 + type: Array,
  190 + default() {
  191 + return [];
  192 + },
  193 + },
  194 + subjectName: {
  195 + // 科目
  196 + type: String,
  197 + default() {
  198 + return null;
  199 + },
  200 + },
  201 + },
  202 + data() {
  203 + return {
  204 + score: 0, // 分数
  205 + inputValue: " 2024年11月11日数学-错题复习", // 标题
  206 + isEditing: false, // 用于判断是否处于编辑模式
  207 + selectedIndex: null, // 当前选中的外层对象的索引
  208 + selectedItemIndex: null, // 当前选中的内层对象的索引
  209 + isHovered: false, // 用于控制边框和提示文字的显示
  210 + tooltipPosition: { x: 0, y: 0 }, // 提示文字的位置
  211 + time: "",
  212 + questionList: [
  213 + { label: "全部", value: null },
  214 + { label: "单选题", value: 2 },
  215 + { label: "多选题", value: 3 },
  216 + { label: "判断题", value: 4 },
  217 + { label: "主观题", value: 5 },
  218 + ],
  219 + groups: [
  220 + {
  221 + id: 1,
  222 + name: "单选题",
  223 + input: false,
  224 + items: [
  225 + { id: 1, content: "组一题目1", globalIndex: 1 },
  226 + { id: 2, content: "组一题目2", globalIndex: 2 },
  227 + { id: 3, content: "组一题目3", globalIndex: 3 },
  228 + ],
  229 + },
  230 + {
  231 + id: 2,
  232 + name: "多选题",
  233 + input: false,
  234 + items: [
  235 + { id: 4, content: "组二题目1", globalIndex: 4 },
  236 + { id: 5, content: "组二题目2", globalIndex: 5 },
  237 + { id: 6, content: "组二题目3", globalIndex: 6 },
  238 + ],
  239 + },
  240 + {
  241 + id: 3,
  242 + name: "填空题",
  243 + input: false,
  244 + items: [
  245 + { id: 7, content: "组三题目1", globalIndex: 7 },
  246 + { id: 8, content: "组三题目2", globalIndex: 8 },
  247 + { id: 9, content: "组三题目3", globalIndex: 9 },
  248 + { id: 10, content: "组三题目3", globalIndex: 10 },
  249 + { id: 11, content: "组三题目3", globalIndex: 11 },
  250 + { id: 12, content: "组三题目3", globalIndex: 12 },
  251 + { id: 13, content: "组三题目3", globalIndex: 13 },
  252 + { id: 14, content: "组三题目3", globalIndex: 14 },
  253 + { id: 15, content: "组三题目3", globalIndex: 15 },
  254 + { id: 16, content: "组三题目3", globalIndex: 16 },
  255 + { id: 17, content: "组三题目3", globalIndex: 17 },
  256 + ],
  257 + },
  258 + {
  259 + id: 4,
  260 + name: "问答题",
  261 + input: false,
  262 + items: [
  263 + { id: 18, content: "组二题目1", globalIndex: 18 },
  264 + { id: 19, content: "组二题目2", globalIndex: 19 },
  265 + { id: 20, content: "组二题目3", globalIndex: 20 },
  266 + ],
  267 + },
  268 + ],
  269 + };
  270 + },
  271 +
  272 + watch: {
  273 + visible(val) {
  274 + if (val) {
  275 + // 初始化
  276 + this.init();
  277 + } else {
  278 + // 关闭后处理
  279 + localStorage.setItem("question", JSON.stringify(this.groups));
  280 + }
  281 + },
  282 + },
  283 + methods: {
  284 + // 初始化
  285 + async init() {
  286 + let dataList = JSON.parse(localStorage.getItem("question"));
  287 + if (dataList && dataList.length > 0) {
  288 + this.groups = dataList;
  289 + return;
  290 + }
  291 + console.log("初始化成功");
  292 + this.time = this.getFormattedDate();
  293 + this.inputValue = this.time + this.subjectName + "--错题复习";
  294 + this.$request
  295 + .getWrongQuestionList({ ids: this.ids, page: 1, size: 99999 })
  296 + .then((res) => {
  297 + this.groups = this.classifyByType(
  298 + res.data.records.map((item, index) => {
  299 + return { ...item, globalIndex: index };
  300 + })
  301 + );
  302 + console.log(this.groups, "=-=-=");
  303 + });
  304 + },
  305 + /** 按钮 - 取消 */
  306 + handleClose() {
  307 + this.$emit("update:visible", false);
  308 + },
  309 + onEnd(event) {
  310 + // 拖拽结束时,更新所有项目的 globalIndex
  311 + this.updateGlobalIndexes();
  312 + },
  313 + onItemEnd() {
  314 + // 每次组内排序结束时,更新所有项目的 globalIndex
  315 + this.updateGlobalIndexes();
  316 + },
  317 + updateGlobalIndexes() {
  318 + if (!this.groups) return;
  319 + // 获取所有组的所有项目
  320 + let allItems = [];
  321 + this.groups.forEach((group) => {
  322 + allItems = allItems.concat(group.subQuestionIds);
  323 + });
  324 + allItems.forEach((item, index) => {
  325 + item.globalIndex = index + 1;
  326 + });
  327 + },
  328 + classifyByType(arr) {
  329 + const result = {};
  330 + arr.forEach((item) => {
  331 + const type = item.questionType;
  332 + if (!result[type]) {
  333 + result[type] = [];
  334 + }
  335 + result[type].push(item);
  336 + });
  337 +
  338 + // 将结果对象转换为数组
  339 + return Object.keys(result).map((type) => ({
  340 + type: type,
  341 + questionTitle: this.questionList.find((item) => item.value == type)
  342 + .label,
  343 + questionScore: 1,
  344 + subQuestionIds: result[type],
  345 + }));
  346 + },
  347 + onIFrameLoad(index) {
  348 + const iframeRef = this.$refs["iframe" + index][0]; // 获取对应的 iframe
  349 + console.log(iframeRef, "ref");
  350 + console.log(iframeRef.contentWindow.document, "document");
  351 + },
  352 +
  353 + // 启动编辑模式
  354 + enableEditing() {
  355 + this.isEditing = true;
  356 + this.isHovered = false;
  357 + this.$nextTick(() => {
  358 + // 在 DOM 更新完成后让输入框获取焦点
  359 + this.$refs.editInput.focus();
  360 + console.log(this.$refs.editInput);
  361 + });
  362 + },
  363 +
  364 + // 保存修改后的内容,回车或失去焦点时触发
  365 + save() {
  366 + console.log("回车事件");
  367 +
  368 + this.isEditing = false;
  369 + console.log("保存的内容:", this.inputValue); // 可根据需要将内容保存到其他地方
  370 + },
  371 +
  372 + // 单题title修改
  373 + groupEditing(index) {
  374 + this.$set(this.groups[index], "input", true);
  375 +
  376 + // DOM 更新完成后让对应的输入框获取焦点
  377 + this.$nextTick(() => {
  378 + const refName = `refInput${index}`;
  379 + this.$refs[refName][0].focus(); // 通过动态 ref 获取元素
  380 + });
  381 + },
  382 + // 单体title保存
  383 + groupSave(index) {
  384 + this.$set(this.groups[index], "input", false);
  385 + },
  386 + // 高亮
  387 + selectItem(id, type) {
  388 + if (type == "all") {
  389 + this.selectedIndex = id;
  390 + this.selectedItemIndex = null;
  391 + } else {
  392 + this.selectedItemIndex = id;
  393 + this.selectedIndex = null;
  394 + }
  395 + },
  396 + // 删除题目
  397 + handleDel(id, type) {
  398 + if (type == "all") {
  399 + console.log("删除整个大题");
  400 + } else {
  401 + console.log("删除整个小题");
  402 + }
  403 + },
  404 + handleMouseEnter(event) {
  405 + console.log(event);
  406 +
  407 + this.isHovered = true;
  408 + // 计算提示文字位置 (鼠标右下角)
  409 + this.tooltipPosition = {
  410 + x: event.clientX / 2 + 30,
  411 + y: event.clientY / 2 + 30,
  412 + };
  413 + this.selectedIndex = null;
  414 + this.selectedItemIndex = null;
  415 + },
  416 + handleMouseLeave() {
  417 + this.isHovered = false;
  418 + },
  419 +
  420 + getFormattedDate() {
  421 + const today = new Date();
  422 + const year = today.getFullYear(); // 获取年份
  423 + const month = today.getMonth() + 1; // 获取月份(0-11,需要+1)
  424 + const day = today.getDate(); // 获取日期
  425 + return `${year}年${month}月${day}日`;
  426 + },
  427 + },
  428 +};
  429 +</script>
  430 +<style lang="scss" scoped>
  431 +.title {
  432 + font-weight: 600;
  433 +}
  434 +.test-box {
  435 + display: flex;
  436 + .test {
  437 + flex: 1;
  438 + height: fit-content;
  439 + max-height: 642px;
  440 + overflow-y: auto;
  441 + box-shadow: 0 0 10px 0 #999999;
  442 + margin-right: 20px;
  443 + .test-title {
  444 + font-size: 20px !important;
  445 + font-weight: 700;
  446 + text-align: center;
  447 + color: #000000;
  448 + display: flex;
  449 + align-items: center;
  450 + justify-content: center;
  451 + padding: 10px;
  452 + }
  453 +
  454 + .test-name-input {
  455 + padding: 25px 80px 0 80px;
  456 + display: flex;
  457 + justify-content: space-around;
  458 + align-items: center;
  459 + }
  460 + .test-group {
  461 + .test-group-title {
  462 + padding: 10px 0;
  463 + }
  464 + }
  465 + }
  466 + .edit {
  467 + width: 400px;
  468 + display: flex;
  469 + flex-direction: column;
  470 + .edit-title {
  471 + width: 100%;
  472 + height: 200px;
  473 + border: 1px solid #999999;
  474 + }
  475 + .edit-info {
  476 + flex: 1;
  477 + border: 1px solid #999999;
  478 + margin-top: 20px;
  479 + max-height: 400px;
  480 + padding: 10px;
  481 + overflow: auto;
  482 + .group-item {
  483 + padding: 10px;
  484 + margin: 10px;
  485 + background: rgba(243, 243, 243, 0.6);
  486 + border-radius: 5px;
  487 + .group-title {
  488 + display: flex;
  489 + align-items: center;
  490 + height: 40px;
  491 + justify-content: space-between;
  492 + cursor: pointer;
  493 + }
  494 + }
  495 + .questions {
  496 + display: flex;
  497 + flex-wrap: wrap;
  498 + .question-item {
  499 + width: 35px;
  500 + height: 35px;
  501 + border: 1px solid rgb(172, 188, 249);
  502 + border-radius: 4px;
  503 + cursor: grab;
  504 + margin: 5px 8px;
  505 + line-height: 35px;
  506 + text-align: center;
  507 + font-size: 16px !important;
  508 + }
  509 + }
  510 +
  511 + .question-item:active {
  512 + cursor: grabbing;
  513 + }
  514 + }
  515 + }
  516 +}
  517 +.size {
  518 + font-size: 14px !important;
  519 +}
  520 +.color {
  521 + color: #000000;
  522 +}
  523 +.size-16 {
  524 + font-size: 16px !important;
  525 + font-weight: 600;
  526 + color: #333333;
  527 +}
  528 +::v-deep {
  529 + .el-dialog {
  530 + margin-top: 10vh !important;
  531 + }
  532 +}
  533 +.border {
  534 + border: 1px solid rgb(173, 190, 250);
  535 + position: relative;
  536 + .border-del {
  537 + position: absolute;
  538 + top: -30px;
  539 + right: -1px;
  540 + height: 28px;
  541 + width: fit-content;
  542 + border: 1px solid rgb(173, 190, 250);
  543 + padding: 0 8px;
  544 + color: rgb(67, 141, 255);
  545 + font-size: 14px !important;
  546 + line-height: 28px;
  547 + font-weight: 600;
  548 + cursor: pointer;
  549 + }
  550 +}
  551 +.outer-item,
  552 +.inner-item {
  553 + height: fit-content;
  554 + padding: 0 20px;
  555 + margin: 5px;
  556 +}
  557 +.tooltip {
  558 + position: absolute;
  559 + background: rgba(0, 0, 0, 0.7);
  560 + color: white;
  561 + padding: 5px 10px;
  562 + border-radius: 5px;
  563 + font-size: 12px !important;
  564 +}
  565 +.hover {
  566 + border: 1px solid rgb(115, 142, 246);
  567 + background: rgb(233, 237, 253);
  568 +}
  569 +</style>
0 570 \ No newline at end of file
... ...
src/views/basic/askTestQuestion/wrongQuestion.vue 0 → 100644
  1 +<template>
  2 + <div class="page-content" v-loading="queryLoading">
  3 + <div class="page-title">
  4 + <span class="default-title">错题组卷</span>
  5 + <div>
  6 + <el-select
  7 + v-model="formData.grade"
  8 + placeholder=""
  9 + style="width: 100px"
  10 + @change="changeGrade"
  11 + >
  12 + <el-option
  13 + v-for="item in gradeList"
  14 + :key="item.grade"
  15 + :label="item.gradeName"
  16 + :value="item.grade"
  17 + >
  18 + </el-option>
  19 + </el-select>
  20 + <el-select
  21 + @change="changeSubject"
  22 + v-model="formData.subjectName"
  23 + placeholder=""
  24 + style="width: 100px; margin-left: 10px"
  25 + >
  26 + <el-option
  27 + v-for="(item, index) in subjectList"
  28 + :key="index"
  29 + :label="item.toString()"
  30 + :value="item"
  31 + >
  32 + </el-option>
  33 + </el-select>
  34 + </div>
  35 + </div>
  36 + <div class="info">
  37 + <div class="box-search page-padding">
  38 + <el-row :gutter="20">
  39 + <el-col class="col-margin" :span="24"
  40 + ><span style="font-weight: 600">班级:</span>
  41 + <div
  42 + @click="handleClass(item.classId)"
  43 + class="select-box"
  44 + :class="item.classId === formData.classId ? 'Selected' : ''"
  45 + v-for="(item, index) in classList"
  46 + :key="index"
  47 + >
  48 + {{ item.className }}
  49 + </div>
  50 + </el-col>
  51 + <el-col class="col-margin" :span="12">
  52 + <span style="font-weight: 600">时间:</span>
  53 + <el-date-picker
  54 + value-format="yyyy-MM-dd"
  55 + class="filter-datePicker"
  56 + v-model="formData.dateRange"
  57 + type="daterange"
  58 + range-separator="-"
  59 + >
  60 + </el-date-picker>
  61 + <div
  62 + @click="handleDate(item.type)"
  63 + class="select-box"
  64 + :class="item.type === formData.type ? 'Selected' : ''"
  65 + v-for="(item, index) in dateList"
  66 + :key="index"
  67 + >
  68 + {{ item.name }}
  69 + </div>
  70 + </el-col>
  71 + <el-col class="col-margin" :span="8">
  72 + <span style="font-weight: 600">得分率:</span>
  73 + <div>
  74 + <el-input
  75 + v-model="formData.startScoreRate"
  76 + type="number"
  77 + :min="minValue"
  78 + :max="maxValue"
  79 + @change="startValidateInput(formData.startScoreRate)"
  80 + placeholder="请输入一个数字"
  81 + style="width: 70px; margin-right: 4px"
  82 + ></el-input
  83 + >% ~
  84 + <el-input
  85 + v-model="formData.endScoreRate"
  86 + type="number"
  87 + :min="minValue"
  88 + :max="maxValue"
  89 + @change="endValidateInput(formData.endScoreRate)"
  90 + placeholder="请输入一个数字"
  91 + style="width: 70px; margin-right: 4px"
  92 + ></el-input>
  93 + %
  94 + </div>
  95 + </el-col>
  96 + <el-col class="col-margin" :span="7"
  97 + ><span style="font-weight: 600">题型:</span>
  98 + <div
  99 + @click="handleQuestion(item.value)"
  100 + class="select-box"
  101 + :class="item.value === formData.questionType ? 'Selected' : ''"
  102 + v-for="(item, index) in questionList"
  103 + :key="index"
  104 + >
  105 + {{ item.label }}
  106 + </div></el-col
  107 + >
  108 + <el-col class="col-margin" :span="2"
  109 + ><el-button
  110 + @click="handleSearch"
  111 + style="background: #6b73f5"
  112 + type="primary"
  113 + y
  114 + >筛选错题</el-button
  115 + ></el-col
  116 + >
  117 + </el-row>
  118 + </div>
  119 + <div class="box-info">
  120 + <div class="box-info-title">
  121 + 错题列表
  122 + <span
  123 + >(共<span style="color: #000000; padding: 0 3px">{{
  124 + this.listPage.total
  125 + }}</span
  126 + >道题)</span
  127 + >
  128 + </div>
  129 + <div class="topic" v-for="(item, index) in topicList" :key="index">
  130 + <div class="topic-title">
  131 + <div style="display: flex">
  132 + <div style="display: flex; align-items: center">
  133 + <span class="size"> 第 {{ item.questionIndex }} 题 </span>
  134 + <div
  135 + class="select-box Selected size"
  136 + style="padding: 3px 5px; margin-right: 20px"
  137 + >
  138 + {{
  139 + questionList.find(
  140 + (subItem) => subItem.value == item.questionType
  141 + ).label
  142 + }}
  143 + </div>
  144 + </div>
  145 + <div>
  146 + <span class="color size"> 得分率: </span>
  147 + <span class="score-color size">{{ item.scoreRate }}%</span>
  148 + <span class="size">({{ item.joinClassNames }})</span>
  149 + </div>
  150 + </div>
  151 + <div>
  152 + <span class="color size">来自试卷:</span
  153 + ><span class="size">{{ item.paperName }}</span>
  154 + <span class="color size" style="margin-left: 20px"
  155 + >测试时间:</span
  156 + ><span class="size">{{ item.testTime }}</span>
  157 + </div>
  158 + </div>
  159 +
  160 + <iframe
  161 + class="topic-info"
  162 + :src="item.screenshot"
  163 + style="height: 100% !important"
  164 + />
  165 + <!-- <div class="topic-info" v-html="item.modifiedHtml"></div> -->
  166 + <div class="topic-bottom">
  167 + <div>
  168 + <span v-if="item.answerScreenshot" class="knowledge size"
  169 + ><i class="el-icon-key"></i>查看解析</span
  170 + >
  171 + <span class="color size">知识点:</span>
  172 + <span class="size">{{ item.knowledge }}</span>
  173 + </div>
  174 + <el-button
  175 + v-if="!questions.includes(item.id)"
  176 + class="button"
  177 + type="primary"
  178 + @click="handleAddTest(item)"
  179 + >加入试卷</el-button
  180 + >
  181 + <el-button
  182 + v-else
  183 + plain
  184 + style="padding: 5px 10px"
  185 + @click="handleDel(item)"
  186 + >移除试卷</el-button
  187 + >
  188 + </div>
  189 + </div>
  190 + </div>
  191 + </div>
  192 + <div class="paging">
  193 + <div></div>
  194 + <el-pagination
  195 + @current-change="pageSizeChange"
  196 + background
  197 + layout="prev, pager, next"
  198 + :page-size="listPage.size"
  199 + :current-page="listPage.page"
  200 + :total="listPage.total"
  201 + >
  202 + </el-pagination>
  203 +
  204 + <el-button
  205 + class="button button-size"
  206 + type="primary"
  207 + v-if="
  208 + !arraysEqual(
  209 + topicList.map((item) => item.id),
  210 + questions
  211 + )
  212 + "
  213 + @click="handleAllTest()"
  214 + >全选本页</el-button
  215 + >
  216 + <el-button
  217 + @click="handleDelTest()"
  218 + class="button-size"
  219 + v-else
  220 + plain
  221 + style="padding: 5px 10px"
  222 + >移除本页</el-button
  223 + >
  224 + </div>
  225 + <div class="shopping" @click="handleShop">
  226 + <div class="shopping-select">{{ questions.length }}</div>
  227 + <i class="el-icon-shopping-cart-full" style="padding: 5px 0 0 0"></i>
  228 + <div>
  229 + <div class="size">试</div>
  230 + <div class="size">题</div>
  231 + <div class="size">篮</div>
  232 + </div>
  233 + </div>
  234 + <wrongQuestionDialog
  235 + :visible.sync="visible"
  236 + :ids="questions"
  237 + :subjectName="formData.subjectName"
  238 + />
  239 + </div>
  240 +</template>
  241 +
  242 + <script>
  243 +import { setDateRules } from "@/utils";
  244 +import wrongQuestionDialog from "./components/wrongQuestionDialog.vue";
  245 +export default {
  246 + components: {
  247 + wrongQuestionDialog,
  248 + },
  249 + data() {
  250 + return {
  251 + loading: false,
  252 + minValue: 0, // 最小值
  253 + maxValue: 100, // 最大值
  254 + visible: false, // 购物车弹框控制
  255 + queryLoading: false, //loading
  256 + // 分页
  257 + listPage: {
  258 + page: 1,
  259 + size: 10,
  260 + total: 0,
  261 + },
  262 + // 科目搜索
  263 + subjectList: [],
  264 + // 年级
  265 + gradeList: [],
  266 +
  267 + // 班级选择
  268 + classList: [],
  269 + // 时间选择
  270 + dateList: [
  271 + { type: "onDay", name: "今天" },
  272 + { type: "onWeek", name: "本周" },
  273 + { type: "term", name: "本学期" },
  274 + ],
  275 + // 题型选择
  276 + questionList: [
  277 + { label: "全部", value: null },
  278 + { label: "单选", value: 2 },
  279 + { label: "多选", value: 3 },
  280 + { label: "判断", value: 4 },
  281 + { label: "主观", value: 5 },
  282 + ],
  283 + // 题目列表
  284 + topicList: [],
  285 + // 搜索内容
  286 + formData: {
  287 + classId: 1, // 班级选中
  288 + // type: "onDay", // 时间类型
  289 + type: "onWeek", // 时间类型
  290 + dateRange: ["2022-03-01", "2023-05-01"], // 开始结束时间
  291 + startScoreRate: 0, // 开始区间
  292 + endScoreRate: 100, // 结束区间
  293 + questionType: null, // 题型
  294 + subjectName: null, // 科目
  295 + grade: null, // 年级
  296 + gradeName: null, // 年级名称
  297 + },
  298 + questions: JSON.parse(localStorage.getItem("testlist")) || [],
  299 + };
  300 + },
  301 + created() {
  302 + this.handleDate(this.formData.type);
  303 + this.queryLoading = true;
  304 + this.getGradeList();
  305 + },
  306 + methods: {
  307 + async loadAndModifyHTML(array) {
  308 + let list = array;
  309 + for (let item of list) {
  310 + try {
  311 + // 使用 fetch 获取 HTML 内容
  312 + const response = await fetch(item.screenshot);
  313 + const htmlContent = await response.text();
  314 + // 创建一个临时的 DOM 节点,方便操作 HTML 内容
  315 + const parser = new DOMParser();
  316 + const doc = parser.parseFromString(htmlContent, "text/html");
  317 +
  318 + // // 修改 HTML 内容,例如删除第一个 <p> 标签
  319 + const firstP = doc.querySelector("p");
  320 + // if (firstP) {
  321 + // firstP.remove(); // 删除第一个 <p> 标签
  322 + // }
  323 +
  324 + // 或者修改第一个 < p > 标签的内容;
  325 + // if (firstP) {
  326 + // // console.log(firstP.innerHTML);
  327 +
  328 + // let a = this.processString(firstP.innerHTML);
  329 +
  330 + // firstP.innerHTML = a;
  331 + // // console.log(firstP.textContent);
  332 + // }
  333 +
  334 + // 更新列表中的对象,保存修改后的 HTML
  335 + item.modifiedHtml = doc.documentElement.outerHTML; // 或者将 doc.body.innerHTML 保存到 item 中
  336 + } catch (error) {
  337 + console.error(
  338 + `Error fetching or modifying HTML for item ${item.id}:`,
  339 + error
  340 + );
  341 + }
  342 + }
  343 + return list;
  344 + },
  345 + // 获取列表
  346 + async getList() {
  347 + let param = {
  348 + ...this.listPage,
  349 + ...this.formData,
  350 + startDate: this.formData.dateRange[0],
  351 + endDate: this.formData.dateRange[1],
  352 + };
  353 + let data = await this.$request.getWrongQuestionList(param);
  354 + this.queryLoading = false;
  355 + this.topicList = data.data.records;
  356 + this.listPage.total = data.data.total;
  357 + // this.topicList = await this.loadAndModifyHTML(data.data.records);
  358 + },
  359 + pageSizeChange(value) {
  360 + this.listPage.page = value;
  361 + this.handleSearch();
  362 + },
  363 +
  364 + // 全选按钮
  365 + handleAll() {
  366 + console.log(123123);
  367 + },
  368 +
  369 + // 班级选中
  370 + handleClass(id) {
  371 + this.formData.classId = id;
  372 + },
  373 +
  374 + // 题型选中
  375 +
  376 + handleQuestion(id) {
  377 + this.formData.questionType = id;
  378 + },
  379 + // 时间选中
  380 + handleDate(type) {
  381 + this.formData.type = type;
  382 + let params = setDateRules(type);
  383 + this.formData.dateRange = [params.startDay, params.endDay];
  384 + },
  385 +
  386 + // 输入不超过100
  387 + startValidateInput(value) {
  388 + if (value < this.minValue) {
  389 + this.formData.startScoreRate = this.minValue; // 修正值
  390 + }
  391 + if (value > this.maxValue) {
  392 + this.formData.startScoreRate = this.maxValue; // 修正值
  393 + }
  394 + if (value > this.formData.endScoreRate) {
  395 + this.formData.startScoreRate = this.formData.endScoreRate;
  396 + }
  397 + },
  398 + // 输入不超过100
  399 + endValidateInput(value) {
  400 + if (value < this.minValue) {
  401 + this.formData.endScoreRate = this.minValue; // 修正值
  402 + }
  403 + if (value > this.maxValue) {
  404 + this.formData.endScoreRate = this.maxValue; // 修正值
  405 + }
  406 + if (value < this.formData.startScoreRate) {
  407 + this.formData.endScoreRate = this.formData.startScoreRate;
  408 + }
  409 + },
  410 +
  411 + // 搜索按钮
  412 + handleSearch() {
  413 + this.queryLoading = true;
  414 + this.getList();
  415 + },
  416 +
  417 + // 加入试卷
  418 + handleAddTest(item) {
  419 + if (this.questions.includes(item.id)) return;
  420 + this.questions = JSON.parse(localStorage.getItem("testlist")) || [];
  421 + this.questions.push(item.id);
  422 + localStorage.setItem("testlist", JSON.stringify(this.questions));
  423 + },
  424 + // 移除试卷
  425 + handleDel(item) {
  426 + let _index = this.questions.indexOf(item.id);
  427 + if (_index !== -1) {
  428 + this.questions.splice(_index, 1); // 从索引位置删除一个元素
  429 + localStorage.setItem("testlist", JSON.stringify(this.questions));
  430 + }
  431 + },
  432 + // 全部选中
  433 + handleAllTest() {
  434 + // 获取原来的localStorage
  435 + let list = JSON.parse(localStorage.getItem("testlist"));
  436 + console.log(list);
  437 +
  438 + let ids = this.topicList.map((item) => {
  439 + return item.id;
  440 + });
  441 + this.questions = this.removeDuplicates([...ids, ...list]);
  442 + localStorage.setItem("testlist", JSON.stringify(this.questions));
  443 + },
  444 + // 全部删除
  445 + handleDelTest() {
  446 + let list = this.removeMatchingValues(
  447 + this.topicList.map((item) => item.id),
  448 + this.questions
  449 + );
  450 + this.questions = list;
  451 + localStorage.setItem("testlist", JSON.stringify(this.questions));
  452 + },
  453 + // 重置 去除locastorage 以及 questions
  454 + handleRest() {
  455 + this.questions = [];
  456 + localStorage.setItem("testlist", JSON.stringify(this.questions));
  457 + },
  458 + // 去重
  459 + removeDuplicates(arr) {
  460 + return [...new Set(arr)];
  461 + },
  462 + // 去除第二数组中存在第一数组中的值
  463 + removeMatchingValues(arr1, arr2) {
  464 + // 将第一个数组的值存入 Set,提高查找效率
  465 + const valuesSet = new Set(arr1);
  466 +
  467 + // 过滤第二个数组,保留不在 Set 中的值
  468 + return arr2.filter((value) => !valuesSet.has(value));
  469 + },
  470 +
  471 + // 判断第一个数组在第二个种是否全部存在
  472 + arraysEqual(arr1, arr2) {
  473 + // 将第二个数组转为 Set
  474 + const valuesSet = new Set(arr2);
  475 +
  476 + // 判断第一个数组中的值是否都在 Set 中
  477 + return arr1.every((value) => valuesSet.has(value));
  478 + },
  479 +
  480 + // 购物车触发弹框
  481 + handleShop() {
  482 + if (this.questions.length > 0) {
  483 + this.visible = true;
  484 + }
  485 + },
  486 +
  487 + // 获取科目列表
  488 + async getSubject(params) {
  489 + let data = await this.$request.getSubjectList(params);
  490 + this.subjectList = data.data.subjectNames;
  491 + this.formData.subjectName = this.subjectList[0];
  492 + this.getClassList();
  493 + },
  494 + // 获取年级列表
  495 + async getGradeList() {
  496 + let data = await this.$request.getClassList();
  497 + this.gradeList = Array.from(
  498 + new Map(data.data.list.map((item) => [item.section, item])).values()
  499 + );
  500 + this.formData.grade = this.gradeList[0].grade;
  501 + this.formData.gradeName = this.gradeList.find(
  502 + (itme) => itme.grade == this.formData.grade
  503 + ).gradeName;
  504 + this.getSubject({ gradeName: this.formData.gradeName });
  505 + },
  506 + // 获取班级信息
  507 + async getClassList() {
  508 + let data = await this.$request.getClassList({
  509 + grade: this.formData.grade,
  510 + subjectName: this.formData.subjectName,
  511 + });
  512 + this.classList = [
  513 + { className: "全部", classId: null },
  514 + ...data.data.list,
  515 + ];
  516 + this.formData.classId = null;
  517 + this.getList();
  518 + },
  519 +
  520 + // 年级改变
  521 + changeGrade() {
  522 + this.queryLoading = true;
  523 + this.getSubject();
  524 + },
  525 + // 科目改变
  526 + changeSubject() {
  527 + this.queryLoading = true;
  528 + this.getClassList();
  529 + },
  530 + processString(input) {
  531 + // 正则表达式:匹配最多三位数字
  532 + const regex = /^(\d{1,3})/;
  533 +
  534 + // 测试字符串是否以数字开头
  535 + const match = input.match(regex);
  536 +
  537 + if (match) {
  538 + // 如果匹配,去掉开头的数字并返回剩余部分
  539 + return input.substring(match[0].length + 1).trim();
  540 + }
  541 +
  542 + // 如果没有匹配,直接返回原字符串
  543 + return input;
  544 + },
  545 + },
  546 +};
  547 +</script>
  548 +
  549 + <style lang="scss" scoped>
  550 +.page-content {
  551 + box-sizing: border-box;
  552 + padding: 0 20px;
  553 + height: 100%;
  554 + display: flex;
  555 + flex-direction: column;
  556 + background-color: #f5f6fa;
  557 + font-size: 14px;
  558 + color: #000000;
  559 + position: relative;
  560 + .page-title {
  561 + padding: 20px 0;
  562 + display: flex;
  563 + justify-content: space-between;
  564 + }
  565 + .info {
  566 + flex: 1;
  567 + overflow: auto;
  568 + display: flex;
  569 + flex-direction: column;
  570 + .box-search {
  571 + background: #ffffff;
  572 + border-radius: 5px;
  573 + }
  574 + .box-info {
  575 + margin-top: 15px;
  576 + background: #ffffff;
  577 + flex: 1;
  578 + padding: 10px 20px;
  579 + .box-info-title {
  580 + font-size: 16px !important;
  581 + font-weight: 600;
  582 + color: #000000;
  583 + span {
  584 + font-size: 14px !important;
  585 + color: #999999;
  586 + }
  587 + }
  588 + .topic {
  589 + height: fit-content;
  590 + max-height: 500px;
  591 + margin-top: 15px;
  592 + display: flex;
  593 + flex-direction: column;
  594 + box-shadow: 0px 0px 9px 0px #999999;
  595 + border-radius: 5px;
  596 + .topic-title {
  597 + height: 45px;
  598 + background: rgb(243, 243, 243);
  599 + display: flex;
  600 + justify-content: space-between;
  601 + align-items: center;
  602 + font-weight: 600;
  603 + padding: 0 20px;
  604 + border-radius: 5px 5px 0 0;
  605 + }
  606 + .topic-info {
  607 + height: 100% !important;
  608 + // flex: 1;
  609 + // overflow-y: auto;
  610 + padding: 10px 20px;
  611 + }
  612 + .topic-bottom {
  613 + height: 45px;
  614 + display: flex;
  615 + align-items: center;
  616 + justify-content: space-between;
  617 + margin: 0 20px;
  618 + font-weight: 600;
  619 + box-sizing: border-box;
  620 + border-top: 1px solid #d2cdcd;
  621 + .knowledge {
  622 + color: rgb(105, 134, 205);
  623 + margin-right: 30px;
  624 + cursor: pointer;
  625 + }
  626 + }
  627 + }
  628 + }
  629 + }
  630 + .paging {
  631 + display: flex;
  632 + justify-content: space-between;
  633 + align-items: center;
  634 + border-top: 1px solid #666666;
  635 + background: #ffffff;
  636 + box-shadow: 0 0 3px 0 #666666;
  637 + padding: 5px 20px 0 20px;
  638 + }
  639 +
  640 + .shopping {
  641 + width: 40px;
  642 + height: 120px;
  643 + position: fixed;
  644 + top: 30%;
  645 + right: 0;
  646 + background: #6b73f5;
  647 + border-radius: 10px 0 0 10px;
  648 + color: #ffffff;
  649 + font-size: 12px !important;
  650 + font-weight: 600;
  651 + display: flex;
  652 + flex-direction: column;
  653 + align-items: center;
  654 + justify-content: space-around;
  655 + box-sizing: border-box;
  656 + padding: 10px 0;
  657 + text-align: center;
  658 + cursor: pointer;
  659 + .shopping-select {
  660 + width: 20px;
  661 + height: 20px;
  662 + border-radius: 50%;
  663 + background: yellow;
  664 + color: red;
  665 + line-height: 20px;
  666 + font-size: 12px !important;
  667 + }
  668 + .size {
  669 + font-size: 14px !important;
  670 + }
  671 + }
  672 +}
  673 +
  674 +.page-padding {
  675 + box-sizing: border-box;
  676 + padding: 14px 20px;
  677 +}
  678 +.col-margin {
  679 + margin: 10px 0;
  680 + display: flex;
  681 + align-items: center;
  682 +}
  683 +.button {
  684 + background: #6b73f5;
  685 + padding: 5px 10px;
  686 +}
  687 +.select-box {
  688 + padding: 5px 10px;
  689 + border-radius: 5px;
  690 + margin: 0 8px;
  691 + cursor: pointer;
  692 +}
  693 +.Selected {
  694 + background: rgba(223, 229, 253, 1);
  695 + color: rgb(105, 134, 205);
  696 + cursor: pointer;
  697 +}
  698 +
  699 +.color {
  700 + color: #999999;
  701 +}
  702 +.score-color {
  703 + color: rgb(234, 160, 73);
  704 + margin-right: 10px;
  705 +}
  706 +.size {
  707 + font-size: 14px !important;
  708 +}
  709 +</style>
0 710 \ No newline at end of file
... ...