Commit d4735dce7c40b88084c8e084563421b6702d7b3b

Authored by Shikha Mishra
1 parent 5f3a7efc0b

show school logo and name while printing the report

src/pages/Library/member.vue
... ... @@ -490,75 +490,79 @@
490 490 </v-flex>
491 491 </v-card-actions>
492 492 </v-card>
493   - <v-data-table
494   - :headers="headers"
495   - :items="studentData"
496   - :pagination.sync="pagination"
497   - :search="search"
498   - >
499   - <template slot="items" slot-scope="props">
500   - <td id="td" class="text-xs-center">{{ props.index}}</td>
501   - <td id="td" class="text-xs-center">
502   - <v-avatar>
503   - <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
504   - <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
505   - </v-avatar>
506   - </td>
507   - <td id="td" class="text-xs-center">{{ props.item.name}}</td>
508   - <td id="td" class="text-xs-center">{{ props.item.rollNo }}</td>
509   - <td id="td" class="text-xs-center">{{ props.item.email }}</td>
510   - <td class="text-xs-center">
511   - <v-tooltip top>
512   - <img
513   - slot="activator"
514   - v-if="!props.item.libraryId"
515   - style="cursor:pointer; width:25px; height:18px; "
516   - @click="addLibraryData(props.item)"
517   - src="/static/icon/add.png"
518   - />
519   - <span>Add</span>
520   - </v-tooltip>
521   - <span v-if="props.item.libraryId">
522   - <v-tooltip top>
523   - <img
524   - slot="activator"
525   - style="cursor:pointer; width:25px; height:18px; "
526   - class="mr5"
527   - @click="profile(props.item)"
528   - src="/static/icon/eye1.png"
529   - />
530   - <span>View</span>
531   - </v-tooltip>
532   - <v-tooltip top>
533   - <img
534   - slot="activator"
535   - style="cursor:pointer; width:20px; height:18px; "
536   - class="mr5"
537   - @click="editItem(props.item)"
538   - src="/static/icon/edit1.png"
539   - />
540   - <span>Edit</span>
541   - </v-tooltip>
542   - <v-tooltip top>
543   - <img
544   - slot="activator"
545   - style="cursor:pointer; width:20px; height:20px; "
546   - class="mr5"
547   - @click="deleteItem(props.item)"
548   - src="/static/icon/delete1.png"
549   - />
550   - <span>Delete</span>
551   - </v-tooltip>
552   - </span>
553   - </td>
554   - </template>
555   - <v-alert
556   - slot="no-results"
557   - :value="true"
558   - color="error"
559   - icon="warning"
560   - >Your search for "{{ search }}" found no results.</v-alert>
561   - </v-data-table>
  493 + <v-card class="transparent">
  494 + <v-data-table
  495 + :headers="headers"
  496 + :items="studentData"
  497 + :pagination.sync="pagination"
  498 + :search="search"
  499 + >
  500 + <template slot="items" slot-scope="props">
  501 + <tr class="tr">
  502 + <td class="td td-row text-xs-center">{{ props.index}}</td>
  503 + <td class="td td-row text-xs-center">
  504 + <v-avatar>
  505 + <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
  506 + <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
  507 + </v-avatar>
  508 + </td>
  509 + <td class="td td-row text-xs-center">{{ props.item.name}}</td>
  510 + <td class="td td-row text-xs-center">{{ props.item.rollNo }}</td>
  511 + <td class="td td-row text-xs-center">{{ props.item.email }}</td>
  512 + <td class="td td-row text-xs-center">
  513 + <v-tooltip top>
  514 + <img
  515 + slot="activator"
  516 + v-if="!props.item.libraryId"
  517 + style="cursor:pointer; width:25px; height:18px; "
  518 + @click="addLibraryData(props.item)"
  519 + src="/static/icon/add.png"
  520 + />
  521 + <span>Add</span>
  522 + </v-tooltip>
  523 + <span v-if="props.item.libraryId">
  524 + <v-tooltip top>
  525 + <img
  526 + slot="activator"
  527 + style="cursor:pointer; width:25px; height:18px; "
  528 + class="mr5"
  529 + @click="profile(props.item)"
  530 + src="/static/icon/eye1.png"
  531 + />
  532 + <span>View</span>
  533 + </v-tooltip>
  534 + <v-tooltip top>
  535 + <img
  536 + slot="activator"
  537 + style="cursor:pointer; width:20px; height:18px; "
  538 + class="mr5"
  539 + @click="editItem(props.item)"
  540 + src="/static/icon/edit1.png"
  541 + />
  542 + <span>Edit</span>
  543 + </v-tooltip>
  544 + <v-tooltip top>
  545 + <img
  546 + slot="activator"
  547 + style="cursor:pointer; width:20px; height:20px; "
  548 + class="mr5"
  549 + @click="deleteItem(props.item)"
  550 + src="/static/icon/delete1.png"
  551 + />
  552 + <span>Delete</span>
  553 + </v-tooltip>
  554 + </span>
  555 + </td>
  556 + </tr>
  557 + </template>
  558 + <v-alert
  559 + slot="no-results"
  560 + :value="true"
  561 + color="error"
  562 + icon="warning"
  563 + >Your search for "{{ search }}" found no results.</v-alert>
  564 + </v-data-table>
  565 + </v-card>
562 566 <div class="loader" v-if="showLoader">
563 567 <v-progress-circular indeterminate color="white"></v-progress-circular>
564 568 </div>
... ...
src/pages/Mark/viewMark.vue
... ... @@ -29,27 +29,23 @@
29 29 flat
30 30 style="border: 1px solid lightgrey;margin-bottom:14px;padding:20px"
31 31 >
32   - <v-layout v-if="index === 0">
33   - <v-flex xs12 style="border-bottom: 1px solid #707478;padding-bottom:6px !important">
34   - <img :src="userData.schoolLogoUrl" v-if="userData.schoolLogoUrl" width="100" />
35   - <img src="/static/icon/user.png" v-else-if="!userData.schoolLogoUrl" width="100" />
  32 + <!-- <v-layout>
  33 + <v-flex xs12>
  34 + <v-btn class="add-button right" round dark @click="printStudentReport()">
  35 + Print
  36 + <v-icon right dark>print</v-icon>
  37 + </v-btn>
  38 + </v-flex>
  39 + </v-layout> -->
  40 + <v-layout>
  41 + <v-flex xs12 class="text-xs-center">
  42 + <img :src="userData.schoolLogoUrl" width="140" alt="logo" />
  43 + <p class="title">{{ userData.name }}</p>
  44 + <p>{{ userData.address }}</p>
36 45 </v-flex>
37 46 </v-layout>
38 47 <v-layout style="padding-top:10px" v-if="index === 0">
39 48 <v-flex xs5>
40   - <p style="margin:0px;margin-bottom:4px">
41   - <span style="font-size:20px">{{ userData.name }}</span>
42   - <br />
43   - <span style="font-size: 15px;color: #707478;">{{ userData.address }}</span>
44   - </p>
45   - <p
46   - style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
47   - >phone : {{ userData.mobile }}</p>
48   - <p
49   - style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
50   - >Email : {{ userData.email }}</p>
51   - </v-flex>
52   - <v-flex xs5>
53 49 <p
54 50 style="font-size:20px;margin:0px;margin-bottom:4px;"
55 51 >{{ value[0].studentId.name }}</p>
... ... @@ -85,9 +81,7 @@
85 81 border-collapse: collapse;!important
86 82 table-layout: auto !important;
87 83 width: 100% !important;
88   - overflow: hidden;
89   - display: block;"
90   -
  84 + "
91 85 >
92 86 <thead style="border: 1px solid lightgrey !important;">
93 87 <tr style="border: 1px solid lightgrey !important;padding:4px;">
... ... @@ -110,19 +104,10 @@
110 104 style="border: 1px solid lightgrey !important;"
111 105 >
112 106 <template v-for="(exam, i) in subject.studentsMarks">
113   - <td
114   -
115   - style="border: 1px solid lightgrey !important;padding: 10px;"
116   - >Mark</td>
117   - <td
118   -
119   - style="border: 1px solid lightgrey !important;padding: 10px;"
120   - >Highest Mark</td>
  107 + <td style="border: 1px solid lightgrey !important;padding: 10px;">Mark</td>
  108 + <td style="border: 1px solid lightgrey !important;padding: 10px;">Highest Mark</td>
121 109 </template>
122   - <td
123   -
124   - style="border: 1px solid lightgrey !important;padding: 10px;"
125   - >Mark</td>
  110 + <td style="border: 1px solid lightgrey !important;padding: 10px;">Mark</td>
126 111 </tr>
127 112 </thead>
128 113 <tbody style="border: 1px solid lightgrey !important;">
... ... @@ -182,7 +167,6 @@ export default {
182 167 selectMark: ["Mark", "Grade"],
183 168 MarkData: "",
184 169 userData: {}
185   -
186 170 }),
187 171 mounted() {
188 172 this.token = this.$store.state.token;
... ... @@ -339,7 +323,7 @@ table.feeTypeTable {
339 323 }
340 324 @media screen and (max-width: 380px) {
341 325 .tableRsponsive {
342   - display: block;
  326 + /* display: block; */
343 327 position: relative;
344 328 overflow: scroll;
345 329 }
... ...
src/pages/Report/progressCardReport.vue
... ... @@ -63,151 +63,157 @@
63 63 </v-flex>
64 64 </v-layout>
65 65 </v-flex>
66   - <v-flex xs12 sm12 lg3>
  66 + <v-flex xs12 sm12 lg3 class="hidden-xs-only hidden-sm-only pl-5">
67 67 <v-btn
68 68 @click="getMarkReportList"
69 69 round
70 70 dark
71 71 :loading="loading"
72   - class="right mt-3"
  72 + class="open-dialog-button mt-3 ml-5"
73 73 >Get Report</v-btn>
74 74 </v-flex>
75 75 </v-layout>
76 76 </v-flex>
77 77 </v-form>
78 78 </v-card>
79   - <v-container grid-list-md v-show="showReport">
80   - <!-- {{ filterData }} -->
81   - <v-layout>
  79 + <v-layout v-show="showReport">
  80 + <v-flex xs12>
  81 + <v-card class="transparent elevation-0">
  82 + <v-layout>
  83 + <v-flex xs12>
  84 + <v-btn class="open-dialog-button right" round dark @click="printProgressReport()">
  85 + Print
  86 + <v-icon right dark>print</v-icon>
  87 + </v-btn>
  88 + </v-flex>
  89 + </v-layout>
  90 + <v-layout>
  91 + <v-flex xs12 class="text-xs-center">
  92 + <img :src="userData.schoolLogoUrl" width="140" alt="logo" />
  93 + <p class="title">{{ userData.name }}</p>
  94 + <p>{{ userData.address }}</p>
  95 + </v-flex>
  96 + </v-layout>
  97 + <!-- </v-card>
  98 + </v-flex>
  99 + </v-layout>-->
  100 + <v-container grid-list-md v-show="showReport">
  101 + <!-- {{ filterData }} -->
  102 + <!-- <v-layout>
82 103 <v-flex xs12 sm12 v-if="filterData != {}">
83   - <v-btn class="add-button" round dark @click="print()">
  104 + <v-btn class="add-button right" round dark @click="printProgressReport()">
84 105 Print
85 106 <v-icon right dark>print</v-icon>
86 107 </v-btn>
87 108 </v-flex>
88   - </v-layout>
89   - <v-flex xs12 sm12 id="printMe">
90   - <v-layout wrap>
91   - <!-- ****** TABLE DATA MARK ****** -->
92   - <v-flex xs12 sm12 md12>
93   - <v-card
94   - v-for="(value, id, index) in filterData"
95   - :key="index"
96   - flat
97   - style="border: 1px solid lightgrey;margin-bottom:14px;padding:20px"
98   - >
99   - <v-layout v-if="index === 0">
100   - <v-flex xs12 style="border-bottom: 1px solid #707478;padding-bottom:6px !important">
101   - <img :src="userData.schoolLogoUrl" v-if="userData.schoolLogoUrl" width="100" />
102   - <img src="/static/icon/user.png" v-else-if="!userData.schoolLogoUrl" width="100" />
103   - </v-flex>
104   - </v-layout>
105   - <v-layout style="padding-top:10px" v-if="index === 0">
106   - <v-flex xs5>
107   - <p style="margin:0px;margin-bottom:4px">
108   - <span style="font-size:20px">{{ userData.name }}</span>
109   - <br />
110   - <span style="font-size: 15px;color: #707478;">{{ userData.address }}</span>
111   - </p>
112   - <p
113   - style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
114   - >phone : {{ userData.mobile }}</p>
115   - <p
116   - style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
117   - >Email : {{ userData.email }}</p>
118   - </v-flex>
119   - <v-flex xs5>
120   - <p
121   - style="font-size:20px;margin:0px;margin-bottom:4px;"
122   - >{{ value[0].studentId.name }}</p>
123   - <p
124   - style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
125   - >Class : {{ value[0].classId.classNum }}</p>
126   - <p
127   - style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
128   - >Roll NO : {{ value[0].studentId.rollNo }}</p>
129   - <p
130   - style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
131   - >Section : {{ value[0].sectionId.name }}</p>
132   - </v-flex>
133   - <v-flex xs2>
134   - <v-avatar size="100">
135   - <img
136   - :src="value[0].studentId.profilePicUrl"
137   - v-if="value[0].studentId.profilePicUrl"
138   - width="100px"
139   - />
140   - <img
141   - src="/static/icon/user.png"
142   - v-else-if="!value[0].studentId.profilePicUrl"
143   - width="100px"
144   - />
145   - </v-avatar>
146   - </v-flex>
147   - </v-layout>
148   - <v-card-title class="subheading">{{value[0].examId.examName}}</v-card-title>
149   - <table
150   - class="mb-5 tableRsponsive feeTypeTable"
151   - style="border: 1px solid lightgrey;
152   - border-collapse: collapse;!important
153   - table-layout: auto !important;
154   - width: 100% !important;
155   - overflow: hidden;
156   - display: block;"
157   -
158   - >
159   - <thead style="border: 1px solid lightgrey !important;">
160   - <tr style="border: 1px solid lightgrey !important;padding:4px;">
161   - <td
162   - rowspan="2"
163   - style="border: 1px solid lightgrey !important;padding: 10px;"
164   - >Subject</td>
165   - <!-- <td
166   - v-for="(exam,i) in value[index].studentsMarks"
167   - colspan="2"
168   - style="border: 1px solid lightgrey !important;padding: 10px;"
169   - >{{ exam.markDistributionId.distributionType }}</td>-->
170   - <template v-for="studentData in value">
171   - <td
172   - colspan="2"
173   - v-for="studentMark in studentData.studentsMarks"
174   - >{{ studentMark.markDistributionId.distributionType }}</td>
175   - </template>
176   - <!-- <td>{{value[0].studentsMarks[1].markDistributionId.distributionType}}</td> -->
177   -
178   - <td style="border: 1px solid lightgrey !important;padding: 10px;">Total</td>
179   - </tr>
180   - <tr
181   - v-for="(subject, ind) in value"
182   - v-if="ind == 0"
183   - style="border: 1px solid lightgrey !important;"
  109 + </v-layout>-->
  110 + <v-flex xs12 sm12 id="printMe">
  111 + <v-layout wrap>
  112 + <!-- ****** TABLE DATA MARK ****** -->
  113 + <v-flex xs12 sm12 md12>
  114 + <v-card
  115 + v-for="(value, id, index) in filterData"
  116 + :key="index"
  117 + flat
  118 + style="border: 1px solid lightgrey;margin-bottom:14px;padding:20px"
184 119 >
185   - <template v-for="(exam, i) in subject.studentsMarks">
186   - <td style="border: 1px solid lightgrey !important;padding: 10px;">Mark</td>
187   - <td style="border: 1px solid lightgrey !important;padding: 10px;">Highest Mark</td>
188   - </template>
189   - <td style="border: 1px solid lightgrey !important;padding: 10px;">Mark</td>
190   - </tr>
191   - </thead>
192   - <tbody style="border: 1px solid lightgrey !important;">
193   - <tr v-for="subject in value" style="border: 1px solid lightgrey !important;">
194   - <td
195   - style="border: 1px solid lightgrey !important;padding: 10px;"
196   - >{{subject.subjectName}}</td>
197   - <template v-for="(exam, i) in subject.studentsMarks">
198   - <td
199   - style="border: 1px solid lightgrey !important;padding: 10px;"
200   - >{{exam.marksScored}}</td>
201   - <td
202   - style="border: 1px solid lightgrey !important;padding: 10px;"
203   - >{{exam.markDistributionId.markValue}}</td>
204   - </template>
205   - <td
206   - style="border: 1px solid lightgrey !important;padding: 10px;"
207   - >{{subject.totalMarks}}</td>
208   - </tr>
209   - </tbody>
210   - <!-- <tfoot>
  120 + <v-layout style="padding-top:10px" v-if="index === 0">
  121 + <v-flex xs5>
  122 + <p
  123 + style="font-size:20px;margin:0px;margin-bottom:4px;"
  124 + >{{ value[0].studentId.name }}</p>
  125 + <p
  126 + style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
  127 + >Class : {{ value[0].classId.classNum }}</p>
  128 + <p
  129 + style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
  130 + >Roll NO : {{ value[0].studentId.rollNo }}</p>
  131 + <p
  132 + style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
  133 + >Section : {{ value[0].sectionId.name }}</p>
  134 + </v-flex>
  135 + <v-flex xs2>
  136 + <v-avatar size="100">
  137 + <img
  138 + :src="value[0].studentId.profilePicUrl"
  139 + v-if="value[0].studentId.profilePicUrl"
  140 + width="100px"
  141 + />
  142 + <img
  143 + src="/static/icon/user.png"
  144 + v-else-if="!value[0].studentId.profilePicUrl"
  145 + width="100px"
  146 + />
  147 + </v-avatar>
  148 + </v-flex>
  149 + </v-layout>
  150 + <v-card-title class="subheading">{{value[0].examId.examName}}</v-card-title>
  151 + <table
  152 + class="mb-5 tableRsponsive feeTypeTable"
  153 + style="border: 1px solid lightgrey;
  154 + border-collapse: collapse;!important
  155 + table-layout: auto !important;
  156 + width: 100% !important;
  157 + overflow: hidden;
  158 + display: block;"
  159 + >
  160 + <thead style="border: 1px solid lightgrey !important;">
  161 + <tr style="border: 1px solid lightgrey !important;padding:4px;">
  162 + <td
  163 + rowspan="2"
  164 + style="border: 1px solid lightgrey !important;padding: 10px;"
  165 + >Subject</td>
  166 + <td
  167 + v-for="(exam,i) in value[index].studentsMarks"
  168 + colspan="2"
  169 + style="border: 1px solid lightgrey !important;padding: 10px;"
  170 + >{{ exam.markDistributionId.distributionType }}</td>
  171 + <template v-for="studentData in value">
  172 + <td
  173 + colspan="2"
  174 + v-for="studentMark in studentData.studentsMarks"
  175 + >{{ studentMark.markDistributionId.distributionType }}</td>
  176 + </template>
  177 + <td>{{value[0].studentsMarks[1].markDistributionId.distributionType}}</td>
  178 +
  179 + <td style="border: 1px solid lightgrey !important;padding: 10px;">Total</td>
  180 + </tr>
  181 + <tr
  182 + v-for="(subject, ind) in value"
  183 + v-if="ind == 0"
  184 + style="border: 1px solid lightgrey !important;"
  185 + >
  186 + <template v-for="(exam, i) in subject.studentsMarks">
  187 + <td style="border: 1px solid lightgrey !important;padding: 10px;">Mark</td>
  188 + <td
  189 + style="border: 1px solid lightgrey !important;padding: 10px;"
  190 + >Highest Mark</td>
  191 + </template>
  192 + <td style="border: 1px solid lightgrey !important;padding: 10px;">Mark</td>
  193 + </tr>
  194 + </thead>
  195 + <tbody style="border: 1px solid lightgrey !important;">
  196 + <tr
  197 + v-for="subject in value"
  198 + style="border: 1px solid lightgrey !important;"
  199 + >
  200 + <td
  201 + style="border: 1px solid lightgrey !important;padding: 10px;"
  202 + >{{subject.subjectName}}</td>
  203 + <template v-for="(exam, i) in subject.studentsMarks">
  204 + <td
  205 + style="border: 1px solid lightgrey !important;padding: 10px;"
  206 + >{{exam.marksScored}}</td>
  207 + <td
  208 + style="border: 1px solid lightgrey !important;padding: 10px;"
  209 + >{{exam.markDistributionId.markValue}}</td>
  210 + </template>
  211 + <td
  212 + style="border: 1px solid lightgrey !important;padding: 10px;"
  213 + >{{subject.totalMarks}}</td>
  214 + </tr>
  215 + </tbody>
  216 + <!-- <tfoot>
211 217 <tr>
212 218 <td colspan="4">
213 219 <span class="right subheding">Total Amount (RS) :</span>
... ... @@ -226,13 +232,16 @@
226 232 </td>
227 233 <td>{{ feeType.totalPaidAmount ? feeType.subTotal - feeType.totalPaidAmount : feeType.subTotal }}</td>
228 234 </tr>
229   - </tfoot>-->
230   - </table>
231   - </v-card>
232   - </v-flex>
233   - </v-layout>
  235 + </tfoot>-->
  236 + </table>
  237 + </v-card>
  238 + </v-flex>
  239 + </v-layout>
  240 + </v-flex>
  241 + </v-container>
  242 + </v-card>
234 243 </v-flex>
235   - </v-container>
  244 + </v-layout>
236 245 <div class="loader" v-if="showLoader">
237 246 <v-progress-circular indeterminate color="white"></v-progress-circular>
238 247 </div>
... ... @@ -349,11 +358,11 @@ export default {
349 358 // console.log("data+++++++++++++++++++++++++++++++++++", data);
350 359  
351 360 for (let item in this.filterData[data]) {
352   - console.log(
353   - "filterData[data]==========================>",
354   - this.filterData[data]
355   - );
356   - console.log("filterData[item]==========================>", item);
  361 + // console.log(
  362 + // "filterData[data]==========================>",
  363 + // this.filterData[data]
  364 + // );
  365 + // console.log("filterData[item]==========================>", item);
357 366 var totalMarks = 0;
358 367 for (
359 368 let i = 0;
... ... @@ -382,7 +391,7 @@ export default {
382 391 }
383 392 });
384 393 },
385   - print() {
  394 + printProgressReport() {
386 395 // Pass the element id here
387 396 this.$htmlToPaper("printMe");
388 397 },
... ... @@ -434,7 +443,7 @@ table.feeTypeTable {
434 443 }
435 444 @media screen and (max-width: 380px) {
436 445 .tableRsponsive {
437   - display: block;
  446 + /* display: block; */
438 447 position: relative;
439 448 overflow: scroll;
440 449 }
... ...