Commit 748acd1a6e445bc41d28bf50db67414171fb3fb1
1 parent
ea5696f777
Exists in
master
and in
3 other branches
solve bugs in progressCardReport
Showing
3 changed files
with
144 additions
and
146 deletions
Show diff stats
src/pages/Administrator/bulkImport.vue
... | ... | @@ -62,7 +62,7 @@ |
62 | 62 | <v-icon small class="pr-1">refresh</v-icon>Upload |
63 | 63 | </v-btn> |
64 | 64 | </v-flex> |
65 | - <v-flex xs6 sm4 lg2 class="mt-1" @click="importParent"> | |
65 | + <v-flex xs6 sm4 lg2 class="mt-1" @click="importParent" :loading="parentLoading"> | |
66 | 66 | <v-btn class="grey" dark block>import</v-btn> |
67 | 67 | </v-flex> |
68 | 68 | <v-flex xs12 sm4 lg2 class="mt-1"> |
... | ... | @@ -97,7 +97,7 @@ |
97 | 97 | </v-btn> |
98 | 98 | </v-flex> |
99 | 99 | <v-flex xs6 sm4 lg2 class="mt-1"> |
100 | - <v-btn class="grey" dark block @click="importUser">import</v-btn> | |
100 | + <v-btn class="grey" dark block @click="importUser" :loading="userLoading">import</v-btn> | |
101 | 101 | </v-flex> |
102 | 102 | <v-flex xs12 sm4 lg2 class="mt-1"> |
103 | 103 | <download-csv :data="userData"> |
... | ... | @@ -131,7 +131,7 @@ |
131 | 131 | </v-btn> |
132 | 132 | </v-flex> |
133 | 133 | <v-flex xs6 sm4 lg2 class="mt-1"> |
134 | - <v-btn class="grey" dark block @click="importBook">import</v-btn> | |
134 | + <v-btn class="grey" dark block @click="importBook" :loading="BookLoading">import</v-btn> | |
135 | 135 | </v-flex> |
136 | 136 | <v-flex xs12 sm4 lg2 class="mt-1"> |
137 | 137 | <download-csv :data="bookData"> |
... | ... | @@ -165,7 +165,13 @@ |
165 | 165 | </v-btn> |
166 | 166 | </v-flex> |
167 | 167 | <v-flex xs6 sm4 lg2 class="mt-1"> |
168 | - <v-btn class="grey" dark block @click="importStudent()">import</v-btn> | |
168 | + <v-btn | |
169 | + class="grey" | |
170 | + dark | |
171 | + block | |
172 | + @click="importStudent()" | |
173 | + :loading="studentLoading" | |
174 | + >import</v-btn> | |
169 | 175 | </v-flex> |
170 | 176 | <v-flex xs12 sm4 lg2 class="mt-1"> |
171 | 177 | <download-csv :data="studentData"> |
... | ... | @@ -210,7 +216,7 @@ |
210 | 216 | :right="x === 'right'" |
211 | 217 | :vertical="mode === 'vertical'" |
212 | 218 | v-model="snackbar" |
213 | - :color= color | |
219 | + :color="color" | |
214 | 220 | >{{ text }}</v-snackbar> |
215 | 221 | </v-container> |
216 | 222 | </template> |
... | ... | @@ -224,10 +230,15 @@ import studentData from "@/script/students.js"; |
224 | 230 | import parentData from "@/script/parents.js"; |
225 | 231 | import userData from "@/script/users.js"; |
226 | 232 | import bookData from "@/script/books.js"; |
233 | +import XLSX from "xlsx"; | |
227 | 234 | |
228 | 235 | export default { |
229 | 236 | data: () => ({ |
230 | 237 | loading: false, |
238 | + parentLoading: false, | |
239 | + userLoading: false, | |
240 | + BookLoading: false, | |
241 | + studentLoading: false, | |
231 | 242 | snackbar: false, |
232 | 243 | y: "top", |
233 | 244 | x: "right", |
... | ... | @@ -268,147 +279,133 @@ export default { |
268 | 279 | pickStudentFile() { |
269 | 280 | this.$refs.studentfile.click(); |
270 | 281 | }, |
271 | - convertFile() { | |
282 | + convertFile(e) { | |
272 | 283 | const input = document.getElementById("fileInput"); |
273 | - const reader = new FileReader(); | |
274 | - reader.onload = () => { | |
275 | - let text = reader.result; | |
276 | - //convert text to json here | |
277 | - var json = this.csvJSON(text); | |
278 | - }; | |
279 | - reader.readAsText(input.files[0]); | |
280 | 284 | this.teacherFileName = input.files[0].name; |
285 | + // const reader = new FileReader(); | |
286 | + // console.log("reader", reader); | |
287 | + // reader.onload = () => { | |
288 | + // let text = reader.result; | |
289 | + // //convert text to json here | |
290 | + // console.log("text", text); | |
291 | + // var json = this.csvJSON(text); | |
292 | + // }; | |
293 | + // reader.readAsText(input.files[0]); | |
294 | + var files = e.target.files, | |
295 | + f = files[0]; | |
296 | + var reader = new FileReader(); | |
297 | + let array = []; | |
298 | + let _this = this; | |
299 | + reader.onload = function(e) { | |
300 | + var data = new Uint8Array(e.target.result); | |
301 | + var workbook = XLSX.read(data, { type: "array" }); | |
302 | + let sheetName = workbook.SheetNames[0]; | |
303 | + // /* DO SOMETHING WITH workbook HERE */ | |
304 | + let worksheet = workbook.Sheets[sheetName]; | |
305 | + array = XLSX.utils.sheet_to_json(worksheet); | |
306 | + _this.teacherFileJson = array; | |
307 | + }; | |
308 | + reader.readAsArrayBuffer(f); | |
281 | 309 | }, |
282 | - parentFile() { | |
310 | + parentFile(e) { | |
283 | 311 | const input = document.getElementById("parentInput"); |
284 | - const reader = new FileReader(); | |
285 | - reader.onload = () => { | |
286 | - let text = reader.result; | |
287 | - //convert text to json here | |
288 | - var json = this.csvParentJSON(text); | |
289 | - }; | |
290 | - reader.readAsText(input.files[0]); | |
291 | 312 | this.parentFileName = input.files[0].name; |
313 | + console.log("this.parentFileName", this.parentFileName); | |
314 | + var files = e.target.files, | |
315 | + f = files[0]; | |
316 | + var reader = new FileReader(); | |
317 | + let array = []; | |
318 | + let _this = this; | |
319 | + reader.onload = function(e) { | |
320 | + var data = new Uint8Array(e.target.result); | |
321 | + var workbook = XLSX.read(data, { type: "array" }); | |
322 | + let sheetName = workbook.SheetNames[0]; | |
323 | + // /* DO SOMETHING WITH workbook HERE */ | |
324 | + let worksheet = workbook.Sheets[sheetName]; | |
325 | + array = XLSX.utils.sheet_to_json(worksheet); | |
326 | + _this.parentFileJson = array; | |
327 | + }; | |
328 | + reader.readAsArrayBuffer(f); | |
292 | 329 | }, |
293 | - userFile() { | |
330 | + userFile(e) { | |
294 | 331 | const input = document.getElementById("userInput"); |
295 | - const reader = new FileReader(); | |
296 | - reader.onload = () => { | |
297 | - let text = reader.result; | |
298 | - //convert text to json here | |
299 | - var json = this.csvUserJSON(text); | |
300 | - }; | |
301 | - reader.readAsText(input.files[0]); | |
302 | 332 | this.userFileName = input.files[0].name; |
333 | + var files = e.target.files, | |
334 | + f = files[0]; | |
335 | + var reader = new FileReader(); | |
336 | + let array = []; | |
337 | + let _this = this; | |
338 | + reader.onload = function(e) { | |
339 | + var data = new Uint8Array(e.target.result); | |
340 | + var workbook = XLSX.read(data, { type: "array" }); | |
341 | + let sheetName = workbook.SheetNames[0]; | |
342 | + // /* DO SOMETHING WITH workbook HERE */ | |
343 | + let worksheet = workbook.Sheets[sheetName]; | |
344 | + array = XLSX.utils.sheet_to_json(worksheet); | |
345 | + _this.userFileJson = array; | |
346 | + }; | |
347 | + reader.readAsArrayBuffer(f); | |
303 | 348 | }, |
304 | - bookFile() { | |
349 | + bookFile(e) { | |
305 | 350 | const input = document.getElementById("bookInput"); |
306 | - const reader = new FileReader(); | |
307 | - reader.onload = () => { | |
308 | - let text = reader.result; | |
309 | - //convert text to json here | |
310 | - var json = this.csvBookJSON(text); | |
311 | - }; | |
312 | - reader.readAsText(input.files[0]); | |
313 | 351 | this.bookFileName = input.files[0].name; |
352 | + console.log("this.bookFileName", this.bookFileName); | |
353 | + var files = e.target.files, | |
354 | + f = files[0]; | |
355 | + console.log("this.bookFileName", files); | |
356 | + var reader = new FileReader(); | |
357 | + console.log("reader================", reader); | |
358 | + let array = []; | |
359 | + let _this = this; | |
360 | + reader.onload = function(e) { | |
361 | + console.log("data", e.target.result); | |
362 | + var data = new Uint8Array(e.target.result); | |
363 | + console.log("data", data); | |
364 | + var workbook = XLSX.read(data, { type: "array" }); | |
365 | + let sheetName = workbook.SheetNames[0]; | |
366 | + // /* DO SOMETHING WITH workbook HERE */ | |
367 | + let worksheet = workbook.Sheets[sheetName]; | |
368 | + array = XLSX.utils.sheet_to_json(worksheet); | |
369 | + _this.bookFileJson = array; | |
370 | + console.log("this.bookFileJson ", _this.bookFileJson); | |
371 | + }; | |
372 | + reader.readAsArrayBuffer(f); | |
314 | 373 | }, |
315 | - studentFile() { | |
374 | + studentFile(e) { | |
316 | 375 | const input = document.getElementById("studentInput"); |
317 | - const reader = new FileReader(); | |
318 | - reader.onload = () => { | |
319 | - let text = reader.result; | |
320 | - //convert text to json here | |
321 | - var json = this.csvStudentJSON(text); | |
322 | - }; | |
323 | - reader.readAsText(input.files[0]); | |
324 | 376 | this.bookStudentName = input.files[0].name; |
377 | + var files = e.target.files, | |
378 | + f = files[0]; | |
379 | + var reader = new FileReader(); | |
380 | + let array = []; | |
381 | + let _this = this; | |
382 | + reader.onload = function(e) { | |
383 | + var data = new Uint8Array(e.target.result); | |
384 | + var workbook = XLSX.read(data, { type: "array" }); | |
385 | + let sheetName = workbook.SheetNames[0]; | |
386 | + // /* DO SOMETHING WITH workbook HERE */ | |
387 | + let worksheet = workbook.Sheets[sheetName]; | |
388 | + array = XLSX.utils.sheet_to_json(worksheet); | |
389 | + _this.studentFileJson = array; | |
390 | + }; | |
391 | + reader.readAsArrayBuffer(f); | |
325 | 392 | }, |
326 | - csvJSON(csv) { | |
327 | - var lines = csv.split("\n"); | |
328 | - | |
329 | - var result = []; | |
330 | - var headers = lines[0].split(","); | |
331 | - | |
332 | - for (var i = 1; i < lines.length; i++) { | |
333 | - var obj = {}; | |
334 | - var currentline = lines[i].split(","); | |
335 | - | |
336 | - for (var j = 0; j < headers.length; j++) { | |
337 | - obj[headers[j]] = currentline[j]; | |
338 | - } | |
339 | - this.teacherFileJson.push(obj); | |
340 | - } | |
341 | - }, | |
342 | - csvParentJSON(csvParent) { | |
343 | - var lines = csvParent.split("\n"); | |
344 | - | |
345 | - var result = []; | |
346 | - | |
347 | - var headers = lines[0].split(","); | |
348 | - | |
349 | - for (var i = 1; i < lines.length; i++) { | |
350 | - var obj = {}; | |
351 | - var currentline = lines[i].split(","); | |
352 | - | |
353 | - for (var j = 0; j < headers.length; j++) { | |
354 | - obj[headers[j]] = currentline[j]; | |
355 | - } | |
356 | - this.parentFileJson.push(obj); | |
357 | - } | |
358 | - }, | |
359 | - csvUserJSON(cvsUser) { | |
360 | - var lines = cvsUser.split("\n"); | |
361 | - | |
362 | - var result = []; | |
363 | - | |
364 | - var headers = lines[0].split(","); | |
365 | - | |
366 | - for (var i = 1; i < lines.length; i++) { | |
367 | - var obj = {}; | |
368 | - var currentline = lines[i].split(","); | |
369 | - | |
370 | - for (var j = 0; j < headers.length; j++) { | |
371 | - obj[headers[j]] = currentline[j]; | |
372 | - } | |
373 | - | |
374 | - this.userFileJson.push(obj); | |
375 | - } | |
376 | - }, | |
377 | - csvBookJSON(cvsBook) { | |
378 | - var lines = cvsBook.split("\n"); | |
379 | - | |
380 | - var result = []; | |
381 | - | |
382 | - var headers = lines[0].split(","); | |
383 | - | |
384 | - for (var i = 1; i < lines.length; i++) { | |
385 | - var obj = {}; | |
386 | - var currentline = lines[i].split(","); | |
387 | - | |
388 | - for (var j = 0; j < headers.length; j++) { | |
389 | - obj[headers[j]] = currentline[j]; | |
390 | - } | |
391 | - | |
392 | - this.bookFileJson.push(obj); | |
393 | - } | |
394 | - }, | |
395 | - csvStudentJSON(cvsBook) { | |
396 | - var lines = cvsBook.split("\n"); | |
397 | - | |
398 | - var result = []; | |
393 | + // csvJSON(csv) { | |
394 | + // var lines = csv.split("\n"); | |
399 | 395 | |
400 | - var headers = lines[0].split(","); | |
396 | + // var result = []; | |
397 | + // var headers = lines[0].split(","); | |
401 | 398 | |
402 | - for (var i = 1; i < lines.length; i++) { | |
403 | - var obj = {}; | |
404 | - var currentline = lines[i].split(","); | |
399 | + // for (var i = 1; i < lines.length; i++) { | |
400 | + // var obj = {}; | |
401 | + // var currentline = lines[i].split(","); | |
405 | 402 | |
406 | - for (var j = 0; j < headers.length; j++) { | |
407 | - obj[headers[j]] = currentline[j]; | |
408 | - } | |
409 | - this.studentFileJson.push(obj); | |
410 | - } | |
411 | - }, | |
403 | + // for (var j = 0; j < headers.length; j++) { | |
404 | + // obj[headers[j]] = currentline[j]; | |
405 | + // } | |
406 | + // this.teacherFileJson.push(obj); | |
407 | + // } | |
408 | + // }, | |
412 | 409 | importTeacher() { |
413 | 410 | this.loading = true; |
414 | 411 | var teacherfile = {}; |
... | ... | @@ -431,7 +428,7 @@ export default { |
431 | 428 | }); |
432 | 429 | }, |
433 | 430 | importParent() { |
434 | - this.loading = true; | |
431 | + this.parentLoading = true; | |
435 | 432 | var parentfile = {}; |
436 | 433 | parentfile.parentData = this.parentFileJson; |
437 | 434 | http() |
... | ... | @@ -442,17 +439,17 @@ export default { |
442 | 439 | this.snackbar = true; |
443 | 440 | this.text = response.data.message; |
444 | 441 | this.color = "green"; |
445 | - this.loading = false; | |
442 | + this.parentLoading = false; | |
446 | 443 | }) |
447 | 444 | .catch(error => { |
448 | 445 | this.snackbar = true; |
449 | 446 | this.text = error.response.data.message; |
450 | - this.loading = false; | |
447 | + this.parentLoading = false; | |
451 | 448 | this.color = "red"; |
452 | 449 | }); |
453 | 450 | }, |
454 | 451 | importUser() { |
455 | - this.loading = true; | |
452 | + this.userLoading = true; | |
456 | 453 | var userfile = {}; |
457 | 454 | userfile.userData = this.userFileJson; |
458 | 455 | http() |
... | ... | @@ -463,17 +460,17 @@ export default { |
463 | 460 | this.snackbar = true; |
464 | 461 | this.text = response.data.message; |
465 | 462 | this.color = "green"; |
466 | - this.loading = false; | |
463 | + this.userLoading = false; | |
467 | 464 | }) |
468 | 465 | .catch(error => { |
469 | 466 | this.snackbar = true; |
470 | 467 | this.text = error.response.data.message; |
471 | - this.loading = false; | |
468 | + this.userLoading = false; | |
472 | 469 | this.color = "red"; |
473 | 470 | }); |
474 | 471 | }, |
475 | 472 | importBook() { |
476 | - this.loading = true; | |
473 | + this.BookLoading = true; | |
477 | 474 | var bookfile = {}; |
478 | 475 | bookfile.bookData = this.bookFileJson; |
479 | 476 | http() |
... | ... | @@ -484,17 +481,17 @@ export default { |
484 | 481 | this.snackbar = true; |
485 | 482 | this.text = response.data.message; |
486 | 483 | this.color = "green"; |
487 | - this.loading = false; | |
484 | + this.BookLoading = false; | |
488 | 485 | }) |
489 | 486 | .catch(error => { |
490 | 487 | this.snackbar = true; |
491 | 488 | this.text = error.response.data.message; |
492 | 489 | this.color = "red"; |
493 | - this.loading = false; | |
490 | + this.BookLoading = false; | |
494 | 491 | }); |
495 | 492 | }, |
496 | 493 | importStudent() { |
497 | - this.loading = true; | |
494 | + this.studentLoading = true; | |
498 | 495 | var studentfile = {}; |
499 | 496 | studentfile.studentData = this.studentFileJson; |
500 | 497 | http() |
... | ... | @@ -505,13 +502,13 @@ export default { |
505 | 502 | this.snackbar = true; |
506 | 503 | this.text = response.data.message; |
507 | 504 | this.color = "green"; |
508 | - this.loading = false; | |
505 | + this.studentLoading = false; | |
509 | 506 | }) |
510 | 507 | .catch(error => { |
511 | 508 | this.snackbar = true; |
512 | 509 | this.text = error.response.data.message; |
513 | 510 | this.color = "red"; |
514 | - this.loading = false; | |
511 | + this.studentLoading = false; | |
515 | 512 | }); |
516 | 513 | } |
517 | 514 | }, | ... | ... |
src/pages/Report/progressCardReport.vue
... | ... | @@ -104,14 +104,13 @@ |
104 | 104 | flat |
105 | 105 | style="border: 1px solid lightgrey;margin-bottom:14px;padding:20px" |
106 | 106 | > |
107 | - <!-- {{ value[index] }} --> | |
108 | - <v-layout v-if="value[0] === 0"> | |
107 | + <v-layout v-if="index === 0"> | |
109 | 108 | <v-flex xs12 style="border-bottom: 1px solid #707478;padding-bottom:6px !important"> |
110 | 109 | <img :src="userData.schoolLogoUrl" v-if="userData.schoolLogoUrl" width="100" /> |
111 | 110 | <img src="/static/icon/user.png" v-else-if="!userData.schoolLogoUrl" width="100" /> |
112 | 111 | </v-flex> |
113 | 112 | </v-layout> |
114 | - <v-layout style="padding-top:10px" v-if="value[0] === 0"> | |
113 | + <v-layout style="padding-top:10px" v-if="index === 0"> | |
115 | 114 | <v-flex xs5> |
116 | 115 | <p style="margin:0px;margin-bottom:4px"> |
117 | 116 | <span style="font-size:20px">{{ userData.name }}</span> |
... | ... | @@ -174,11 +173,11 @@ |
174 | 173 | style="border: 1px solid lightgrey !important;padding: 10px;" |
175 | 174 | >{{ exam.markDistributionId.distributionType }}</td> |
176 | 175 | </template>--> |
177 | - <template v-for="values in value"> | |
176 | + <template v-for="studentData in value"> | |
178 | 177 | <td |
179 | 178 | colspan="2" |
180 | - v-for="studentData in values.studentsMarks" | |
181 | - >{{ studentData.markDistributionId.distributionType }}</td> | |
179 | + v-for="studentMark in studentData.studentsMarks" | |
180 | + >{{ studentMark.markDistributionId.distributionType }}</td> | |
182 | 181 | </template> |
183 | 182 | <!-- <td>{{value[0].studentsMarks[1].markDistributionId.distributionType}}</td> --> |
184 | 183 | ... | ... |
src/script/users.js
... | ... | @@ -5,6 +5,7 @@ export default () => { |
5 | 5 | "email": "neeraj.sharma@viithiisys.com", |
6 | 6 | "dob": "1995-01-14", |
7 | 7 | "gender": "Male", |
8 | + "role": "LIBRARIAN", | |
8 | 9 | "religion": "Hindu", |
9 | 10 | "address": "Mohali", |
10 | 11 | "phone": "1234567890", |
... | ... | @@ -15,6 +16,7 @@ export default () => { |
15 | 16 | "email": "rishav.singla@viithiisys.com", |
16 | 17 | "dob": "1995-01-14", |
17 | 18 | "gender": "Male", |
19 | + "role": "ACCOUNTANT", | |
18 | 20 | "religion": "Hindu", |
19 | 21 | "address": "Punjab", |
20 | 22 | "phone": "9878768790", | ... | ... |