Commit 46993dc1d01a0f12690b442814aba1b267019115

Authored by Shikha Mishra
1 parent 080d885477

solve issue login

... ... @@ -218,7 +218,7 @@ const schoolMenu = [
218 218 {
219 219 title: 'Dashboard',
220 220 // group: 'apps',
221   - name: 'Dashboard',
  221 + name: 'View School Dashboard',
222 222 icon: '/static/icon/dashboard.png',
223 223 },
224 224 {
... ...
src/pages/Authentication/Login.vue
... ... @@ -126,7 +126,7 @@ export default {
126 126 } else if (response.data.data.role === "SUPERADMIN") {
127 127 this.$store.dispatch("setSchoolRole", response.data.data.role);
128 128 this.$store.dispatch("setSchoolToken", response.data.data.token);
129   - this.$router.push("/dashboard");
  129 + this.$router.push("/schooldashboard");
130 130 } else if (response.data.data.role === "LIBRARIAN") {
131 131 this.$store.dispatch("setToken", response.data.data.token);
132 132 this.$store.dispatch("Id", response.data.data.id);
... ... @@ -157,9 +157,9 @@ export default {
157 157 if (this.$store.state.isUserLoggedIn == true) {
158 158 this.$router.push("/dashboard");
159 159 }
160   - else if (this.$store.state.isSchoolLoggedIn == true) {
161   - this.$router.push("/dashboard");
162   - }
  160 + // else if (this.$store.state.isSchoolLoggedIn == true) {
  161 + // this.$router.push("/dashboard");
  162 + // }
163 163 },
164 164 computed: {
165 165 color() {
... ...
src/pages/Mark/mark.vue
... ... @@ -536,9 +536,13 @@ export default {
536 536 for (var j = 0; j < response.data.data.length; j++) {
537 537 this.getStudentData[n].marksObtained.push({
538 538 markDistributionId: response.data.data[j]._id,
539   - marksScored: 0
  539 + marksScored: ""
540 540 });
541 541 }
  542 + // if (marks.marksScored > marks.marksObtained) {
  543 + // this.getStudentData[n].marksScored = this.getStudentData[n].marksObtained;
  544 + // this.marks.marksScored = marks.marksObtained;
  545 + // }
542 546 }
543 547 })
544 548 .catch(error => {
... ... @@ -575,6 +579,10 @@ export default {
575 579 this.text = error.response.data.message;
576 580 this.color = "red";
577 581 });
  582 + // if (data.marksScored > data.marksObtained) {
  583 + // this.getStudentData[j].marksScored = this.getStudentData[j].marksObtained;
  584 + // this.data.marksScored = data.marksObtained;
  585 + // }
578 586 }
579 587 },
580 588 getStudents() {
... ...
src/pages/Mark/viewMark.vue
... ... @@ -60,7 +60,7 @@
60 60 border-collapse: collapse;!important
61 61 table-layout: auto !important;
62 62 width: 100% !important;
63   - "
  63 + overflow: hidden;"
64 64 >
65 65 <thead style="border: 1px solid lightgrey !important;">
66 66 <tr style="border: 1px solid lightgrey !important;padding:4px;">
... ... @@ -74,7 +74,7 @@
74 74 v-for="studentMark in studentData.studentsMarks"
75 75 style="border: 1px solid lightgrey !important;padding: 10px;"
76 76 >{{studentMark.markDistributionId.distributionType}}</td>
77   - <td style="border: 1px solid lightgrey !important;padding: 10px;">Total</td>
  77 + <td style="border: 1px solid lightgrey !important;padding: 10px;">Total Marks</td>
78 78 </template>
79 79 </tr>
80 80 <tr
... ... @@ -83,10 +83,10 @@
83 83 style="border: 1px solid lightgrey !important;"
84 84 >
85 85 <template v-for="(exam, i) in subject.studentsMarks">
86   - <td style="border: 1px solid lightgrey !important;padding: 10px;">Mark</td>
87   - <td style="border: 1px solid lightgrey !important;padding: 10px;">Highest Mark</td>
  86 + <td style="border: 1px solid lightgrey !important;padding: 10px;">Marks</td>
  87 + <td style="border: 1px solid lightgrey !important;padding: 10px;">Highest Marks</td>
88 88 </template>
89   - <td style="border: 1px solid lightgrey !important;padding: 10px;">Mark</td>
  89 + <!-- <td style="border: 1px solid lightgrey !important;padding: 10px;">Mark</td> -->
90 90 </tr>
91 91 </thead>
92 92 <tbody style="border: 1px solid lightgrey !important;">
... ...
src/pages/Report/progressCardReport.vue
... ... @@ -87,7 +87,7 @@
87 87 </v-btn>
88 88 </v-flex>
89 89 </v-layout>
90   - <v-container grid-list-md v-show="showReport">
  90 + <v-container grid-list-md v-show="showReport" class="report">
91 91 <v-flex xs12 sm12 id="printMe">
92 92 <v-layout wrap>
93 93 <!-- ****** TABLE DATA MARK ****** -->
... ... @@ -100,27 +100,40 @@
100 100 >
101 101 <v-layout>
102 102 <v-flex xs12 sm12 md12 class="text-xs-center">
103   - <img :src="userData.schoolLogoUrl" width="140" alt="logo" />
104   - <p class="title">{{ userData.name }}</p>
105   - <p>{{ userData.address }}</p>
106   - </v-flex>
107   - <v-flex xs12 sm12 md12 class="text-xs-center">
108   - <v-avatar size="100">
109   - <img :src="value[0].studentId.profilePicUrl" v-if="value[0].studentId.profilePicUrl" width="100px" />
110   - <img src="/static/icon/user.png" v-else-if="!value[0].studentId.profilePicUrl" width="100px" />
111   - </v-avatar>
112   - <p
113   - style="font-size:20px;margin:0px;margin-bottom:4px;"
114   - >{{ value[0].studentId.name }}</p>
115   - <p
116   - style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
117   - >Class : {{ value[0].classId.classNum }}</p>
118   - <p
119   - style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
120   - >Section : {{ value[0].sectionId.name }}</p>
121   - <p
122   - style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
123   - >Roll NO : {{ value[0].studentId.rollNo }}</p>
  103 + <div class="line">
  104 + <div class="school-logo">
  105 + <img :src="userData.schoolLogoUrl" width="140" alt="logo" />
  106 + </div>
  107 + <div class="school-name">
  108 + <h2>{{ userData.name }}</h2>
  109 + </div>
  110 + </div>
  111 + <div class="school-info">
  112 + <v-flex class="school-address">
  113 + <p class="title">{{ userData.name }}</p>
  114 + <p>{{ userData.address }}</p>
  115 + </v-flex>
  116 + <v-flex xs12 sm12 md12 class="text-xs-center student-data">
  117 + <v-avatar size="100">
  118 + <img :src="value[0].studentId.profilePicUrl" v-if="value[0].studentId.profilePicUrl" width="100px" />
  119 + <img src="/static/icon/user.png" v-else-if="!value[0].studentId.profilePicUrl" width="100px" />
  120 + </v-avatar>
  121 + <div class="student-info">
  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 + >Section : {{ value[0].sectionId.name }}</p>
  131 + <p
  132 + style="font-size: 15px;color: #707478;margin:0px;margin-bottom:4px;"
  133 + >Roll NO : {{ value[0].studentId.rollNo }}</p>
  134 + </div>
  135 + </v-flex>
  136 + </div>
124 137 </v-flex>
125 138 </v-layout>
126 139 <!-- <v-card-title class="subheading">{{value[0].examId.examName}}</v-card-title> -->
... ... @@ -416,6 +429,42 @@ table.feeTypeTable {
416 429 .bg-skyDark {
417 430 background-color: #956785;
418 431 }
  432 +
  433 +/* .report {
  434 + overflow: hidden;
  435 + max-width: 794px;
  436 + margin: 0px auto;
  437 + margin-bottom: 10px;
  438 + padding: 30px;
  439 +} */
  440 +.line {
  441 + border-bottom: 1px solid #ddd;
  442 + overflow: hidden;
  443 + padding-bottom: 10px;
  444 + vertical-align: middle;
  445 + margin-bottom: 4px;
  446 +}
  447 +.school-logo {
  448 + float: left;
  449 +}
  450 +.school-name {
  451 + box-sizing: border-box;
  452 +}
  453 +.school-info {
  454 + width: 100%;
  455 + overflow: hidden;
  456 +}
  457 +.school-address {
  458 + float: left;
  459 + width: 40%;
  460 +}
  461 +.student-data {
  462 + float: right;
  463 + width: 40%;
  464 +}
  465 +.student-info {
  466 + float: left;
  467 +}
419 468 @media screen and (max-width: 380px) {
420 469 .tableRsponsive {
421 470 /* display: block; */
... ...
src/pages/School/school.vue
... ... @@ -913,8 +913,7 @@ export default {
913 913 this.loading = true;
914 914 http()
915 915 .post("/createSchool", this.addSchool, {
916   - headers: { Authorization: "Bearer " + this.schoolToken }
917   -
  916 + headers: { Authorization: "Bearer " + this.schoolToken }
918 917 })
919 918 .then(response => {
920 919 this.snackbar = true;
... ... @@ -969,10 +968,13 @@ export default {
969 968 this.$store.dispatch("setToken", response.data.data.token);
970 969 this.$store.dispatch("Id", response.data.data.id);
971 970 this.$store.dispatch("Role", response.data.data.role);
972   - let routeData = this.$router.resolve({
973   - name: "dashboardAdmin"
974   - });
975   - window.open(routeData.href, "_blank");
  971 + this.$router.push("/dashboard");
  972 + location.reload();
  973 + // let routeData = this.$router.resolve({
  974 + // name: "dashboardAdmin"
  975 + // });
  976 + // window.open(routeData.href, "_blank");
  977 +
976 978 this.showLoader = false;
977 979 })
978 980 .catch(error => {
... ... @@ -986,7 +988,7 @@ export default {
986 988 };
987 989 http()
988 990 .put("/suspendSchoolAccount", suspendStatusData, {
989   - headers: { Authorization: "Bearer " + this.schoolToken }
  991 + headers: { Authorization: "Bearer " + this.schoolToken }
990 992 })
991 993 .then(response => {
992 994 this.getSchool();
... ...
src/pages/School/viewSchoolDashboard.vue
1 1 <template>
2   - <v-app id="pages-dasboard" class="dashbaordBackground">
3   - <v-container fluid grid-list-xl>
4   - <v-layout row wrap class="pt-3">
5   - <!-- ***** Total Students ***** -->
6   - <v-flex xs12 class="pt-2">
7   - <v-layout row wrap>
8   - <v-flex xs12 sm12 lg3 md3>
9   - <v-card width="90" height="90" class="ml-3 pa-1 white iconCard" dark>
10   - <img
11   - src="/static/schoolIcons/Students.png"
12   - class="iconOfDashboard"
13   - width="80"
14   - alt="Students"
15   - />
16   - </v-card>
17   - <v-card class="pa-3" style="margin-top: -44px;">
18   - <div class="body-2 grey--text text-xs-right">Students</div>
19   - <br />
20   - <h3 class="headline text-xs-right pb-4">{{ students.length }}</h3>
21   - </v-card>
22   - </v-flex>
23   - <!-- ***** Total Parents ***** -->
24   - <v-flex xs12 sm12 lg3 md3>
25   - <v-card width="90" height="90" class="ml-3 pa-1 white agentIcon" dark>
26   - <img
27   - src="/static/schoolIcons/Parents.png"
28   - width="80"
29   - class="iconOfDashboard"
30   - alt="Parents"
31   - />
32   - </v-card>
33   - <v-card class="pa-3" style="margin-top: -44px;">
34   - <div class="body-2 grey--text text-xs-right">Parents</div>
35   - <br />
36   - <h3 class="headline text-xs-right pb-4">{{ parents.length }}</h3>
37   - </v-card>
38   - </v-flex>
39   - <!-- ***** Total Teachers***** -->
40   - <v-flex xs12 sm12 lg3 md3>
41   - <v-card width="90" height="90" class="ml-3 pa-1 white farmerIcon" dark>
42   - <img
43   - src="/static/schoolIcons/Teachers.png"
44   - width="80"
45   - class="iconOfDashboard"
46   - alt="Teachers"
47   - />
48   - </v-card>
49   - <v-card class="pa-3" style="margin-top: -44px;">
50   - <div class="body-2 grey--text text-xs-right">Teachers</div>
51   - <br />
52   - <h3 class="headline text-xs-right pb-4">{{ teachers.length }}</h3>
53   - </v-card>
54   - </v-flex>
55   - <!-- ***** Total Class***** -->
56   - <v-flex xs12 sm12 lg3 md3>
57   - <v-card width="90" height="90" class="ml-3 pa-1 white khasraIcon" dark>
58   - <img
59   - src="/static/schoolIcons/Class.png"
60   - width="80"
61   - class="iconOfDashboard"
62   - alt="class"
63   - />
64   - </v-card>
65   - <v-card class="pa-3" style="margin-top: -44px;">
66   - <div class="body-2 grey--text text-xs-right">Class</div>
67   - <br />
68   - <h3 class="headline text-xs-right pb-4">{{ classes.length}}</h3>
69   - </v-card>
  2 + <v-app id="pages-dasboard">
  3 + <!-- ****** VIEW PROFIL NOTICE BOARD ****** -->
  4 + <!-- <v-dialog v-model="dialogNotice" max-width="940px" scrollable>
  5 + <v-card>
  6 + <v-toolbar color="grey lighten-2" flat>
  7 + <v-spacer></v-spacer>
  8 + <v-toolbar-title>
  9 + <h3>Notice Board</h3>
  10 + </v-toolbar-title>
  11 + <v-spacer></v-spacer>
  12 + <v-icon @click="closeNotice">close</v-icon>
  13 + </v-toolbar>
  14 + <v-card-text>
  15 + <v-layout>
  16 + <v-flex align-center justify-center layout text-xs-center class="mt-2">
  17 + <img src="/static/icon/user.png" width="70px" v-if="!notice.eventImageUrl" />
  18 + <img :src="notice.eventImageUrl" width="280px" v-else-if="notice.eventImageUrl" />
70 19 </v-flex>
71 20 </v-layout>
72   - </v-flex>
73   - </v-layout>
74   - <v-layout>
75   - <v-flex xs12>
76   - <v-card>
77   - <v-toolbar color="grey lighten-2" flat>
78   - <v-spacer></v-spacer>
79   - <v-toolbar-title>School Details</v-toolbar-title>
80   - <v-spacer></v-spacer>
81   - </v-toolbar>
82   - <v-flex align-center justify-center layout text-xs-center class="mt-3">
83   - <v-avatar size="160px">
84   - <img src="/static/icon/user.png" v-if="!schoolData.schoolLogoUrl" />
85   - <img :src="schoolData.schoolLogoUrl" v-else-if="schoolData.schoolLogoUrl" />
86   - </v-avatar>
87   - </v-flex>
88   - <v-container grid-list-md>
89   - <v-layout wrap>
90   - <v-flex xs12 sm6>
91   - <v-layout>
92   - <v-flex xs6 sm5>
93   - <h5 class="right my-1">
94   - <b>Full Name:</b>
95   - </h5>
96   - </v-flex>
97   - <v-flex sm7 xs6>
98   - <h5 class="my-1 left">{{ schoolData.name }}</h5>
99   - </v-flex>
100   - </v-layout>
101   - </v-flex>
102   - <v-flex xs12 sm6>
103   - <v-layout>
104   - <v-flex xs6 sm4>
105   - <h5 class="right my-1">
106   - <b>Email:</b>
107   - </h5>
108   - </v-flex>
109   - <v-flex sm8 xs6>
110   - <h5 class="my-1 left">{{ schoolData.email }}</h5>
111   - </v-flex>
112   - </v-layout>
113   - </v-flex>
114   - </v-layout>
115   - <v-layout wrap>
116   - <v-flex xs12 sm6>
117   - <v-layout>
118   - <v-flex xs6 sm5>
119   - <b>
120   - <h5 class="right my-1">
121   - <b>Create:</b>
122   - </h5>
123   - </b>
124   - </v-flex>
125   - <v-flex sm7 xs6>
126   - <h5 class="my-1">{{ dates(schoolData.created) }}</h5>
127   - </v-flex>
128   - </v-layout>
129   - </v-flex>
130   - <v-flex xs12 sm6>
131   - <v-layout>
132   - <v-flex xs6 sm4>
133   - <b>
134   - <h5 class="right my-1">
135   - <b>City:</b>
136   - </h5>
137   - </b>
138   - </v-flex>
139   - <v-flex sm8 xs6>
140   - <h5 class="my-1 left">{{ schoolData.city }}</h5>
141   - </v-flex>
142   - </v-layout>
143   - </v-flex>
144   - </v-layout>
145   - <v-layout wrap>
146   - <v-flex xs12 sm6>
147   - <v-layout>
148   - <v-flex xs6 sm5>
149   - <b>
150   - <h5 class="right my-1">
151   - <b>State:</b>
152   - </h5>
153   - </b>
154   - </v-flex>
155   - <v-flex sm7 xs6>
156   - <h5 class="my-1 left">{{ schoolData.state }}</h5>
157   - </v-flex>
158   - </v-layout>
159   - </v-flex>
160   - <v-flex xs12 sm6>
161   - <v-layout>
162   - <v-flex xs6 sm4>
163   - <b>
164   - <h5 class="right my-1">
165   - <b>Pincode:</b>
166   - </h5>
167   - </b>
168   - </v-flex>
169   - <v-flex sm8 xs6>
170   - <h5 class="my-1">{{ schoolData.pinCode }}</h5>
171   - </v-flex>
172   - </v-layout>
173   - </v-flex>
174   - </v-layout>
175   - <v-layout wrap>
176   - <v-flex xs12 sm6>
177   - <v-layout>
178   - <v-flex xs6 sm5>
179   - <b>
180   - <h5 class="right my-1">
181   - <b>Fax No:</b>
182   - </h5>
183   - </b>
184   - </v-flex>
185   - <v-flex sm7 xs6>
186   - <h5 class="my-1 left">{{ schoolData.faxNo }}</h5>
187   - </v-flex>
188   - </v-layout>
189   - </v-flex>
190   - <v-flex xs12 sm6>
191   - <v-layout>
192   - <v-flex xs6 sm4>
193   - <b>
194   - <h5 class="right my-1">
195   - <b>Country:</b>
196   - </h5>
197   - </b>
198   - </v-flex>
199   - <v-flex sm8 xs6>
200   - <h5 class="my-1">{{ schoolData.country }}</h5>
201   - </v-flex>
202   - </v-layout>
203   - </v-flex>
204   - </v-layout>
205   - <v-layout wrap>
206   - <v-flex xs12 sm6>
207   - <v-layout>
208   - <v-flex xs6 sm5>
209   - <b>
210   - <h5 class="right my-1">
211   - <b>Mobile No:</b>
212   - </h5>
213   - </b>
214   - </v-flex>
215   - <v-flex sm7 xs6>
216   - <h5 class="my-1">{{ schoolData.mobile }}</h5>
217   - </v-flex>
218   - </v-layout>
219   - </v-flex>
220   - <v-flex xs12 sm5>
221   - <v-layout>
222   - <v-flex xs6 sm5>
223   - <b>
224   - <h5 class="right my-1">
225   - <b>Country:</b>
226   - </h5>
227   - </b>
228   - </v-flex>
229   - <v-flex sm7 xs6>
230   - <h5 class="my-1">{{ schoolData.country }}</h5>
231   - </v-flex>
232   - </v-layout>
233   - </v-flex>
234   - </v-layout>
235   - <v-layout wrap>
236   - <v-flex xs12 sm6>
237   - <v-layout>
238   - <v-flex sm5 xs6>
239   - <b>
240   - <h5 class="right my-1">
241   - <b>LandLine No:</b>
242   - </h5>
243   - </b>
244   - </v-flex>
245   - <v-flex sm6 xs6>
246   - <h5 class="my-1">{{ schoolData.landLineNo }}</h5>
247   - </v-flex>
248   - </v-layout>
249   - </v-flex>
250   - <v-flex xs12 sm6>
251   - <v-layout>
252   - <v-flex xs6 sm4 class="hidden-xs-only hidden-sm-only">
253   - <b>
254   - <h5 class="right my-1">
255   - <b>Registration No:</b>
256   - </h5>
257   - </b>
258   - </v-flex>
259   - <v-flex xs6 sm4 class="hidden-lg-only hidden-md-only hidden-xl-only">
260   - <b>
261   - <h5 class="right my-1">
262   - <b>RegistrationNo:</b>
263   - </h5>
264   - </b>
265   - </v-flex>
266   - <v-flex sm8 xs6>
267   - <h5 class="my-1">{{ schoolData.registrationNo }}</h5>
268   - </v-flex>
269   - </v-layout>
270   - </v-flex>
271   - </v-layout>
272   - <v-layout wrap>
273   - <v-flex xs12 sm6>
274   - <v-layout>
275   - <v-flex xs6 sm5>
276   - <b>
277   - <h5 class="right my-1">
278   - <b>School Details:</b>
279   - </h5>
280   - </b>
281   - </v-flex>
282   - <v-flex sm7 xs6>
283   - <h5 class="my-1">{{ schoolData.schoolDetails }}</h5>
284   - </v-flex>
285   - </v-layout>
286   - </v-flex>
287   - <v-flex xs12 sm6>
288   - <v-layout>
289   - <v-flex xs6 sm4>
290   - <b>
291   - <h5 class="right my-1">
292   - <b>Address:</b>
293   - </h5>
294   - </b>
295   - </v-flex>
296   - <v-flex sm8 xs6>
297   - <h5 class="my-1">{{ schoolData.address }}</h5>
298   - </v-flex>
299   - </v-layout>
  21 + <v-container grid-list-md>
  22 + <v-layout wrap>
  23 + <v-flex>
  24 + <v-layout>
  25 + <v-flex xs5 sm6>
  26 + <h5 class="right my-1">
  27 + <b>Title:</b>
  28 + </h5>
  29 + </v-flex>
  30 + <v-flex sm6 xs8>
  31 + <h5 class="my-1">{{ notice.title }}</h5>
  32 + </v-flex>
  33 + </v-layout>
  34 + <v-layout>
  35 + <v-flex xs5 sm6>
  36 + <h5 class="right my-1">
  37 + <b>Description:</b>
  38 + </h5>
  39 + </v-flex>
  40 + <v-flex sm6 xs8>
  41 + <h5 class="my-1">{{ notice.description }}</h5>
  42 + </v-flex>
  43 + </v-layout>
  44 + </v-flex>
  45 + </v-layout>
  46 + </v-container>
  47 + </v-card-text>
  48 + </v-card>
  49 + </v-dialog>-->
  50 + <!-- <v-container fluid grid-list-xl> -->
  51 + <v-layout wrap>
  52 + <v-flex xs12>
  53 + <v-layout wrap row>
  54 + <!-- ***** Total Students ***** -->
  55 + <v-flex xs12 sm12 md9>
  56 + <v-container fluid grid-list-xl>
  57 + <v-flex xs12 sm12 md12>
  58 + <v-layout wrap class>
  59 + <v-flex xs12 sm12 md3>
  60 + <router-link :to="{ name:'Students' }">
  61 + <v-card class="card pink-bgcolor">
  62 + <v-card-title primary-title class="titleCard white--text py-3">Students</v-card-title>
  63 + <img src="/static/icon/student.png" class="ml-2" width="40" alt="icons" />
  64 + <v-card-title class="headline py-1 white--text">{{ students.length }}</v-card-title>
  65 + </v-card>
  66 + </router-link>
  67 + </v-flex>
  68 + <!-- ***** Total Teachers***** -->
  69 + <v-flex xs12 sm12 md3>
  70 + <router-link :to="{ name:'Teachers' }">
  71 + <v-card flat class="card elevation-2 firozi-bgcolor">
  72 + <v-card-title primary-title class="titleCard white--text py-3">Teachers</v-card-title>
  73 + <img src="/static/icon/teacher.png" class="ml-2" width="40" alt="icons" />
  74 +
  75 + <v-card-title class="headline py-1 white--text">{{ teachers.length }}</v-card-title>
  76 + </v-card>
  77 + </router-link>
  78 + </v-flex>
  79 + <!-- ***** Total Parents ***** -->
  80 + <v-flex xs12 sm12 md3>
  81 + <router-link :to="{ name:'Parents' }">
  82 + <v-card flat class="card yellow darken-3">
  83 + <v-card-title primary-title class="titleCard white--text py-3">Parents</v-card-title>
  84 + <img src="/static/icon/parents.png" class="ml-3" width="40px" alt="icons" />
  85 + <v-card-title class="headline py-1 white--text">{{ parents.length }}</v-card-title>
  86 + </v-card>
  87 + </router-link>
  88 + </v-flex>
  89 + <!-- ***** Total Class***** -->
  90 + <v-flex xs12 sm12 md3>
  91 + <router-link :to="{ name:'Class' }">
  92 + <v-card flat class="card darkBlue-bgcolor">
  93 + <v-card-title primary-title class="titleCard white--text py-3">Class</v-card-title>
  94 + <img src="/static/icon/class.png" width="40" alt="icons" class="ml-2" />
  95 + <v-card-title class="headline py-1 white--text">{{ classes.length }}</v-card-title>
  96 + </v-card>
  97 + </router-link>
  98 + </v-flex>
  99 + </v-layout>
  100 + </v-flex>
  101 + <v-layout>
  102 + <v-flex xs12>
  103 + <v-card class="card mt-2 account-Card">
  104 + <h4>
  105 + <b>Account</b>
  106 + </h4>
  107 + <v-layout wrap>
  108 + <v-flex xs12 sm12 md3>
  109 + <v-list two-line>
  110 + <template>
  111 + <v-list-tile>
  112 + <v-list-tile-avatar>
  113 + <v-icon class="account-circle darkBlue-color">panorama_fish_eye</v-icon>
  114 + </v-list-tile-avatar>
  115 + <v-list-tile-content>
  116 + <v-list-tile-title class="mt-2">
  117 + <p class="subheading font-color">Fees</p>
  118 + </v-list-tile-title>
  119 + <v-list-tile-title>Rs 1000</v-list-tile-title>
  120 + </v-list-tile-content>
  121 + </v-list-tile>
  122 + <v-list-tile>
  123 + <v-list-tile-avatar>
  124 + <v-icon class="account-circle yellowDark-color">panorama_fish_eye</v-icon>
  125 + </v-list-tile-avatar>
  126 + <v-list-tile-content>
  127 + <v-list-tile-title class="mt-2">
  128 + <p class="subheading font-color">Collection</p>
  129 + </v-list-tile-title>
  130 + <v-list-tile-title>Rs 2000</v-list-tile-title>
  131 + </v-list-tile-content>
  132 + </v-list-tile>
  133 + <v-list-tile>
  134 + <v-list-tile-avatar>
  135 + <v-icon class="account-circle pink-color">panorama_fish_eye</v-icon>
  136 + </v-list-tile-avatar>
  137 + <v-list-tile-content>
  138 + <v-list-tile-title class="mt-2">
  139 + <p class="subheading font-color">Expences</p>
  140 + </v-list-tile-title>
  141 + <v-list-tile-title>Rs 3000</v-list-tile-title>
  142 + </v-list-tile-content>
  143 + </v-list-tile>
  144 + </template>
  145 + </v-list>
  146 + </v-flex>
  147 + <v-flex xs12 sm12 md9>
  148 + <div id="chart">
  149 + <apexchart
  150 + type="bar"
  151 + height="250"
  152 + :options="chartOptions"
  153 + :series="series"
  154 + ></apexchart>
  155 + </div>
  156 + </v-flex>
  157 + </v-layout>
  158 + </v-card>
300 159 </v-flex>
301 160 </v-layout>
302   - <v-layout wrap>
303   - <v-flex xs12 sm5>
304   - <v-layout>
305   - <v-flex xs6 sm6 class="hidden-xs-only hidden-sm-only">
306   - <b>
307   - <h5 class="right my-1">
308   - <b>Academic Year:</b>
309   - </h5>
310   - </b>
311   - </v-flex>
312   - <v-flex xs6 sm6 class="hidden-lg-only hidden-md-only hidden-xl-only">
313   - <b>
314   - <h5 class="right my-1">
315   - <b>AcademicYear:</b>
316   - </h5>
317   - </b>
318   - </v-flex>
319   - <v-flex sm6 xs6>
320   - <h5 class="my-1">{{ schoolData.establishmentYear }}</h5>
  161 + <v-card class="mt-2 card">
  162 + <!-- <full-calendar
  163 + ref="calendar"
  164 + defaultView="month"
  165 + droppable="false"
  166 + :events="events"
  167 + :config="config"
  168 + ></full-calendar>-->
  169 + <h4 class="pa-3">
  170 + <b>Notice</b>
  171 + </h4>
  172 +
  173 + <v-data-table
  174 + :items="noticeData"
  175 + class="elevation-0"
  176 + flat
  177 + hide-actions
  178 + hide-headers
  179 + style="border-spacing: 0 !important;"
  180 + >
  181 + <template
  182 + slot="items"
  183 + slot-scope="props"
  184 + v-if="props.index < 5"
  185 + style="border-spacing: 0 !important;"
  186 + >
  187 + <tr class="td-notice">
  188 + <td class="grey--text" style="width:18px">{{ props.index + 1}}</td>
  189 + <td>
  190 + <span class="grey--text caption">{{ date(props.item.created) }}</span>
  191 + <br />
  192 + <span class="body-2">{{ props.item.title}}</span>
  193 + </td>
  194 + <td class="noticeDecritpion grey--text mt-2">{{ props.item.description}}</td>
  195 +
  196 + <td class="text-xs-center">
  197 + <span>
  198 + <v-tooltip top>
  199 + <img
  200 + slot="activator"
  201 + style="cursor:pointer; width:25px; height:25px; "
  202 + @click="profile"
  203 + src="/static/icon/view.png"
  204 + />
  205 + <span>View</span>
  206 + </v-tooltip>
  207 + </span>
  208 + </td>
  209 + </tr>
  210 + </template>
  211 + </v-data-table>
  212 + </v-card>
  213 + </v-container>
  214 + </v-flex>
  215 + <v-flex xs12 sm12 md3>
  216 + <v-card height="100%" class="elevation-0 mt-3 profileDasboard">
  217 + <v-card-text>
  218 + <h4 class="text-xs-center py-3">
  219 + <b>Profile</b>
  220 + </h4>
  221 + <v-flex xs12 class="py-3">
  222 + <v-layout wrap>
  223 + <v-flex xs12 sm12 md4>
  224 + <img src="/static/icon/user.png" v-if="!userData.schoolLogoUrl" width="80" />
  225 + <img
  226 + :src="userData.schoolLogoUrl"
  227 + v-else-if="userData.schoolLogoUrl"
  228 + width="80"
  229 + />
  230 + </v-flex>
  231 + <v-flex xs12 sm12 md6>
  232 + <p class="mb-0 body-1">
  233 + <i>{{ userData.name }}</i>
  234 + </p>
  235 + <p class="mb-0 caption grey--text">{{ userData.email }}</p>
  236 + <p class="mb-0 caption grey--text">{{ userData.mobile }}</p>
  237 + <address class="caption grey--text mb-3">{{ userData.address }}</address>
321 238 </v-flex>
322 239 </v-layout>
323 240 </v-flex>
324   - </v-layout>
325   - </v-container>
326   - </v-card>
  241 + <hr />
  242 + <h4 class="text-xs-center py-3">
  243 + <b>Calender</b>
  244 + </h4>
  245 + <vue-event-calendar :events="demoEvents"></vue-event-calendar>
  246 + </v-card-text>
  247 + </v-card>
  248 + </v-flex>
  249 + </v-layout>
  250 + </v-flex>
  251 + </v-layout>
  252 + <v-dialog v-model="dialog" max-width="500">
  253 + <v-card color="grey lighten-4" flat>
  254 + <v-toolbar dark color="fixcolors">
  255 + <v-spacer></v-spacer>
  256 + <v-btn icon @click="dialog= false">
  257 + <v-icon>close</v-icon>
  258 + </v-btn>
  259 + </v-toolbar>
  260 + <v-flex class="py-4">
  261 + <v-list-tile>
  262 + <v-list-tile-action>
  263 + <v-icon>edit</v-icon>
  264 + </v-list-tile-action>
  265 + <v-list-tile-content>
  266 + <v-list-tile-title>{{ selected.title }}</v-list-tile-title>
  267 + </v-list-tile-content>
  268 + </v-list-tile>
  269 + <v-list-tile>
  270 + <v-list-tile-action>
  271 + <v-icon>access_time</v-icon>
  272 + </v-list-tile-action>
  273 + <v-list-tile-content>
  274 + <v-list-tile-title>{{ date(selected.start)}}</v-list-tile-title>
  275 + </v-list-tile-content>
  276 + </v-list-tile>
327 277 </v-flex>
328   - </v-layout>
329   - </v-container>
  278 + </v-card>
  279 + </v-dialog>
330 280 <div class="loader" v-if="showLoader">
331 281 <v-progress-circular indeterminate color="white"></v-progress-circular>
332 282 </div>
333 283 </v-app>
334 284 </template>
335 285  
336   -
337 286 <script>
338 287 import http from "@/Services/http.js";
339 288 import moment from "moment";
  289 +// import { FunctionalCalendar } from "vue-functional-calendar";
340 290  
341 291 export default {
  292 + components: {
  293 + // FunctionalCalendar
  294 + },
342 295 data() {
343 296 return {
  297 + // data: {
  298 + // clieckedToday: false
  299 + // },
  300 + // markedDates: ["16/4/2019", "18/4/2019", "20/4/2019", "21/4/2019"],
  301 + // calendarData: {},
  302 + // calendar: {},
  303 + demoEvents: [
  304 + {
  305 + date: "2020/01/10", // Required
  306 + title: "Foo" // Required
  307 + },
  308 + {
  309 + date: "2020/01/12",
  310 + title: "Bar",
  311 + desc: "description",
  312 + customClass: "disabled highlight" // Custom classes to an calendar cell
  313 + }
  314 + ],
  315 +
344 316 showLoader: false,
  317 + calendarData: {},
  318 + dialog: false,
  319 + dialogNotice: false,
  320 + HolidaysList: [],
  321 + EventsList: [],
  322 + events: [],
  323 + config: {
  324 + eventClick: event => {
  325 + this.selected = event;
  326 + this.dialog = true;
  327 + }
  328 + },
  329 + selected: {},
  330 + // notice: {},
  331 + userData: {},
  332 + dated: new Date(2018, 0, 9),
  333 + userList: [],
  334 + sectionList: [],
345 335 students: "",
346 336 parents: "",
347 337 teachers: "",
348 338 classes: "",
349   - schoolData: ""
  339 + noticeData: [],
  340 + attrs: [
  341 + {
  342 + key: "today",
  343 + highlight: true,
  344 + dates: new Date()
  345 + }
  346 + ],
  347 + drawer: true,
  348 + items: [
  349 + { title: "Home", icon: "dashboard" },
  350 + { title: "About", icon: "question_answer" }
  351 + ],
  352 + right: null,
  353 +
  354 + series: [
  355 + {
  356 + name: "Total",
  357 + data: [66, 44, 33]
  358 + }
  359 + ],
  360 + chartOptions: {
  361 + chart: {
  362 + type: "bar",
  363 + height: 150,
  364 + animations: {
  365 + enabled: true,
  366 + easing: "easeinout",
  367 + speed: 1200,
  368 + animateGradually: {
  369 + enabled: true,
  370 + delay: 450
  371 + },
  372 + dynamicAnimation: {
  373 + enabled: true,
  374 + speed: 450
  375 + }
  376 + }
  377 + },
  378 + plotOptions: {
  379 + bar: {
  380 + horizontal: false,
  381 + columnWidth: "25%",
  382 + // endingShape: "rounded",
  383 + distributed: true
  384 + }
  385 + },
  386 + legend: {
  387 + show: false
  388 + },
  389 + colors: ["#7852cc", "#f9a825", "#ff8a89"],
  390 + dataLabels: {
  391 + enabled: false
  392 + },
  393 + stroke: {
  394 + show: true,
  395 + width: 2,
  396 + colors: ["transparent"]
  397 + },
  398 + xaxis: {
  399 + categories: ["Fee", "Collections", "Expences"]
  400 + },
  401 + yaxis: {
  402 + title: {
  403 + text: ""
  404 + }
  405 + },
  406 + fill: {
  407 + opacity: 1
  408 + },
  409 + tooltip: {
  410 + y: {
  411 + formatter: function(val, opts) {
  412 + // console.log("opts",opts.w.config.xaxis.categories)
  413 + return "" + val + " ";
  414 + }
  415 + }
  416 + }
  417 + }
350 418 };
351 419 },
352 420 mounted() {
  421 + // = this.$store.state.schoolToken;
  422 + // console.log("this.$store.state.role", this.token);
  423 + if (this.$store.state.role === "ADMIN") {
  424 + this.token = this.$store.state.token;
  425 + } else if (this.$store.state.schoolRole === "SUPERADMIN") {
  426 + this.token = this.$store.state.schoolToken;
  427 + }
  428 + // console.log("role", this.$store.state.schoolRole,"tt",this.$store.state.schoolToken);
  429 + // this.getData();
353 430 this.getStudents();
354 431 this.getTeachers();
355 432 this.getParents();
356 433 this.getClasses();
357   - this.getSchoolData();
  434 + this.getNoticeData();
  435 + this.getUserData();
  436 + // this.getUsersList();
358 437 },
359 438 methods: {
360   - dates: function(date) {
361   - return moment(date).format("MMMM DD, YYYY");
  439 + closeNotice() {
  440 + this.dialogNotice = false;
  441 + },
  442 + profile() {
  443 + // this.editedIndex = this.desserts.indexOf(item);
  444 + // this.notice = Object.assign({}, item);
  445 + // this.dialogNotice = true;
  446 + this.$router.push({ name: "NoticeBoard" });
  447 + },
  448 + date: function(date) {
  449 + return moment(date).format("MMMM DD, YYYY HH:mm");
  450 + },
  451 + refreshEvents() {
  452 + this.$refs.calendar.$emit("refetch-events");
  453 + },
  454 + removeEvent() {
  455 + this.$refs.calendar.$emit("remove-event", this.selected);
  456 + this.selected = {};
  457 + },
  458 + eventSelected(event) {
  459 + this.selected = event;
  460 + console.log("this.selected", this.selected);
  461 + },
  462 + // eventDropStart: function(event) {
  463 + // event.editable = false;
  464 + // },
  465 + eventCreated(...test) {
  466 + console.log(test);
362 467 },
363 468 getStudents() {
364 469 http()
365 470 .get("/getStudentsList", {
366   - params: { schoolId: this.$route.params.schoolId }
  471 + headers: {
  472 + Authorization: "Bearer " + this.token
  473 + }
367 474 })
368 475 .then(response => {
369 476 this.students = response.data.data;
... ... @@ -372,17 +479,19 @@ export default {
372 479 .catch(error => {
373 480 // console.log("err====>", err);
374 481 this.showLoader = false;
375   - if (error.response.status === 401) {
376   - this.$router.replace({ path: "/" });
377   - this.$store.dispatch("setToken", null);
378   - this.$store.dispatch("Id", null);
379   - }
  482 + // if (error.response.status === 401) {
  483 + // this.$router.replace({ path: "/" });
  484 + // this.$store.dispatch("setToken", null);
  485 + // this.$store.dispatch("Id", null);
  486 + // }
380 487 });
381 488 },
382 489 getParents() {
383 490 http()
384 491 .get("/getParentsList", {
385   - params: { schoolId: this.$route.params.schoolId }
  492 + headers: {
  493 + Authorization: "Bearer " + this.token
  494 + }
386 495 })
387 496 .then(response => {
388 497 this.parents = response.data.data;
... ... @@ -401,7 +510,9 @@ export default {
401 510 getTeachers() {
402 511 http()
403 512 .get("/getTeachersList", {
404   - params: { schoolId: this.$route.params.schoolId }
  513 + headers: {
  514 + Authorization: "Bearer " + this.token
  515 + }
405 516 })
406 517 .then(response => {
407 518 this.teachers = response.data.data;
... ... @@ -410,17 +521,19 @@ export default {
410 521 .catch(error => {
411 522 // console.log("err====>", err);
412 523 this.showLoader = false;
413   - if (error.response.status === 401) {
414   - this.$router.replace({ path: "/" });
415   - this.$store.dispatch("setToken", null);
416   - this.$store.dispatch("Id", null);
417   - }
  524 + // if (error.response.status === 401) {
  525 + // this.$router.replace({ path: "/" });
  526 + // this.$store.dispatch("setToken", null);
  527 + // this.$store.dispatch("Id", null);
  528 + // }
418 529 });
419 530 },
420 531 getClasses() {
421 532 http()
422 533 .get("/getClassesList", {
423   - params: { schoolId: this.$route.params.schoolId }
  534 + headers: {
  535 + Authorization: "Bearer " + this.token
  536 + }
424 537 })
425 538 .then(response => {
426 539 this.classes = response.data.data;
... ... @@ -428,56 +541,60 @@ export default {
428 541 })
429 542 .catch(error => {
430 543 this.showLoader = false;
431   - if (error.response.status === 401) {
432   - this.$router.replace({ path: "/" });
433   - this.$store.dispatch("setToken", null);
434   - this.$store.dispatch("Id", null);
435   - this.$store.dispatch("Role", null);
436   - }
  544 + // if (error.response.status === 401) {
  545 + // this.$router.replace({ path: "/" });
  546 + // this.$store.dispatch("setToken", null);
  547 + // this.$store.dispatch("Id", null);
  548 + // this.$store.dispatch("Role", null);
  549 + // }
437 550 });
438 551 },
439   - getSchoolData() {
  552 + getNoticeData() {
  553 + this.showLoader = true;
440 554 http()
441   - .get("/getParticularSchool", {
442   - params: { schoolId: this.$route.params.schoolId }
  555 + .get("/getEventsList", {
  556 + headers: {
  557 + Authorization: "Bearer " + this.token
  558 + }
443 559 })
444 560 .then(response => {
445   - this.schoolData = response.data.data;
  561 + this.noticeData = response.data.data;
446 562 this.showLoader = false;
447 563 })
448 564 .catch(error => {
449 565 this.showLoader = false;
450   - if (error.response.status === 401) {
451   - this.$router.replace({ path: "/" });
452   - this.$store.dispatch("setToken", null);
453   - this.$store.dispatch("Id", null);
454   - this.$store.dispatch("Role", null);
  566 + // if (error.response.status === 401) {
  567 + // this.$router.replace({ path: "/" });
  568 + // this.$store.dispatch("setToken", null);
  569 + // this.$store.dispatch("Id", null);
  570 + // }
  571 + });
  572 + },
  573 + getUserData() {
  574 + // this.showLoader = true;
  575 + http()
  576 + .get("/getParticularUserDetail", {
  577 + headers: {
  578 + Authorization: "Bearer " + this.token
455 579 }
  580 + })
  581 + .then(response => {
  582 + this.userData = response.data.data;
  583 + this.showLoader = false;
  584 + })
  585 + .catch(error => {
  586 + this.showLoader = false;
  587 + // if (error.response.status === 401) {
  588 + // this.$router.replace({ path: "/" });
  589 + // this.$store.dispatch("setToken", null);
  590 + // this.$store.dispatch("Id", null);
  591 + // }
456 592 });
457 593 }
458 594 }
459 595 };
460 596 </script>
461 597  
462   -<style scoped>
463   -.iconCard {
464   - position: relative !important;
465   - border-radius: 4px;
466   - z-index: 1;
467   -}
468   -.agentIcon {
469   - position: relative !important;
470   - border-radius: 4px;
471   - z-index: 1;
472   -}
473   -.farmerIcon {
474   - position: relative !important;
475   - border-radius: 4px;
476   - z-index: 1;
477   -}
478   -.khasraIcon {
479   - position: relative !important;
480   - border-radius: 4px;
481   - z-index: 1;
482   -}
  598 +<style scoped>
  599 +@import "fullcalendar/dist/fullcalendar.css";
483 600 </style>
484 601 \ No newline at end of file
... ...
src/router/paths.js
... ... @@ -685,7 +685,7 @@ export default [{
685 685 )
686 686 },
687 687 {
688   - path: '/schooldashboard/:schoolId',
  688 + path: '/schooldashboard',
689 689 meta: {},
690 690 name: 'View School Dashboard',
691 691 props: (route) => ({ type: route.query.type }),
... ...
static/css/custom.css
... ... @@ -151,6 +151,9 @@ h4 {
151 151 .apexcharts-canvas > svg{
152 152 width: 100% !important;
153 153 }
  154 +.apexcharts-canvas > svg > apexcharts-inner > apexcharts-graphical {
  155 + transform: translate(0);
  156 +}
154 157  
155 158 #dialog {
156 159 height: 550px;
... ...