Commit 109a6161ea4a0b81f08f94bf0db66756c07c8c5b

Authored by 梁保满
1 parent f2143fa8

班主任汇总选择问题

src/views/basic/ask/analysis.vue
@@ -134,9 +134,9 @@ export default { @@ -134,9 +134,9 @@ export default {
134 this.$store.getters.info.showRole || 134 this.$store.getters.info.showRole ||
135 this.$store.getters.info.permissions[0].role; 135 this.$store.getters.info.permissions[0].role;
136 this.types = Number(this.$route.query.types); 136 this.types = Number(this.$route.query.types);
137 - this.className = this.$route.query.className; 137 + // this.className = this.$route.query.className;
138 const queryData = JSON.parse(this.$route.query.params); 138 const queryData = JSON.parse(this.$route.query.params);
139 - this.classId = queryData.classId; 139 + this.classId = this.$route.query.classId;
140 console.log(this.$route.query); 140 console.log(this.$route.query);
141 this.subjectNames = this.$route.query.subjectNames.split(","); 141 this.subjectNames = this.$route.query.subjectNames.split(",");
142 if (this.types == 1) { 142 if (this.types == 1) {
@@ -163,7 +163,8 @@ export default { @@ -163,7 +163,8 @@ export default {
163 this.status = this.$route.query.status ? this.$route.query.status : 0; 163 this.status = this.$route.query.status ? this.$route.query.status : 0;
164 this._QueryData(); 164 this._QueryData();
165 this.types != 1 ? this._QueryDataQuestionRank() : ""; 165 this.types != 1 ? this._QueryDataQuestionRank() : "";
166 - this.types != 3 ? this.periodDetail() : ""; 166 + // this.types != 3 ? this.periodDetail() : "";
  167 + this.periodDetail();
167 }, 168 },
168 methods: { 169 methods: {
169 print() { 170 print() {
@@ -215,6 +216,7 @@ export default { @@ -215,6 +216,7 @@ export default {
215 periodIds: this.id, 216 periodIds: this.id,
216 }); 217 });
217 if (status == 0) { 218 if (status == 0) {
  219 + this.className = data.className || "";
218 this.detail = { ...data }; 220 this.detail = { ...data };
219 this.detail.duration = this.detail.duration 221 this.detail.duration = this.detail.duration
220 ? (this.detail.duration / 60).toFixed(2) 222 ? (this.detail.duration / 60).toFixed(2)
src/views/basic/ask/components/detail.vue
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 已答总正确率:{{ detail.answerCorrectRate }}% 38 已答总正确率:{{ detail.answerCorrectRate }}%
39 </li> 39 </li>
40 <li class="info-item"> 40 <li class="info-item">
41 - 总参与度:{{ detail.participationRate }}% 41 + 总参与度:{{ detail.participationRate }}%
42 </li> 42 </li>
43 43
44 </ul> 44 </ul>
src/views/basic/ask/list.vue
@@ -174,6 +174,7 @@ export default { @@ -174,6 +174,7 @@ export default {
174 }, 174 },
175 tableData: [], 175 tableData: [],
176 multipleSelection: [], 176 multipleSelection: [],
  177 + multipleSelectionObj: {},
177 page: 1, 178 page: 1,
178 size: 20, 179 size: 20,
179 total: 0, 180 total: 0,
@@ -196,6 +197,14 @@ export default { @@ -196,6 +197,14 @@ export default {
196 this.init(); 197 this.init();
197 } 198 }
198 }, 199 },
  200 + multipleSelection: {
  201 + handler: function (nVal) {
  202 + this.multipleSelectionObj[this.page] = this.tableData.filter((item) =>
  203 + nVal.includes(item.id)
  204 + );
  205 + },
  206 + deep: true,
  207 + },
199 }, 208 },
200 methods: { 209 methods: {
201 //初始化 210 //初始化
@@ -225,19 +234,17 @@ export default { @@ -225,19 +234,17 @@ export default {
225 // 班主任教学班不能与行政班汇总 234 // 班主任教学班不能与行政班汇总
226 checkboxDisabled(obj) { 235 checkboxDisabled(obj) {
227 if (this.role == "ROLE_BANZHUREN") { 236 if (this.role == "ROLE_BANZHUREN") {
228 - let id = this.multipleSelection[0] || "";  
229 - if (id) {  
230 - let classId;  
231 - for (let i = 0; i < this.tableData.length; i++) {  
232 - if (this.tableData[i].id == id) {  
233 - classId = this.tableData[i].classId;  
234 - break;  
235 - }  
236 - } 237 + let classId =
  238 + (this.multipleSelectionObj[1] &&
  239 + this.multipleSelectionObj[1][0]?.classId) ||
  240 + "";
  241 + if (classId) {
237 return obj.classId == classId ? false : true; 242 return obj.classId == classId ? false : true;
238 } else { 243 } else {
239 return false; 244 return false;
240 } 245 }
  246 + } else {
  247 + return false;
241 } 248 }
242 }, 249 },
243 //去详情 250 //去详情
@@ -260,28 +267,51 @@ export default { @@ -260,28 +267,51 @@ export default {
260 return; 267 return;
261 } 268 }
262 let subjectArr = []; 269 let subjectArr = [];
263 - this.tableData.map((item) => { 270 + let classId = "";
  271 + let multipleData = [];
  272 + let multipleSelectionData = [];
  273 + Object.keys(this.multipleSelectionObj).map((keys) => {
  274 + multipleSelectionData = multipleSelectionData.concat(
  275 + this.multipleSelectionObj[keys]
  276 + );
  277 + });
  278 + multipleSelectionData.map((item) => {
264 if (this.multipleSelection.includes(item.id)) { 279 if (this.multipleSelection.includes(item.id)) {
265 subjectArr.push(item.subjectName); 280 subjectArr.push(item.subjectName);
  281 + multipleData.push(item);
  282 + classId = item.classId;
266 } 283 }
267 }); 284 });
268 subjectArr = [...new Set(subjectArr)]; 285 subjectArr = [...new Set(subjectArr)];
269 - this.$router.push({  
270 - path: "/askAnalysis",  
271 - query: {  
272 - id: JSON.stringify(this.multipleSelection),  
273 - types:  
274 - this.multipleSelection.length == 1  
275 - ? 1  
276 - : subjectArr.length == 1  
277 - ? 2  
278 - : 3,  
279 - subjectNames: subjectArr.join(","),  
280 - params: this.$route.query.params,  
281 - className: this.$route.query.className,  
282 - },  
283 - }); 286 + if (this.multipleSelection.length == 1) {
  287 + this.$router.push({
  288 + path: "/askAnalysis",
  289 + query: {
  290 + id: JSON.stringify(this.multipleSelection),
  291 + types: 1,
  292 + subjectNames: subjectArr[0],
  293 + params: this.$route.query.params,
  294 + },
  295 + });
  296 + } else {
  297 + this.$router.push({
  298 + path: "/askAnalysis",
  299 + query: {
  300 + id: JSON.stringify(this.multipleSelection),
  301 + types:
  302 + this.multipleSelection.length == 1
  303 + ? 1
  304 + : subjectArr.length == 1
  305 + ? 2
  306 + : 3,
  307 + subjectNames: subjectArr.join(","),
  308 + params: this.$route.query.params,
  309 + classId: classId,
  310 + },
  311 + });
  312 + }
284 }, 313 },
  314 +
285 //删除 315 //删除
286 async remove(obj) { 316 async remove(obj) {
287 const { data, status, info } = await this.$request.deletePaperReport({ 317 const { data, status, info } = await this.$request.deletePaperReport({
src/views/basic/test/list.vue
@@ -391,15 +391,11 @@ export default { @@ -391,15 +391,11 @@ export default {
391 checkboxDisabled(obj) { 391 checkboxDisabled(obj) {
392 if (obj.examStartTime) { 392 if (obj.examStartTime) {
393 if (this.role == "ROLE_BANZHUREN") { 393 if (this.role == "ROLE_BANZHUREN") {
394 - let id = this.multipleSelection[0] || "";  
395 - if (id) {  
396 - let classId;  
397 - for (let i = 0; i < this.tableData.length; i++) {  
398 - if (this.tableData[i].id == id) {  
399 - classId = this.tableData[i].classId;  
400 - break;  
401 - }  
402 - } 394 + let classId =
  395 + (this.multipleSelectionObj[1] &&
  396 + this.multipleSelectionObj[1][0]?.classId) ||
  397 + "";
  398 + if (classId) {
403 return obj.classId == classId ? false : true; 399 return obj.classId == classId ? false : true;
404 } else { 400 } else {
405 return false; 401 return false;
@@ -493,6 +489,7 @@ export default { @@ -493,6 +489,7 @@ export default {
493 if (this.query.classId?.length > 1) { 489 if (this.query.classId?.length > 1) {
494 pageSize = 9999; 490 pageSize = 9999;
495 } 491 }
  492 + this.tableData = [];
496 const examReportList = 493 const examReportList =
497 this.role == "ROLE_PERSONAL" 494 this.role == "ROLE_PERSONAL"
498 ? this.$request.pExamReportList 495 ? this.$request.pExamReportList