Commit 229463bd5fc4490deef9e0cef59f62a39b41d33e
1 parent
531728c2ef
Exists in
master
and in
3 other branches
implement design and functionality of enrollStudents,parents,annoucement,course
Showing
10 changed files
with
1951 additions
and
89 deletions
Show diff stats
src/api/menu.js
1 | const adminMenu = [ | 1 | const adminMenu = [ |
2 | // { header: 'Apps' }, | 2 | // { header: 'Apps' }, |
3 | { | 3 | { |
4 | title: 'Dashboard', | 4 | title: 'Dashboard', |
5 | // group: 'apps', | 5 | // group: 'apps', |
6 | name: 'Dashboard', | 6 | name: 'Dashboard', |
7 | icon: '/static/icon/dashboard.png', | 7 | icon: '/static/icon/dashboard.png', |
8 | }, | 8 | }, |
9 | { | 9 | { |
10 | title: 'Class', | 10 | title: 'Class', |
11 | // group: 'apps', | 11 | // group: 'apps', |
12 | name: 'Class', | 12 | name: 'Class', |
13 | icon: '/static/icon/class.png', | 13 | icon: '/static/icon/class.png', |
14 | }, | 14 | }, |
15 | { | 15 | { |
16 | title: 'Section', | 16 | title: 'Section', |
17 | // group: 'apps', | 17 | // group: 'apps', |
18 | name: 'Section', | 18 | name: 'Section', |
19 | icon: '/static/icon/section.png', | 19 | icon: '/static/icon/section.png', |
20 | }, | 20 | }, |
21 | // { | 21 | // { |
22 | // title: 'Subjects', | 22 | // title: 'Subjects', |
23 | // name: 'Subject', | 23 | // name: 'Subject', |
24 | // icon: '/static/icon/subject.png', | 24 | // icon: '/static/icon/subject.png', |
25 | // }, | 25 | // }, |
26 | { | 26 | { |
27 | title: 'Parents', | 27 | title: 'Parents', |
28 | // group: 'apps', | 28 | // group: 'apps', |
29 | name: 'Parents', | 29 | name: 'Parents', |
30 | icon: '/static/icon/parents.png', | 30 | icon: '/static/icon/parents.png', |
31 | }, | 31 | }, |
32 | { | 32 | { |
33 | title: 'Teachers', | 33 | title: 'Teachers', |
34 | // group: '', | 34 | // group: '', |
35 | name: 'Teachers', | 35 | name: 'Teachers', |
36 | icon: '/static/icon/teacher.png', | 36 | icon: '/static/icon/teacher.png', |
37 | }, | 37 | }, |
38 | { | 38 | { |
39 | title: 'Students', | 39 | title: 'Students', |
40 | // group: 'apps', | 40 | // group: 'apps', |
41 | name: 'Students', | 41 | name: 'Students', |
42 | icon: '/static/icon/student.png', | 42 | icon: '/static/icon/student.png', |
43 | }, | 43 | }, |
44 | { | 44 | { |
45 | title: 'User', | 45 | title: 'User', |
46 | name: 'User', | 46 | name: 'User', |
47 | icon: '/static/icon/users.png', | 47 | icon: '/static/icon/users.png', |
48 | }, | 48 | }, |
49 | { | 49 | { |
50 | title: 'Attendance', | 50 | title: 'Attendance', |
51 | group: 'Attendance', | 51 | group: 'Attendance', |
52 | component: 'Attendance', | 52 | component: 'Attendance', |
53 | icon: '/static/icon/attendence.png', | 53 | icon: '/static/icon/attendence.png', |
54 | items: [ | 54 | items: [ |
55 | { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', }, | 55 | { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', }, |
56 | { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', }, | 56 | { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', }, |
57 | // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', }, | 57 | // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', }, |
58 | ] | 58 | ] |
59 | }, | 59 | }, |
60 | { | 60 | { |
61 | title: 'Exam', | 61 | title: 'Exam', |
62 | group: 'Exam', | 62 | group: 'Exam', |
63 | component: 'Exam', | 63 | component: 'Exam', |
64 | icon: '/static/icon/exam.png', | 64 | icon: '/static/icon/exam.png', |
65 | items: [ | 65 | items: [ |
66 | { name: 'Exam', title: 'Exam', component: 'Exam', action: '', }, | 66 | { name: 'Exam', title: 'Exam', component: 'Exam', action: '', }, |
67 | { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', }, | 67 | { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', }, |
68 | { name: 'Grade', title: 'Grade', component: 'Grade', action: '', }, | 68 | { name: 'Grade', title: 'Grade', component: 'Grade', action: '', }, |
69 | // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', }, | 69 | // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', }, |
70 | ] | 70 | ] |
71 | }, | 71 | }, |
72 | { | 72 | { |
73 | title: 'Marks', | 73 | title: 'Marks', |
74 | group: 'Mark', | 74 | group: 'Mark', |
75 | component: 'Mark', | 75 | component: 'Mark', |
76 | icon: '/static/icon/marks.png', | 76 | icon: '/static/icon/marks.png', |
77 | items: [ | 77 | items: [ |
78 | { name: 'Mark', title: 'Mark', component: 'Mark', action: '', }, | 78 | { name: 'Mark', title: 'Mark', component: 'Mark', action: '', }, |
79 | { name: 'MarkDistribution', title: 'Mark Distribution', component: 'Mark Distribution', action: '', }, | 79 | { name: 'MarkDistribution', title: 'Mark Distribution', component: 'Mark Distribution', action: '', }, |
80 | // { name: 'Promotion', title: 'promotion', component: 'Promotion', action: '', }, | 80 | // { name: 'Promotion', title: 'promotion', component: 'Promotion', action: '', }, |
81 | // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', }, | 81 | // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', }, |
82 | ] | 82 | ] |
83 | }, | 83 | }, |
84 | { | 84 | { |
85 | title: 'Academic', | 85 | title: 'Academic', |
86 | group: 'Academic', | 86 | group: 'Academic', |
87 | component: 'Academic', | 87 | component: 'Academic', |
88 | icon: '/static/icon/school.png', | 88 | icon: '/static/icon/school.png', |
89 | items: [ | 89 | items: [ |
90 | { name: 'Subject', title: 'Subject', component: 'Subject', action: '', }, | 90 | { name: 'Subject', title: 'Subject', component: 'Subject', action: '', }, |
91 | { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', }, | 91 | { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', }, |
92 | { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', }, | 92 | { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', }, |
93 | { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, | 93 | { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, |
94 | ] | 94 | ] |
95 | }, | 95 | }, |
96 | { | 96 | { |
97 | title: 'Administrator', | 97 | title: 'Administrator', |
98 | group: 'Administrator', | 98 | group: 'Administrator', |
99 | component: 'Administrator', | 99 | component: 'Administrator', |
100 | icon: '/static/icon/adminstrator.png', | 100 | icon: '/static/icon/adminstrator.png', |
101 | items: [ | 101 | items: [ |
102 | { name: 'AcademicYear', title: 'Academic Year', component: 'Academic Year', action: '', }, | 102 | { name: 'AcademicYear', title: 'Academic Year', component: 'Academic Year', action: '', }, |
103 | // { name: 'systemAdmin', title: 'System Admin', component: 'systemAdmin', action: '', }, | 103 | // { name: 'systemAdmin', title: 'System Admin', component: 'systemAdmin', action: '', }, |
104 | { name: 'resetPassword', title: 'Change Password', component: 'Change Password', action: '', }, | 104 | { name: 'resetPassword', title: 'Change Password', component: 'Change Password', action: '', }, |
105 | { name: 'Role', title: 'Role', component: 'Role', action: '', }, | 105 | { name: 'Role', title: 'Role', component: 'Role', action: '', }, |
106 | { name: 'BulkImport', title: 'Bulk Import', component: 'Bulk Import', action: '', }, | 106 | { name: 'BulkImport', title: 'Bulk Import', component: 'Bulk Import', action: '', }, |
107 | 107 | ||
108 | ] | 108 | ] |
109 | }, | 109 | }, |
110 | { | 110 | { |
111 | title: 'Payroll', | 111 | title: 'Payroll', |
112 | group: 'Payroll', | 112 | group: 'Payroll', |
113 | component: 'Payroll', | 113 | component: 'Payroll', |
114 | icon: '/static/icon/dollar.png', | 114 | icon: '/static/icon/dollar.png', |
115 | items: [ | 115 | items: [ |
116 | { name: 'salaryTemplate', title: 'Salary Template', component: 'Salary Template', action: '', }, | 116 | { name: 'salaryTemplate', title: 'Salary Template', component: 'Salary Template', action: '', }, |
117 | { name: 'hourlyTemplate', title: 'Hourly Template', component: 'Hourly Template', action: '', }, | 117 | { name: 'hourlyTemplate', title: 'Hourly Template', component: 'Hourly Template', action: '', }, |
118 | { name: 'manageSalary', title: 'Manage Salary', component: 'Manage Salary', action: '', }, | 118 | { name: 'manageSalary', title: 'Manage Salary', component: 'Manage Salary', action: '', }, |
119 | // { name: 'makePayment', title: 'Make Payment', component: 'Make Payment', action: '', }, | 119 | // { name: 'makePayment', title: 'Make Payment', component: 'Make Payment', action: '', }, |
120 | ] | 120 | ] |
121 | }, | 121 | }, |
122 | { | 122 | { |
123 | title: 'Notice Board', | 123 | title: 'Notice Board', |
124 | name: 'Notice Board', | 124 | name: 'Notice Board', |
125 | icon: '/static/icon/notice board.png', | 125 | icon: '/static/icon/notice board.png', |
126 | }, | 126 | }, |
127 | { | 127 | { |
128 | title: 'News', | 128 | title: 'News', |
129 | name: 'News', | 129 | name: 'News', |
130 | icon: '/static/icon/news.png', | 130 | icon: '/static/icon/news.png', |
131 | }, | 131 | }, |
132 | // { | 132 | // { |
133 | // title: 'Reminder', | 133 | // title: 'Reminder', |
134 | // name: 'reminder', | 134 | // name: 'reminder', |
135 | // icon: 'alarm_add', | 135 | // icon: 'alarm_add', |
136 | // }, | 136 | // }, |
137 | { | 137 | { |
138 | title: 'Time Table', | 138 | title: 'Time Table', |
139 | name: 'Time Table', | 139 | name: 'Time Table', |
140 | icon: '/static/icon/time table.png', | 140 | icon: '/static/icon/time table.png', |
141 | }, | 141 | }, |
142 | { | 142 | { |
143 | title: 'Library', | 143 | title: 'Library', |
144 | group: 'Library', | 144 | group: 'Library', |
145 | component: 'Library', | 145 | component: 'Library', |
146 | icon: '/static/icon/library.png', | 146 | icon: '/static/icon/library.png', |
147 | items: [ | 147 | items: [ |
148 | { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', }, | 148 | { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', }, |
149 | { name: 'Books', title: 'Books', component: 'Books', action: '', }, | 149 | { name: 'Books', title: 'Books', component: 'Books', action: '', }, |
150 | { name: 'Issue', title: ' Issue', component: 'Issue', action: '', }, | 150 | { name: 'Issue', title: ' Issue', component: 'Issue', action: '', }, |
151 | { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } | 151 | { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } |
152 | 152 | ||
153 | ] | 153 | ] |
154 | }, | 154 | }, |
155 | { | 155 | { |
156 | title: 'Report', | 156 | title: 'Report', |
157 | group: 'Report', | 157 | group: 'Report', |
158 | component: 'Report', | 158 | component: 'Report', |
159 | icon: '/static/icon/reports.png', | 159 | icon: '/static/icon/reports.png', |
160 | items: [ | 160 | items: [ |
161 | { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', }, | 161 | { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', }, |
162 | { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', }, | 162 | { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', }, |
163 | { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', }, | 163 | { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', }, |
164 | { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', } | 164 | { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', } |
165 | ] | 165 | ] |
166 | }, | 166 | }, |
167 | { | 167 | { |
168 | title: 'Notification', | 168 | title: 'Notification', |
169 | name: 'Notification', | 169 | name: 'Notification', |
170 | icon: '/static/icon/notification.png', | 170 | icon: '/static/icon/notification.png', |
171 | }, | 171 | }, |
172 | { | 172 | { |
173 | title: 'Social Media', | 173 | title: 'Social Media', |
174 | name: 'Social Media', | 174 | name: 'Social Media', |
175 | icon: '/static/icon/events.png', | 175 | icon: '/static/icon/events.png', |
176 | }, | 176 | }, |
177 | { | 177 | { |
178 | title: 'Gallery', | 178 | title: 'Gallery', |
179 | name: 'Gallery', | 179 | name: 'Gallery', |
180 | icon: '/static/icon/gallery.png', | 180 | icon: '/static/icon/gallery.png', |
181 | }, | 181 | }, |
182 | { | 182 | { |
183 | title: 'Event', | 183 | title: 'Event', |
184 | name: 'Event', | 184 | name: 'Event', |
185 | icon: '/static/icon/events.png', | 185 | icon: '/static/icon/events.png', |
186 | }, | 186 | }, |
187 | { | 187 | { |
188 | title: 'Account', | 188 | title: 'Account', |
189 | group: 'Account', | 189 | group: 'Account', |
190 | component: 'Account', | 190 | component: 'Account', |
191 | icon: '/static/icon/accounts.png', | 191 | icon: '/static/icon/accounts.png', |
192 | items: [ | 192 | items: [ |
193 | { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', }, | 193 | { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', }, |
194 | { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', }, | 194 | { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', }, |
195 | { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', }, | 195 | { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', }, |
196 | { name: 'Expense', title: 'Expense', component: 'Expense', action: '', }, | 196 | { name: 'Expense', title: 'Expense', component: 'Expense', action: '', }, |
197 | { name: 'Income', title: 'Income', component: 'Income', action: '', }, | 197 | { name: 'Income', title: 'Income', component: 'Income', action: '', }, |
198 | { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', } | 198 | { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', } |
199 | ] | 199 | ] |
200 | }, | 200 | }, |
201 | { | 201 | { |
202 | title: 'Holiday', | 202 | title: 'Holiday', |
203 | name: 'Holiday', | 203 | name: 'Holiday', |
204 | icon: '/static/icon/holiday.png', | 204 | icon: '/static/icon/holiday.png', |
205 | }, | 205 | }, |
206 | { | 206 | { |
207 | title: 'General Setting', | 207 | title: 'General Setting', |
208 | name: 'General Setting', | 208 | name: 'General Setting', |
209 | icon: '/static/icon/settings.png', | 209 | icon: '/static/icon/settings.png', |
210 | } | 210 | } |
211 | ]; | 211 | ]; |
212 | 212 | ||
213 | const libraryMenu = [{ | 213 | const libraryMenu = [{ |
214 | title: 'Dashboard', | 214 | title: 'Dashboard', |
215 | name: 'Dashboard', | 215 | name: 'Dashboard', |
216 | icon: '/static/icon/dashboard.png', | 216 | icon: '/static/icon/dashboard.png', |
217 | }, | 217 | }, |
218 | { | 218 | { |
219 | title: 'Library', | 219 | title: 'Library', |
220 | group: 'Library', | 220 | group: 'Library', |
221 | component: 'Library', | 221 | component: 'Library', |
222 | icon: '/static/icon/library.png', | 222 | icon: '/static/icon/library.png', |
223 | items: [ | 223 | items: [ |
224 | { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', }, | 224 | { name: 'LibraryMember', title: ' Library Member', component: 'Library Member', action: '', }, |
225 | { name: 'Books', title: 'Books', component: 'Books', action: '', }, | 225 | { name: 'Books', title: 'Books', component: 'Books', action: '', }, |
226 | { name: 'Issue', title: ' Issue', component: 'Issue', action: '', }, | 226 | { name: 'Issue', title: ' Issue', component: 'Issue', action: '', }, |
227 | { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } | 227 | { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } |
228 | 228 | ||
229 | ] | 229 | ] |
230 | }, | 230 | }, |
231 | ]; | 231 | ]; |
232 | 232 | ||
233 | const accountMenu = [{ | 233 | const accountMenu = [{ |
234 | title: 'Dashboard', | 234 | title: 'Dashboard', |
235 | name: 'Dashboard', | 235 | name: 'Dashboard', |
236 | icon: '/static/icon/dashboard.png', | 236 | icon: '/static/icon/dashboard.png', |
237 | }, | 237 | }, |
238 | 238 | ||
239 | { | 239 | { |
240 | title: 'Account', | 240 | title: 'Account', |
241 | group: 'Account', | 241 | group: 'Account', |
242 | component: 'Account', | 242 | component: 'Account', |
243 | icon: '/static/icon/accounts.png', | 243 | icon: '/static/icon/accounts.png', |
244 | items: [ | 244 | items: [ |
245 | { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', }, | 245 | { name: 'feeTypes', title: 'Fee Types', component: 'Fee Types', action: '', }, |
246 | { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', }, | 246 | { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', }, |
247 | { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', }, | 247 | { name: 'PaymentHistory', title: 'Payment History', component: 'Payment History', action: '', }, |
248 | { name: 'Expense', title: 'Expense', component: 'Expense', action: '', }, | 248 | { name: 'Expense', title: 'Expense', component: 'Expense', action: '', }, |
249 | { name: 'Income', title: 'Income', component: 'Income', action: '', }, | 249 | { name: 'Income', title: 'Income', component: 'Income', action: '', }, |
250 | { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', } | 250 | { name: 'GlobalPayment', title: 'Global Payment', component: 'Global Payment', action: '', } |
251 | ] | 251 | ] |
252 | }, | 252 | }, |
253 | ]; | 253 | ]; |
254 | 254 | ||
255 | const schoolMenu = [ | 255 | const schoolMenu = [ |
256 | // { header: 'Apps' }, | 256 | // { header: 'Apps' }, |
257 | { | 257 | { |
258 | title: 'Dashboard', | 258 | title: 'Dashboard', |
259 | // group: 'apps', | 259 | // group: 'apps', |
260 | name: 'View School Dashboard', | 260 | name: 'View School Dashboard', |
261 | icon: '/static/icon/dashboard.png', | 261 | icon: '/static/icon/dashboard.png', |
262 | }, | 262 | }, |
263 | { | 263 | { |
264 | title: 'School', | 264 | title: 'School', |
265 | // group: 'apps', | 265 | // group: 'apps', |
266 | name: 'School', | 266 | name: 'School', |
267 | icon: '/static/schoolIcons/Dashboard.png', | 267 | icon: '/static/schoolIcons/Dashboard.png', |
268 | } | 268 | } |
269 | ]; | 269 | ]; |
270 | 270 | ||
271 | const teacherMenu = [{ | 271 | const teacherMenu = [{ |
272 | title: 'Dashboard', | 272 | title: 'Dashboard', |
273 | name: 'School', | 273 | name: 'Dashboard', |
274 | icon: '/static/icon/dashboard.png', | 274 | icon: '/static/icon/dashboard.png', |
275 | }, | 275 | }, |
276 | { | 276 | { |
277 | title: 'Parents', | 277 | title: 'Parents', |
278 | // group: 'apps', | 278 | // group: 'apps', |
279 | name: 'Parents', | 279 | name: 'Parents', |
280 | icon: '/static/icon/parents.png', | 280 | icon: '/static/icon/parents.png', |
281 | }, | 281 | }, |
282 | { | 282 | { |
283 | title: 'Teachers', | 283 | title: 'Teachers', |
284 | // group: '', | 284 | // group: '', |
285 | name: 'Teachers', | 285 | name: 'Teachers', |
286 | icon: '/static/icon/teacher.png', | 286 | icon: '/static/icon/teacher.png', |
287 | }, | 287 | }, |
288 | { | 288 | { |
289 | title: 'Students', | 289 | title: 'Students', |
290 | // group: 'apps', | 290 | // group: 'apps', |
291 | name: 'Students', | 291 | name: 'Students', |
292 | icon: '/static/icon/student.png', | 292 | icon: '/static/icon/student.png', |
293 | }, | 293 | }, |
294 | { | 294 | { |
295 | title: 'Academic', | 295 | title: 'Academic', |
296 | group: 'Academic', | 296 | group: 'Academic', |
297 | component: 'Academic', | 297 | component: 'Academic', |
298 | icon: '/static/icon/school.png', | 298 | icon: '/static/icon/school.png', |
299 | items: [ | 299 | items: [ |
300 | { name: 'Subject', title: 'Subject', component: 'Subject', action: '', }, | 300 | { name: 'Subject', title: 'Subject', component: 'Subject', action: '', }, |
301 | { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', }, | 301 | { name: 'Syllabus', title: 'Syllabus', component: 'Syllabus', action: '', }, |
302 | { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', }, | 302 | { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', }, |
303 | { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, | 303 | { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, |
304 | ] | 304 | ] |
305 | }, | 305 | }, |
306 | { | 306 | { |
307 | title: 'Course', | ||
308 | group: 'Course', | ||
309 | component: 'Course', | ||
310 | icon: '/static/icon/school.png', | ||
311 | items: [ | ||
312 | { name: 'Course', title: 'Course', component: 'Course', action: '', }, | ||
313 | { name: 'Enroll Students', title: 'Enroll Students', component: 'Enroll Students', action: '', }, | ||
314 | // { name: 'Assignment', title: 'Assignment', component: 'Assignment', action: '', }, | ||
315 | // { name: 'Routine', title: 'Routine', component: 'Routine', action: '', }, | ||
316 | ] | ||
317 | }, | ||
318 | { | ||
319 | title: 'Annoucement', | ||
320 | // group: 'apps', | ||
321 | name: 'Annoucement', | ||
322 | icon: '/static/icon/student.png', | ||
323 | }, | ||
324 | { | ||
307 | title: 'Attendance', | 325 | title: 'Attendance', |
308 | group: 'Attendance', | 326 | group: 'Attendance', |
309 | component: 'Attendance', | 327 | component: 'Attendance', |
310 | icon: '/static/icon/attendence.png', | 328 | icon: '/static/icon/attendence.png', |
311 | items: [ | 329 | items: [ |
312 | { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', }, | 330 | { name: 'StudentAttendence', title: 'Student Attendance', component: 'Student Attendence', action: '', }, |
313 | { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', }, | 331 | { name: 'TeacherAttendence', title: 'Teacher Attendance', component: 'Teacher Attendence', action: '', }, |
314 | // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', }, | 332 | // { name: 'userAttendence', title: 'User Attendance', component: 'User Attendence', action: '', }, |
315 | ] | 333 | ] |
316 | }, | 334 | }, |
317 | { | 335 | { |
318 | title: 'Exam', | 336 | title: 'Exam', |
319 | group: 'Exam', | 337 | group: 'Exam', |
320 | component: 'Exam', | 338 | component: 'Exam', |
321 | icon: '/static/icon/exam.png', | 339 | icon: '/static/icon/exam.png', |
322 | items: [ | 340 | items: [ |
323 | { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', }, | 341 | { name: 'ExamSchedule', title: 'Exam Schedule', component: 'Exam Schedule', action: '', }, |
324 | { name: 'ExamAttendence', title: 'Exam Attendence', component: 'Exam Attendence', action: '', } | 342 | { name: 'ExamAttendence', title: 'Exam Attendence', component: 'Exam Attendence', action: '', } |
325 | ] | 343 | ] |
326 | }, | 344 | }, |
327 | { | 345 | { |
328 | title: 'Marks', | 346 | title: 'Marks', |
329 | group: 'Mark', | 347 | group: 'Mark', |
330 | component: 'Mark', | 348 | component: 'Mark', |
331 | icon: '/static/icon/marks.png', | 349 | icon: '/static/icon/marks.png', |
332 | items: [ | 350 | items: [ |
333 | { name: 'Mark', title: 'Mark', component: 'Mark', action: '', } | 351 | { name: 'Mark', title: 'Mark', component: 'Mark', action: '', } |
334 | ] | 352 | ] |
335 | }, | 353 | }, |
336 | { | 354 | { |
337 | title: 'Report', | 355 | title: 'Report', |
338 | group: 'Report', | 356 | group: 'Report', |
339 | component: 'Report', | 357 | component: 'Report', |
340 | icon: '/static/icon/reports.png', | 358 | icon: '/static/icon/reports.png', |
341 | items: [ | 359 | items: [ |
342 | { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', }, | 360 | { name: 'studentReport', title: 'Student Report', component: 'Student Report', action: '', }, |
343 | { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', }, | 361 | { name: 'ProgressCardReport', title: 'Progress Card Report', component: 'Progress Card Report', action: '', }, |
344 | { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', }, | 362 | { name: 'idCard', title: 'Id Card Report', component: 'Id Card Report', action: '', }, |
345 | { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', } | 363 | { name: 'admitCard', title: 'Admit Card Report', component: 'Admit Card Report', action: '', } |
346 | ] | 364 | ] |
347 | }, | 365 | }, |
348 | { | 366 | { |
349 | title: 'Library', | 367 | title: 'Library', |
350 | group: 'Library', | 368 | group: 'Library', |
351 | component: 'Library', | 369 | component: 'Library', |
352 | icon: '/static/icon/library.png', | 370 | icon: '/static/icon/library.png', |
353 | items: [ | 371 | items: [ |
354 | { name: 'Books', title: 'Books', component: 'Books', action: '', }, | 372 | { name: 'Books', title: 'Books', component: 'Books', action: '', }, |
355 | { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } | 373 | { name: 'E-Books', title: 'E-Books', component: 'E-Books', action: '', } |
356 | 374 | ||
357 | ] | 375 | ] |
358 | }, | 376 | }, |
359 | { | 377 | { |
360 | title: 'Meet', | 378 | title: 'Meet', |
361 | name: 'Meet', | 379 | name: 'Meet', |
362 | icon: '/static/icon/parents.png', | 380 | icon: '/static/icon/parents.png', |
363 | } | 381 | } |
364 | ]; | 382 | ]; |
365 | 383 | ||
366 | // reorder menu | 384 | // reorder menu |
367 | // Menu.forEach((item) => { | 385 | // Menu.forEach((item) => { |
368 | // if (item.items) { | 386 | // if (item.items) { |
369 | // item.items.sort((x, y) => { | 387 | // item.items.sort((x, y) => { |
370 | // let textA = x.title.toUpperCase(); | 388 | // let textA = x.title.toUpperCase(); |
371 | // let textB = y.title.toUpperCase(); | 389 | // let textB = y.title.toUpperCase(); |
372 | // return (textA < textB) ? -1 : (textA > textB) ? 1 : 0; | 390 | // return (textA < textB) ? -1 : (textA > textB) ? 1 : 0; |
373 | // }); | 391 | // }); |
374 | // } | 392 | // } |
375 | // }); | 393 | // }); |
376 | 394 | ||
377 | export default { adminMenu, schoolMenu, teacherMenu, libraryMenu, accountMenu }; | 395 | export default { adminMenu, schoolMenu, teacherMenu, libraryMenu, accountMenu }; |
src/pages/Annoucement/annoucement.vue
File was created | 1 | <template> | |
2 | <v-container fluid class="body-color"> | ||
3 | <!-- ****** EDITS COURSES DETAILS ****** --> | ||
4 | <v-dialog v-model="editStudentDialog" max-width="600px" scrollable> | ||
5 | <v-card flat class="card-style pa-2" dark> | ||
6 | <v-layout> | ||
7 | <v-flex xs12> | ||
8 | <label class="title text-xs-center">Edit Annoucement</label> | ||
9 | <v-icon size="24" class="right" @click="editStudentDialog = false">cancel</v-icon> | ||
10 | </v-flex> | ||
11 | </v-layout> | ||
12 | <v-card-text> | ||
13 | <v-form ref="form"> | ||
14 | <v-container fluid> | ||
15 | <v-layout> | ||
16 | <v-flex xs12 class="text-xs-center text-sm-center text-md-center text-lg-center"> | ||
17 | <v-avatar size="100px" v-if="!editedItem.attachementUrl && !editImageUrl"> | ||
18 | <img src="/static/icon/user.png" /> | ||
19 | </v-avatar> | ||
20 | <img | ||
21 | :src="editedItem.attachementUrl" | ||
22 | v-else-if="editedItem.attachementUrl && !editImageUrl" | ||
23 | height="150" | ||
24 | style="border-radius:50%; width:150px" | ||
25 | /> | ||
26 | <img | ||
27 | v-if="editImageUrl" | ||
28 | :src="editImageUrl" | ||
29 | style="border-radius:50%; width:150px;height:150px" | ||
30 | /> | ||
31 | <input | ||
32 | type="file" | ||
33 | style="display: none" | ||
34 | ref="editDataImage" | ||
35 | accept="image/*" | ||
36 | @change="onEditFilePicked" | ||
37 | /> | ||
38 | </v-flex> | ||
39 | </v-layout> | ||
40 | <v-layout wrap> | ||
41 | <v-flex xs12 sm12> | ||
42 | <v-layout> | ||
43 | <v-flex xs4 sm5 class="pt-4 subheading"> | ||
44 | <label class="right hidden-xs-only hidden-sm-only">Select Class:</label> | ||
45 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Class:</label> | ||
46 | </v-flex> | ||
47 | <v-flex xs8 sm7 class="ml-3"> | ||
48 | <v-select | ||
49 | :items="addclass" | ||
50 | label="Select Class" | ||
51 | v-model="editedItem.select" | ||
52 | item-text="classNum" | ||
53 | item-value="_id" | ||
54 | name="Select Class" | ||
55 | required | ||
56 | ></v-select> | ||
57 | </v-flex> | ||
58 | </v-layout> | ||
59 | <v-layout> | ||
60 | <v-flex xs4 sm5 class="pt-4 subheading"> | ||
61 | <label class="right hidden-xs-only hidden-sm-only">Course Name:</label> | ||
62 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Course:</label> | ||
63 | </v-flex> | ||
64 | <v-flex xs8 sm7 class="ml-3"> | ||
65 | <v-select | ||
66 | :items="courseData" | ||
67 | item-text="coursrName" | ||
68 | item-value="_id" | ||
69 | v-model="editedItem.coursrName" | ||
70 | placeholder="fill your Course name" | ||
71 | type="text" | ||
72 | :rules="courseRules" | ||
73 | required | ||
74 | ></v-select> | ||
75 | </v-flex> | ||
76 | </v-layout> | ||
77 | <v-layout> | ||
78 | <v-flex xs4 sm5 class="pt-4 subheading"> | ||
79 | <label class="right hidden-xs-only hidden-sm-only">Discussion Type:</label> | ||
80 | <label | ||
81 | class="right hidden-lg-only hidden-md-only hidden-xl-only" | ||
82 | >DiscussionType:</label> | ||
83 | </v-flex> | ||
84 | <v-flex xs8 sm7 class="ml-3"> | ||
85 | <v-text-field | ||
86 | v-model="editedItem.discussionType" | ||
87 | placeholder="fill your Course Name" | ||
88 | type="text" | ||
89 | required | ||
90 | ></v-text-field> | ||
91 | </v-flex> | ||
92 | </v-layout> | ||
93 | <v-layout> | ||
94 | <v-flex xs4 sm5 class="pt-4 subheading"> | ||
95 | <label class="right hidden-xs-only hidden-sm-only">Upload Image:</label> | ||
96 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Upload:</label> | ||
97 | </v-flex> | ||
98 | <v-flex xs8 sm7 class="ml-3"> | ||
99 | <v-text-field | ||
100 | label="Select Image" | ||
101 | @click="pickEditFile" | ||
102 | v-model="editImageName" | ||
103 | append-icon="attach_file" | ||
104 | ></v-text-field> | ||
105 | </v-flex> | ||
106 | </v-layout> | ||
107 | </v-flex> | ||
108 | </v-layout> | ||
109 | <v-layout> | ||
110 | <v-flex xs12 sm12 class="px-0 mx-0"> | ||
111 | <v-layout class="right"> | ||
112 | <v-btn @click="save" round dark :loading="editLoading" class="add-button">Save</v-btn> | ||
113 | </v-layout> | ||
114 | </v-flex> | ||
115 | </v-layout> | ||
116 | </v-container> | ||
117 | </v-form> | ||
118 | </v-card-text> | ||
119 | </v-card> | ||
120 | </v-dialog> | ||
121 | |||
122 | <!-- ****** PROFILE VIEW STUDENTS DEATILS ****** --> | ||
123 | |||
124 | <v-dialog v-model="profileStudentDialog" max-width="600px" scrollable> | ||
125 | <v-card flat class="card-style pa-3" dark> | ||
126 | <v-layout> | ||
127 | <v-flex xs12> | ||
128 | <label class="title text-xs-center">View Annoucement</label> | ||
129 | <v-icon size="24" class="right" @click="profileStudentDialog = false">cancel</v-icon> | ||
130 | </v-flex> | ||
131 | </v-layout> | ||
132 | <v-card-text> | ||
133 | <v-flex align-center justify-center layout text-xs-center class="mt-3"> | ||
134 | <v-avatar size="100px"> | ||
135 | <img src="/static/icon/user.png" v-if="!editedItem.attachementUrl" /> | ||
136 | <img :src="editedItem.attachementUrl" v-else-if="editedItem.attachementUrl" /> | ||
137 | </v-avatar> | ||
138 | </v-flex> | ||
139 | <v-container grid-list-md> | ||
140 | <v-layout wrap> | ||
141 | <v-flex xs12> | ||
142 | <v-layout> | ||
143 | <v-flex xs6 sm6> | ||
144 | <h5 class="right my-1"> | ||
145 | <b>Discussion Type :</b> | ||
146 | </h5> | ||
147 | </v-flex> | ||
148 | <v-flex sm6 xs6> | ||
149 | <h5 class="my-1 left">{{ editedItem.discussionType }}</h5> | ||
150 | </v-flex> | ||
151 | </v-layout> | ||
152 | </v-flex> | ||
153 | </v-layout> | ||
154 | </v-container> | ||
155 | </v-card-text> | ||
156 | </v-card> | ||
157 | </v-dialog> | ||
158 | |||
159 | <!-- ****** Annoucement TABLE ****** --> | ||
160 | <v-toolbar color="transparent" flat> | ||
161 | <v-btn | ||
162 | fab | ||
163 | dark | ||
164 | class="open-dialog-button hidden-xl-only hidden-md-only hidden-lg-only" | ||
165 | small | ||
166 | @click="addAnnoucementDialog = true" | ||
167 | > | ||
168 | <v-icon dark>add</v-icon> | ||
169 | </v-btn> | ||
170 | <v-btn | ||
171 | round | ||
172 | class="open-dialog-button hidden-sm-only hidden-xs-only" | ||
173 | dark | ||
174 | @click="addAnnoucementDialog = true" | ||
175 | > | ||
176 | <v-icon class="white--text pr-1" size="20">add</v-icon>Add Annoucement | ||
177 | </v-btn> | ||
178 | <v-card-actions class="hidden-xs-only hidden-sm-only"> | ||
179 | <v-flex md13 lg12> | ||
180 | <v-layout> | ||
181 | <v-flex lg6 md12> | ||
182 | <v-layout> | ||
183 | <v-select | ||
184 | :items="addclass" | ||
185 | label="Select Class" | ||
186 | v-model="selectAnnoucement.classId" | ||
187 | item-text="classNum" | ||
188 | item-value="_id" | ||
189 | name="Select Class" | ||
190 | :rules="classRules" | ||
191 | required | ||
192 | class="ml-2" | ||
193 | @change="getCourses(selectAnnoucement.classId)" | ||
194 | ></v-select> | ||
195 | <v-select | ||
196 | :items="courseData" | ||
197 | label="Select Course" | ||
198 | v-model="selectAnnoucement.courseId" | ||
199 | item-text="coursrName" | ||
200 | item-value="_id" | ||
201 | :rules="courseRules" | ||
202 | required | ||
203 | class="ml-4" | ||
204 | ></v-select> | ||
205 | </v-layout> | ||
206 | </v-flex> | ||
207 | </v-layout> | ||
208 | </v-flex> | ||
209 | </v-card-actions> | ||
210 | <v-spacer></v-spacer> | ||
211 | <v-btn | ||
212 | @click="getAnnoucementes()" | ||
213 | round | ||
214 | dark | ||
215 | :loading="loading" | ||
216 | class="add-button hidden-xs-only hidden-sm-only" | ||
217 | >Find</v-btn> | ||
218 | <v-card-title class="body-1" v-show="show"> | ||
219 | <v-btn icon large flat @click="displaySearch"> | ||
220 | <v-avatar size="27"> | ||
221 | <img src="/static/icon/search.png" alt="icon" /> | ||
222 | </v-avatar> | ||
223 | </v-btn> | ||
224 | </v-card-title> | ||
225 | <v-flex xs8 sm7 lg2 md3 v-show="showSearch"> | ||
226 | <v-layout> | ||
227 | <v-text-field v-model="search" label="Search" prepend-inner-icon="search" color="primary"></v-text-field> | ||
228 | <v-icon @click="closeSearch" color="error">close</v-icon> | ||
229 | </v-layout> | ||
230 | </v-flex> | ||
231 | </v-toolbar> | ||
232 | <v-card flat class="elevation-0 transparent"> | ||
233 | <v-flex class="hidden-xl-only hidden-lg-only hidden-md-only"> | ||
234 | <v-layout> | ||
235 | <v-flex xs12> | ||
236 | <v-select | ||
237 | :items="addclass" | ||
238 | label="Select Class" | ||
239 | v-model="selectAnnoucement.select" | ||
240 | item-text="classNum" | ||
241 | item-value="_id" | ||
242 | name="Select Class" | ||
243 | :rules="classRules" | ||
244 | class="px-2" | ||
245 | ></v-select> | ||
246 | </v-flex> | ||
247 | </v-layout> | ||
248 | <v-layout> | ||
249 | <v-flex xs5 class="mx-auto mb-2"> | ||
250 | <v-btn | ||
251 | @click="getAnnoucementes()" | ||
252 | block | ||
253 | round | ||
254 | dark | ||
255 | :loading="loading" | ||
256 | class="add-button" | ||
257 | >Find</v-btn> | ||
258 | </v-flex> | ||
259 | </v-layout> | ||
260 | </v-flex> | ||
261 | </v-card> | ||
262 | <v-data-table | ||
263 | :headers="headers" | ||
264 | :items="annoucementData" | ||
265 | :pagination.sync="pagination" | ||
266 | :search="search" | ||
267 | > | ||
268 | <template slot="items" slot-scope="props"> | ||
269 | <tr class="tr"> | ||
270 | <td class="text-xs-center td td-row"> | ||
271 | <v-avatar size="40"> | ||
272 | <img :src="props.item.attachementUrl" v-if="props.item.attachementUrl" /> | ||
273 | <img src="/static/icon/user.png" v-else-if="!props.item.attachementUrl" /> | ||
274 | </v-avatar> | ||
275 | </td> | ||
276 | <td class="text-xs-center td td-row">{{ props.item.discussionType}}</td> | ||
277 | <td class="text-xs-center td td-row"> | ||
278 | <span> | ||
279 | <v-tooltip top> | ||
280 | <img | ||
281 | slot="activator" | ||
282 | style="cursor:pointer; width:25px; height:25px; " | ||
283 | class="mr-3" | ||
284 | @click="profile(props.item)" | ||
285 | src="/static/icon/view.png" | ||
286 | /> | ||
287 | <span>View</span> | ||
288 | </v-tooltip> | ||
289 | <v-tooltip top> | ||
290 | <img | ||
291 | slot="activator" | ||
292 | style="cursor:pointer; width:20px; height:18px; " | ||
293 | class="mr-3" | ||
294 | @click="editItem(props.item)" | ||
295 | src="/static/icon/edit.png" | ||
296 | /> | ||
297 | <span>Edit</span> | ||
298 | </v-tooltip> | ||
299 | <v-tooltip top> | ||
300 | <img | ||
301 | slot="activator" | ||
302 | style="cursor:pointer; width:20px; height:20px; " | ||
303 | class="mr-3" | ||
304 | @click="deleteItem(props.item)" | ||
305 | src="/static/icon/delete.png" | ||
306 | /> | ||
307 | <span>Delete</span> | ||
308 | </v-tooltip> | ||
309 | </span> | ||
310 | </td> | ||
311 | </tr> | ||
312 | </template> | ||
313 | <v-alert | ||
314 | slot="no-results" | ||
315 | :value="true" | ||
316 | color="error" | ||
317 | icon="warning" | ||
318 | >Your search for "{{ search }}" found no results.</v-alert> | ||
319 | </v-data-table> | ||
320 | <!-- ****** Add Annoucement DETAILS******--> | ||
321 | <v-dialog v-model="addAnnoucementDialog" max-width="500"> | ||
322 | <v-card flat class="card-style pa-2" dark> | ||
323 | <v-layout> | ||
324 | <v-flex xs12> | ||
325 | <label class="title text-xs-center">Add Annoucement</label> | ||
326 | <v-icon size="24" class="right" @click="addAnnoucementDialog = false">cancel</v-icon> | ||
327 | </v-flex> | ||
328 | </v-layout> | ||
329 | <v-container fluid> | ||
330 | <v-layout align-center> | ||
331 | <v-flex xs12> | ||
332 | <v-flex xs12 sm12> | ||
333 | <v-form ref="form" v-model="valid" lazy-validation> | ||
334 | <v-layout> | ||
335 | <v-flex | ||
336 | xs12 | ||
337 | class="text-xs-center text-sm-center text-md-center text-lg-center" | ||
338 | > | ||
339 | <v-avatar size="100px" v-if="!imageUrl"> | ||
340 | <img src="/static/icon/user.png" /> | ||
341 | </v-avatar> | ||
342 | <input | ||
343 | type="file" | ||
344 | style="display: none" | ||
345 | ref="image" | ||
346 | accept="image/*" | ||
347 | @change="onFilePicked" | ||
348 | /> | ||
349 | <img | ||
350 | :src="imageData.imageUrl" | ||
351 | height="150" | ||
352 | width="150" | ||
353 | v-if="imageUrl" | ||
354 | style="border-radius:50%; width:200px" | ||
355 | /> | ||
356 | </v-flex> | ||
357 | </v-layout> | ||
358 | <v-layout wrap> | ||
359 | <v-flex xs12 sm12> | ||
360 | <v-layout> | ||
361 | <v-flex x4 sm4 class="pt-4 subheading"> | ||
362 | <label class="right hidden-xs-only hidden-sm-only">Select Class:</label> | ||
363 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Class:</label> | ||
364 | </v-flex> | ||
365 | <v-flex xs8 sm8 class="ml-3"> | ||
366 | <v-select | ||
367 | :items="addclass" | ||
368 | label="Select Class" | ||
369 | v-model="addAnnoucement.select" | ||
370 | item-text="classNum" | ||
371 | item-value="_id" | ||
372 | name="Select Class" | ||
373 | :rules="classRules" | ||
374 | @change="getCourses(addAnnoucement.select)" | ||
375 | required | ||
376 | ></v-select> | ||
377 | </v-flex> | ||
378 | </v-layout> | ||
379 | </v-flex> | ||
380 | </v-layout> | ||
381 | <v-layout wrap> | ||
382 | <v-flex xs12 sm12> | ||
383 | <v-layout> | ||
384 | <v-flex xs4 sm4 class="pt-4 subheading"> | ||
385 | <label class="right hidden-xs-only hidden-sm-only">Course Name:</label> | ||
386 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Course:</label> | ||
387 | </v-flex> | ||
388 | <v-flex xs8 sm8 class="ml-3"> | ||
389 | <v-select | ||
390 | :items="courseData" | ||
391 | item-text="coursrName" | ||
392 | item-value="_id" | ||
393 | v-model="addAnnoucement.coursrName" | ||
394 | placeholder="fill your Course name" | ||
395 | type="text" | ||
396 | :rules="courseRules" | ||
397 | required | ||
398 | ></v-select> | ||
399 | </v-flex> | ||
400 | </v-layout> | ||
401 | </v-flex> | ||
402 | <v-flex xs12 sm12> | ||
403 | <v-layout> | ||
404 | <v-flex xs4 sm4 class="pt-4 subheading"> | ||
405 | <label class="right hidden-xs-only hidden-sm-only">Discussion Type:</label> | ||
406 | <label | ||
407 | class="right hidden-lg-only hidden-md-only hidden-xl-only" | ||
408 | >DiscussionType:</label> | ||
409 | </v-flex> | ||
410 | <v-flex xs8 sm8 class="ml-3"> | ||
411 | <v-text-field | ||
412 | v-model="addAnnoucement.discussionType" | ||
413 | placeholder="fill your Course name" | ||
414 | type="text" | ||
415 | :rules="courseRules" | ||
416 | required | ||
417 | ></v-text-field> | ||
418 | </v-flex> | ||
419 | </v-layout> | ||
420 | </v-flex> | ||
421 | <v-flex xs12 sm12> | ||
422 | <v-layout> | ||
423 | <v-flex xs4 class="pt-4 subheading"> | ||
424 | <label class="right hidden-xs-only hidden-sm-only">Upload Image:</label> | ||
425 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Upload :</label> | ||
426 | </v-flex> | ||
427 | <v-flex xs8 class="ml-3"> | ||
428 | <v-text-field | ||
429 | label="Select Image" | ||
430 | @click="pickFile" | ||
431 | v-model="imageName" | ||
432 | append-icon="attach_file" | ||
433 | ></v-text-field> | ||
434 | </v-flex> | ||
435 | </v-layout> | ||
436 | </v-flex> | ||
437 | </v-layout> | ||
438 | <v-layout> | ||
439 | <v-flex xs12 sm12> | ||
440 | <v-layout class="right"> | ||
441 | <v-btn @click="submit" round dark :loading="loading" class="add-button">Add</v-btn> | ||
442 | </v-layout> | ||
443 | </v-flex> | ||
444 | </v-layout> | ||
445 | </v-form> | ||
446 | </v-flex> | ||
447 | </v-flex> | ||
448 | </v-layout> | ||
449 | </v-container> | ||
450 | </v-card> | ||
451 | </v-dialog> | ||
452 | <v-snackbar | ||
453 | :timeout="timeout" | ||
454 | :top="y === 'top'" | ||
455 | :right="x === 'right'" | ||
456 | :vertical="mode === 'vertical'" | ||
457 | v-model="snackbar" | ||
458 | :color="color" | ||
459 | >{{ text }}</v-snackbar> | ||
460 | <div class="loader" v-if="showLoader"> | ||
461 | <v-progress-circular indeterminate color="white"></v-progress-circular> | ||
462 | </div> | ||
463 | </v-container> | ||
464 | </template> | ||
465 | |||
466 | <script> | ||
467 | import http from "@/Services/http.js"; | ||
468 | import moment from "moment"; | ||
469 | import countryList from "@/script/country.js"; | ||
470 | import parent from "@/script/parents.js"; | ||
471 | |||
472 | export default { | ||
473 | data: () => ({ | ||
474 | showNext: false, | ||
475 | snackbar: false, | ||
476 | y: "top", | ||
477 | x: "right", | ||
478 | role: "", | ||
479 | mode: "", | ||
480 | append: "", | ||
481 | timeout: 3000, | ||
482 | text: "", | ||
483 | show: true, | ||
484 | color: "", | ||
485 | showSearch: false, | ||
486 | showLoader: false, | ||
487 | loading: false, | ||
488 | editLoading: false, | ||
489 | date: null, | ||
490 | search: "", | ||
491 | menu: false, | ||
492 | menu1: false, | ||
493 | editStudentDialog: false, | ||
494 | profileStudentDialog: false, | ||
495 | addAnnoucementDialog: false, | ||
496 | valid: true, | ||
497 | addclass: [], | ||
498 | addSection: [], | ||
499 | pagination: { | ||
500 | rowsPerPage: 10 | ||
501 | }, | ||
502 | imageData: {}, | ||
503 | imageName: "", | ||
504 | imageUrl: "", | ||
505 | imageFile: "", | ||
506 | editImageName: "", | ||
507 | editImageUrl: "", | ||
508 | courseRules: [v => !!v || " Course Name is required"], | ||
509 | classRules: [v => !!v || " Class Name is required"], | ||
510 | sectionRules: [v => !!v || "Section Name is required"], | ||
511 | errorMessages: "", | ||
512 | headers: [ | ||
513 | { | ||
514 | text: "Image", | ||
515 | value: "attachementUrl", | ||
516 | sortable: false, | ||
517 | align: "center" | ||
518 | }, | ||
519 | { | ||
520 | text: "Discussion Type", | ||
521 | value: "discussionType", | ||
522 | sortable: false, | ||
523 | align: "center" | ||
524 | }, | ||
525 | { text: "Action", value: "", sortable: false, align: "center" } | ||
526 | ], | ||
527 | courseData: [], | ||
528 | editedIndex: -1, | ||
529 | addAnnoucement: { | ||
530 | select: "" | ||
531 | }, | ||
532 | selectAnnoucement: {}, | ||
533 | editedItem: {}, | ||
534 | annoucementData: [] | ||
535 | }), | ||
536 | methods: { | ||
537 | getCourses(selectCourseId) { | ||
538 | this.showLoader = true; | ||
539 | http() | ||
540 | .get("/getCourseesList", { | ||
541 | params: { | ||
542 | classId: selectCourseId | ||
543 | } | ||
544 | }) | ||
545 | .then(response => { | ||
546 | this.courseData = response.data.data; | ||
547 | this.showLoader = false; | ||
548 | }) | ||
549 | .catch(err => { | ||
550 | console.log("err====>", err); | ||
551 | this.showLoader = false; | ||
552 | }); | ||
553 | }, | ||
554 | getAnnoucementes() { | ||
555 | this.showLoader = true; | ||
556 | http() | ||
557 | .get("/getAnnoucementesList", { | ||
558 | params: { | ||
559 | courseId: this.selectAnnoucement.courseId | ||
560 | } | ||
561 | }) | ||
562 | .then(response => { | ||
563 | this.annoucementData = response.data.data; | ||
564 | this.showLoader = false; | ||
565 | }) | ||
566 | .catch(err => { | ||
567 | console.log("err====>", err); | ||
568 | this.showLoader = false; | ||
569 | }); | ||
570 | }, | ||
571 | // getSections(_id) { | ||
572 | // var token = this.$store.state.token; | ||
573 | // this.showLoader = true; | ||
574 | // http() | ||
575 | // .get( | ||
576 | // "/getSectionsList", | ||
577 | // { params: { classId: _id } }, | ||
578 | // { | ||
579 | // headers: { Authorization: "Bearer " + token } | ||
580 | // } | ||
581 | // ) | ||
582 | // .then(response => { | ||
583 | // this.addSection = response.data.data; | ||
584 | // this.showLoader = false; | ||
585 | // }) | ||
586 | // .catch(err => { | ||
587 | // this.showLoader = false; | ||
588 | // }); | ||
589 | // }, | ||
590 | pickFile() { | ||
591 | this.$refs.image.click(); | ||
592 | }, | ||
593 | pickEditFile() { | ||
594 | this.$refs.editDataImage.click(); | ||
595 | }, | ||
596 | dates: function(date) { | ||
597 | return moment(date).format("MMMM DD, YYYY"); | ||
598 | return date; | ||
599 | }, | ||
600 | onFilePicked(e) { | ||
601 | // console.log(e) | ||
602 | const files = e.target.files; | ||
603 | this.imageData.upload = e.target.files[0]; | ||
604 | if (files[0] !== undefined) { | ||
605 | this.imageName = files[0].name; | ||
606 | if (this.imageName.lastIndexOf(".") <= 0) { | ||
607 | return; | ||
608 | } | ||
609 | const fr = new FileReader(); | ||
610 | fr.readAsDataURL(files[0]); | ||
611 | fr.addEventListener("load", () => { | ||
612 | this.imageUrl = fr.result; | ||
613 | this.imageFile = files[0]; // this is an image file that can be sent to server... | ||
614 | this.imageData.imageUrl = URL.createObjectURL(this.imageFile); | ||
615 | }); | ||
616 | } else { | ||
617 | this.imageName = ""; | ||
618 | this.imageFile = ""; | ||
619 | this.imageUrl = ""; | ||
620 | } | ||
621 | }, | ||
622 | onEditFilePicked(e) { | ||
623 | console.log(e); | ||
624 | const files = e.target.files; | ||
625 | if (files[0] !== undefined) { | ||
626 | this.editImageName = files[0].name; | ||
627 | console.log("this.editImageName", this.editImageName); | ||
628 | |||
629 | if (this.editImageName.lastIndexOf(".") <= 0) { | ||
630 | return; | ||
631 | } | ||
632 | const fr = new FileReader(); | ||
633 | fr.readAsDataURL(files[0]); | ||
634 | fr.addEventListener("load", () => { | ||
635 | this.editImageUrl = fr.result; | ||
636 | this.editiImageFile = files[0]; // this is an image file that can be sent to server... | ||
637 | }); | ||
638 | } else { | ||
639 | this.editImageName = ""; | ||
640 | this.editiImageFile = ""; | ||
641 | } | ||
642 | }, | ||
643 | editItem(item) { | ||
644 | this.editedIndex = this.courseData.indexOf(item); | ||
645 | this.editedItem = Object.assign({}, item); | ||
646 | this.editStudentDialog = true; | ||
647 | }, | ||
648 | profile(item) { | ||
649 | this.editedIndex = this.courseData.indexOf(item); | ||
650 | this.editedItem = Object.assign({}, item); | ||
651 | this.profileStudentDialog = true; | ||
652 | }, | ||
653 | deleteItem(item) { | ||
654 | let deleteAnnoucement = { | ||
655 | annoucementId: item._id | ||
656 | }; | ||
657 | http() | ||
658 | .delete( | ||
659 | "/deleteAnnoucement", | ||
660 | confirm("Are you sure you want to delete this?") && { | ||
661 | params: deleteAnnoucement | ||
662 | } | ||
663 | ) | ||
664 | .then(response => { | ||
665 | this.snackbar = true; | ||
666 | this.text = response.data.message; | ||
667 | this.color = "green"; | ||
668 | this.getAnnoucementes(); | ||
669 | }) | ||
670 | .catch(error => { | ||
671 | this.snackbar = true; | ||
672 | this.text = error.response.data.message; | ||
673 | this.color = "error"; | ||
674 | }); | ||
675 | }, | ||
676 | close() { | ||
677 | this.editStudentDialog = false; | ||
678 | }, | ||
679 | closeStudentProfile() { | ||
680 | this.profileStudentDialog = false; | ||
681 | }, | ||
682 | submit() { | ||
683 | if (this.$refs.form.validate()) { | ||
684 | let addCourse = { | ||
685 | classId: this.addAnnoucement.select, | ||
686 | sectionId: this.addAnnoucement.selectSection, | ||
687 | discussionType: this.addAnnoucement.discussionType, | ||
688 | courseId: this.addAnnoucement.coursrName | ||
689 | }; | ||
690 | if (this.imageUrl) { | ||
691 | var str = this.imageUrl; | ||
692 | const [baseUrl, imageUrl] = str.split(/,/); | ||
693 | addCourse.upload = imageUrl; | ||
694 | } | ||
695 | this.loading = true; | ||
696 | http() | ||
697 | .post("/createAnnoucement", addCourse) | ||
698 | .then(response => { | ||
699 | this.snackbar = true; | ||
700 | this.text = "New Annoucement added successfully"; | ||
701 | this.color = "green"; | ||
702 | this.addAnnoucementDialog = false; | ||
703 | this.clear(); | ||
704 | this.loading = false; | ||
705 | }) | ||
706 | .catch(error => { | ||
707 | this.snackbar = true; | ||
708 | this.text = error.response.data.message; | ||
709 | this.color = "error"; | ||
710 | this.loading = false; | ||
711 | }); | ||
712 | } | ||
713 | }, | ||
714 | clear() { | ||
715 | this.$refs.form.reset(); | ||
716 | this.imageUrl = ""; | ||
717 | }, | ||
718 | save() { | ||
719 | let editAnnoucement = { | ||
720 | annoucementId: this.editedItem._id, | ||
721 | discussionType: this.editedItem.discussionType, | ||
722 | classId: this.editedItem.select, | ||
723 | courseId: this.editedItem.coursrName | ||
724 | }; | ||
725 | if (this.editImageUrl) { | ||
726 | var str = this.editImageUrl; | ||
727 | const [baseUrl, editImageUrl] = str.split(/,/); | ||
728 | editAnnoucement.upload = editImageUrl; | ||
729 | } | ||
730 | this.editLoading = true; | ||
731 | http() | ||
732 | .put("/updateAnnoucement", editAnnoucement) | ||
733 | .then(response => { | ||
734 | this.snackbar = true; | ||
735 | this.text = response.data.message; | ||
736 | this.color = "green"; | ||
737 | this.imageUrl = ""; | ||
738 | this.getAnnoucementes(); | ||
739 | this.close(); | ||
740 | this.editLoading = false; | ||
741 | }) | ||
742 | .catch(error => { | ||
743 | this.snackbar = true; | ||
744 | this.text = error.response.data.statusText; | ||
745 | this.color = "error"; | ||
746 | this.editLoading = false; | ||
747 | }); | ||
748 | }, | ||
749 | displaySearch() { | ||
750 | this.show = false; | ||
751 | this.showSearch = true; | ||
752 | }, | ||
753 | closeSearch() { | ||
754 | this.showSearch = false; | ||
755 | this.show = true; | ||
756 | this.search = ""; | ||
757 | } | ||
758 | }, | ||
759 | mounted() { | ||
760 | var token = this.$store.state.token; | ||
761 | http() | ||
762 | .get("/getClassesList", { | ||
763 | headers: { Authorization: "Bearer " + token } | ||
764 | }) | ||
765 | .then(response => { | ||
766 | this.addclass = response.data.data; | ||
767 | }) | ||
768 | .catch(error => { | ||
769 | this.showLoader = false; | ||
770 | if (error.response.status === 401) { | ||
771 | this.$router.replace({ path: "/" }); | ||
772 | this.$store.dispatch("setToken", null); | ||
773 | this.$store.dispatch("Id", null); | ||
774 | this.$store.dispatch("Role", null); | ||
775 | } | ||
776 | }); | ||
777 | } | ||
778 | }; | ||
779 | </script> | ||
780 | <style scoped> | ||
781 | .active { | ||
782 | background-color: gray; | ||
783 | color: white !important; | ||
784 | } | ||
785 | .activebtn { | ||
786 | color: black !important; | ||
787 | } | ||
788 | </style> |
src/pages/Authentication/Login.vue
1 | <template> | 1 | <template> |
2 | <v-app id="login"> | 2 | <v-app id="login"> |
3 | <v-content> | 3 | <v-content> |
4 | <v-container fluid fill-height> | 4 | <v-container fluid fill-height> |
5 | <v-snackbar | 5 | <v-snackbar |
6 | :timeout="timeout" | 6 | :timeout="timeout" |
7 | :top="y === 'top'" | 7 | :top="y === 'top'" |
8 | :right="x === 'right'" | 8 | :right="x === 'right'" |
9 | :vertical="mode === 'vertical'" | 9 | :vertical="mode === 'vertical'" |
10 | v-model="snackbar" | 10 | v-model="snackbar" |
11 | :color="color" | 11 | :color="color" |
12 | >{{ text }}</v-snackbar> | 12 | >{{ text }}</v-snackbar> |
13 | <v-layout align-center justify-center> | 13 | <v-layout align-center justify-center> |
14 | <v-flex xs12 sm10 md5 lg4> | 14 | <v-flex xs12 sm10 md5 lg4> |
15 | <img src="/static/icon.png" height="40" width="140" alt="logo" class="logo mx-auto mb-2" /> | 15 | <img |
16 | src="/static/icon.png" | ||
17 | height="40" | ||
18 | width="140" | ||
19 | alt="logo" | ||
20 | class="logo mx-auto mb-2" | ||
21 | /> | ||
16 | <v-card class="elevation-1 px-2 py-3 card" style="background-color: #7852cc" dark> | 22 | <v-card class="elevation-1 px-2 py-3 card" style="background-color: #7852cc" dark> |
17 | <img | 23 | <img |
18 | src="/static/intrackIllustration.png" | 24 | src="/static/intrackIllustration.png" |
19 | class="mx-auto logoSchool" | 25 | class="mx-auto logoSchool" |
20 | style="display:block" | 26 | style="display:block" |
21 | width="280" | 27 | width="280" |
22 | /> | 28 | /> |
23 | <v-card-text align-center justify-center> | 29 | <v-card-text align-center justify-center> |
24 | <v-toolbar-title class="text-xs-center subheadline">SCHOOL LOGIN</v-toolbar-title> | 30 | <v-toolbar-title class="text-xs-center subheadline">SCHOOL LOGIN</v-toolbar-title> |
25 | <v-flex xs12 sm12 md12 lg12> | 31 | <v-flex xs12 sm12 md12 lg12> |
26 | <v-form ref="form" v-model="valid" lazy-validation> | 32 | <v-form ref="form" v-model="valid" lazy-validation> |
27 | <label class="title">Email</label> | 33 | <label class="title">Email</label> |
28 | <v-text-field | 34 | <v-text-field |
29 | style="padding: 0px; margin: 0px;" | 35 | style="padding: 0px; margin: 0px;" |
30 | v-model.trim="userLogincredentials.email" | 36 | v-model.trim="userLogincredentials.email" |
31 | :rules="nameRules" | 37 | :rules="nameRules" |
32 | placeholder="Enter your email" | 38 | placeholder="Enter your email" |
33 | required | 39 | required |
34 | ></v-text-field> | 40 | ></v-text-field> |
35 | <label class="title">Password</label> | 41 | <label class="title">Password</label> |
36 | <v-text-field | 42 | <v-text-field |
37 | style="padding: 0px; margin: 0px;" | 43 | style="padding: 0px; margin: 0px;" |
38 | :rules="[rules.required]" | 44 | :rules="[rules.required]" |
39 | v-model.trim="userLogincredentials.password" | 45 | v-model.trim="userLogincredentials.password" |
40 | :append-icon="e1 ? 'visibility_off' : 'visibility'" | 46 | :append-icon="e1 ? 'visibility_off' : 'visibility'" |
41 | :append-icon-cb="() => (e1 = !e1)" | 47 | :append-icon-cb="() => (e1 = !e1)" |
42 | :type="e1 ? 'password' : 'text'" | 48 | :type="e1 ? 'password' : 'text'" |
43 | name="input-10-1" | 49 | name="input-10-1" |
44 | placeholder="Enter Your password" | 50 | placeholder="Enter Your password" |
45 | @keyup.enter="login" | 51 | @keyup.enter="login" |
46 | ></v-text-field> | 52 | ></v-text-field> |
47 | </v-form> | 53 | </v-form> |
48 | <v-layout> | 54 | <v-layout> |
49 | <v-flex xs12 class="pa-0 ma-0"> | 55 | <v-flex xs12 class="pa-0 ma-0"> |
50 | <h5 class="right mt-4"> | 56 | <h5 class="right mt-4"> |
51 | <router-link class="link" to="/forgetpassword">Forgot password</router-link> | 57 | <router-link class="link" to="/forgetpassword">Forgot password</router-link> |
52 | </h5> | 58 | </h5> |
53 | </v-flex> | 59 | </v-flex> |
54 | </v-layout> | 60 | </v-layout> |
55 | </v-flex> | 61 | </v-flex> |
56 | </v-card-text> | 62 | </v-card-text> |
57 | <v-layout> | 63 | <v-layout> |
58 | <v-flex sm12> | 64 | <v-flex sm12> |
59 | <v-btn | 65 | <v-btn |
60 | style="margin: auto;display: block;background-color: #71d9ea; color: #0c0754;" | 66 | style="margin: auto;display: block;background-color: #71d9ea; color: #0c0754;" |
61 | dark | 67 | dark |
62 | flat | 68 | flat |
63 | @click="login" | 69 | @click="login" |
64 | :loading="loading" | 70 | :loading="loading" |
65 | >Login</v-btn> | 71 | >Login</v-btn> |
66 | </v-flex> | 72 | </v-flex> |
67 | </v-layout> | 73 | </v-layout> |
68 | <v-layout></v-layout> | 74 | <v-layout></v-layout> |
69 | </v-card> | 75 | </v-card> |
70 | </v-flex> | 76 | </v-flex> |
71 | </v-layout> | 77 | </v-layout> |
72 | </v-container> | 78 | </v-container> |
73 | </v-content> | 79 | </v-content> |
74 | </v-app> | 80 | </v-app> |
75 | </template> | 81 | </template> |
76 | 82 | ||
77 | <script> | 83 | <script> |
78 | import http from "@/Services/http.js"; | 84 | import http from "@/Services/http.js"; |
79 | export default { | 85 | export default { |
80 | data() { | 86 | data() { |
81 | return { | 87 | return { |
82 | snackbar: false, | 88 | snackbar: false, |
83 | y: "top", | 89 | y: "top", |
84 | x: "right", | 90 | x: "right", |
85 | mode: "", | 91 | mode: "", |
86 | timeout: 3000, | 92 | timeout: 3000, |
87 | text: "", | 93 | text: "", |
88 | append: "", | 94 | append: "", |
89 | e1: true, | 95 | e1: true, |
90 | loading: false, | 96 | loading: false, |
91 | remember: false, | 97 | remember: false, |
92 | valid: false, | 98 | valid: false, |
93 | userLogincredentials: {}, | 99 | userLogincredentials: {}, |
94 | nameRules: [v => !!v || "Username is required"], | 100 | nameRules: [v => !!v || "Username is required"], |
95 | password: "", | 101 | password: "", |
96 | email: "", | 102 | email: "", |
97 | rules: { | 103 | rules: { |
98 | required: value => !!value || "password is Required." | 104 | required: value => !!value || "password is Required." |
99 | } | 105 | } |
100 | }; | 106 | }; |
101 | }, | 107 | }, |
102 | methods: { | 108 | methods: { |
103 | login() { | 109 | login() { |
104 | this.loading = true; | 110 | if (this.$refs.form.validate()) { |
105 | var userdata = { | 111 | this.loading = true; |
106 | email: this.userLogincredentials.email, | 112 | var userdata = { |
107 | password: this.userLogincredentials.password | 113 | email: this.userLogincredentials.email, |
108 | }; | 114 | password: this.userLogincredentials.password |
109 | http() | 115 | }; |
110 | .post("/schoolLogin", userdata) | 116 | http() |
111 | .then(response => { | 117 | .post("/schoolLogin", userdata) |
112 | // console.log("token",response.data.data); | 118 | .then(response => { |
113 | this.loading = false; | 119 | // console.log("token",response.data.data); |
114 | if (response.data.data.role === "ADMIN") { | ||
115 | this.$store.dispatch("setToken", response.data.data.token); | ||
116 | this.$store.dispatch("Id", response.data.data.id); | ||
117 | this.$store.dispatch("Role", response.data.data.role); | ||
118 | this.$router.push("/dashboard"); | ||
119 | } else if (response.data.data.role === "SUPERADMIN") { | ||
120 | this.$store.dispatch("setSchoolRole", response.data.data.role); | ||
121 | this.$store.dispatch("setSchoolToken", response.data.data.token); | ||
122 | this.$router.push("/schooldashboard"); | ||
123 | } else if (response.data.data.role === "TEACHER") { | ||
124 | // console.log("teacher", response.data.data.role); | ||
125 | this.$store.dispatch("setToken", response.data.data.token); | ||
126 | this.$store.dispatch("Id", response.data.data.id); | ||
127 | this.$store.dispatch("Role", response.data.data.role); | ||
128 | this.$router.push("/dashboard"); | ||
129 | } else if (response.data.data.role === "LIBRARIAN") { | ||
130 | this.$store.dispatch("setToken", response.data.data.token); | ||
131 | this.$store.dispatch("Id", response.data.data.id); | ||
132 | this.$store.dispatch("Role", response.data.data.role); | ||
133 | this.$router.push("/dashboard"); | ||
134 | } else if (response.data.data.role === "ACCOUNTANT") { | ||
135 | this.$store.dispatch("setToken", response.data.data.token); | ||
136 | this.$store.dispatch("Id", response.data.data.id); | ||
137 | this.$store.dispatch("Role", response.data.data.role); | ||
138 | this.$router.push("/dashboard"); | ||
139 | } | ||
140 | }) | ||
141 | .catch(error => { | ||
142 | if (error) { | ||
143 | this.text = "Server appears to be offline"; | ||
144 | this.snackbar = true; | ||
145 | this.loading = false; | 120 | this.loading = false; |
146 | } | 121 | if (response.data.data.role === "ADMIN") { |
147 | if (error.response.data.message) { | 122 | this.$store.dispatch("setToken", response.data.data.token); |
148 | this.text = error.response.data.message; | 123 | this.$store.dispatch("Id", response.data.data.id); |
149 | this.snackbar = true; | 124 | this.$store.dispatch("Role", response.data.data.role); |
150 | } | 125 | this.$router.push("/dashboard"); |
151 | this.loading = false; | 126 | } else if (response.data.data.role === "SUPERADMIN") { |
152 | }); | 127 | this.$store.dispatch("setSchoolRole", response.data.data.role); |
128 | this.$store.dispatch("setSchoolToken", response.data.data.token); | ||
129 | this.$router.push("/schooldashboard"); | ||
130 | } else if (response.data.data.role === "TEACHER") { | ||
131 | // console.log("teacher", response.data.data.role); | ||
132 | this.$store.dispatch("setToken", response.data.data.token); | ||
133 | this.$store.dispatch("Id", response.data.data.id); | ||
134 | this.$store.dispatch("Role", response.data.data.role); | ||
135 | this.$router.push("/dashboard"); | ||
136 | } else if (response.data.data.role === "LIBRARIAN") { | ||
137 | this.$store.dispatch("setToken", response.data.data.token); | ||
138 | this.$store.dispatch("Id", response.data.data.id); | ||
139 | this.$store.dispatch("Role", response.data.data.role); | ||
140 | this.$router.push("/dashboard"); | ||
141 | } else if (response.data.data.role === "ACCOUNTANT") { | ||
142 | this.$store.dispatch("setToken", response.data.data.token); | ||
143 | this.$store.dispatch("Id", response.data.data.id); | ||
144 | this.$store.dispatch("Role", response.data.data.role); | ||
145 | this.$router.push("/dashboard"); | ||
146 | } | ||
147 | }) | ||
148 | .catch(error => { | ||
149 | if (error.response.data.message) { | ||
150 | this.text = error.response.data.message; | ||
151 | this.snackbar = true; | ||
152 | this.loading = false; | ||
153 | } else { | ||
154 | this.text = "Server appears to be offline"; | ||
155 | this.snackbar = true; | ||
156 | this.loading = false; | ||
157 | } | ||
158 | }); | ||
159 | } | ||
153 | } | 160 | } |
154 | }, | 161 | }, |
155 | mounted() { | 162 | mounted() { |
156 | if (this.$store.state.isUserLoggedIn == true) { | 163 | if (this.$store.state.isUserLoggedIn == true) { |
157 | this.$router.push("/dashboard"); | 164 | this.$router.push("/dashboard"); |
158 | } else if (this.$store.state.isSchoolLoggedIn == true) { | 165 | } else if (this.$store.state.isSchoolLoggedIn == true) { |
159 | this.$router.push("/dashboard"); | 166 | this.$router.push("/dashboard"); |
160 | } | 167 | } |
161 | }, | 168 | }, |
162 | computed: { | 169 | computed: { |
163 | color() { | 170 | color() { |
164 | return this.loading ? "success" : "error"; | 171 | return this.loading ? "success" : "error"; |
165 | } | 172 | } |
166 | } | 173 | } |
167 | }; | 174 | }; |
168 | </script> | 175 | </script> |
169 | 176 | ||
170 | <style scoped lang="css"> | 177 | <style scoped lang="css"> |
171 | #login { | 178 | #login { |
172 | width: 100%; | 179 | width: 100%; |
173 | position: absolute; | 180 | position: absolute; |
174 | top: 0; | 181 | top: 0; |
175 | left: 0; | 182 | left: 0; |
176 | content: ""; | 183 | content: ""; |
177 | z-index: 0; | 184 | z-index: 0; |
178 | } | 185 | } |
179 | </style> | 186 | </style> |
180 | <style scoped> | 187 | <style scoped> |
181 | .schoolLogo { | 188 | .schoolLogo { |
182 | height: 60%; | 189 | height: 60%; |
183 | padding-left: 31%; | 190 | padding-left: 31%; |
184 | } | 191 | } |
185 | /* img { | 192 | /* img { |
186 | position: absolute; | 193 | position: absolute; |
187 | top: 13px; | 194 | top: 13px; |
188 | left: 8px; | 195 | left: 8px; |
189 | } */ | 196 | } */ |
190 | .v-btn--large { | 197 | .v-btn--large { |
191 | padding: 0px 84px; | 198 | padding: 0px 84px; |
192 | } | 199 | } |
src/pages/Course/course.vue
File was created | 1 | <template> | |
2 | <v-container fluid class="body-color"> | ||
3 | <!-- ****** EDITS COURSES DETAILS ****** --> | ||
4 | <v-dialog v-model="editStudentDialog" max-width="600px" scrollable> | ||
5 | <v-card flat class="card-style pa-2" dark> | ||
6 | <v-layout> | ||
7 | <v-flex xs12> | ||
8 | <label class="title text-xs-center">Edit Course</label> | ||
9 | <v-icon size="24" class="right" @click="editStudentDialog = false">cancel</v-icon> | ||
10 | </v-flex> | ||
11 | </v-layout> | ||
12 | <v-card-text> | ||
13 | <v-form ref="form"> | ||
14 | <v-container fluid> | ||
15 | <v-layout> | ||
16 | <v-flex xs12 class="text-xs-center text-sm-center text-md-center text-lg-center"> | ||
17 | <v-avatar size="100px" v-if="!editedItem.courseImageUrl && !editImageUrl"> | ||
18 | <img src="/static/icon/user.png" /> | ||
19 | </v-avatar> | ||
20 | <img | ||
21 | :src="editedItem.courseImageUrl" | ||
22 | v-else-if="editedItem.courseImageUrl && !editImageUrl" | ||
23 | height="150" | ||
24 | style="border-radius:50%; width:150px" | ||
25 | /> | ||
26 | <img | ||
27 | v-if="editImageUrl" | ||
28 | :src="editImageUrl" | ||
29 | style="border-radius:50%; width:150px;height:150px" | ||
30 | /> | ||
31 | <input | ||
32 | type="file" | ||
33 | style="display: none" | ||
34 | ref="editDataImage" | ||
35 | accept="image/*" | ||
36 | @change="onEditFilePicked" | ||
37 | /> | ||
38 | </v-flex> | ||
39 | </v-layout> | ||
40 | <v-layout wrap> | ||
41 | <v-flex xs12 sm12> | ||
42 | <v-layout> | ||
43 | <v-flex xs4 sm5 class="pt-4 subheading"> | ||
44 | <label class="right hidden-xs-only hidden-sm-only">Select Class:</label> | ||
45 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Class:</label> | ||
46 | </v-flex> | ||
47 | <v-flex xs8 sm7 class="ml-3"> | ||
48 | <v-select | ||
49 | :items="addclass" | ||
50 | label="Select Class" | ||
51 | v-model="editedItem.select" | ||
52 | item-text="classNum" | ||
53 | item-value="_id" | ||
54 | name="Select Class" | ||
55 | required | ||
56 | ></v-select> | ||
57 | </v-flex> | ||
58 | </v-layout> | ||
59 | <v-layout> | ||
60 | <v-flex xs4 sm5 class="pt-4 subheading"> | ||
61 | <label class="right hidden-xs-only hidden-sm-only">Course Name:</label> | ||
62 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Course:</label> | ||
63 | </v-flex> | ||
64 | <v-flex xs8 sm7 class="ml-3"> | ||
65 | <v-text-field | ||
66 | v-model="editedItem.coursrName" | ||
67 | placeholder="fill your Course Name" | ||
68 | type="text" | ||
69 | required | ||
70 | ></v-text-field> | ||
71 | </v-flex> | ||
72 | </v-layout> | ||
73 | <v-layout> | ||
74 | <v-flex xs4 sm5 class="pt-4 subheading"> | ||
75 | <label class="right hidden-xs-only hidden-sm-only">Upload Image:</label> | ||
76 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Upload:</label> | ||
77 | </v-flex> | ||
78 | <v-flex xs8 sm7 class="ml-3"> | ||
79 | <v-text-field | ||
80 | label="Select Image" | ||
81 | @click="pickEditFile" | ||
82 | v-model="editImageName" | ||
83 | append-icon="attach_file" | ||
84 | ></v-text-field> | ||
85 | </v-flex> | ||
86 | </v-layout> | ||
87 | </v-flex> | ||
88 | </v-layout> | ||
89 | <v-layout> | ||
90 | <v-flex xs12 sm12 class="px-0 mx-0"> | ||
91 | <v-layout class="right"> | ||
92 | <v-btn @click="save" round dark :loading="editLoading" class="add-button">Save</v-btn> | ||
93 | </v-layout> | ||
94 | </v-flex> | ||
95 | </v-layout> | ||
96 | </v-container> | ||
97 | </v-form> | ||
98 | </v-card-text> | ||
99 | </v-card> | ||
100 | </v-dialog> | ||
101 | |||
102 | <!-- ****** PROFILE VIEW STUDENTS DEATILS ****** --> | ||
103 | |||
104 | <v-dialog v-model="profileStudentDialog" max-width="600px" scrollable> | ||
105 | <v-card flat class="card-style pa-3" dark> | ||
106 | <v-layout> | ||
107 | <v-flex xs12> | ||
108 | <label class="title text-xs-center">View Course</label> | ||
109 | <v-icon size="24" class="right" @click="profileStudentDialog = false">cancel</v-icon> | ||
110 | </v-flex> | ||
111 | </v-layout> | ||
112 | <v-card-text> | ||
113 | <v-flex align-center justify-center layout text-xs-center class="mt-3"> | ||
114 | <v-avatar size="100px"> | ||
115 | <img src="/static/icon/user.png" v-if="!editedItem.courseImageUrl" /> | ||
116 | <img :src="editedItem.courseImageUrl" v-else-if="editedItem.courseImageUrl" /> | ||
117 | </v-avatar> | ||
118 | </v-flex> | ||
119 | <v-container grid-list-md> | ||
120 | <v-layout wrap> | ||
121 | <v-flex xs12> | ||
122 | <v-layout> | ||
123 | <v-flex xs6 sm6> | ||
124 | <h5 class="right my-1"> | ||
125 | <b>Course :</b> | ||
126 | </h5> | ||
127 | </v-flex> | ||
128 | <v-flex sm6 xs6> | ||
129 | <h5 class="my-1 left">{{ editedItem.coursrName }}</h5> | ||
130 | </v-flex> | ||
131 | </v-layout> | ||
132 | </v-flex> | ||
133 | </v-layout> | ||
134 | </v-container> | ||
135 | </v-card-text> | ||
136 | </v-card> | ||
137 | </v-dialog> | ||
138 | |||
139 | <!-- ****** STUDENTS TABLE ****** --> | ||
140 | <v-toolbar color="transparent" flat> | ||
141 | <v-btn | ||
142 | fab | ||
143 | dark | ||
144 | class="open-dialog-button hidden-xl-only hidden-md-only hidden-lg-only" | ||
145 | small | ||
146 | @click="addCourseDialog = true" | ||
147 | > | ||
148 | <v-icon dark>add</v-icon> | ||
149 | </v-btn> | ||
150 | <v-btn | ||
151 | round | ||
152 | class="open-dialog-button hidden-sm-only hidden-xs-only" | ||
153 | dark | ||
154 | @click="addCourseDialog = true" | ||
155 | > | ||
156 | <v-icon class="white--text pr-1" size="20">add</v-icon>Add Course | ||
157 | </v-btn> | ||
158 | <v-card-actions class="hidden-xs-only hidden-sm-only"> | ||
159 | <v-flex md13 lg12> | ||
160 | <v-layout> | ||
161 | <v-flex lg6 md6> | ||
162 | <v-select | ||
163 | :items="addclass" | ||
164 | label="Select Class" | ||
165 | v-model="selectStudents.select" | ||
166 | item-text="classNum" | ||
167 | item-value="_id" | ||
168 | name="Select Class" | ||
169 | :rules="classRules" | ||
170 | required | ||
171 | class="ml-2" | ||
172 | ></v-select> | ||
173 | </v-flex> | ||
174 | </v-layout> | ||
175 | </v-flex> | ||
176 | </v-card-actions> | ||
177 | <v-spacer></v-spacer> | ||
178 | <v-btn | ||
179 | @click="getCourses()" | ||
180 | round | ||
181 | dark | ||
182 | :loading="loading" | ||
183 | class="add-button hidden-xs-only hidden-sm-only" | ||
184 | >Find</v-btn> | ||
185 | <v-card-title class="body-1" v-show="show"> | ||
186 | <v-btn icon large flat @click="displaySearch"> | ||
187 | <v-avatar size="27"> | ||
188 | <img src="/static/icon/search.png" alt="icon" /> | ||
189 | </v-avatar> | ||
190 | </v-btn> | ||
191 | </v-card-title> | ||
192 | <v-flex xs8 sm7 lg2 md3 v-show="showSearch"> | ||
193 | <v-layout> | ||
194 | <v-text-field v-model="search" label="Search" prepend-inner-icon="search" color="primary"></v-text-field> | ||
195 | <v-icon @click="closeSearch" color="error">close</v-icon> | ||
196 | </v-layout> | ||
197 | </v-flex> | ||
198 | </v-toolbar> | ||
199 | <v-card flat class="elevation-0 transparent"> | ||
200 | <v-flex class="hidden-xl-only hidden-lg-only hidden-md-only"> | ||
201 | <v-layout> | ||
202 | <!-- <v-flex xs4> | ||
203 | <label class="right mt-4">Select Class:</label> | ||
204 | </v-flex>--> | ||
205 | <v-flex xs12> | ||
206 | <v-select | ||
207 | :items="addclass" | ||
208 | label="Select Class" | ||
209 | v-model="selectStudents.select" | ||
210 | item-text="classNum" | ||
211 | item-value="_id" | ||
212 | name="Select Class" | ||
213 | :rules="classRules" | ||
214 | class="px-2" | ||
215 | ></v-select> | ||
216 | </v-flex> | ||
217 | </v-layout> | ||
218 | <v-layout> | ||
219 | <v-flex xs5 class="mx-auto mb-2"> | ||
220 | <v-btn @click="getCourses()" block round dark :loading="loading" class="add-button">Find</v-btn> | ||
221 | </v-flex> | ||
222 | </v-layout> | ||
223 | </v-flex> | ||
224 | </v-card> | ||
225 | <v-data-table | ||
226 | :headers="headers" | ||
227 | :items="courseData" | ||
228 | :pagination.sync="pagination" | ||
229 | :search="search" | ||
230 | > | ||
231 | <template slot="items" slot-scope="props"> | ||
232 | <tr class="tr"> | ||
233 | <td class="text-xs-center td td-row"> | ||
234 | <v-avatar size="40"> | ||
235 | <img :src="props.item.courseImageUrl" v-if="props.item.courseImageUrl" /> | ||
236 | <img src="/static/icon/user.png" v-else-if="!props.item.courseImageUrl" /> | ||
237 | </v-avatar> | ||
238 | </td> | ||
239 | <td class="text-xs-center td td-row">{{ props.item.coursrName}}</td> | ||
240 | <td class="text-xs-center td td-row"> | ||
241 | <span> | ||
242 | <v-tooltip top> | ||
243 | <img | ||
244 | slot="activator" | ||
245 | style="cursor:pointer; width:25px; height:25px; " | ||
246 | class="mr-3" | ||
247 | @click="profile(props.item)" | ||
248 | src="/static/icon/view.png" | ||
249 | /> | ||
250 | <span>View</span> | ||
251 | </v-tooltip> | ||
252 | <v-tooltip top> | ||
253 | <img | ||
254 | slot="activator" | ||
255 | style="cursor:pointer; width:20px; height:18px; " | ||
256 | class="mr-3" | ||
257 | @click="editItem(props.item)" | ||
258 | src="/static/icon/edit.png" | ||
259 | /> | ||
260 | <span>Edit</span> | ||
261 | </v-tooltip> | ||
262 | <v-tooltip top> | ||
263 | <img | ||
264 | slot="activator" | ||
265 | style="cursor:pointer; width:20px; height:20px; " | ||
266 | class="mr-3" | ||
267 | @click="deleteItem(props.item)" | ||
268 | src="/static/icon/delete.png" | ||
269 | /> | ||
270 | <span>Delete</span> | ||
271 | </v-tooltip> | ||
272 | </span> | ||
273 | </td> | ||
274 | </tr> | ||
275 | </template> | ||
276 | <v-alert | ||
277 | slot="no-results" | ||
278 | :value="true" | ||
279 | color="error" | ||
280 | icon="warning" | ||
281 | >Your search for "{{ search }}" found no results.</v-alert> | ||
282 | </v-data-table> | ||
283 | <!-- ****** Add CourseS DETAILS****** --> | ||
284 | <v-dialog v-model="addCourseDialog" max-width="500"> | ||
285 | <v-card flat class="card-style pa-2" dark> | ||
286 | <v-layout> | ||
287 | <v-flex xs12> | ||
288 | <label class="title text-xs-center">Add Course</label> | ||
289 | <v-icon size="24" class="right" @click="addCourseDialog = false">cancel</v-icon> | ||
290 | </v-flex> | ||
291 | </v-layout> | ||
292 | <v-container fluid> | ||
293 | <v-layout align-center> | ||
294 | <v-flex xs12> | ||
295 | <v-flex xs12 sm12> | ||
296 | <v-form ref="form" v-model="valid" lazy-validation> | ||
297 | <v-layout> | ||
298 | <v-flex | ||
299 | xs12 | ||
300 | class="text-xs-center text-sm-center text-md-center text-lg-center" | ||
301 | > | ||
302 | <v-avatar size="100px"> | ||
303 | <img src="/static/icon/user.png" v-if="!imageUrl" /> | ||
304 | </v-avatar> | ||
305 | <input | ||
306 | type="file" | ||
307 | style="display: none" | ||
308 | ref="image" | ||
309 | accept="image/*" | ||
310 | @change="onFilePicked" | ||
311 | /> | ||
312 | <img | ||
313 | :src="imageData.imageUrl" | ||
314 | height="150" | ||
315 | v-if="imageUrl" | ||
316 | style="border-radius:50%; width:200px" | ||
317 | /> | ||
318 | </v-flex> | ||
319 | </v-layout> | ||
320 | <v-layout wrap> | ||
321 | <v-flex xs12 sm12> | ||
322 | <v-layout> | ||
323 | <v-flex x4 sm4 class="pt-4 subheading"> | ||
324 | <label class="right hidden-xs-only hidden-sm-only">Select Class:</label> | ||
325 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Class:</label> | ||
326 | </v-flex> | ||
327 | <v-flex xs8 sm8 class="ml-3"> | ||
328 | <v-select | ||
329 | :items="addclass" | ||
330 | label="Select Class" | ||
331 | v-model="addCourses.select" | ||
332 | item-text="classNum" | ||
333 | item-value="_id" | ||
334 | name="Select Class" | ||
335 | :rules="classRules" | ||
336 | @change="getSections(addCourses.select)" | ||
337 | required | ||
338 | ></v-select> | ||
339 | </v-flex> | ||
340 | </v-layout> | ||
341 | </v-flex> | ||
342 | </v-layout> | ||
343 | <v-layout wrap> | ||
344 | <v-flex xs12 sm12> | ||
345 | <v-layout> | ||
346 | <v-flex xs4 sm4 class="pt-4 subheading"> | ||
347 | <label class="right hidden-xs-only hidden-sm-only">Course Name:</label> | ||
348 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Course:</label> | ||
349 | </v-flex> | ||
350 | <v-flex xs8 sm8 class="ml-3"> | ||
351 | <v-text-field | ||
352 | v-model="addCourses.coursrName" | ||
353 | placeholder="fill your Course name" | ||
354 | type="text" | ||
355 | :rules="courseRules" | ||
356 | required | ||
357 | ></v-text-field> | ||
358 | </v-flex> | ||
359 | </v-layout> | ||
360 | </v-flex> | ||
361 | <v-flex xs12 sm12> | ||
362 | <v-layout> | ||
363 | <v-flex xs4 class="pt-4 subheading"> | ||
364 | <label class="right hidden-xs-only hidden-sm-only">Upload Image:</label> | ||
365 | <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Upload :</label> | ||
366 | </v-flex> | ||
367 | <v-flex xs8 class="ml-3"> | ||
368 | <v-text-field | ||
369 | label="Select Image" | ||
370 | @click="pickFile" | ||
371 | v-model="imageName" | ||
372 | append-icon="attach_file" | ||
373 | ></v-text-field> | ||
374 | </v-flex> | ||
375 | </v-layout> | ||
376 | </v-flex> | ||
377 | </v-layout> | ||
378 | <v-layout> | ||
379 | <v-flex xs12 sm12> | ||
380 | <v-layout class="right"> | ||
381 | <v-btn @click="submit" round dark :loading="loading" class="add-button">Add</v-btn> | ||
382 | </v-layout> | ||
383 | </v-flex> | ||
384 | </v-layout> | ||
385 | </v-form> | ||
386 | </v-flex> | ||
387 | </v-flex> | ||
388 | </v-layout> | ||
389 | </v-container> | ||
390 | </v-card> | ||
391 | </v-dialog> | ||
392 | <v-snackbar | ||
393 | :timeout="timeout" | ||
394 | :top="y === 'top'" | ||
395 | :right="x === 'right'" | ||
396 | :vertical="mode === 'vertical'" | ||
397 | v-model="snackbar" | ||
398 | :color="color" | ||
399 | >{{ text }}</v-snackbar> | ||
400 | <div class="loader" v-if="showLoader"> | ||
401 | <v-progress-circular indeterminate color="white"></v-progress-circular> | ||
402 | </div> | ||
403 | </v-container> | ||
404 | </template> | ||
405 | |||
406 | <script> | ||
407 | import http from "@/Services/http.js"; | ||
408 | import moment from "moment"; | ||
409 | import countryList from "@/script/country.js"; | ||
410 | import parent from "@/script/parents.js"; | ||
411 | |||
412 | export default { | ||
413 | data: () => ({ | ||
414 | showNext: false, | ||
415 | snackbar: false, | ||
416 | y: "top", | ||
417 | x: "right", | ||
418 | role: "", | ||
419 | mode: "", | ||
420 | append: "", | ||
421 | timeout: 3000, | ||
422 | text: "", | ||
423 | show: true, | ||
424 | color: "", | ||
425 | showSearch: false, | ||
426 | showLoader: false, | ||
427 | loading: false, | ||
428 | editLoading: false, | ||
429 | date: null, | ||
430 | search: "", | ||
431 | menu: false, | ||
432 | menu1: false, | ||
433 | editStudentDialog: false, | ||
434 | profileStudentDialog: false, | ||
435 | addCourseDialog: false, | ||
436 | valid: true, | ||
437 | addclass: [], | ||
438 | addSection: [], | ||
439 | pagination: { | ||
440 | rowsPerPage: 10 | ||
441 | }, | ||
442 | imageData: {}, | ||
443 | imageName: "", | ||
444 | imageUrl: "", | ||
445 | imageFile: "", | ||
446 | editImageName: "", | ||
447 | editImageUrl: "", | ||
448 | courseRules: [v => !!v || " Course Name is required"], | ||
449 | classRules: [v => !!v || " Class Name is required"], | ||
450 | sectionRules: [v => !!v || " Section Name is required"], | ||
451 | errorMessages: "", | ||
452 | headers: [ | ||
453 | { | ||
454 | text: "Image", | ||
455 | value: "courseImageUrl", | ||
456 | sortable: false, | ||
457 | align: "center" | ||
458 | }, | ||
459 | { | ||
460 | text: "Course", | ||
461 | value: "course", | ||
462 | sortable: false, | ||
463 | align: "center" | ||
464 | }, | ||
465 | { text: "Action", value: "", sortable: false, align: "center" } | ||
466 | ], | ||
467 | courseData: [], | ||
468 | editedIndex: -1, | ||
469 | addCourses: {}, | ||
470 | selectStudents: { | ||
471 | select: "", | ||
472 | selectSection: "" | ||
473 | }, | ||
474 | editedItem: {} | ||
475 | }), | ||
476 | methods: { | ||
477 | getCourses() { | ||
478 | this.showLoader = true; | ||
479 | http() | ||
480 | .get("/getCourseesList", { | ||
481 | params: { | ||
482 | classId: this.selectStudents.select | ||
483 | } | ||
484 | }) | ||
485 | .then(response => { | ||
486 | this.courseData = response.data.data; | ||
487 | this.showLoader = false; | ||
488 | }) | ||
489 | .catch(err => { | ||
490 | console.log("err====>", err); | ||
491 | this.showLoader = false; | ||
492 | }); | ||
493 | }, | ||
494 | getSections(_id) { | ||
495 | var token = this.$store.state.token; | ||
496 | this.showLoader = true; | ||
497 | http() | ||
498 | .get( | ||
499 | "/getSectionsList", | ||
500 | { params: { classId: _id } }, | ||
501 | { | ||
502 | headers: { Authorization: "Bearer " + token } | ||
503 | } | ||
504 | ) | ||
505 | .then(response => { | ||
506 | this.addSection = response.data.data; | ||
507 | this.showLoader = false; | ||
508 | }) | ||
509 | .catch(err => { | ||
510 | this.showLoader = false; | ||
511 | }); | ||
512 | }, | ||
513 | pickFile() { | ||
514 | this.$refs.image.click(); | ||
515 | }, | ||
516 | pickEditFile() { | ||
517 | this.$refs.editDataImage.click(); | ||
518 | }, | ||
519 | dates: function(date) { | ||
520 | return moment(date).format("MMMM DD, YYYY"); | ||
521 | return date; | ||
522 | }, | ||
523 | onFilePicked(e) { | ||
524 | // console.log(e) | ||
525 | const files = e.target.files; | ||
526 | this.imageData.upload = e.target.files[0]; | ||
527 | if (files[0] !== undefined) { | ||
528 | this.imageName = files[0].name; | ||
529 | if (this.imageName.lastIndexOf(".") <= 0) { | ||
530 | return; | ||
531 | } | ||
532 | const fr = new FileReader(); | ||
533 | fr.readAsDataURL(files[0]); | ||
534 | fr.addEventListener("load", () => { | ||
535 | this.imageUrl = fr.result; | ||
536 | this.imageFile = files[0]; // this is an image file that can be sent to server... | ||
537 | this.imageData.imageUrl = URL.createObjectURL(this.imageFile); | ||
538 | }); | ||
539 | } else { | ||
540 | this.imageName = ""; | ||
541 | this.imageFile = ""; | ||
542 | this.imageUrl = ""; | ||
543 | } | ||
544 | }, | ||
545 | onEditFilePicked(e) { | ||
546 | console.log(e); | ||
547 | const files = e.target.files; | ||
548 | if (files[0] !== undefined) { | ||
549 | this.editImageName = files[0].name; | ||
550 | console.log("this.editImageName", this.editImageName); | ||
551 | |||
552 | if (this.editImageName.lastIndexOf(".") <= 0) { | ||
553 | return; | ||
554 | } | ||
555 | const fr = new FileReader(); | ||
556 | fr.readAsDataURL(files[0]); | ||
557 | fr.addEventListener("load", () => { | ||
558 | this.editImageUrl = fr.result; | ||
559 | this.editiImageFile = files[0]; // this is an image file that can be sent to server... | ||
560 | }); | ||
561 | } else { | ||
562 | this.editImageName = ""; | ||
563 | this.editiImageFile = ""; | ||
564 | } | ||
565 | }, | ||
566 | editItem(item) { | ||
567 | this.editedIndex = this.courseData.indexOf(item); | ||
568 | this.editedItem = Object.assign({}, item); | ||
569 | this.editStudentDialog = true; | ||
570 | }, | ||
571 | profile(item) { | ||
572 | this.editedIndex = this.courseData.indexOf(item); | ||
573 | this.editedItem = Object.assign({}, item); | ||
574 | this.profileStudentDialog = true; | ||
575 | }, | ||
576 | deleteItem(item) { | ||
577 | let deleteCourse = { | ||
578 | courseId: item._id | ||
579 | }; | ||
580 | http() | ||
581 | .delete( | ||
582 | "/deleteCourse", | ||
583 | confirm("Are you sure you want to delete this?") && { | ||
584 | params: deleteCourse | ||
585 | } | ||
586 | ) | ||
587 | .then(response => { | ||
588 | this.snackbar = true; | ||
589 | this.text = response.data.message; | ||
590 | this.color = "green"; | ||
591 | this.getCourses(); | ||
592 | }) | ||
593 | .catch(error => { | ||
594 | this.snackbar = true; | ||
595 | this.text = error.response.data.message; | ||
596 | this.color = "error"; | ||
597 | }); | ||
598 | }, | ||
599 | close() { | ||
600 | this.editStudentDialog = false; | ||
601 | }, | ||
602 | closeStudentProfile() { | ||
603 | this.profileStudentDialog = false; | ||
604 | }, | ||
605 | submit() { | ||
606 | if (this.$refs.form.validate()) { | ||
607 | let addCourse = { | ||
608 | classId: this.addCourses.select, | ||
609 | sectionId: this.addCourses.selectSection, | ||
610 | coursrName: this.addCourses.coursrName | ||
611 | }; | ||
612 | if (this.imageUrl) { | ||
613 | var str = this.imageUrl; | ||
614 | const [baseUrl, imageUrl] = str.split(/,/); | ||
615 | addCourse.upload = imageUrl; | ||
616 | } | ||
617 | this.loading = true; | ||
618 | http() | ||
619 | .post("/createCourse", addCourse) | ||
620 | .then(response => { | ||
621 | this.snackbar = true; | ||
622 | this.text = "New Course added successfully"; | ||
623 | this.color = "green"; | ||
624 | this.addCourseDialog = false; | ||
625 | this.clear(); | ||
626 | this.loading = false; | ||
627 | }) | ||
628 | .catch(error => { | ||
629 | this.snackbar = true; | ||
630 | this.text = error.response.data.message; | ||
631 | this.color = "error"; | ||
632 | this.loading = false; | ||
633 | }); | ||
634 | } | ||
635 | }, | ||
636 | clear() { | ||
637 | this.$refs.form.reset(); | ||
638 | this.imageUrl = ""; | ||
639 | }, | ||
640 | save() { | ||
641 | let editCourse = { | ||
642 | courseId: this.editedItem._id, | ||
643 | coursrName: this.editedItem.coursrName, | ||
644 | classId: this.editedItem.select | ||
645 | }; | ||
646 | if (this.editImageUrl) { | ||
647 | var str = this.editImageUrl; | ||
648 | const [baseUrl, editImageUrl] = str.split(/,/); | ||
649 | editCourse.upload = editImageUrl; | ||
650 | } | ||
651 | this.editLoading = true; | ||
652 | http() | ||
653 | .put("/updateCourse", editCourse) | ||
654 | .then(response => { | ||
655 | this.snackbar = true; | ||
656 | this.text = response.data.message; | ||
657 | this.color = "green"; | ||
658 | this.imageUrl = ""; | ||
659 | this.getCourses(); | ||
660 | this.close(); | ||
661 | this.editLoading = false; | ||
662 | }) | ||
663 | .catch(error => { | ||
664 | this.snackbar = true; | ||
665 | this.text = error.response.data.statusText; | ||
666 | this.color = "error"; | ||
667 | this.editLoading = false; | ||
668 | }); | ||
669 | }, | ||
670 | displaySearch() { | ||
671 | this.show = false; | ||
672 | this.showSearch = true; | ||
673 | }, | ||
674 | closeSearch() { | ||
675 | this.showSearch = false; | ||
676 | this.show = true; | ||
677 | this.search = ""; | ||
678 | } | ||
679 | }, | ||
680 | mounted() { | ||
681 | var token = this.$store.state.token; | ||
682 | http() | ||
683 | .get("/getClassesList", { | ||
684 | headers: { Authorization: "Bearer " + token } | ||
685 | }) | ||
686 | .then(response => { | ||
687 | this.addclass = response.data.data; | ||
688 | }) | ||
689 | .catch(error => { | ||
690 | this.showLoader = false; | ||
691 | if (error.response.status === 401) { | ||
692 | this.$router.replace({ path: "/" }); | ||
693 | this.$store.dispatch("setToken", null); | ||
694 | this.$store.dispatch("Id", null); | ||
695 | this.$store.dispatch("Role", null); | ||
696 | } | ||
697 | }); | ||
698 | } | ||
699 | }; | ||
700 | </script> | ||
701 | <style scoped> | ||
702 | .active { | ||
703 | background-color: gray; | ||
704 | color: white !important; | ||
705 | } | ||
706 | .activebtn { | ||
707 | color: black !important; | ||
708 | } | ||
709 | </style> |
src/pages/Course/enrollStudents.vue
File was created | 1 | <template> | |
2 | <v-container fluid class="body-color"> | ||
3 | <!-- ****** STUDENTS TABLE ****** --> | ||
4 | <v-toolbar color="transparent" flat> | ||
5 | <v-spacer></v-spacer> | ||
6 | <v-flex xs12 sm4 md2> | ||
7 | <v-select | ||
8 | small | ||
9 | :items="addclass" | ||
10 | label="Select Class" | ||
11 | v-model="getReport.classId" | ||
12 | item-text="classNum" | ||
13 | item-value="_id" | ||
14 | name="Select Class" | ||
15 | @change="getCourses(getReport.classId)" | ||
16 | class="mr-2" | ||
17 | required | ||
18 | ></v-select> | ||
19 | </v-flex> | ||
20 | <v-flex xs12 sm4 md2> | ||
21 | <v-select | ||
22 | :items="courseData" | ||
23 | label="Select Course" | ||
24 | v-model="getReport.courseId" | ||
25 | item-text="coursrName" | ||
26 | item-value="_id" | ||
27 | required | ||
28 | class="ml-2" | ||
29 | @change="getStudentTable(getReport.courseId)" | ||
30 | ></v-select> | ||
31 | </v-flex> | ||
32 | <v-card-title class="body-1" v-show="show"> | ||
33 | <v-btn icon large flat @click="displaySearch"> | ||
34 | <v-avatar size="27"> | ||
35 | <img src="/static/icon/search.png" alt="icon" /> | ||
36 | </v-avatar> | ||
37 | </v-btn> | ||
38 | </v-card-title> | ||
39 | <v-flex xs8 sm8 md3 lg2 v-show="showSearch"> | ||
40 | <v-layout> | ||
41 | <v-text-field v-model="search" label="Search" prepend-inner-icon="search" color="primary"></v-text-field> | ||
42 | <v-icon @click="closeSearch" color="error">close</v-icon> | ||
43 | </v-layout> | ||
44 | </v-flex> | ||
45 | </v-toolbar> | ||
46 | <v-data-table | ||
47 | :headers="headers" | ||
48 | :items="studentsData" | ||
49 | :pagination.sync="pagination" | ||
50 | :search="search" | ||
51 | select-all | ||
52 | v-model="selected" | ||
53 | item-key="name" | ||
54 | > | ||
55 | <template slot="items" slot-scope="props"> | ||
56 | <tr class="tr" :active="props.selected" @click="props.selected = !props.selected"> | ||
57 | <td class="text-xs-center td td-row"> | ||
58 | <v-checkbox | ||
59 | :input-value="props.selected" | ||
60 | @change="selectParticularStudent(props.item._id)" | ||
61 | primary | ||
62 | hide-details | ||
63 | ></v-checkbox> | ||
64 | </td> | ||
65 | <td class="text-xs-center td td-row"> | ||
66 | <v-avatar size="40"> | ||
67 | <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" /> | ||
68 | <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" /> | ||
69 | </v-avatar> | ||
70 | </td> | ||
71 | <td class="text-xs-center td td-row">{{ props.item.name}}</td> | ||
72 | <td class="text-xs-center td td-row">{{ props.item.fatherCellNo}}</td> | ||
73 | <td class="text-xs-center td td-row">{{ props.item.email }}</td> | ||
74 | </tr> | ||
75 | </template> | ||
76 | <template slot="headers" slot-scope="props"> | ||
77 | <tr> | ||
78 | <th> | ||
79 | <v-checkbox | ||
80 | :input-value="props.all" | ||
81 | :indeterminate="props.indeterminate" | ||
82 | primary | ||
83 | hide-details | ||
84 | @click.native="toggleAll" | ||
85 | ></v-checkbox> | ||
86 | </th> | ||
87 | <th | ||
88 | v-for="header in props.headers" | ||
89 | :key="header.text" | ||
90 | :class="['column sortable', pagination.descending ? 'desc' : 'asc', header.value === pagination.sortBy ? 'active' : '']" | ||
91 | @click="changeSort(header.value)" | ||
92 | > | ||
93 | <v-icon small>arrow_upward</v-icon> | ||
94 | {{ header.text }} | ||
95 | </th> | ||
96 | </tr> | ||
97 | </template> | ||
98 | <v-alert | ||
99 | slot="no-results" | ||
100 | :value="true" | ||
101 | color="error" | ||
102 | icon="warning" | ||
103 | >Your search for "{{ search }}" found no results.</v-alert> | ||
104 | </v-data-table> | ||
105 | <v-snackbar | ||
106 | :timeout="timeout" | ||
107 | :top="y === 'top'" | ||
108 | :right="x === 'right'" | ||
109 | :vertical="mode === 'vertical'" | ||
110 | v-model="snackbar" | ||
111 | color="success" | ||
112 | >{{ text }}</v-snackbar> | ||
113 | <div class="loader" v-if="showLoader"> | ||
114 | <v-progress-circular indeterminate color="white"></v-progress-circular> | ||
115 | </div> | ||
116 | </v-container> | ||
117 | </template> | ||
118 | |||
119 | <script> | ||
120 | import http from "@/Services/http.js"; | ||
121 | import moment from "moment"; | ||
122 | |||
123 | export default { | ||
124 | data: () => ({ | ||
125 | snackbar: false, | ||
126 | y: "top", | ||
127 | x: "right", | ||
128 | mode: "", | ||
129 | timeout: 3000, | ||
130 | text: "", | ||
131 | show: true, | ||
132 | showSearch: false, | ||
133 | showLoader: false, | ||
134 | loading: false, | ||
135 | date: null, | ||
136 | search: "", | ||
137 | addclass: [], | ||
138 | pagination: { | ||
139 | rowsPerPage: 10 | ||
140 | }, | ||
141 | headers: [ | ||
142 | { | ||
143 | text: "Profile Pic", | ||
144 | value: "profilprofilePicUrlePicUrl", | ||
145 | sortable: false, | ||
146 | align: "center" | ||
147 | }, | ||
148 | { text: "Name", value: "name", sortable: false, align: "center" }, | ||
149 | { | ||
150 | text: "Mobile No", | ||
151 | value: "fatherCellNo", | ||
152 | sortable: false, | ||
153 | align: "center" | ||
154 | }, | ||
155 | { text: "Email", value: "email", sortable: false, align: "center" } | ||
156 | // { text: "Action", value: "", sortable: false, align: "center" } | ||
157 | ], | ||
158 | token: "", | ||
159 | selectStudents: { | ||
160 | select: "", | ||
161 | selectSection: "" | ||
162 | }, | ||
163 | |||
164 | role: "", | ||
165 | schoolRole: "", | ||
166 | menu: false, | ||
167 | valid: true, | ||
168 | |||
169 | getReport: {}, | ||
170 | studentsData: [], | ||
171 | courseData: [], | ||
172 | addSection: [], | ||
173 | selected: [], | ||
174 | SectionName: ["A", "B", "C", "D", "E", "F"], | ||
175 | classRules: [v => !!v || "Class is required"], | ||
176 | sectionRules: [v => !!v || "Class is required"], | ||
177 | studentRules: [v => !!v || "Student is required"], | ||
178 | dataValid: [v => !!v || "Date is required"] | ||
179 | }), | ||
180 | methods: { | ||
181 | save(date) { | ||
182 | this.$refs.menu.save(date); | ||
183 | }, | ||
184 | getAllClass() { | ||
185 | http() | ||
186 | .get("/getClassesList", { | ||
187 | headers: { Authorization: "Bearer " + this.token } | ||
188 | }) | ||
189 | .then(response => { | ||
190 | this.addclass = response.data.data; | ||
191 | }) | ||
192 | .catch(error => { | ||
193 | // console.log("err====>", err); | ||
194 | // this.$router.replace({ path: "/" }); | ||
195 | }); | ||
196 | }, | ||
197 | getCourses(classId) { | ||
198 | this.showLoader = true; | ||
199 | http() | ||
200 | .get("/getCourseesList", { | ||
201 | params: { | ||
202 | classId: classId | ||
203 | } | ||
204 | }) | ||
205 | .then(response => { | ||
206 | this.courseData = response.data.data; | ||
207 | this.showLoader = false; | ||
208 | }) | ||
209 | .catch(err => { | ||
210 | console.log("err====>", err); | ||
211 | this.showLoader = false; | ||
212 | }); | ||
213 | }, | ||
214 | getStudents() { | ||
215 | this.showLoader = true; | ||
216 | http() | ||
217 | .get("/getStudentsList", { | ||
218 | params: { | ||
219 | classId: this.getReport.classId | ||
220 | } | ||
221 | }) | ||
222 | .then(response => { | ||
223 | this.studentsData = response.data.data; | ||
224 | this.showLoader = false; | ||
225 | // this.addStudentAttendenceDialog = false; | ||
226 | var attendence = ""; | ||
227 | for (let i = 0; i < this.studentsData.length; i++) { | ||
228 | this.studentsData[i].attendence = true; | ||
229 | } | ||
230 | }) | ||
231 | .catch(error => { | ||
232 | console.log("err====>", error); | ||
233 | this.showLoader = false; | ||
234 | }); | ||
235 | }, | ||
236 | getStudentTable(id) { | ||
237 | console.log("id", this.getReport.courseId); | ||
238 | this.getStudents(); | ||
239 | }, | ||
240 | update() { | ||
241 | var studentsAttendence = []; | ||
242 | for (var j = 0; j < this.studentsData.length; j++) { | ||
243 | studentsAttendence.push({ | ||
244 | studentId: this.studentsData[j]._id, | ||
245 | isPresent: this.studentsData[j].attendence | ||
246 | }); | ||
247 | } | ||
248 | if (this.$refs.form.validate()) { | ||
249 | let attendanceData = { | ||
250 | sectionId: this.getReport.sectionId, | ||
251 | date: this.date, | ||
252 | students: studentsAttendence | ||
253 | }; | ||
254 | http() | ||
255 | .put("/updateAttendance", attendanceData) | ||
256 | .then(response => { | ||
257 | this.snackbar = true; | ||
258 | this.text = response.data.message; | ||
259 | this.addStudentAttendenceDialog = false; | ||
260 | }) | ||
261 | .catch(error => { | ||
262 | this.snackbar = true; | ||
263 | this.text = error.response.data.message; | ||
264 | }); | ||
265 | } | ||
266 | }, | ||
267 | toggleAll() { | ||
268 | if (this.selected.length) this.selected = []; | ||
269 | else this.selected = this.studentsData.slice(); | ||
270 | console.log("this.selected", this.selected); | ||
271 | console.log("selected====", selected); | ||
272 | let selectedStudentsArray = []; | ||
273 | selectedStudentsArray.push(selected.id); | ||
274 | var payload = { | ||
275 | courseId: this.getReport.courseId, | ||
276 | enrollStudents: selectedStudentsArray | ||
277 | }; | ||
278 | http() | ||
279 | .put("/enrollStudents", payload) | ||
280 | .then(response => { | ||
281 | this.snackbar = true; | ||
282 | this.text = response.data.message; | ||
283 | }) | ||
284 | .catch(error => { | ||
285 | this.snackbar = true; | ||
286 | this.text = error.response.data.message; | ||
287 | }); | ||
288 | }, | ||
289 | selectParticularStudent(selected) { | ||
290 | console.log("selected====", selected); | ||
291 | let selectedStudentsArray = []; | ||
292 | selectedStudentsArray.push(selected); | ||
293 | var payload = { | ||
294 | courseId: this.getReport.courseId, | ||
295 | enrollStudents: selectedStudentsArray | ||
296 | }; | ||
297 | http() | ||
298 | .put("/enrollStudents", payload) | ||
299 | .then(response => { | ||
300 | this.snackbar = true; | ||
301 | this.text = response.data.message; | ||
302 | }) | ||
303 | .catch(error => { | ||
304 | this.snackbar = true; | ||
305 | this.text = error.response.data.message; | ||
306 | }); | ||
307 | }, | ||
308 | changeSort(column) { | ||
309 | if (this.pagination.sortBy === column) { | ||
310 | this.pagination.descending = !this.pagination.descending; | ||
311 | } else { | ||
312 | this.pagination.sortBy = column; | ||
313 | this.pagination.descending = false; | ||
314 | } | ||
315 | }, | ||
316 | displaySearch() { | ||
317 | this.show = false; | ||
318 | this.showSearch = true; | ||
319 | }, | ||
320 | closeSearch() { | ||
321 | this.showSearch = false; | ||
322 | this.show = true; | ||
323 | this.search = ""; | ||
324 | } | ||
325 | }, | ||
326 | mounted() { | ||
327 | // this.getStudentList(); | ||
328 | this.token = this.$store.state.token; | ||
329 | this.role = this.$store.state.role; | ||
330 | this.getAllClass(); | ||
331 | } | ||
332 | }; | ||
333 | </script> |
src/pages/Dashboard/dashboard.vue
1 | <template> | 1 | <template> |
2 | <v-app id="pages-dasboard"> | 2 | <v-app id="pages-dasboard"> |
3 | <!-- ****** VIEW PROFIL NOTICE BOARD ****** --> | 3 | <!-- ****** VIEW PROFIL NOTICE BOARD ****** --> |
4 | <!-- <v-dialog v-model="dialogNotice" max-width="940px" scrollable> | 4 | <!-- <v-dialog v-model="dialogNotice" max-width="940px" scrollable> |
5 | <v-card> | 5 | <v-card> |
6 | <v-toolbar color="grey lighten-2" flat> | 6 | <v-toolbar color="grey lighten-2" flat> |
7 | <v-spacer></v-spacer> | 7 | <v-spacer></v-spacer> |
8 | <v-toolbar-title> | 8 | <v-toolbar-title> |
9 | <h3>Notice Board</h3> | 9 | <h3>Notice Board</h3> |
10 | </v-toolbar-title> | 10 | </v-toolbar-title> |
11 | <v-spacer></v-spacer> | 11 | <v-spacer></v-spacer> |
12 | <v-icon @click="closeNotice">close</v-icon> | 12 | <v-icon @click="closeNotice">close</v-icon> |
13 | </v-toolbar> | 13 | </v-toolbar> |
14 | <v-card-text> | 14 | <v-card-text> |
15 | <v-layout> | 15 | <v-layout> |
16 | <v-flex align-center justify-center layout text-xs-center class="mt-2"> | 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" /> | 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" /> | 18 | <img :src="notice.eventImageUrl" width="280px" v-else-if="notice.eventImageUrl" /> |
19 | </v-flex> | 19 | </v-flex> |
20 | </v-layout> | 20 | </v-layout> |
21 | <v-container grid-list-md> | 21 | <v-container grid-list-md> |
22 | <v-layout wrap> | 22 | <v-layout wrap> |
23 | <v-flex> | 23 | <v-flex> |
24 | <v-layout> | 24 | <v-layout> |
25 | <v-flex xs5 sm6> | 25 | <v-flex xs5 sm6> |
26 | <h5 class="right my-1"> | 26 | <h5 class="right my-1"> |
27 | <b>Title:</b> | 27 | <b>Title:</b> |
28 | </h5> | 28 | </h5> |
29 | </v-flex> | 29 | </v-flex> |
30 | <v-flex sm6 xs8> | 30 | <v-flex sm6 xs8> |
31 | <h5 class="my-1">{{ notice.title }}</h5> | 31 | <h5 class="my-1">{{ notice.title }}</h5> |
32 | </v-flex> | 32 | </v-flex> |
33 | </v-layout> | 33 | </v-layout> |
34 | <v-layout> | 34 | <v-layout> |
35 | <v-flex xs5 sm6> | 35 | <v-flex xs5 sm6> |
36 | <h5 class="right my-1"> | 36 | <h5 class="right my-1"> |
37 | <b>Description:</b> | 37 | <b>Description:</b> |
38 | </h5> | 38 | </h5> |
39 | </v-flex> | 39 | </v-flex> |
40 | <v-flex sm6 xs8> | 40 | <v-flex sm6 xs8> |
41 | <h5 class="my-1">{{ notice.description }}</h5> | 41 | <h5 class="my-1">{{ notice.description }}</h5> |
42 | </v-flex> | 42 | </v-flex> |
43 | </v-layout> | 43 | </v-layout> |
44 | </v-flex> | 44 | </v-flex> |
45 | </v-layout> | 45 | </v-layout> |
46 | </v-container> | 46 | </v-container> |
47 | </v-card-text> | 47 | </v-card-text> |
48 | </v-card> | 48 | </v-card> |
49 | </v-dialog>--> | 49 | </v-dialog>--> |
50 | <!-- <v-container fluid grid-list-xl> --> | 50 | <!-- <v-container fluid grid-list-xl> --> |
51 | <v-layout wrap> | 51 | <v-layout wrap> |
52 | <v-flex xs12> | 52 | <v-flex xs12> |
53 | <v-layout wrap row> | 53 | <v-layout wrap row> |
54 | <!-- ***** Total Students ***** --> | 54 | <!-- ***** Total Students ***** --> |
55 | <v-flex xs12 sm12 md9> | 55 | <v-flex xs12 sm12 md9> |
56 | <v-container fluid grid-list-xl> | 56 | <v-container fluid grid-list-xl> |
57 | <v-flex xs12 sm12 md12> | 57 | <v-flex xs12 sm12 md12> |
58 | <v-layout wrap class> | 58 | <v-layout wrap class> |
59 | <v-flex xs12 sm12 md3> | 59 | <v-flex xs12 sm12 md3> |
60 | <router-link :to="{ name:'Students' }"> | 60 | <router-link :to="{ name:'Students' }"> |
61 | <v-card class="card pink-bgcolor"> | 61 | <v-card class="card pink-bgcolor"> |
62 | <v-card-title primary-title class="titleCard white--text py-3">Students</v-card-title> | 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" /> | 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> | 64 | <v-card-title class="headline py-1 white--text">{{ students.length }}</v-card-title> |
65 | </v-card> | 65 | </v-card> |
66 | </router-link> | 66 | </router-link> |
67 | </v-flex> | 67 | </v-flex> |
68 | <!-- ***** Total Teachers***** --> | 68 | <!-- ***** Total Teachers***** --> |
69 | <v-flex xs12 sm12 md3> | 69 | <v-flex xs12 sm12 md3> |
70 | <router-link :to="{ name:'Teachers' }"> | 70 | <router-link :to="{ name:'Teachers' }"> |
71 | <v-card flat class="card elevation-2 firozi-bgcolor"> | 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> | 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" /> | 73 | <img src="/static/icon/teacher.png" class="ml-2" width="40" alt="icons" /> |
74 | 74 | ||
75 | <v-card-title class="headline py-1 white--text">{{ teachers.length }}</v-card-title> | 75 | <v-card-title class="headline py-1 white--text">{{ teachers.length }}</v-card-title> |
76 | </v-card> | 76 | </v-card> |
77 | </router-link> | 77 | </router-link> |
78 | </v-flex> | 78 | </v-flex> |
79 | <!-- ***** Total Parents ***** --> | 79 | <!-- ***** Total Parents ***** --> |
80 | <v-flex xs12 sm12 md3> | 80 | <v-flex xs12 sm12 md3> |
81 | <router-link :to="{ name:'Parents' }"> | 81 | <router-link :to="{ name:'Parents' }"> |
82 | <v-card flat class="card yellow darken-3"> | 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> | 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" /> | 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> | 85 | <v-card-title class="headline py-1 white--text">{{ parents.length }}</v-card-title> |
86 | </v-card> | 86 | </v-card> |
87 | </router-link> | 87 | </router-link> |
88 | </v-flex> | 88 | </v-flex> |
89 | <!-- ***** Total Class***** --> | 89 | <!-- ***** Total Class***** --> |
90 | <v-flex xs12 sm12 md3> | 90 | <v-flex xs12 sm12 md3> |
91 | <router-link :to="{ name:'Class' }"> | 91 | <router-link :to="{ name:'Class' }"> |
92 | <v-card flat class="card darkBlue-bgcolor"> | 92 | <v-card flat class="card darkBlue-bgcolor"> |
93 | <v-card-title primary-title class="titleCard white--text py-3">Class</v-card-title> | 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" /> | 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> | 95 | <v-card-title class="headline py-1 white--text">{{ classes.length }}</v-card-title> |
96 | </v-card> | 96 | </v-card> |
97 | </router-link> | 97 | </router-link> |
98 | </v-flex> | 98 | </v-flex> |
99 | </v-layout> | 99 | </v-layout> |
100 | </v-flex> | 100 | </v-flex> |
101 | <v-layout> | 101 | <v-layout> |
102 | <v-flex xs12> | 102 | <v-flex xs12> |
103 | <v-card class="card mt-2 account-Card"> | 103 | <v-card class="card mt-2 account-Card"> |
104 | <h4> | 104 | <h4> |
105 | <b>Account</b> | 105 | <b>Account</b> |
106 | </h4> | 106 | </h4> |
107 | <v-layout wrap> | 107 | <v-layout wrap> |
108 | <v-flex xs12 sm12 md3> | 108 | <v-flex xs12 sm12 md3> |
109 | <v-list two-line> | 109 | <v-list two-line> |
110 | <template> | 110 | <template> |
111 | <v-list-tile> | 111 | <v-list-tile> |
112 | <v-list-tile-avatar> | 112 | <v-list-tile-avatar> |
113 | <v-icon class="account-circle darkBlue-color">panorama_fish_eye</v-icon> | 113 | <v-icon class="account-circle darkBlue-color">panorama_fish_eye</v-icon> |
114 | </v-list-tile-avatar> | 114 | </v-list-tile-avatar> |
115 | <v-list-tile-content> | 115 | <v-list-tile-content> |
116 | <v-list-tile-title class="mt-2"> | 116 | <v-list-tile-title class="mt-2"> |
117 | <p class="subheading font-color">Fees</p> | 117 | <p class="subheading font-color">Fees</p> |
118 | </v-list-tile-title> | 118 | </v-list-tile-title> |
119 | <v-list-tile-title>Rs. {{ feeData.totalFees }}</v-list-tile-title> | 119 | <v-list-tile-title>Rs. {{ feeData.totalFees }}</v-list-tile-title> |
120 | </v-list-tile-content> | 120 | </v-list-tile-content> |
121 | </v-list-tile> | 121 | </v-list-tile> |
122 | <v-list-tile> | 122 | <v-list-tile> |
123 | <v-list-tile-avatar> | 123 | <v-list-tile-avatar> |
124 | <v-icon class="account-circle yellowDark-color">panorama_fish_eye</v-icon> | 124 | <v-icon class="account-circle yellowDark-color">panorama_fish_eye</v-icon> |
125 | </v-list-tile-avatar> | 125 | </v-list-tile-avatar> |
126 | <v-list-tile-content> | 126 | <v-list-tile-content> |
127 | <v-list-tile-title class="mt-2"> | 127 | <v-list-tile-title class="mt-2"> |
128 | <p class="subheading font-color">Collection</p> | 128 | <p class="subheading font-color">Collection</p> |
129 | </v-list-tile-title> | 129 | </v-list-tile-title> |
130 | <v-list-tile-title>Rs. {{ feeData.totalCollection }}</v-list-tile-title> | 130 | <v-list-tile-title>Rs. {{ feeData.totalCollection }}</v-list-tile-title> |
131 | </v-list-tile-content> | 131 | </v-list-tile-content> |
132 | </v-list-tile> | 132 | </v-list-tile> |
133 | <v-list-tile> | 133 | <v-list-tile> |
134 | <v-list-tile-avatar> | 134 | <v-list-tile-avatar> |
135 | <v-icon class="account-circle pink-color">panorama_fish_eye</v-icon> | 135 | <v-icon class="account-circle pink-color">panorama_fish_eye</v-icon> |
136 | </v-list-tile-avatar> | 136 | </v-list-tile-avatar> |
137 | <v-list-tile-content> | 137 | <v-list-tile-content> |
138 | <v-list-tile-title class="mt-2"> | 138 | <v-list-tile-title class="mt-2"> |
139 | <p class="subheading font-color">Expences</p> | 139 | <p class="subheading font-color">Expences</p> |
140 | </v-list-tile-title> | 140 | </v-list-tile-title> |
141 | <v-list-tile-title>Rs. {{ expenseData.sum }}</v-list-tile-title> | 141 | <v-list-tile-title>Rs. {{ expenseData.sum }}</v-list-tile-title> |
142 | </v-list-tile-content> | 142 | </v-list-tile-content> |
143 | </v-list-tile> | 143 | </v-list-tile> |
144 | </template> | 144 | </template> |
145 | </v-list> | 145 | </v-list> |
146 | </v-flex> | 146 | </v-flex> |
147 | <v-flex xs12 sm12 md9 lg9> | 147 | <v-flex xs12 sm12 md9 lg9> |
148 | <div id="chart"> | 148 | <div id="chart"> |
149 | <div v-if="this.series"> | 149 | <div v-if="this.series"> |
150 | <apexchart | 150 | <apexchart |
151 | type="bar" | 151 | type="bar" |
152 | height="250" | 152 | height="250" |
153 | style="max-width: 800px !important" | 153 | style="max-width: 800px !important" |
154 | :options="chartOptions" | 154 | :options="chartOptions" |
155 | :series="series" | 155 | :series="series" |
156 | v-show="true" | 156 | v-show="true" |
157 | ></apexchart> | 157 | ></apexchart> |
158 | </div> | 158 | </div> |
159 | </div> | 159 | </div> |
160 | </v-flex> | 160 | </v-flex> |
161 | </v-layout> | 161 | </v-layout> |
162 | </v-card> | 162 | </v-card> |
163 | </v-flex> | 163 | </v-flex> |
164 | </v-layout> | 164 | </v-layout> |
165 | <v-card class="mt-2 card"> | 165 | <v-card class="mt-2 card"> |
166 | <!-- <full-calendar | 166 | <!-- <full-calendar |
167 | ref="calendar" | 167 | ref="calendar" |
168 | defaultView="month" | 168 | defaultView="month" |
169 | droppable="false" | 169 | droppable="false" |
170 | :events="events" | 170 | :events="events" |
171 | :config="config" | 171 | :config="config" |
172 | ></full-calendar>--> | 172 | ></full-calendar>--> |
173 | <h4 class="pa-3"> | 173 | <h4 class="pa-3"> |
174 | <b>Notice</b> | 174 | <b>Notice</b> |
175 | </h4> | 175 | </h4> |
176 | 176 | ||
177 | <v-data-table | 177 | <v-data-table |
178 | :items="noticeData" | 178 | :items="noticeData" |
179 | class="elevation-0" | 179 | class="elevation-0" |
180 | flat | 180 | flat |
181 | hide-actions | 181 | hide-actions |
182 | hide-headers | 182 | hide-headers |
183 | style="border-spacing: 0 !important;" | 183 | style="border-spacing: 0 !important;" |
184 | > | 184 | > |
185 | <template | 185 | <template |
186 | slot="items" | 186 | slot="items" |
187 | slot-scope="props" | 187 | slot-scope="props" |
188 | v-if="props.index < 5" | 188 | v-if="props.index < 5" |
189 | style="border-spacing: 0 !important;" | 189 | style="border-spacing: 0 !important;" |
190 | > | 190 | > |
191 | <tr class="td-notice"> | 191 | <tr class="td-notice"> |
192 | <td class="grey--text" style="width:18px">{{ props.index + 1}}</td> | 192 | <td class="grey--text" style="width:18px">{{ props.index + 1}}</td> |
193 | <td> | 193 | <td> |
194 | <span class="grey--text caption">{{ date(props.item.created) }}</span> | 194 | <span class="grey--text caption">{{ date(props.item.created) }}</span> |
195 | <br /> | 195 | <br /> |
196 | <span class="body-2">{{ props.item.title}}</span> | 196 | <span class="body-2">{{ props.item.title}}</span> |
197 | </td> | 197 | </td> |
198 | <td class="noticeDecritpion grey--text mt-2">{{ props.item.description}}</td> | 198 | <td class="noticeDecritpion grey--text mt-2">{{ props.item.description}}</td> |
199 | 199 | ||
200 | <td class="text-xs-center"> | 200 | <td class="text-xs-center"> |
201 | <span> | 201 | <span> |
202 | <v-tooltip top> | 202 | <v-tooltip top> |
203 | <img | 203 | <img |
204 | slot="activator" | 204 | slot="activator" |
205 | style="cursor:pointer; width:25px; height:25px; " | 205 | style="cursor:pointer; width:25px; height:25px; " |
206 | @click="profile" | 206 | @click="profile" |
207 | src="/static/icon/view.png" | 207 | src="/static/icon/view.png" |
208 | /> | 208 | /> |
209 | <span>View</span> | 209 | <span>View</span> |
210 | </v-tooltip> | 210 | </v-tooltip> |
211 | </span> | 211 | </span> |
212 | </td> | 212 | </td> |
213 | </tr> | 213 | </tr> |
214 | </template> | 214 | </template> |
215 | </v-data-table> | 215 | </v-data-table> |
216 | </v-card> | 216 | </v-card> |
217 | </v-container> | 217 | </v-container> |
218 | </v-flex> | 218 | </v-flex> |
219 | <v-flex xs12 sm12 md3> | 219 | <v-flex xs12 sm12 md3> |
220 | <v-card height="100%" class="elevation-0 mt-3 profileDasboard"> | 220 | <v-card height="100%" class="elevation-0 mt-3 profileDasboard"> |
221 | <v-card-text> | 221 | <v-card-text> |
222 | <h4 class="text-xs-center py-3"> | 222 | <h4 class="text-xs-center py-3"> |
223 | <b>Profile</b> | 223 | <b>Profile</b> |
224 | </h4> | 224 | </h4> |
225 | <v-flex xs12 class="py-3"> | 225 | <v-flex xs12 class="py-3"> |
226 | <v-layout wrap> | 226 | <v-layout wrap> |
227 | <v-flex xs12 sm12 md4> | 227 | <v-flex xs12 sm12 md4> |
228 | <img src="/static/icon/user.png" v-if="!userData.schoolLogoUrl" width="80" /> | 228 | <img src="/static/icon/user.png" v-if="!userData.schoolLogoUrl" width="80" /> |
229 | <img | 229 | <img |
230 | :src="userData.schoolLogoUrl" | 230 | :src="userData.schoolLogoUrl" |
231 | v-else-if="userData.schoolLogoUrl" | 231 | v-else-if="userData.schoolLogoUrl" |
232 | width="80" | 232 | width="80" |
233 | /> | 233 | /> |
234 | </v-flex> | 234 | </v-flex> |
235 | <v-flex xs12 sm12 md6> | 235 | <v-flex xs12 sm12 md6> |
236 | <p class="mb-0 body-1"> | 236 | <p class="mb-0 body-1"> |
237 | <i>{{ userData.name }}</i> | 237 | <i>{{ userData.name }}</i> |
238 | </p> | 238 | </p> |
239 | <p class="mb-0 caption grey--text">{{ userData.email }}</p> | 239 | <p class="mb-0 caption grey--text">{{ userData.email }}</p> |
240 | <p class="mb-0 caption grey--text">{{ userData.mobile }}</p> | 240 | <p class="mb-0 caption grey--text">{{ userData.mobile }}</p> |
241 | <address class="caption grey--text mb-3">{{ userData.address }}</address> | 241 | <address class="caption grey--text mb-3">{{ userData.address }}</address> |
242 | </v-flex> | 242 | </v-flex> |
243 | </v-layout> | 243 | </v-layout> |
244 | </v-flex> | 244 | </v-flex> |
245 | <hr /> | 245 | <hr /> |
246 | <h4 class="text-xs-center py-3"> | 246 | <h4 class="text-xs-center py-3"> |
247 | <b>Calender</b> | 247 | <b>Calender</b> |
248 | </h4> | 248 | </h4> |
249 | <vue-event-calendar :events="demoEvents"></vue-event-calendar> | 249 | <vue-event-calendar :events="demoEvents"></vue-event-calendar> |
250 | </v-card-text> | 250 | </v-card-text> |
251 | </v-card> | 251 | </v-card> |
252 | </v-flex> | 252 | </v-flex> |
253 | </v-layout> | 253 | </v-layout> |
254 | </v-flex> | 254 | </v-flex> |
255 | </v-layout> | 255 | </v-layout> |
256 | <v-dialog v-model="dialog" max-width="500"> | 256 | <v-dialog v-model="dialog" max-width="500"> |
257 | <v-card color="grey lighten-4" flat> | 257 | <v-card color="grey lighten-4" flat> |
258 | <v-toolbar dark color="fixcolors"> | 258 | <v-toolbar dark color="fixcolors"> |
259 | <v-spacer></v-spacer> | 259 | <v-spacer></v-spacer> |
260 | <v-btn icon @click="dialog= false"> | 260 | <v-btn icon @click="dialog= false"> |
261 | <v-icon>close</v-icon> | 261 | <v-icon>close</v-icon> |
262 | </v-btn> | 262 | </v-btn> |
263 | </v-toolbar> | 263 | </v-toolbar> |
264 | <v-flex class="py-4"> | 264 | <v-flex class="py-4"> |
265 | <v-list-tile> | 265 | <v-list-tile> |
266 | <v-list-tile-action> | 266 | <v-list-tile-action> |
267 | <v-icon>edit</v-icon> | 267 | <v-icon>edit</v-icon> |
268 | </v-list-tile-action> | 268 | </v-list-tile-action> |
269 | <v-list-tile-content> | 269 | <v-list-tile-content> |
270 | <v-list-tile-title>{{ selected.title }}</v-list-tile-title> | 270 | <v-list-tile-title>{{ selected.title }}</v-list-tile-title> |
271 | </v-list-tile-content> | 271 | </v-list-tile-content> |
272 | </v-list-tile> | 272 | </v-list-tile> |
273 | <v-list-tile> | 273 | <v-list-tile> |
274 | <v-list-tile-action> | 274 | <v-list-tile-action> |
275 | <v-icon>access_time</v-icon> | 275 | <v-icon>access_time</v-icon> |
276 | </v-list-tile-action> | 276 | </v-list-tile-action> |
277 | <v-list-tile-content> | 277 | <v-list-tile-content> |
278 | <v-list-tile-title>{{ date(selected.start)}}</v-list-tile-title> | 278 | <v-list-tile-title>{{ date(selected.start)}}</v-list-tile-title> |
279 | </v-list-tile-content> | 279 | </v-list-tile-content> |
280 | </v-list-tile> | 280 | </v-list-tile> |
281 | </v-flex> | 281 | </v-flex> |
282 | </v-card> | 282 | </v-card> |
283 | </v-dialog> | 283 | </v-dialog> |
284 | <div class="loader" v-if="showLoader"> | 284 | <div class="loader" v-if="showLoader"> |
285 | <v-progress-circular indeterminate color="white"></v-progress-circular> | 285 | <v-progress-circular indeterminate color="white"></v-progress-circular> |
286 | </div> | 286 | </div> |
287 | </v-app> | 287 | </v-app> |
288 | </template> | 288 | </template> |
289 | 289 | ||
290 | <script> | 290 | <script> |
291 | import http from "@/Services/http.js"; | 291 | import http from "@/Services/http.js"; |
292 | import moment from "moment"; | 292 | import moment from "moment"; |
293 | // import { FunctionalCalendar } from "vue-functional-calendar"; | 293 | // import { FunctionalCalendar } from "vue-functional-calendar"; |
294 | 294 | ||
295 | export default { | 295 | export default { |
296 | components: { | 296 | components: { |
297 | // FunctionalCalendar | 297 | // FunctionalCalendar |
298 | }, | 298 | }, |
299 | data() { | 299 | data() { |
300 | return { | 300 | return { |
301 | // data: { | 301 | // data: { |
302 | // clieckedToday: false | 302 | // clieckedToday: false |
303 | // }, | 303 | // }, |
304 | // markedDates: ["16/4/2019", "18/4/2019", "20/4/2019", "21/4/2019"], | 304 | // markedDates: ["16/4/2019", "18/4/2019", "20/4/2019", "21/4/2019"], |
305 | // calendarData: {}, | 305 | // calendarData: {}, |
306 | // calendar: {}, | 306 | // calendar: {}, |
307 | demoEvents: [ | 307 | demoEvents: [ |
308 | { | 308 | { |
309 | date: "2020/01/10", // Required | 309 | date: "2020/01/10", // Required |
310 | title: "Foo" // Required | 310 | title: "Foo" // Required |
311 | }, | 311 | }, |
312 | { | 312 | { |
313 | date: "2020/01/12", | 313 | date: "2020/01/12", |
314 | title: "Bar", | 314 | title: "Bar", |
315 | desc: "description", | 315 | desc: "description", |
316 | customClass: "disabled highlight" // Custom classes to an calendar cell | 316 | customClass: "disabled highlight" // Custom classes to an calendar cell |
317 | } | 317 | } |
318 | ], | 318 | ], |
319 | 319 | ||
320 | showLoader: false, | 320 | showLoader: false, |
321 | calendarData: {}, | 321 | calendarData: {}, |
322 | dialog: false, | 322 | dialog: false, |
323 | dialogNotice: false, | 323 | dialogNotice: false, |
324 | HolidaysList: [], | 324 | HolidaysList: [], |
325 | EventsList: [], | 325 | EventsList: [], |
326 | events: [], | 326 | events: [], |
327 | config: { | 327 | config: { |
328 | eventClick: event => { | 328 | eventClick: event => { |
329 | this.selected = event; | 329 | this.selected = event; |
330 | this.dialog = true; | 330 | this.dialog = true; |
331 | } | 331 | } |
332 | }, | 332 | }, |
333 | selected: {}, | 333 | selected: {}, |
334 | barGraph: [], | 334 | barGraph: [], |
335 | // notice: {}, | 335 | // notice: {}, |
336 | userData: {}, | 336 | userData: {}, |
337 | dated: new Date(2018, 0, 9), | 337 | dated: new Date(2018, 0, 9), |
338 | userList: [], | 338 | userList: [], |
339 | sectionList: [], | 339 | sectionList: [], |
340 | students: "", | 340 | students: "", |
341 | parents: "", | 341 | parents: "", |
342 | teachers: "", | 342 | teachers: "", |
343 | classes: "", | 343 | classes: "", |
344 | noticeData: [], | 344 | noticeData: [], |
345 | expenseData: [], | 345 | expenseData: [], |
346 | feeData: [], | 346 | feeData: [], |
347 | collectionData: [], | 347 | collectionData: [], |
348 | 348 | ||
349 | attrs: [ | 349 | attrs: [ |
350 | { | 350 | { |
351 | key: "today", | 351 | key: "today", |
352 | highlight: true, | 352 | highlight: true, |
353 | dates: new Date() | 353 | dates: new Date() |
354 | } | 354 | } |
355 | ], | 355 | ], |
356 | drawer: true, | 356 | drawer: true, |
357 | items: [ | 357 | items: [ |
358 | { title: "Home", icon: "dashboard" }, | 358 | { title: "Home", icon: "dashboard" }, |
359 | { title: "About", icon: "question_answer" } | 359 | { title: "About", icon: "question_answer" } |
360 | ], | 360 | ], |
361 | right: null, | 361 | right: null, |
362 | 362 | ||
363 | series: [ | 363 | series: [ |
364 | { | 364 | { |
365 | name: "Total", | 365 | name: "Total", |
366 | data: [] | 366 | data: [] |
367 | } | 367 | } |
368 | ], | 368 | ], |
369 | chartOptions: { | 369 | chartOptions: { |
370 | chart: { | 370 | chart: { |
371 | type: "bar", | 371 | type: "bar", |
372 | height: 150, | 372 | height: 150, |
373 | stacked: true | 373 | stacked: true |
374 | // animations: { | 374 | // animations: { |
375 | // enabled: true, | 375 | // enabled: true, |
376 | // easing: "easeinout", | 376 | // easing: "easeinout", |
377 | // speed: 1200, | 377 | // speed: 1200, |
378 | // animateGradually: { | 378 | // animateGradually: { |
379 | // enabled: true, | 379 | // enabled: true, |
380 | // delay: 450 | 380 | // delay: 450 |
381 | // }, | 381 | // }, |
382 | // dynamicAnimation: { | 382 | // dynamicAnimation: { |
383 | // enabled: true, | 383 | // enabled: true, |
384 | // speed: 450 | 384 | // speed: 450 |
385 | // } | 385 | // } |
386 | // } | 386 | // } |
387 | }, | 387 | }, |
388 | plotOptions: { | 388 | plotOptions: { |
389 | bar: { | 389 | bar: { |
390 | horizontal: false, | 390 | horizontal: false, |
391 | columnWidth: "25%", | 391 | columnWidth: "25%", |
392 | // endingShape: "rounded", | 392 | // endingShape: "rounded", |
393 | distributed: true | 393 | distributed: true |
394 | } | 394 | } |
395 | }, | 395 | }, |
396 | responsive: [ | 396 | responsive: [ |
397 | { | 397 | { |
398 | breakpoint: 480, | 398 | breakpoint: 480, |
399 | options: { | 399 | options: { |
400 | legend: { | 400 | legend: { |
401 | position: "bottom", | 401 | position: "bottom", |
402 | offsetX: -10, | 402 | offsetX: -10, |
403 | offsetY: 0 | 403 | offsetY: 0 |
404 | } | 404 | } |
405 | } | 405 | } |
406 | } | 406 | } |
407 | ], | 407 | ], |
408 | legend: { | 408 | legend: { |
409 | show: false | 409 | show: false |
410 | }, | 410 | }, |
411 | colors: ["#7852cc", "#f9a825", "#ff8a89"], | 411 | colors: ["#7852cc", "#f9a825", "#ff8a89"], |
412 | dataLabels: { | 412 | dataLabels: { |
413 | enabled: false | 413 | enabled: false |
414 | }, | 414 | }, |
415 | stroke: { | 415 | stroke: { |
416 | show: true, | 416 | show: true, |
417 | width: 2, | 417 | width: 2, |
418 | colors: ["transparent"] | 418 | colors: ["transparent"] |
419 | }, | 419 | }, |
420 | xaxis: { | 420 | xaxis: { |
421 | categories: ["Fee", "Collections", "Expences"] | 421 | categories: ["Fee", "Collections", "Expences"] |
422 | }, | 422 | }, |
423 | yaxis: { | 423 | yaxis: { |
424 | title: { | 424 | title: { |
425 | text: "" | 425 | text: "" |
426 | } | 426 | } |
427 | }, | 427 | }, |
428 | fill: { | 428 | fill: { |
429 | opacity: 1 | 429 | opacity: 1 |
430 | }, | 430 | }, |
431 | tooltip: { | 431 | tooltip: { |
432 | y: { | 432 | y: { |
433 | formatter: function(val, opts) { | 433 | formatter: function(val, opts) { |
434 | // console.log("opts",opts.w.config.xaxis.categories) | 434 | // console.log("opts",opts.w.config.xaxis.categories) |
435 | return "" + val + " "; | 435 | return "" + val + " "; |
436 | } | 436 | } |
437 | } | 437 | } |
438 | } | 438 | } |
439 | } | 439 | } |
440 | }; | 440 | }; |
441 | }, | 441 | }, |
442 | mounted() { | 442 | mounted() { |
443 | // = this.$store.state.schoolToken; | 443 | // = this.$store.state.schoolToken; |
444 | // console.log("this.$store.state.role", this.token); | 444 | // console.log("this.$store.state.role", this.token); |
445 | if (this.$store.state.role === "ADMIN") { | 445 | if (this.$store.state.role === "ADMIN") { |
446 | this.token = this.$store.state.token; | 446 | this.token = this.$store.state.token; |
447 | } else if (this.$store.state.schoolRole === "SUPERADMIN") { | 447 | } else if (this.$store.state.schoolRole === "SUPERADMIN") { |
448 | this.token = this.$store.state.schoolToken; | 448 | this.token = this.$store.state.schoolToken; |
449 | } else if (this.$store.state.role === "TEACHER") { | 449 | } else if (this.$store.state.role === "TEACHER") { |
450 | this.token = this.$store.state.token; | 450 | this.token = this.$store.state.token; |
451 | } else if (this.$store.state.role === "ACCOUNTANT") { | 451 | } else if (this.$store.state.role === "ACCOUNTANT") { |
452 | this.token = this.$store.state.token; | 452 | this.token = this.$store.state.token; |
453 | } else if (this.$store.state.role === "LIBRARIAN") { | 453 | } else if (this.$store.state.role === "LIBRARIAN") { |
454 | this.token = this.$store.state.token; | 454 | this.token = this.$store.state.token; |
455 | } | 455 | } |
456 | // console.log("role", this.$store.state.schoolRole,"tt",this.$store.state.schoolToken); | 456 | // console.log("role", this.$store.state.schoolRole,"tt",this.$store.state.schoolToken); |
457 | // this.getData(); | 457 | // this.getData(); |
458 | this.getStudents(); | 458 | this.getStudents(); |
459 | this.getTeachers(); | 459 | this.getTeachers(); |
460 | this.getParents(); | 460 | this.getParents(); |
461 | this.getClasses(); | 461 | this.getClasses(); |
462 | this.getNoticeData(); | 462 | this.getNoticeData(); |
463 | this.getUserData(); | 463 | this.getUserData(); |
464 | this.getFeesAndCollectionsData(); | 464 | this.getFeesAndCollectionsData(); |
465 | this.getExpensesData(); | 465 | this.getExpensesData(); |
466 | // this.getUsersList(); | 466 | // this.getUsersList(); |
467 | }, | 467 | }, |
468 | methods: { | 468 | methods: { |
469 | closeNotice() { | 469 | closeNotice() { |
470 | this.dialogNotice = false; | 470 | this.dialogNotice = false; |
471 | }, | 471 | }, |
472 | profile() { | 472 | profile() { |
473 | // this.editedIndex = this.desserts.indexOf(item); | 473 | // this.editedIndex = this.desserts.indexOf(item); |
474 | // this.notice = Object.assign({}, item); | 474 | // this.notice = Object.assign({}, item); |
475 | // this.dialogNotice = true; | 475 | // this.dialogNotice = true; |
476 | this.$router.push({ name: "NoticeBoard" }); | 476 | this.$router.push({ name: "NoticeBoard" }); |
477 | }, | 477 | }, |
478 | date: function(date) { | 478 | date: function(date) { |
479 | return moment(date).format("MMMM DD, YYYY HH:mm"); | 479 | return moment(date).format("MMMM DD, YYYY HH:mm"); |
480 | }, | 480 | }, |
481 | refreshEvents() { | 481 | refreshEvents() { |
482 | this.$refs.calendar.$emit("refetch-events"); | 482 | this.$refs.calendar.$emit("refetch-events"); |
483 | }, | 483 | }, |
484 | removeEvent() { | 484 | removeEvent() { |
485 | this.$refs.calendar.$emit("remove-event", this.selected); | 485 | this.$refs.calendar.$emit("remove-event", this.selected); |
486 | this.selected = {}; | 486 | this.selected = {}; |
487 | }, | 487 | }, |
488 | eventSelected(event) { | 488 | eventSelected(event) { |
489 | this.selected = event; | 489 | this.selected = event; |
490 | console.log("this.selected", this.selected); | 490 | console.log("this.selected", this.selected); |
491 | }, | 491 | }, |
492 | // eventDropStart: function(event) { | 492 | // eventDropStart: function(event) { |
493 | // event.editable = false; | 493 | // event.editable = false; |
494 | // }, | 494 | // }, |
495 | eventCreated(...test) { | 495 | eventCreated(...test) { |
496 | console.log(test); | 496 | console.log(test); |
497 | }, | 497 | }, |
498 | getStudents() { | 498 | getStudents() { |
499 | http() | 499 | http() |
500 | .get("/getStudentsList", { | 500 | .get("/getStudentsList", { |
501 | headers: { | 501 | headers: { |
502 | Authorization: "Bearer " + this.token | 502 | Authorization: "Bearer " + this.token |
503 | } | 503 | } |
504 | }) | 504 | }) |
505 | .then(response => { | 505 | .then(response => { |
506 | this.students = response.data.data; | 506 | this.students = response.data.data; |
507 | this.showLoader = false; | 507 | this.showLoader = false; |
508 | }) | 508 | }) |
509 | .catch(error => { | 509 | .catch(error => { |
510 | // console.log("err====>", err); | 510 | // console.log("err====>", err); |
511 | this.showLoader = false; | 511 | this.showLoader = false; |
512 | // if (error.response.status === 401) { | 512 | if (error.response.status === 401) { |
513 | // this.$router.replace({ path: "/" }); | 513 | this.$router.replace({ path: "/" }); |
514 | // this.$store.dispatch("setToken", null); | 514 | this.$store.dispatch("setToken", null); |
515 | // this.$store.dispatch("Id", null); | 515 | this.$store.dispatch("Id", null); |
516 | // } | 516 | } |
517 | }); | 517 | }); |
518 | }, | 518 | }, |
519 | getParents() { | 519 | getParents() { |
520 | http() | 520 | http() |
521 | .get("/getParentsList", { | 521 | .get("/getParentsList", { |
522 | headers: { | 522 | headers: { |
523 | Authorization: "Bearer " + this.token | 523 | Authorization: "Bearer " + this.token |
524 | } | 524 | } |
525 | }) | 525 | }) |
526 | .then(response => { | 526 | .then(response => { |
527 | this.parents = response.data.data; | 527 | this.parents = response.data.data; |
528 | this.showLoader = false; | 528 | this.showLoader = false; |
529 | }) | 529 | }) |
530 | .catch(error => { | 530 | .catch(error => { |
531 | // console.log("err====>", err); | 531 | // console.log("err====>", err); |
532 | this.showLoader = false; | 532 | this.showLoader = false; |
533 | // if (error.response.status === 401) { | ||
534 | // this.$router.replace({ path: "/" }); | ||
535 | // this.$store.dispatch("setToken", null); | ||
536 | // this.$store.dispatch("Id", null); | ||
537 | // } | ||
538 | }); | 533 | }); |
539 | }, | 534 | }, |
540 | getTeachers() { | 535 | getTeachers() { |
541 | http() | 536 | http() |
542 | .get("/getTeachersList", { | 537 | .get("/getTeachersList", { |
543 | headers: { | 538 | headers: { |
544 | Authorization: "Bearer " + this.token | 539 | Authorization: "Bearer " + this.token |
545 | } | 540 | } |
546 | }) | 541 | }) |
547 | .then(response => { | 542 | .then(response => { |
548 | this.teachers = response.data.data; | 543 | this.teachers = response.data.data; |
549 | this.showLoader = false; | 544 | this.showLoader = false; |
550 | }) | 545 | }) |
551 | .catch(error => { | 546 | .catch(error => { |
552 | // console.log("err====>", err); | 547 | // console.log("err====>", err); |
553 | this.showLoader = false; | 548 | this.showLoader = false; |
554 | // if (error.response.status === 401) { | ||
555 | // this.$router.replace({ path: "/" }); | ||
556 | // this.$store.dispatch("setToken", null); | ||
557 | // this.$store.dispatch("Id", null); | ||
558 | // } | ||
559 | }); | 549 | }); |
560 | }, | 550 | }, |
561 | getClasses() { | 551 | getClasses() { |
562 | http() | 552 | http() |
563 | .get("/getClassesList", { | 553 | .get("/getClassesList", { |
564 | headers: { | 554 | headers: { |
565 | Authorization: "Bearer " + this.token | 555 | Authorization: "Bearer " + this.token |
566 | } | 556 | } |
567 | }) | 557 | }) |
568 | .then(response => { | 558 | .then(response => { |
569 | this.classes = response.data.data; | 559 | this.classes = response.data.data; |
570 | this.showLoader = false; | 560 | this.showLoader = false; |
571 | }) | 561 | }) |
572 | .catch(error => { | 562 | .catch(error => { |
573 | this.showLoader = false; | 563 | this.showLoader = false; |
574 | // if (error.response.status === 401) { | ||
575 | // this.$router.replace({ path: "/" }); | ||
576 | // this.$store.dispatch("setToken", null); | ||
577 | // this.$store.dispatch("Id", null); | ||
578 | // this.$store.dispatch("Role", null); | ||
579 | // } | ||
580 | }); | 564 | }); |
581 | }, | 565 | }, |
582 | getNoticeData() { | 566 | getNoticeData() { |
583 | this.showLoader = true; | 567 | this.showLoader = true; |
584 | http() | 568 | http() |
585 | .get("/getEventsList", { | 569 | .get("/getEventsList", { |
586 | headers: { | 570 | headers: { |
587 | Authorization: "Bearer " + this.token | 571 | Authorization: "Bearer " + this.token |
588 | } | 572 | } |
589 | }) | 573 | }) |
590 | .then(response => { | 574 | .then(response => { |
591 | this.noticeData = response.data.data; | 575 | this.noticeData = response.data.data; |
592 | this.showLoader = false; | 576 | this.showLoader = false; |
593 | }) | 577 | }) |
594 | .catch(error => { | 578 | .catch(error => { |
595 | this.showLoader = false; | 579 | this.showLoader = false; |
596 | // if (error.response.status === 401) { | ||
597 | // this.$router.replace({ path: "/" }); | ||
598 | // this.$store.dispatch("setToken", null); | ||
599 | // this.$store.dispatch("Id", null); | ||
600 | // } | ||
601 | }); | 580 | }); |
602 | }, | 581 | }, |
603 | getUserData() { | 582 | getUserData() { |
604 | // this.showLoader = true; | 583 | // this.showLoader = true; |
605 | http() | 584 | http() |
606 | .get("/getParticularUserDetail", { | 585 | .get("/getParticularUserDetail", { |
607 | headers: { | 586 | headers: { |
608 | Authorization: "Bearer " + this.token | 587 | Authorization: "Bearer " + this.token |
609 | } | 588 | } |
610 | }) | 589 | }) |
611 | .then(response => { | 590 | .then(response => { |
612 | this.userData = response.data.data; | 591 | this.userData = response.data.data; |
613 | this.showLoader = false; | 592 | this.showLoader = false; |
614 | }) | 593 | }) |
615 | .catch(error => { | 594 | .catch(error => { |
616 | this.showLoader = false; | 595 | this.showLoader = false; |
617 | // if (error.response.status === 401) { | ||
618 | // this.$router.replace({ path: "/" }); | ||
619 | // this.$store.dispatch("setToken", null); | ||
620 | // this.$store.dispatch("Id", null); | ||
621 | // } | ||
622 | }); | 596 | }); |
623 | }, | 597 | }, |
624 | 598 | ||
625 | getFeesAndCollectionsData() { | 599 | getFeesAndCollectionsData() { |
626 | http() | 600 | http() |
627 | .get("/getTotalFeesAndCollections", { | 601 | .get("/getTotalFeesAndCollections", { |
628 | headers: { | 602 | headers: { |
629 | Authorization: "Bearer " + this.token | 603 | Authorization: "Bearer " + this.token |
630 | } | 604 | } |
631 | }) | 605 | }) |
632 | .then(response => { | 606 | .then(response => { |
633 | this.feeData = response.data.data; | 607 | this.feeData = response.data.data; |
634 | // this.collectionData = response.data.data; | 608 | // this.collectionData = response.data.data; |
635 | this.series[0].data[0] = this.feeData.totalFees; | 609 | this.series[0].data[0] = this.feeData.totalFees; |
636 | this.series[0].data[1] = this.feeData.totalCollection; | 610 | this.series[0].data[1] = this.feeData.totalCollection; |
637 | console.log("this.series====", this.series); | 611 | console.log("this.series====", this.series); |
638 | 612 | ||
639 | this.showLoader = false; | 613 | this.showLoader = false; |
640 | }) | 614 | }) |
641 | .catch(error => { | 615 | .catch(error => { |
642 | this.showLoader = false; | 616 | this.showLoader = false; |
643 | }); | 617 | }); |
644 | }, | 618 | }, |
645 | getExpensesData() { | 619 | getExpensesData() { |
646 | http() | 620 | http() |
647 | .get("/getTotalExpenses", { | 621 | .get("/getTotalExpenses", { |
648 | headers: { | 622 | headers: { |
649 | Authorization: "Bearer " + this.token | 623 | Authorization: "Bearer " + this.token |
650 | } | 624 | } |
651 | }) | 625 | }) |
652 | .then(response => { | 626 | .then(response => { |
653 | this.expenseData = response.data.data; | 627 | this.expenseData = response.data.data; |
654 | // var array = response.data.data.sum; | 628 | // var array = response.data.data.sum; |
655 | this.series[0].data[2] = this.expenseData.sum; | 629 | this.series[0].data[2] = this.expenseData.sum; |
656 | // this.series = [ | 630 | // this.series = [ |
657 | // { | 631 | // { |
658 | // name: "Total", | 632 | // name: "Total", |
659 | // data: array | 633 | // data: array |
660 | // } | 634 | // } |
661 | // ]; | 635 | // ]; |
662 | // console.log("this.series====", this.series); | 636 | // console.log("this.series====", this.series); |
663 | this.showLoader = false; | 637 | this.showLoader = false; |
664 | }) | 638 | }) |
665 | .catch(error => { | 639 | .catch(error => { |
666 | this.showLoader = false; | 640 | this.showLoader = false; |
667 | }); | 641 | }); |
668 | } | 642 | } |
669 | } | 643 | } |
670 | }; | 644 | }; |
671 | </script> | 645 | </script> |
672 | 646 | ||
673 | <style scoped> | 647 | <style scoped> |
674 | @import "fullcalendar/dist/fullcalendar.css"; | 648 | @import "fullcalendar/dist/fullcalendar.css"; |
675 | </style> | 649 | </style> |
src/pages/Mark/viewMark.vue
1 | <template> | 1 | <template> |
2 | <v-app id="pages-dasboard"> | 2 | <v-app id="pages-dasboard"> |
3 | <!-- ****** PROFILE MARK ****** --> | 3 | <!-- ****** PROFILE MARK ****** --> |
4 | <v-container fluid grid-list-md> | 4 | <v-container fluid grid-list-md> |
5 | <v-layout> | 5 | <v-layout> |
6 | <v-flex xs12 sm8 md10> | 6 | <v-flex xs12 sm8 md10> |
7 | <v-btn class="open-dialog-button mt-3" round dark @click="print()"> | 7 | <v-btn class="open-dialog-button mt-3" round dark @click="print()"> |
8 | 8 | ||
9 | <v-icon size="18" right dark>print</v-icon> | 9 | <v-icon size="18" right dark>print</v-icon> |
10 | </v-btn> | 10 | </v-btn> |
11 | </v-flex> | 11 | </v-flex> |
12 | <v-flex xs12 sm4 md2 class="right"> | 12 | <v-flex xs12 sm4 md2 class="right"> |
13 | <v-select | 13 | <v-select |
14 | class | 14 | class |
15 | :items="selectMark" | 15 | :items="selectMark" |
16 | label="Select" | 16 | label="Select" |
17 | v-model="selectMarkList" | 17 | v-model="selectMarkList" |
18 | @change="selectMarkData(selectMarkList)" | 18 | @change="selectMarkData(selectMarkList)" |
19 | ></v-select> | 19 | ></v-select> |
20 | </v-flex> | 20 | </v-flex> |
21 | </v-layout> | 21 | </v-layout> |
22 | <v-flex xs12 sm12> | 22 | <v-flex xs12 sm12> |
23 | <!-- <v-layout wrap> --> | 23 | <!-- <v-layout wrap> --> |
24 | <!-- ****** TABLE DATA MARK ****** --> | 24 | <!-- ****** TABLE DATA MARK ****** --> |
25 | <v-flex xs12 sm12 md12> | 25 | <v-flex xs12 sm12 md12> |
26 | <v-layout> | 26 | <v-layout> |
27 | <v-flex xs12 sm12 md12 style="text-align:center"> | 27 | <v-flex xs12 sm12 md12 style="text-align:center"> |
28 | <!-- <img :src="userData.schoolLogoUrl" width="140" alt="logo" /> --> | 28 | <!-- <img :src="userData.schoolLogoUrl" width="140" alt="logo" /> --> |
29 | <v-avatar> | 29 | <v-avatar> |
30 | <img :src="userData.schoolLogoUrl" v-if="userData.schoolLogoUrl" /> | 30 | <img :src="userData.schoolLogoUrl" v-if="userData.schoolLogoUrl" /> |
31 | <img | 31 | <img |
32 | src="/static/schoolIcons/INTRACK_White.png" | 32 | src="/static/schoolIcons/INTRACK_White.png" |
33 | v-else-if="!userData.schoolLogoUrl" | 33 | v-else-if="!userData.schoolLogoUrl" |
34 | /> | 34 | /> |
35 | </v-avatar> | 35 | </v-avatar> |
36 | <p | 36 | <p |
37 | style=" | 37 | style=" |
38 | font-size: 20px !important; | 38 | font-size: 20px !important; |
39 | font-weight: 500; | 39 | font-weight: 500; |
40 | line-height: 2 !important; | 40 | line-height: 2 !important; |
41 | letter-spacing: 0.02em !important;" | 41 | letter-spacing: 0.02em !important;" |
42 | >{{ userData.name }}</p> | 42 | >{{ userData.name }}</p> |
43 | <p style="margin-bottom: 16px;">{{ userData.address }}</p> | 43 | <p style="margin-bottom: 16px;">{{ userData.address }}</p> |
44 | </v-flex> | 44 | </v-flex> |
45 | </v-layout> | 45 | </v-layout> |
46 | <v-layout wrap> | 46 | <v-layout wrap> |
47 | <v-flex xs12 sm12 md3> | 47 | <v-flex xs12 sm12 md3> |
48 | <v-card | 48 | <v-card |
49 | style=" | 49 | style=" |
50 | margin:auto 4px; | 50 | margin:auto 4px; |
51 | padding:20px; | 51 | padding:20px; |
52 | background-color: #fff; | 52 | background-color: #fff; |
53 | border-color: #fff; | 53 | border-color: #fff; |
54 | color: rgba(0,0,0,0.87); | 54 | color: rgba(0,0,0,0.87); |
55 | border: 1px solid rgb(226, 231, 235); | 55 | border: 1px solid rgb(226, 231, 235); |
56 | -webkit-box-shadow:inherit !important; | 56 | -webkit-box-shadow:inherit !important; |
57 | box-shadow: inherit !important;" | 57 | box-shadow: inherit !important;" |
58 | > | 58 | > |
59 | <v-layout> | 59 | <v-layout> |
60 | <v-flex xs12 style="text-align: center;"> | 60 | <v-flex xs12 style="text-align: center;"> |
61 | <v-avatar size="80"> | 61 | <v-avatar size="80"> |
62 | <img src="/static/icon/user.png" v-if="!markData[0].studentId.profilePicUrl" /> | 62 | <img src="/static/icon/user.png" v-if="!markData[0].studentId.profilePicUrl" /> |
63 | <img | 63 | <img |
64 | :src="markData[0].studentId.profilePicUrl" | 64 | :src="markData[0].studentId.profilePicUrl" |
65 | v-else-if="markData[0].studentId.profilePicUrl" | 65 | v-else-if="markData[0].studentId.profilePicUrl" |
66 | /> | 66 | /> |
67 | </v-avatar> | 67 | </v-avatar> |
68 | </v-flex> | 68 | </v-flex> |
69 | </v-layout> | 69 | </v-layout> |
70 | <v-layout> | 70 | <v-layout> |
71 | <v-flex xs12 style="text-align: center;"> | 71 | <v-flex xs12 style="text-align: center;"> |
72 | <h4 style="margin: 4px 0px;font-weight: 400;">{{ markData[0].studentId.name }}</h4> | 72 | <h4 style="margin: 4px 0px;font-weight: 400;">{{ markData[0].studentId.name }}</h4> |
73 | <p style="color: #999;">Student</p> | 73 | <p style="color: #999;">Student</p> |
74 | </v-flex> | 74 | </v-flex> |
75 | </v-layout> | 75 | </v-layout> |
76 | <v-layout | 76 | <v-layout |
77 | style=" | 77 | style=" |
78 | margin-bottom: -1px; | 78 | margin-bottom: -1px; |
79 | border: 1px solid #ddd; | 79 | border: 1px solid #ddd; |
80 | margin: 0px; | 80 | margin: 0px; |
81 | padding: 4px; | 81 | padding: 4px; |
82 | color: #707478; | 82 | color: #707478; |
83 | font-size: 16px;" | 83 | font-size: 16px;" |
84 | > | 84 | > |
85 | <v-flex xs6 sm6> | 85 | <v-flex xs6 sm6> |
86 | <p style="float:left;margin: 4px 0px;"> | 86 | <p style="float:left;margin: 4px 0px;"> |
87 | <b>Class</b> | 87 | <b>Class</b> |
88 | </p> | 88 | </p> |
89 | </v-flex> | 89 | </v-flex> |
90 | <v-flex sm6 xs6> | 90 | <v-flex sm6 xs6> |
91 | <p style="float:right;margin: 4px 0px;">{{ markData[0].classId.classNum }}</p> | 91 | <p style="float:right;margin: 4px 0px;">{{ markData[0].classId.classNum }}</p> |
92 | </v-flex> | 92 | </v-flex> |
93 | </v-layout> | 93 | </v-layout> |
94 | <v-layout | 94 | <v-layout |
95 | style=" | 95 | style=" |
96 | margin-bottom: -1px; | 96 | margin-bottom: -1px; |
97 | border: 1px solid #ddd; | 97 | border: 1px solid #ddd; |
98 | margin: 0px; | 98 | margin: 0px; |
99 | padding: 4px; | 99 | padding: 4px; |
100 | color: #707478; | 100 | color: #707478; |
101 | font-size: 16px;" | 101 | font-size: 16px;" |
102 | > | 102 | > |
103 | <v-flex xs6 sm6> | 103 | <v-flex xs6 sm6> |
104 | <p style="float:left;margin: 4px 0px;"> | 104 | <p style="float:left;margin: 4px 0px;"> |
105 | <b>Section</b> | 105 | <b>Section</b> |
106 | </p> | 106 | </p> |
107 | </v-flex> | 107 | </v-flex> |
108 | <v-flex sm6 xs6> | 108 | <v-flex sm6 xs6> |
109 | <p style="float:right;margin: 4px 0px;">{{ markData[0].sectionId.name }}</p> | 109 | <p style="float:right;margin: 4px 0px;">{{ markData[0].sectionId.name }}</p> |
110 | </v-flex> | 110 | </v-flex> |
111 | </v-layout> | 111 | </v-layout> |
112 | <v-layout | 112 | <v-layout |
113 | style=" | 113 | style=" |
114 | margin-bottom: -1px; | 114 | margin-bottom: -1px; |
115 | border: 1px solid #ddd; | 115 | border: 1px solid #ddd; |
116 | margin: 0px; | 116 | margin: 0px; |
117 | padding: 4px; | 117 | padding: 4px; |
118 | color: #707478; | 118 | color: #707478; |
119 | font-size: 16px;" | 119 | font-size: 16px;" |
120 | > | 120 | > |
121 | <v-flex xs6 sm6> | 121 | <v-flex xs6 sm6> |
122 | <p style="float:left;margin: 4px 0px;"> | 122 | <p style="float:left;margin: 4px 0px;"> |
123 | <b>Roll No</b> | 123 | <b>Roll No</b> |
124 | </p> | 124 | </p> |
125 | </v-flex> | 125 | </v-flex> |
126 | <v-flex sm6 xs6> | 126 | <v-flex sm6 xs6> |
127 | <p style="float:right;margin: 4px 0px;">{{ markData[0].studentId.rollNo }}</p> | 127 | <p style="float:right;margin: 4px 0px;">{{ markData[0].studentId.rollNo }}</p> |
128 | </v-flex> | 128 | </v-flex> |
129 | </v-layout> | 129 | </v-layout> |
130 | </v-card> | 130 | </v-card> |
131 | </v-flex> | 131 | </v-flex> |
132 | <v-flex xs12 sm12 md9 v-show="showMark"> | 132 | <v-flex xs12 sm12 md9 v-show="showMark"> |
133 | <v-card | 133 | <v-card |
134 | style=" margin:auto 14px; | 134 | style=" margin:auto 14px; |
135 | padding:0px 0px; | 135 | padding:0px 0px; |
136 | background-color: #fff; | 136 | background-color: #fff; |
137 | border: 1px solid lightgrey; | 137 | border: 1px solid lightgrey; |
138 | color: rgba(0,0,0,0.87); | 138 | color: rgba(0,0,0,0.87); |
139 | overflow: auto; | 139 | overflow: auto; |
140 | display: block; | 140 | display: block; |
141 | border: 1px solid rgb(226, 231, 235); | 141 | border: 1px solid rgb(226, 231, 235); |
142 | -webkit-box-shadow:inherit !important; | 142 | -webkit-box-shadow:inherit !important; |
143 | box-shadow: inherit !important;" | 143 | box-shadow: inherit !important;" |
144 | > | 144 | > |
145 | <div> | 145 | <div> |
146 | <table | 146 | <table |
147 | v-for="(value, id) in filterData" | 147 | v-for="(value, id) in filterData" |
148 | :key="id" | 148 | :key="id" |
149 | class="mb-5 tableRsponsive feeTypeTable subheading" | 149 | class="mb-5 tableRsponsive feeTypeTable subheading" |
150 | style="border: 1px solid black; | 150 | style="border: 1px solid black; |
151 | border-collapse: collapse;!important | 151 | border-collapse: collapse;!important |
152 | table-layout: auto !important; | 152 | table-layout: auto !important; |
153 | width: 100% !important;" | 153 | width: 100% !important;" |
154 | > | 154 | > |
155 | <thead style="border: 1px solid transparent !important;"> | 155 | <thead style="border: 1px solid transparent !important;"> |
156 | <td | 156 | <td |
157 | colspan="4" | 157 | colspan="4" |
158 | style="text-align: inherit !important; | 158 | style="text-align: inherit !important; |
159 | border-right: inherit; | 159 | border-right: inherit; |
160 | border-top: inherit; | 160 | border-top: inherit; |
161 | padding:8px;" | 161 | padding:8px;" |
162 | >{{value[0].examId.examName}}</td> | 162 | >{{value[0].examId.examName}}</td> |
163 | <tr style="border: 1px solid lightgrey !important;"> | 163 | <tr style="border: 1px solid lightgrey !important;"> |
164 | <td | 164 | <td |
165 | rowspan="2" | 165 | rowspan="2" |
166 | style="border: 1px solid lightgrey !important;;padding:4px; text-align: left;" | 166 | style="border: 1px solid lightgrey !important;;padding:4px; text-align: left;" |
167 | >Subject</td> | 167 | >Subject</td> |
168 | <template v-for="(studentData,ind) in value"> | 168 | <template v-for="(studentData,ind) in value"> |
169 | <td | 169 | <td |
170 | v-if="ind == 0" | 170 | v-if="ind == 0" |
171 | colspan="2" | 171 | colspan="2" |
172 | v-for="studentMark in studentData.studentsMarks" | 172 | v-for="studentMark in studentData.studentsMarks" |
173 | style="border: 1px solid lightgrey !important;padding:10px; text-align: left;" | 173 | style="border: 1px solid lightgrey !important;padding:10px; text-align: left;" |
174 | >{{studentMark.markDistributionId.distributionType}}</td> | 174 | >{{studentMark.markDistributionId.distributionType}}</td> |
175 | <td | 175 | <td |
176 | v-if="ind == 0" | 176 | v-if="ind == 0" |
177 | style="border: 1px solid lightgrey !important text-align: left;" | 177 | style="border: 1px solid lightgrey !important text-align: left;" |
178 | >Total Marks</td> | 178 | >Total Marks</td> |
179 | </template> | 179 | </template> |
180 | </tr> | 180 | </tr> |
181 | <tr | 181 | <tr |
182 | v-for="(subject, ind) in value" | 182 | v-for="(subject, ind) in value" |
183 | v-if="ind == 0" | 183 | v-if="ind == 0" |
184 | style="border: 1px solid lightgrey !important;" | 184 | style="border: 1px solid lightgrey !important;" |
185 | > | 185 | > |
186 | <template v-for="(exam, i) in subject.studentsMarks"> | 186 | <template v-for="(exam, i) in subject.studentsMarks"> |
187 | <td | 187 | <td |
188 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" | 188 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" |
189 | >Marks</td> | 189 | >Marks</td> |
190 | <td | 190 | <td |
191 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" | 191 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" |
192 | >Highest Marks</td> | 192 | >Highest Marks</td> |
193 | </template> | 193 | </template> |
194 | </tr> | 194 | </tr> |
195 | </thead> | 195 | </thead> |
196 | <tbody style="border: 1px solid lightgrey !important;"> | 196 | <tbody style="border: 1px solid lightgrey !important;"> |
197 | <tr | 197 | <tr |
198 | v-for="subject in value" | 198 | v-for="subject in value" |
199 | style="border: 1px solid lightgrey !important;" | 199 | style="border: 1px solid lightgrey !important;" |
200 | class="tr" | 200 | class="tr" |
201 | > | 201 | > |
202 | <td | 202 | <td |
203 | style="border: 1px solid lightgrey !important;padding: 4px;" | 203 | style="border: 1px solid lightgrey !important;padding: 4px;" |
204 | >{{subject.subjectName}}</td> | 204 | >{{subject.subjectName}}</td> |
205 | <template v-for="(exam, i) in subject.studentsMarks"> | 205 | <template v-for="(exam, i) in subject.studentsMarks"> |
206 | <td | 206 | <td |
207 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" | 207 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" |
208 | >{{exam.marksScored}}</td> | 208 | >{{exam.marksScored}}</td> |
209 | <td | 209 | <td |
210 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" | 210 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" |
211 | >{{exam.markDistributionId.markValue}}</td> | 211 | >{{exam.markDistributionId.markValue}}</td> |
212 | </template> | 212 | </template> |
213 | <td | 213 | <td |
214 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" | 214 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" |
215 | >{{subject.totalMarks}}</td> | 215 | >{{subject.totalMarks}}</td> |
216 | </tr> | 216 | </tr> |
217 | </tbody> | 217 | </tbody> |
218 | </table> | 218 | </table> |
219 | </div> | 219 | </div> |
220 | </v-card> | 220 | </v-card> |
221 | </v-flex> | 221 | </v-flex> |
222 | <!-- ****** TABLE GRADE MARK ****** --> | 222 | <!-- ****** TABLE GRADE MARK ****** --> |
223 | <v-flex xs12 sm12 md8 v-show="showGrade"> | 223 | <v-flex xs12 sm12 md8 v-show="showGrade"> |
224 | <v-card | 224 | <v-card |
225 | v-for="(value, id, index) in filterData" | 225 | v-for="(value, id, index) in filterData" |
226 | :key="index" | 226 | :key="index" |
227 | flat | 227 | flat |
228 | style="border: 1px solid lightgrey;margin-bottom:14px;" | 228 | style="border: 1px solid lightgrey;margin-bottom:14px;" |
229 | > | 229 | > |
230 | <v-card-title class="subheading">{{value[0].examId.examName}}</v-card-title> | 230 | <v-card-title class="subheading">{{value[0].examId.examName}}</v-card-title> |
231 | <table | 231 | <table |
232 | class="mb-5 tableRsponsive feeTypeTable" | 232 | class="mb-5 tableRsponsive feeTypeTable" |
233 | style="border: 1px solid lightgrey; | 233 | style="border: 1px solid lightgrey; |
234 | border-collapse: collapse;!important | 234 | border-collapse: collapse;!important |
235 | table-layout: auto !important; | 235 | table-layout: auto !important; |
236 | width: 100% !important;" | 236 | width: 100% !important;" |
237 | > | 237 | > |
238 | <thead style="border: 1px solid lightgrey !important;"> | 238 | <thead style="border: 1px solid lightgrey !important;"> |
239 | <tr | 239 | <tr |
240 | class="info white--text" | 240 | class="info white--text" |
241 | style="border: 1px solid lightgrey !important;padding:4px;" | 241 | style="border: 1px solid lightgrey !important;padding:4px;" |
242 | > | 242 | > |
243 | <td style="border: 1px solid lightgrey !important;padding: 4px;">Subject</td> | 243 | <td style="border: 1px solid lightgrey !important;padding: 4px;">Subject</td> |
244 | <td style="border: 1px solid lightgrey !important;padding: 4px;">Grade</td> | 244 | <td style="border: 1px solid lightgrey !important;padding: 4px;">Grade</td> |
245 | </tr> | 245 | </tr> |
246 | </thead> | 246 | </thead> |
247 | <tbody style="border: 1px solid lightgrey !important;"> | 247 | <tbody style="border: 1px solid lightgrey !important;"> |
248 | <tr v-for="subject in value" style="border: 1px solid lightgrey !important;"> | 248 | <tr v-for="subject in value" style="border: 1px solid lightgrey !important;"> |
249 | <td | 249 | <td |
250 | style="border: 1px solid lightgrey !important;padding: 4px;" | 250 | style="border: 1px solid lightgrey !important;padding: 4px;" |
251 | >{{ subject.subjectName }}</td> | 251 | >{{ subject.subjectName }}</td> |
252 | <td | 252 | <td |
253 | style="border: 1px solid lightgrey !important;padding: 4px;" | 253 | style="border: 1px solid lightgrey !important;padding: 4px;" |
254 | >{{ subject.grade }}</td> | 254 | >{{ subject.grade }}</td> |
255 | </tr> | 255 | </tr> |
256 | </tbody> | 256 | </tbody> |
257 | </table> | 257 | </table> |
258 | </v-card> | 258 | </v-card> |
259 | <v-card v-if="markData == ''"> | 259 | <v-card v-if="markData.length == 0"> |
260 | <v-layout> | 260 | <v-layout> |
261 | <v-flex xs12> | 261 | <v-flex xs12> |
262 | <h5 class="text-xs-center pa-3">No Data Found</h5> | 262 | <h5 class="text-xs-center pa-3">No Data Found</h5> |
263 | </v-flex> | 263 | </v-flex> |
264 | </v-layout> | 264 | </v-layout> |
265 | </v-card> | 265 | </v-card> |
266 | </v-flex> | 266 | </v-flex> |
267 | </v-layout> | 267 | </v-layout> |
268 | </v-flex> | 268 | </v-flex> |
269 | </v-flex> | 269 | </v-flex> |
270 | <!-- print Me --> | 270 | <!-- print Me --> |
271 | <v-flex xs12 sm12 id="printMe" v-show="hideViewMark"> | 271 | <v-flex xs12 sm12 id="printMe" v-show="hideViewMark"> |
272 | <!-- <v-layout wrap> --> | 272 | <!-- <v-layout wrap> --> |
273 | <!-- ****** TABLE DATA MARK ****** --> | 273 | <!-- ****** TABLE DATA MARK ****** --> |
274 | <v-flex xs12 sm12 md12> | 274 | <v-flex xs12 sm12 md12> |
275 | <v-layout> | 275 | <v-layout> |
276 | <v-flex xs12 sm12 md12 style="text-align:center"> | 276 | <v-flex xs12 sm12 md12 style="text-align:center"> |
277 | <!-- <img :src="userData.schoolLogoUrl" width="140" alt="logo" /> --> | 277 | <!-- <img :src="userData.schoolLogoUrl" width="140" alt="logo" /> --> |
278 | <v-avatar> | 278 | <v-avatar> |
279 | <img :src="userData.schoolLogoUrl" v-if="userData.schoolLogoUrl" /> | 279 | <img :src="userData.schoolLogoUrl" v-if="userData.schoolLogoUrl" /> |
280 | <img | 280 | <img |
281 | src="/static/schoolIcons/INTRACK_White.png" | 281 | src="/static/schoolIcons/INTRACK_White.png" |
282 | v-else-if="!userData.schoolLogoUrl" | 282 | v-else-if="!userData.schoolLogoUrl" |
283 | /> | 283 | /> |
284 | </v-avatar> | 284 | </v-avatar> |
285 | <p | 285 | <p |
286 | style=" | 286 | style=" |
287 | font-size: 20px !important; | 287 | font-size: 20px !important; |
288 | font-weight: 500; | 288 | font-weight: 500; |
289 | line-height: 2 !important; | 289 | line-height: 2 !important; |
290 | letter-spacing: 0.02em !important;" | 290 | letter-spacing: 0.02em !important;" |
291 | >{{ userData.name }}</p> | 291 | >{{ userData.name }}</p> |
292 | <p style="margin-bottom: 16px;">{{ userData.address }}</p> | 292 | <p style="margin-bottom: 16px;">{{ userData.address }}</p> |
293 | </v-flex> | 293 | </v-flex> |
294 | </v-layout> | 294 | </v-layout> |
295 | <v-layout wrap> | 295 | <v-layout wrap> |
296 | <v-flex xs3 sm3 md3> | 296 | <v-flex xs3 sm3 md3> |
297 | <v-card | 297 | <v-card |
298 | style=" | 298 | style=" |
299 | margin:auto 4px; | 299 | margin:auto 4px; |
300 | padding:20px; | 300 | padding:20px; |
301 | background-color: #fff; | 301 | background-color: #fff; |
302 | border-color: #fff; | 302 | border-color: #fff; |
303 | color: rgba(0,0,0,0.87); | 303 | color: rgba(0,0,0,0.87); |
304 | border: 1px solid rgb(226, 231, 235); | 304 | border: 1px solid rgb(226, 231, 235); |
305 | -webkit-box-shadow:inherit !important; | 305 | -webkit-box-shadow:inherit !important; |
306 | box-shadow: inherit !important;" | 306 | box-shadow: inherit !important;" |
307 | > | 307 | > |
308 | <v-layout> | 308 | <v-layout> |
309 | <v-flex xs12 style="text-align: center;"> | 309 | <v-flex xs12 style="text-align: center;"> |
310 | <v-avatar size="80"> | 310 | <v-avatar size="80"> |
311 | <img src="/static/icon/user.png" v-if="!markData[0].studentId.profilePicUrl" /> | 311 | <img src="/static/icon/user.png" v-if="!markData[0].studentId.profilePicUrl" /> |
312 | <img | 312 | <img |
313 | :src="markData[0].studentId.profilePicUrl" | 313 | :src="markData[0].studentId.profilePicUrl" |
314 | v-else-if="markData[0].studentId.profilePicUrl" | 314 | v-else-if="markData[0].studentId.profilePicUrl" |
315 | /> | 315 | /> |
316 | </v-avatar> | 316 | </v-avatar> |
317 | </v-flex> | 317 | </v-flex> |
318 | </v-layout> | 318 | </v-layout> |
319 | <v-layout> | 319 | <v-layout> |
320 | <v-flex xs12 style="text-align: center;"> | 320 | <v-flex xs12 style="text-align: center;"> |
321 | <h4 style="margin: 4px 0px;font-weight: 400;">{{ markData[0].studentId.name }}</h4> | 321 | <h4 style="margin: 4px 0px;font-weight: 400;">{{ markData[0].studentId.name }}</h4> |
322 | <p style="color: #999;margin-bottom: 16px;">Student</p> | 322 | <p style="color: #999;margin-bottom: 16px;">Student</p> |
323 | </v-flex> | 323 | </v-flex> |
324 | </v-layout> | 324 | </v-layout> |
325 | <v-layout | 325 | <v-layout |
326 | style=" | 326 | style=" |
327 | margin-bottom: -1px; | 327 | margin-bottom: -1px; |
328 | border: 1px solid #ddd; | 328 | border: 1px solid #ddd; |
329 | margin: 0px; | 329 | margin: 0px; |
330 | padding: 4px; | 330 | padding: 4px; |
331 | color: #707478; | 331 | color: #707478; |
332 | font-size: 16px;" | 332 | font-size: 16px;" |
333 | > | 333 | > |
334 | <v-flex xs6 sm6> | 334 | <v-flex xs6 sm6> |
335 | <p style="float:left;margin: 4px 0px;"> | 335 | <p style="float:left;margin: 4px 0px;"> |
336 | <b>Class</b> | 336 | <b>Class</b> |
337 | </p> | 337 | </p> |
338 | </v-flex> | 338 | </v-flex> |
339 | <v-flex sm6 xs6> | 339 | <v-flex sm6 xs6> |
340 | <p style="float:right;margin: 4px 0px;">{{ markData[0].classId.classNum }}</p> | 340 | <p style="float:right;margin: 4px 0px;">{{ markData[0].classId.classNum }}</p> |
341 | </v-flex> | 341 | </v-flex> |
342 | </v-layout> | 342 | </v-layout> |
343 | <v-layout | 343 | <v-layout |
344 | style=" | 344 | style=" |
345 | margin-bottom: -1px; | 345 | margin-bottom: -1px; |
346 | border: 1px solid #ddd; | 346 | border: 1px solid #ddd; |
347 | margin: 0px; | 347 | margin: 0px; |
348 | padding: 4px; | 348 | padding: 4px; |
349 | color: #707478; | 349 | color: #707478; |
350 | font-size: 16px;" | 350 | font-size: 16px;" |
351 | > | 351 | > |
352 | <v-flex xs6 sm6> | 352 | <v-flex xs6 sm6> |
353 | <p style="float:left;margin: 4px 0px;"> | 353 | <p style="float:left;margin: 4px 0px;"> |
354 | <b>Section</b> | 354 | <b>Section</b> |
355 | </p> | 355 | </p> |
356 | </v-flex> | 356 | </v-flex> |
357 | <v-flex sm6 xs6> | 357 | <v-flex sm6 xs6> |
358 | <p style="float:right;margin: 4px 0px;">{{ markData[0].sectionId.name }}</p> | 358 | <p style="float:right;margin: 4px 0px;">{{ markData[0].sectionId.name }}</p> |
359 | </v-flex> | 359 | </v-flex> |
360 | </v-layout> | 360 | </v-layout> |
361 | <v-layout | 361 | <v-layout |
362 | style=" | 362 | style=" |
363 | margin-bottom: -1px; | 363 | margin-bottom: -1px; |
364 | border: 1px solid #ddd; | 364 | border: 1px solid #ddd; |
365 | margin: 0px; | 365 | margin: 0px; |
366 | padding: 4px; | 366 | padding: 4px; |
367 | color: #707478; | 367 | color: #707478; |
368 | font-size: 16px;" | 368 | font-size: 16px;" |
369 | > | 369 | > |
370 | <v-flex xs6 sm6> | 370 | <v-flex xs6 sm6> |
371 | <p style="float:left;margin: 4px 0px;"> | 371 | <p style="float:left;margin: 4px 0px;"> |
372 | <b>Roll No</b> | 372 | <b>Roll No</b> |
373 | </p> | 373 | </p> |
374 | </v-flex> | 374 | </v-flex> |
375 | <v-flex sm6 xs6> | 375 | <v-flex sm6 xs6> |
376 | <p style="float:right;margin: 4px 0px;">{{ markData[0].studentId.rollNo }}</p> | 376 | <p style="float:right;margin: 4px 0px;">{{ markData[0].studentId.rollNo }}</p> |
377 | </v-flex> | 377 | </v-flex> |
378 | </v-layout> | 378 | </v-layout> |
379 | </v-card> | 379 | </v-card> |
380 | </v-flex> | 380 | </v-flex> |
381 | <v-flex xs9 sm9 md9 v-show="showMark"> | 381 | <v-flex xs9 sm9 md9 v-show="showMark"> |
382 | <v-card | 382 | <v-card |
383 | style=" margin:auto 14px; | 383 | style=" margin:auto 14px; |
384 | padding:20px 0px; | 384 | padding:20px 0px; |
385 | background-color: #fff; | 385 | background-color: #fff; |
386 | border: 1px solid lightgrey; | 386 | border: 1px solid lightgrey; |
387 | color: rgba(0,0,0,0.87); | 387 | color: rgba(0,0,0,0.87); |
388 | border: 1px solid rgb(226, 231, 235); | 388 | border: 1px solid rgb(226, 231, 235); |
389 | -webkit-box-shadow:inherit !important; | 389 | -webkit-box-shadow:inherit !important; |
390 | box-shadow: inherit !important;" | 390 | box-shadow: inherit !important;" |
391 | > | 391 | > |
392 | <div> | 392 | <div> |
393 | <table | 393 | <table |
394 | v-for="(value, id) in filterData" | 394 | v-for="(value, id) in filterData" |
395 | :key="id" | 395 | :key="id" |
396 | class="mb-5 tableRsponsive feeTypeTable subheading" | 396 | class="mb-5 tableRsponsive feeTypeTable subheading" |
397 | style="border: 1px solid black; | 397 | style="border: 1px solid black; |
398 | border-collapse: collapse;!important | 398 | border-collapse: collapse;!important |
399 | table-layout: auto !important; | 399 | table-layout: auto !important; |
400 | width: 100% !important;" | 400 | width: 100% !important;" |
401 | > | 401 | > |
402 | <thead style="border: 1px solid transparent !important;"> | 402 | <thead style="border: 1px solid transparent !important;"> |
403 | <td | 403 | <td |
404 | colspan="4" | 404 | colspan="4" |
405 | style="text-align: inherit !important; | 405 | style="text-align: inherit !important; |
406 | border-right: inherit; | 406 | border-right: inherit; |
407 | border-top: inherit; | 407 | border-top: inherit; |
408 | padding:14px;" | 408 | padding:14px;" |
409 | >{{value[0].examId.examName}}</td> | 409 | >{{value[0].examId.examName}}</td> |
410 | <tr style="border: 1px solid lightgrey !important;"> | 410 | <tr style="border: 1px solid lightgrey !important;"> |
411 | <td | 411 | <td |
412 | rowspan="2" | 412 | rowspan="2" |
413 | style="border: 1px solid lightgrey !important;;padding:4px; text-align: left;" | 413 | style="border: 1px solid lightgrey !important;;padding:4px; text-align: left;" |
414 | >Subject</td> | 414 | >Subject</td> |
415 | <template v-for="(studentData,ind) in value"> | 415 | <template v-for="(studentData,ind) in value"> |
416 | <td | 416 | <td |
417 | v-if="ind == 0" | 417 | v-if="ind == 0" |
418 | colspan="2" | 418 | colspan="2" |
419 | v-for="studentMark in studentData.studentsMarks" | 419 | v-for="studentMark in studentData.studentsMarks" |
420 | style="border: 1px solid lightgrey !important;padding:10px; text-align: left;" | 420 | style="border: 1px solid lightgrey !important;padding:10px; text-align: left;" |
421 | >{{studentMark.markDistributionId.distributionType}}</td> | 421 | >{{studentMark.markDistributionId.distributionType}}</td> |
422 | <td | 422 | <td |
423 | v-if="ind == 0" | 423 | v-if="ind == 0" |
424 | style="border: 1px solid lightgrey !important text-align: left;" | 424 | style="border: 1px solid lightgrey !important text-align: left;" |
425 | >Total Marks</td> | 425 | >Total Marks</td> |
426 | </template> | 426 | </template> |
427 | </tr> | 427 | </tr> |
428 | <tr | 428 | <tr |
429 | v-for="(subject, ind) in value" | 429 | v-for="(subject, ind) in value" |
430 | v-if="ind == 0" | 430 | v-if="ind == 0" |
431 | style="border: 1px solid lightgrey !important;" | 431 | style="border: 1px solid lightgrey !important;" |
432 | > | 432 | > |
433 | <template v-for="(exam, i) in subject.studentsMarks"> | 433 | <template v-for="(exam, i) in subject.studentsMarks"> |
434 | <td | 434 | <td |
435 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" | 435 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" |
436 | >Marks</td> | 436 | >Marks</td> |
437 | <td | 437 | <td |
438 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" | 438 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" |
439 | >Highest Marks</td> | 439 | >Highest Marks</td> |
440 | </template> | 440 | </template> |
441 | </tr> | 441 | </tr> |
442 | </thead> | 442 | </thead> |
443 | <tbody style="border: 1px solid lightgrey !important;"> | 443 | <tbody style="border: 1px solid lightgrey !important;"> |
444 | <tr | 444 | <tr |
445 | v-for="subject in value" | 445 | v-for="subject in value" |
446 | style="border: 1px solid lightgrey !important;" | 446 | style="border: 1px solid lightgrey !important;" |
447 | class="tr" | 447 | class="tr" |
448 | > | 448 | > |
449 | <td | 449 | <td |
450 | style="border: 1px solid lightgrey !important;padding: 4px;" | 450 | style="border: 1px solid lightgrey !important;padding: 4px;" |
451 | >{{subject.subjectName}}</td> | 451 | >{{subject.subjectName}}</td> |
452 | <template v-for="(exam, i) in subject.studentsMarks"> | 452 | <template v-for="(exam, i) in subject.studentsMarks"> |
453 | <td | 453 | <td |
454 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" | 454 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" |
455 | >{{exam.marksScored}}</td> | 455 | >{{exam.marksScored}}</td> |
456 | <td | 456 | <td |
457 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" | 457 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" |
458 | >{{exam.markDistributionId.markValue}}</td> | 458 | >{{exam.markDistributionId.markValue}}</td> |
459 | </template> | 459 | </template> |
460 | <td | 460 | <td |
461 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" | 461 | style="border: 1px solid lightgrey !important;padding: 4px; text-align: left;" |
462 | >{{subject.totalMarks}}</td> | 462 | >{{subject.totalMarks}}</td> |
463 | </tr> | 463 | </tr> |
464 | </tbody> | 464 | </tbody> |
465 | </table> | 465 | </table> |
466 | </div> | 466 | </div> |
467 | </v-card> | 467 | </v-card> |
468 | </v-flex> | 468 | </v-flex> |
469 | <!-- ****** TABLE GRADE MARK ****** --> | 469 | <!-- ****** TABLE GRADE MARK ****** --> |
470 | <v-flex xs9 sm9 md8 v-show="showGrade"> | 470 | <v-flex xs9 sm9 md8 v-show="showGrade"> |
471 | <v-card | 471 | <v-card |
472 | v-for="(value, id, index) in filterData" | 472 | v-for="(value, id, index) in filterData" |
473 | :key="index" | 473 | :key="index" |
474 | flat | 474 | flat |
475 | style="border: 1px solid lightgrey;margin-bottom:14px;" | 475 | style="border: 1px solid lightgrey;margin-bottom:14px;" |
476 | > | 476 | > |
477 | <v-card-title class="subheading">{{value[0].examId.examName}}</v-card-title> | 477 | <v-card-title class="subheading">{{value[0].examId.examName}}</v-card-title> |
478 | <table | 478 | <table |
479 | class="mb-5 tableRsponsive feeTypeTable" | 479 | class="mb-5 tableRsponsive feeTypeTable" |
480 | style="border: 1px solid lightgrey; | 480 | style="border: 1px solid lightgrey; |
481 | border-collapse: collapse;!important | 481 | border-collapse: collapse;!important |
482 | table-layout: auto !important; | 482 | table-layout: auto !important; |
483 | width: 100% !important;" | 483 | width: 100% !important;" |
484 | > | 484 | > |
485 | <thead style="border: 1px solid lightgrey !important;"> | 485 | <thead style="border: 1px solid lightgrey !important;"> |
486 | <tr | 486 | <tr |
487 | class="info white--text" | 487 | class="info white--text" |
488 | style="border: 1px solid lightgrey !important;padding:4px;" | 488 | style="border: 1px solid lightgrey !important;padding:4px;" |
489 | > | 489 | > |
490 | <td style="border: 1px solid lightgrey !important;padding: 4px;">Subject</td> | 490 | <td style="border: 1px solid lightgrey !important;padding: 4px;">Subject</td> |
491 | <td style="border: 1px solid lightgrey !important;padding: 4px;">Grade</td> | 491 | <td style="border: 1px solid lightgrey !important;padding: 4px;">Grade</td> |
492 | </tr> | 492 | </tr> |
493 | </thead> | 493 | </thead> |
494 | <tbody style="border: 1px solid lightgrey !important;"> | 494 | <tbody style="border: 1px solid lightgrey !important;"> |
495 | <tr v-for="subject in value" style="border: 1px solid lightgrey !important;"> | 495 | <tr v-for="subject in value" style="border: 1px solid lightgrey !important;"> |
496 | <td | 496 | <td |
497 | style="border: 1px solid lightgrey !important;padding: 4px;" | 497 | style="border: 1px solid lightgrey !important;padding: 4px;" |
498 | >{{ subject.subjectName }}</td> | 498 | >{{ subject.subjectName }}</td> |
499 | <td | 499 | <td |
500 | style="border: 1px solid lightgrey !important;padding: 4px;" | 500 | style="border: 1px solid lightgrey !important;padding: 4px;" |
501 | >{{ subject.grade }}</td> | 501 | >{{ subject.grade }}</td> |
502 | </tr> | 502 | </tr> |
503 | </tbody> | 503 | </tbody> |
504 | </table> | 504 | </table> |
505 | </v-card> | 505 | </v-card> |
506 | <v-card v-if="markData == ''"> | 506 | <v-card v-if="markData.length == 0"> |
507 | <v-layout> | 507 | <v-layout> |
508 | <v-flex xs12> | 508 | <v-flex xs12> |
509 | <h5 class="text-xs-center pa-3">No Data Found</h5> | 509 | <h5 class="text-xs-center pa-3">No Data Found</h5> |
510 | </v-flex> | 510 | </v-flex> |
511 | </v-layout> | 511 | </v-layout> |
512 | </v-card> | 512 | </v-card> |
513 | </v-flex> | 513 | </v-flex> |
514 | </v-layout> | 514 | </v-layout> |
515 | </v-flex> | 515 | </v-flex> |
516 | </v-flex> | 516 | </v-flex> |
517 | </v-container> | 517 | </v-container> |
518 | <div class="loader" v-if="showLoader"> | 518 | <div class="loader" v-if="showLoader"> |
519 | <v-progress-circular indeterminate color="white"></v-progress-circular> | 519 | <v-progress-circular indeterminate color="white"></v-progress-circular> |
520 | </div> | 520 | </div> |
521 | </v-app> | 521 | </v-app> |
522 | </template> | 522 | </template> |
523 | 523 | ||
524 | <script> | 524 | <script> |
525 | import http from "@/Services/http.js"; | 525 | import http from "@/Services/http.js"; |
526 | import moment from "moment"; | 526 | import moment from "moment"; |
527 | import _ from "underscore"; | 527 | import _ from "underscore"; |
528 | 528 | ||
529 | export default { | 529 | export default { |
530 | data: () => ({ | 530 | data: () => ({ |
531 | showLoader: true, | 531 | showLoader: true, |
532 | nameShow: false, | 532 | nameShow: false, |
533 | showMark: true, | 533 | showMark: true, |
534 | showGrade: false, | 534 | showGrade: false, |
535 | hideViewMark: false, | 535 | hideViewMark: false, |
536 | markData: [], | 536 | markData: [], |
537 | token: "", | 537 | token: "", |
538 | markDistributions: [], | 538 | markDistributions: [], |
539 | markParticularDistributionData: [], | 539 | markParticularDistributionData: [], |
540 | filterData: [], | 540 | filterData: [], |
541 | output: null, | 541 | output: null, |
542 | gradeAPlus: "A+", | 542 | gradeAPlus: "A+", |
543 | gradeA: "A", | 543 | gradeA: "A", |
544 | gradeBPlus: "B+", | 544 | gradeBPlus: "B+", |
545 | gradeB: "B", | 545 | gradeB: "B", |
546 | gradeCPlus: "C+", | 546 | gradeCPlus: "C+", |
547 | gradeC: "C", | 547 | gradeC: "C", |
548 | selectMarkList: "Mark", | 548 | selectMarkList: "Mark", |
549 | selectMark: ["Mark", "Grade"], | 549 | selectMark: ["Mark", "Grade"], |
550 | MarkData: "", | 550 | MarkData: "", |
551 | userData: {} | 551 | userData: {} |
552 | }), | 552 | }), |
553 | mounted() { | 553 | mounted() { |
554 | this.token = this.$store.state.token; | 554 | this.token = this.$store.state.token; |
555 | this.getMarkList(); | 555 | this.getMarkList(); |
556 | this.getUserData(); | 556 | this.getUserData(); |
557 | }, | 557 | }, |
558 | methods: { | 558 | methods: { |
559 | getMarkList() { | 559 | getMarkList() { |
560 | this.showLoader = true; | 560 | this.showLoader = true; |
561 | http() | 561 | http() |
562 | .get("/getParticularMark", { | 562 | .get("/getParticularMark", { |
563 | params: { studentId: this.$route.params.markId }, | 563 | params: { studentId: this.$route.params.markId }, |
564 | headers: { Authorization: "Bearer " + this.token } | 564 | headers: { Authorization: "Bearer " + this.token } |
565 | }) | 565 | }) |
566 | .then(response => { | 566 | .then(response => { |
567 | this.markData = response.data.data; | 567 | this.markData = response.data.data; |
568 | let newData = response.data.data; | 568 | let newData = response.data.data; |
569 | // console.log("newData", newData); | 569 | // console.log("newData", newData); |
570 | for (var i = 0; i < newData.length; i++) { | 570 | for (var i = 0; i < newData.length; i++) { |
571 | newData[i].examination = newData[i].examId._id; | 571 | newData[i].examination = newData[i].examId._id; |
572 | } | 572 | } |
573 | this.filterData = _.groupBy(newData, ["examination"]); | 573 | this.filterData = _.groupBy(newData, ["examination"]); |
574 | // console.log("this.filterData", this.filterData); | 574 | // console.log("this.filterData", this.filterData); |
575 | for (let data in this.filterData) { | 575 | for (let data in this.filterData) { |
576 | for (let item in this.filterData[data]) { | 576 | for (let item in this.filterData[data]) { |
577 | var totalMarks = 0; | 577 | var totalMarks = 0; |
578 | for ( | 578 | for ( |
579 | let i = 0; | 579 | let i = 0; |
580 | i < this.filterData[data][item].studentsMarks.length; | 580 | i < this.filterData[data][item].studentsMarks.length; |
581 | i++ | 581 | i++ |
582 | ) { | 582 | ) { |
583 | // console.log("this.filterData[data][item].studentsMarks[i]",this.filterData[data][item].studentsMarks[i] | 583 | // console.log("this.filterData[data][item].studentsMarks[i]",this.filterData[data][item].studentsMarks[i] |
584 | // .marksScored) | 584 | // .marksScored) |
585 | totalMarks += this.filterData[data][item].studentsMarks[i] | 585 | totalMarks += this.filterData[data][item].studentsMarks[i] |
586 | .marksScored; | 586 | .marksScored; |
587 | } | 587 | } |
588 | this.filterData[data][item].totalMarks = totalMarks; | 588 | this.filterData[data][item].totalMarks = totalMarks; |
589 | 589 | ||
590 | if (totalMarks > 90) { | 590 | if (totalMarks > 90) { |
591 | this.filterData[data][item].grade = this.gradeAPlus; | 591 | this.filterData[data][item].grade = this.gradeAPlus; |
592 | } else if (totalMarks > 80 && totalMarks < 90) { | 592 | } else if (totalMarks > 80 && totalMarks < 90) { |
593 | this.filterData[data][item].grade = this.gradeA; | 593 | this.filterData[data][item].grade = this.gradeA; |
594 | } else if (totalMarks > 70 && totalMarks < 80) { | 594 | } else if (totalMarks > 70 && totalMarks < 80) { |
595 | this.filterData[data][item].grade = this.gradeBPlus; | 595 | this.filterData[data][item].grade = this.gradeBPlus; |
596 | } else if (totalMarks > 60 && totalMarks < 70) { | 596 | } else if (totalMarks > 60 && totalMarks < 70) { |
597 | this.filterData[data][item].grade = this.gradeB; | 597 | this.filterData[data][item].grade = this.gradeB; |
598 | } else if (totalMarks > 50 && totalMarks < 60) { | 598 | } else if (totalMarks > 50 && totalMarks < 60) { |
599 | this.filterData[data][item].grade = this.gradeCPlus; | 599 | this.filterData[data][item].grade = this.gradeCPlus; |
600 | } else if (totalMarks > 40 && totalMarks < 50) { | 600 | } else if (totalMarks > 40 && totalMarks < 50) { |
601 | this.filterData[data][item].grade = this.gradeC; | 601 | this.filterData[data][item].grade = this.gradeC; |
602 | } | 602 | } |
603 | } | 603 | } |
604 | } | 604 | } |
605 | this.showLoader = false; | 605 | this.showLoader = false; |
606 | }) | 606 | }) |
607 | .catch(error => { | 607 | .catch(error => { |
608 | this.showLoader = false; | 608 | this.showLoader = false; |
609 | this.snackbar = true; | 609 | this.snackbar = true; |
610 | this.text = error.response.data.message; | 610 | this.text = error.response.data.message; |
611 | if (error.response.status === 401) { | 611 | if (error.response.status === 401) { |
612 | this.$router.replace({ path: "/" }); | 612 | this.$router.replace({ path: "/" }); |
613 | this.$store.dispatch("setToken", null); | 613 | this.$store.dispatch("setToken", null); |
614 | this.$store.dispatch("Id", null); | 614 | this.$store.dispatch("Id", null); |
615 | } | 615 | } |
616 | }); | 616 | }); |
617 | }, | 617 | }, |
618 | print() { | 618 | print() { |
619 | // Pass the element id here | 619 | // Pass the element id here |
620 | this.$htmlToPaper("printMe"); | 620 | this.$htmlToPaper("printMe"); |
621 | }, | 621 | }, |
622 | getUserData() { | 622 | getUserData() { |
623 | http() | 623 | http() |
624 | .get("/getParticularUserDetail") | 624 | .get("/getParticularUserDetail") |
625 | .then(response => { | 625 | .then(response => { |
626 | this.userData = response.data.data; | 626 | this.userData = response.data.data; |
627 | }) | 627 | }) |
628 | .catch(error => { | 628 | .catch(error => { |
629 | // if (error.response.status === 401) { | 629 | // if (error.response.status === 401) { |
630 | // this.$router.replace({ path: "/" }); | 630 | // this.$router.replace({ path: "/" }); |
631 | // this.$store.dispatch("setToken", null); | 631 | // this.$store.dispatch("setToken", null); |
632 | // this.$store.dispatch("Id", null); | 632 | // this.$store.dispatch("Id", null); |
633 | // } | 633 | // } |
634 | }); | 634 | }); |
635 | }, | 635 | }, |
636 | selectMarkData(select) { | 636 | selectMarkData(select) { |
637 | if (select == "Mark") { | 637 | if (select == "Mark") { |
638 | this.showMark = true; | 638 | this.showMark = true; |
639 | this.showGrade = false; | 639 | this.showGrade = false; |
640 | } else if (select == "Grade") { | 640 | } else if (select == "Grade") { |
641 | this.showGrade = true; | 641 | this.showGrade = true; |
642 | this.showMark = false; | 642 | this.showMark = false; |
643 | } | 643 | } |
644 | } | 644 | } |
645 | } | 645 | } |
646 | }; | 646 | }; |
647 | </script> | 647 | </script> |
648 | 648 | ||
649 | <style scoped> | 649 | <style scoped> |
650 | .add-button { | 650 | .add-button { |
651 | background: #feb83c !important; | 651 | background: #feb83c !important; |
652 | border-color: #feb83c !important; | 652 | border-color: #feb83c !important; |
653 | text-transform: none !important; | 653 | text-transform: none !important; |
654 | -webkit-box-shadow: none !important; | 654 | -webkit-box-shadow: none !important; |
655 | box-shadow: none !important; | 655 | box-shadow: none !important; |
656 | } | 656 | } |
657 | .card-styles { | 657 | .card-styles { |
658 | background: #7f62f8 !important; | 658 | background: #7f62f8 !important; |
659 | border-color: #7f62f8 !important; | 659 | border-color: #7f62f8 !important; |
660 | } | 660 | } |
661 | .open-dialog-button { | 661 | .open-dialog-button { |
662 | background: #827bfa !important; | 662 | background: #827bfa !important; |
663 | border-color: #827bfa !important; | 663 | border-color: #827bfa !important; |
664 | text-transform: none !important; | 664 | text-transform: none !important; |
665 | } | 665 | } |
666 | /* table { | 666 | /* table { |
667 | border-collapse: collapse; | 667 | border-collapse: collapse; |
668 | border: 1px solid #e2e7eb; | 668 | border: 1px solid #e2e7eb; |
669 | } | 669 | } |
670 | th, | 670 | th, |
671 | td { | 671 | td { |
672 | border: 1px solid #e2e7eb; | 672 | border: 1px solid #e2e7eb; |
673 | text-align: center; | 673 | text-align: center; |
674 | } | 674 | } |
675 | table.feeTypeTable { | 675 | table.feeTypeTable { |
676 | table-layout: auto !important; | 676 | table-layout: auto !important; |
677 | width: 100% !important; | 677 | width: 100% !important; |
678 | } */ | 678 | } */ |
679 | .bg-sky { | 679 | .bg-sky { |
680 | background-color: #98b2cc !important; | 680 | background-color: #98b2cc !important; |
681 | } | 681 | } |
682 | .bg-sky-light { | 682 | .bg-sky-light { |
683 | background-color: #89a0b8; | 683 | background-color: #89a0b8; |
684 | } | 684 | } |
685 | .bg-purple { | 685 | .bg-purple { |
686 | background-color: #9583ac; | 686 | background-color: #9583ac; |
687 | } | 687 | } |
688 | .bg-skyDark { | 688 | .bg-skyDark { |
689 | background-color: #956785; | 689 | background-color: #956785; |
690 | } | 690 | } |
691 | .loader { | 691 | .loader { |
692 | width: 100%; | 692 | width: 100%; |
693 | height: 100%; | 693 | height: 100%; |
694 | position: fixed; | 694 | position: fixed; |
695 | top: 0; | 695 | top: 0; |
696 | left: 0; | 696 | left: 0; |
697 | text-align: center; | 697 | text-align: center; |
698 | background-color: rgba(0, 0, 0, 0.5); | 698 | background-color: rgba(0, 0, 0, 0.5); |
699 | z-index: 999; | 699 | z-index: 999; |
700 | } | 700 | } |
701 | /* .tr:nth-child(odd){background-color: #f2f2f2} */ | 701 | /* .tr:nth-child(odd){background-color: #f2f2f2} */ |
702 | 702 | ||
703 | .loader > div { | 703 | .loader > div { |
704 | position: relative; | 704 | position: relative; |
705 | top: calc(50% - 16px); | 705 | top: calc(50% - 16px); |
706 | } | 706 | } |
707 | @media screen and (max-width: 380px) { | 707 | @media screen and (max-width: 380px) { |
708 | .tableRsponsive { | 708 | .tableRsponsive { |
709 | /* display: block; */ | 709 | /* display: block; */ |
710 | position: relative; | 710 | position: relative; |
711 | overflow: scroll; | 711 | overflow: scroll; |
712 | } | 712 | } |
713 | } | 713 | } |
714 | </style> | 714 | </style> |
src/pages/Parent/parents.vue
1 | <template> | 1 | <template> |
2 | <v-container fluid class="body-color"> | 2 | <v-container fluid class="body-color"> |
3 | <v-dialog v-model="editParentDilaog" max-width="600px" scrollable> | 3 | <v-dialog v-model="editParentDilaog" max-width="600px" scrollable> |
4 | <v-card flat class="card-style pa-2" dark> | 4 | <v-card flat class="card-style pa-2" dark> |
5 | <v-layout> | 5 | <v-layout> |
6 | <v-flex xs12> | 6 | <v-flex xs12> |
7 | <label class="title text-xs-center">Edit Parents Details</label> | 7 | <label class="title text-xs-center">Edit Parents Details</label> |
8 | <v-icon size="24" class="right" @click="editParentDilaog = false">cancel</v-icon> | 8 | <v-icon size="24" class="right" @click="editParentDilaog = false">cancel</v-icon> |
9 | </v-flex> | 9 | </v-flex> |
10 | </v-layout> | 10 | </v-layout> |
11 | <v-card-text class="hidden-xs-only hidden-sm-only"> | 11 | <v-card-text class="hidden-xs-only hidden-sm-only"> |
12 | <v-form ref="editParentForm" v-model="validEditParent" lazy-validation> | 12 | <v-form ref="editParentForm" v-model="validEditParent" lazy-validation> |
13 | <v-flex xs12> | 13 | <v-flex xs12> |
14 | <v-layout> | 14 | <v-layout> |
15 | <v-flex xs3 sm4 class="pt-4 subheading"> | 15 | <v-flex xs3 sm4 class="pt-4 subheading"> |
16 | <label class="right">Email ID:</label> | 16 | <label class="right">Email ID:</label> |
17 | </v-flex> | 17 | </v-flex> |
18 | <v-flex xs8 sm6 class="ml-3"> | 18 | <v-flex xs8 sm6 class="ml-3"> |
19 | <v-text-field | 19 | <v-text-field |
20 | placeholder="fill your email" | 20 | placeholder="fill your email" |
21 | v-model="editedItem.email" | 21 | v-model="editedItem.email" |
22 | type="text" | 22 | type="text" |
23 | name="email" | 23 | name="email" |
24 | required | 24 | required |
25 | ></v-text-field> | 25 | ></v-text-field> |
26 | </v-flex> | 26 | </v-flex> |
27 | </v-layout> | 27 | </v-layout> |
28 | </v-flex> | 28 | </v-flex> |
29 | <v-flex xs12> | 29 | <v-flex xs12> |
30 | <v-layout> | 30 | <v-layout> |
31 | <v-flex xs3 sm4 class="pt-4 subheading"> | 31 | <v-flex xs3 sm4 class="pt-4 subheading"> |
32 | <label class="right">Father Name:</label> | 32 | <label class="right">Father Name:</label> |
33 | </v-flex> | 33 | </v-flex> |
34 | <v-flex xs8 sm6 class="ml-3"> | 34 | <v-flex xs8 sm6 class="ml-3"> |
35 | <v-text-field | 35 | <v-text-field |
36 | v-model="editedItem.fatherName" | 36 | v-model="editedItem.fatherName" |
37 | placeholder="fill your father Name" | 37 | placeholder="fill your father Name" |
38 | required | 38 | required |
39 | ></v-text-field> | 39 | ></v-text-field> |
40 | </v-flex> | 40 | </v-flex> |
41 | </v-layout> | 41 | </v-layout> |
42 | </v-flex> | 42 | </v-flex> |
43 | <v-flex xs12> | 43 | <v-flex xs12> |
44 | <v-layout> | 44 | <v-layout> |
45 | <v-flex xs3 sm4 class="pt-4 subheading"> | 45 | <v-flex xs3 sm4 class="pt-4 subheading"> |
46 | <label class="right">Father Cell No:</label> | 46 | <label class="right">Father Cell No:</label> |
47 | </v-flex> | 47 | </v-flex> |
48 | <v-flex xs8 sm6 class="ml-3"> | 48 | <v-flex xs8 sm6 class="ml-3"> |
49 | <v-text-field | 49 | <v-text-field |
50 | v-model="editedItem.fatherCellNo" | 50 | v-model="editedItem.fatherCellNo" |
51 | placeholder="fill your father Cell Number" | 51 | placeholder="fill your father Cell Number" |
52 | :rules="editFatherNoRule" | 52 | :rules="editFatherNoRule" |
53 | type="number" | 53 | type="number" |
54 | required | 54 | required |
55 | ></v-text-field> | 55 | ></v-text-field> |
56 | </v-flex> | 56 | </v-flex> |
57 | </v-layout> | 57 | </v-layout> |
58 | </v-flex> | 58 | </v-flex> |
59 | <v-flex xs12> | 59 | <v-flex xs12> |
60 | <v-layout> | 60 | <v-layout> |
61 | <v-flex xs3 sm4 class="pt-4 subheading"> | 61 | <v-flex xs3 sm4 class="pt-4 subheading"> |
62 | <label class="right">Father Profession:</label> | 62 | <label class="right">Father Profession:</label> |
63 | </v-flex> | 63 | </v-flex> |
64 | <v-flex xs8 sm6 class="ml-3"> | 64 | <v-flex xs8 sm6 class="ml-3"> |
65 | <v-text-field | 65 | <v-text-field |
66 | v-model="editedItem.fatherProfession" | 66 | v-model="editedItem.fatherProfession" |
67 | placeholder="fill your father Profession" | 67 | placeholder="fill your father Profession" |
68 | required | 68 | required |
69 | ></v-text-field> | 69 | ></v-text-field> |
70 | </v-flex> | 70 | </v-flex> |
71 | </v-layout> | 71 | </v-layout> |
72 | </v-flex> | 72 | </v-flex> |
73 | <v-flex xs12> | 73 | <v-flex xs12> |
74 | <v-layout> | 74 | <v-layout> |
75 | <v-flex xs3 sm4 class="pt-4 subheading"> | 75 | <v-flex xs3 sm4 class="pt-4 subheading"> |
76 | <label class="right">Mother Name:</label> | 76 | <label class="right">Mother Name:</label> |
77 | </v-flex> | 77 | </v-flex> |
78 | <v-flex xs8 sm6 class="ml-3"> | 78 | <v-flex xs8 sm6 class="ml-3"> |
79 | <v-text-field | 79 | <v-text-field |
80 | v-model="editedItem.motherName" | 80 | v-model="editedItem.motherName" |
81 | placeholder="fill your Mother Name" | 81 | placeholder="fill your Mother Name" |
82 | type="text" | 82 | type="text" |
83 | required | 83 | required |
84 | ></v-text-field> | 84 | ></v-text-field> |
85 | </v-flex> | 85 | </v-flex> |
86 | </v-layout> | 86 | </v-layout> |
87 | </v-flex> | 87 | </v-flex> |
88 | <v-flex xs12> | 88 | <v-flex xs12> |
89 | <v-layout> | 89 | <v-layout> |
90 | <v-flex xs3 sm4 class="pt-4 subheading"> | 90 | <v-flex xs3 sm4 class="pt-4 subheading"> |
91 | <label class="right">Mother Cell No:</label> | 91 | <label class="right">Mother Cell No:</label> |
92 | </v-flex> | 92 | </v-flex> |
93 | <v-flex xs8 sm6 class="ml-3"> | 93 | <v-flex xs8 sm6 class="ml-3"> |
94 | <v-text-field | 94 | <v-text-field |
95 | v-model="editedItem.motherCellNo" | 95 | v-model="editedItem.motherCellNo" |
96 | placeholder="fill your Mother Cell Number" | 96 | placeholder="fill your Mother Cell Number" |
97 | type="number" | 97 | type="number" |
98 | required | 98 | required |
99 | ></v-text-field> | 99 | ></v-text-field> |
100 | </v-flex> | 100 | </v-flex> |
101 | </v-layout> | 101 | </v-layout> |
102 | </v-flex> | 102 | </v-flex> |
103 | <v-flex xs12> | 103 | <v-flex xs12> |
104 | <v-layout> | 104 | <v-layout> |
105 | <v-flex xs3 sm4 class="pt-4 subheading"> | 105 | <v-flex xs3 sm4 class="pt-4 subheading"> |
106 | <label class="right">Mother Profession:</label> | 106 | <label class="right">Mother Profession:</label> |
107 | </v-flex> | 107 | </v-flex> |
108 | <v-flex xs8 sm6 class="ml-3"> | 108 | <v-flex xs8 sm6 class="ml-3"> |
109 | <v-text-field | 109 | <v-text-field |
110 | v-model="editedItem.motherProfession" | 110 | v-model="editedItem.motherProfession" |
111 | placeholder="fill your Mother Profession" | 111 | placeholder="fill your Mother Profession" |
112 | type="text" | 112 | type="text" |
113 | required | 113 | required |
114 | ></v-text-field> | 114 | ></v-text-field> |
115 | </v-flex> | 115 | </v-flex> |
116 | </v-layout> | 116 | </v-layout> |
117 | <v-layout> | 117 | <v-layout> |
118 | <v-flex xs4 class="pt-4 subheading"> | 118 | <v-flex xs4 class="pt-4 subheading"> |
119 | <label class="right">Password:</label> | 119 | <label class="right">Password:</label> |
120 | </v-flex> | 120 | </v-flex> |
121 | <v-flex xs8 class="ml-3"> | 121 | <v-flex xs8 class="ml-3"> |
122 | <v-text-field | 122 | <v-text-field |
123 | :append-icon="e1 ? 'visibility_off' : 'visibility'" | 123 | v-model="editedItem.password" |
124 | :append-icon-cb="() => (e1 = !e1)" | 124 | placeholder="Enter Password" |
125 | :type="e1 ? 'password' : 'text'" | 125 | type="text" |
126 | :rules="password" | ||
127 | placeholder="Enter Your Password" | ||
128 | required | 126 | required |
129 | ></v-text-field> | 127 | ></v-text-field> |
130 | </v-flex> | 128 | </v-flex> |
131 | </v-layout> | 129 | </v-layout> |
132 | </v-flex> | 130 | </v-flex> |
133 | <v-layout> | 131 | <v-layout> |
134 | <v-flex xs12 sm12> | 132 | <v-flex xs12 sm12> |
135 | <v-card-actions> | 133 | <v-card-actions> |
136 | <v-spacer></v-spacer> | 134 | <v-spacer></v-spacer> |
137 | <v-btn round dark @click="save" class="add-button">Save</v-btn> | 135 | <v-btn round dark @click="save" class="add-button">Save</v-btn> |
138 | <v-spacer></v-spacer> | 136 | <v-spacer></v-spacer> |
139 | </v-card-actions> | 137 | </v-card-actions> |
140 | </v-flex> | 138 | </v-flex> |
141 | </v-layout> | 139 | </v-layout> |
142 | </v-form> | 140 | </v-form> |
143 | </v-card-text> | 141 | </v-card-text> |
144 | <v-card-text style="height: 600px;" class="hidden-lg-only hidden-xl-only hidden-md-only"> | 142 | <v-card-text style="height: 600px;" class="hidden-lg-only hidden-xl-only hidden-md-only"> |
145 | <v-flex xs12> | 143 | <v-flex xs12> |
146 | <v-layout wrap> | 144 | <v-layout wrap> |
147 | <v-flex xs12 class="pt-4 subheading"> | 145 | <v-flex xs12 class="pt-4 subheading"> |
148 | <label>Email ID:</label> | 146 | <label>Email ID:</label> |
149 | </v-flex> | 147 | </v-flex> |
150 | <v-flex xs12> | 148 | <v-flex xs12> |
151 | <v-text-field | 149 | <v-text-field |
152 | placeholder="fill your email" | 150 | placeholder="fill your email" |
153 | v-model="editedItem.email" | 151 | v-model="editedItem.email" |
154 | type="text" | 152 | type="text" |
155 | name="email" | 153 | name="email" |
156 | required | 154 | required |
157 | ></v-text-field> | 155 | ></v-text-field> |
158 | </v-flex> | 156 | </v-flex> |
159 | </v-layout> | 157 | </v-layout> |
160 | </v-flex> | 158 | </v-flex> |
161 | <v-flex xs12> | 159 | <v-flex xs12> |
162 | <v-layout wrap> | 160 | <v-layout wrap> |
163 | <v-flex xs12 class="pt-4 subheading"> | 161 | <v-flex xs12 class="pt-4 subheading"> |
164 | <label>Father Name:</label> | 162 | <label>Father Name:</label> |
165 | </v-flex> | 163 | </v-flex> |
166 | <v-flex xs12> | 164 | <v-flex xs12> |
167 | <v-text-field | 165 | <v-text-field |
168 | v-model="editedItem.fatherName" | 166 | v-model="editedItem.fatherName" |
169 | placeholder="fill your father Name" | 167 | placeholder="fill your father Name" |
170 | required | 168 | required |
171 | ></v-text-field> | 169 | ></v-text-field> |
172 | </v-flex> | 170 | </v-flex> |
173 | </v-layout> | 171 | </v-layout> |
174 | </v-flex> | 172 | </v-flex> |
175 | <v-flex xs12> | 173 | <v-flex xs12> |
176 | <v-layout wrap> | 174 | <v-layout wrap> |
177 | <v-flex xs12 class="pt-4 subheading"> | 175 | <v-flex xs12 class="pt-4 subheading"> |
178 | <label>Father Cell No:</label> | 176 | <label>Father Cell No:</label> |
179 | </v-flex> | 177 | </v-flex> |
180 | <v-flex xs12> | 178 | <v-flex xs12> |
181 | <v-text-field | 179 | <v-text-field |
182 | v-model="editedItem.fatherCellNo" | 180 | v-model="editedItem.fatherCellNo" |
183 | placeholder="fill your father Cell Number" | 181 | placeholder="fill your father Cell Number" |
184 | type="number" | 182 | type="number" |
185 | required | 183 | required |
186 | ></v-text-field> | 184 | ></v-text-field> |
187 | </v-flex> | 185 | </v-flex> |
188 | </v-layout> | 186 | </v-layout> |
189 | </v-flex> | 187 | </v-flex> |
190 | <v-flex xs12> | 188 | <v-flex xs12> |
191 | <v-layout wrap> | 189 | <v-layout wrap> |
192 | <v-flex xs12 class="pt-4 subheading"> | 190 | <v-flex xs12 class="pt-4 subheading"> |
193 | <label>Father Profession:</label> | 191 | <label>Father Profession:</label> |
194 | </v-flex> | 192 | </v-flex> |
195 | <v-flex xs12> | 193 | <v-flex xs12> |
196 | <v-text-field | 194 | <v-text-field |
197 | v-model="editedItem.fatherProfession" | 195 | v-model="editedItem.fatherProfession" |
198 | placeholder="fill your father Profession" | 196 | placeholder="fill your father Profession" |
199 | required | 197 | required |
200 | ></v-text-field> | 198 | ></v-text-field> |
201 | </v-flex> | 199 | </v-flex> |
202 | </v-layout> | 200 | </v-layout> |
203 | </v-flex> | 201 | </v-flex> |
204 | <v-flex xs12> | 202 | <v-flex xs12> |
205 | <v-layout wrap> | 203 | <v-layout wrap> |
206 | <v-flex xs12 class="pt-4 subheading"> | 204 | <v-flex xs12 class="pt-4 subheading"> |
207 | <label>Mother Name:</label> | 205 | <label>Mother Name:</label> |
208 | </v-flex> | 206 | </v-flex> |
209 | <v-flex xs12> | 207 | <v-flex xs12> |
210 | <v-text-field | 208 | <v-text-field |
211 | v-model="editedItem.motherName" | 209 | v-model="editedItem.motherName" |
212 | placeholder="fill your Mother Name" | 210 | placeholder="fill your Mother Name" |
213 | type="text" | 211 | type="text" |
214 | required | 212 | required |
215 | ></v-text-field> | 213 | ></v-text-field> |
216 | </v-flex> | 214 | </v-flex> |
217 | </v-layout> | 215 | </v-layout> |
218 | </v-flex> | 216 | </v-flex> |
219 | <v-flex xs12> | 217 | <v-flex xs12> |
220 | <v-layout wrap> | 218 | <v-layout wrap> |
221 | <v-flex xs12 class="pt-4 subheading"> | 219 | <v-flex xs12 class="pt-4 subheading"> |
222 | <label>Mother Cell No:</label> | 220 | <label>Mother Cell No:</label> |
223 | </v-flex> | 221 | </v-flex> |
224 | <v-flex xs12> | 222 | <v-flex xs12> |
225 | <v-text-field | 223 | <v-text-field |
226 | v-model="editedItem.motherCellNo" | 224 | v-model="editedItem.motherCellNo" |
227 | placeholder="fill your Mother Cell Number" | 225 | placeholder="fill your Mother Cell Number" |
228 | type="number" | 226 | type="number" |
229 | required | 227 | required |
230 | ></v-text-field> | 228 | ></v-text-field> |
231 | </v-flex> | 229 | </v-flex> |
232 | </v-layout> | 230 | </v-layout> |
233 | </v-flex> | 231 | </v-flex> |
234 | <v-flex xs12> | 232 | <v-flex xs12> |
235 | <v-layout wrap> | 233 | <v-layout wrap> |
236 | <v-flex xs12 class="pt-4 subheading"> | 234 | <v-flex xs12 class="pt-4 subheading"> |
237 | <label>Mother Profession:</label> | 235 | <label>Mother Profession:</label> |
238 | </v-flex> | 236 | </v-flex> |
239 | <v-flex xs12> | 237 | <v-flex xs12> |
240 | <v-text-field | 238 | <v-text-field |
241 | v-model="editedItem.motherProfession" | 239 | v-model="editedItem.motherProfession" |
242 | placeholder="fill your Mother Profession" | 240 | placeholder="fill your Mother Profession" |
243 | type="text" | 241 | type="text" |
244 | required | 242 | required |
245 | ></v-text-field> | 243 | ></v-text-field> |
246 | </v-flex> | 244 | </v-flex> |
247 | <v-flex xs12 class="pt-4 subheading"> | 245 | <v-flex xs12 class="pt-4 subheading"> |
248 | <label>Password:</label> | 246 | <label>Password:</label> |
249 | </v-flex> | 247 | </v-flex> |
250 | <v-flex xs12> | 248 | <v-flex xs12> |
251 | <v-text-field | 249 | <v-text-field |
252 | v-model="editedItem.password" | 250 | v-model="editedItem.password" |
253 | placeholder="Enter Password" | 251 | placeholder="Enter Password" |
254 | type="text" | 252 | type="text" |
255 | required | 253 | required |
256 | ></v-text-field> | 254 | ></v-text-field> |
257 | </v-flex> | 255 | </v-flex> |
258 | </v-layout> | 256 | </v-layout> |
259 | </v-flex> | 257 | </v-flex> |
260 | <v-layout> | 258 | <v-layout> |
261 | <v-flex xs12 sm12> | 259 | <v-flex xs12 sm12> |
262 | <v-card-actions> | 260 | <v-card-actions> |
263 | <v-spacer></v-spacer> | 261 | <v-spacer></v-spacer> |
264 | <v-btn round dark @click="save" class="add-button">Save</v-btn> | 262 | <v-btn round dark @click="save" class="add-button">Save</v-btn> |
265 | <v-spacer></v-spacer> | 263 | <v-spacer></v-spacer> |
266 | </v-card-actions> | 264 | </v-card-actions> |
267 | </v-flex> | 265 | </v-flex> |
268 | </v-layout> | 266 | </v-layout> |
269 | </v-card-text> | 267 | </v-card-text> |
270 | </v-card> | 268 | </v-card> |
271 | </v-dialog> | 269 | </v-dialog> |
272 | 270 | ||
273 | <!-- ****** PROFILE VIEW Parents DEATILS ****** --> | 271 | <!-- ****** PROFILE VIEW Parents DEATILS ****** --> |
274 | 272 | ||
275 | <v-dialog v-model="profileParentDialog" max-width="500px" scrollable> | 273 | <v-dialog v-model="profileParentDialog" max-width="500px" scrollable> |
276 | <v-card class="card-style pa-2" dark> | 274 | <v-card class="card-style pa-2" dark> |
277 | <v-layout> | 275 | <v-layout> |
278 | <v-flex xs12> | 276 | <v-flex xs12> |
279 | <label class="title text-xs-center">View Parent Details</label> | 277 | <label class="title text-xs-center">View Parent Details</label> |
280 | <v-icon size="24" class="right" @click="profileParentDialog = false">cancel</v-icon> | 278 | <v-icon size="24" class="right" @click="profileParentDialog = false">cancel</v-icon> |
281 | </v-flex> | 279 | </v-flex> |
282 | </v-layout> | 280 | </v-layout> |
283 | <v-flex align-center justify-center layout text-xs-center class="mt-3"> | 281 | <v-flex align-center justify-center layout text-xs-center class="mt-3"> |
284 | <v-avatar size="100px"> | 282 | <v-avatar size="100px"> |
285 | <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl" /> | 283 | <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl" /> |
286 | <img :src="editedItem.profilePicUrl" v-else-if="editedItem.profilePicUrl" /> | 284 | <img :src="editedItem.profilePicUrl" v-else-if="editedItem.profilePicUrl" /> |
287 | </v-avatar> | 285 | </v-avatar> |
288 | </v-flex> | 286 | </v-flex> |
289 | <v-container grid-list-md> | 287 | <v-container grid-list-md> |
290 | <v-layout wrap> | 288 | <v-layout wrap> |
291 | <v-flex xs12> | 289 | <v-flex xs12> |
292 | <v-layout> | 290 | <v-layout> |
293 | <v-flex xs12 sm12> | 291 | <v-flex xs12 sm12> |
294 | <v-layout> | 292 | <v-layout> |
295 | <v-flex xs6> | 293 | <v-flex xs6> |
296 | <h5 class="right my-1"> | 294 | <h5 class="right my-1"> |
297 | <b>Email:</b> | 295 | <b>Email:</b> |
298 | </h5> | 296 | </h5> |
299 | </v-flex> | 297 | </v-flex> |
300 | <v-flex xs6> | 298 | <v-flex xs6> |
301 | <h5 class="my-1">{{ editedItem.email }}</h5> | 299 | <h5 class="my-1">{{ editedItem.email }}</h5> |
302 | </v-flex> | 300 | </v-flex> |
303 | </v-layout> | 301 | </v-layout> |
304 | </v-flex> | 302 | </v-flex> |
305 | </v-layout> | 303 | </v-layout> |
306 | <v-layout> | 304 | <v-layout> |
307 | <v-flex xs12> | 305 | <v-flex xs12> |
308 | <v-layout> | 306 | <v-layout> |
309 | <v-flex xs6> | 307 | <v-flex xs6> |
310 | <b> | 308 | <b> |
311 | <h5 class="right my-1"> | 309 | <h5 class="right my-1"> |
312 | <b>Fahter Name:</b> | 310 | <b>Fahter Name:</b> |
313 | </h5> | 311 | </h5> |
314 | </b> | 312 | </b> |
315 | </v-flex> | 313 | </v-flex> |
316 | <v-flex xs6> | 314 | <v-flex xs6> |
317 | <h5 class="my-1">{{ editedItem.fatherName }}</h5> | 315 | <h5 class="my-1">{{ editedItem.fatherName }}</h5> |
318 | </v-flex> | 316 | </v-flex> |
319 | </v-layout> | 317 | </v-layout> |
320 | </v-flex> | 318 | </v-flex> |
321 | </v-layout> | 319 | </v-layout> |
322 | <v-layout> | 320 | <v-layout> |
323 | <v-flex xs12> | 321 | <v-flex xs12> |
324 | <v-layout> | 322 | <v-layout> |
325 | <v-flex xs6> | 323 | <v-flex xs6> |
326 | <b> | 324 | <b> |
327 | <h5 class="right my-1"> | 325 | <h5 class="right my-1"> |
328 | <b>Mother Name:</b> | 326 | <b>Mother Name:</b> |
329 | </h5> | 327 | </h5> |
330 | </b> | 328 | </b> |
331 | </v-flex> | 329 | </v-flex> |
332 | <v-flex xs6> | 330 | <v-flex xs6> |
333 | <h5 class="my-1">{{ editedItem.motherName }}</h5> | 331 | <h5 class="my-1">{{ editedItem.motherName }}</h5> |
334 | </v-flex> | 332 | </v-flex> |
335 | </v-layout> | 333 | </v-layout> |
336 | </v-flex> | 334 | </v-flex> |
337 | </v-layout> | 335 | </v-layout> |
338 | <v-layout> | 336 | <v-layout> |
339 | <v-flex xs12> | 337 | <v-flex xs12> |
340 | <v-layout> | 338 | <v-layout> |
341 | <v-flex sm6 xs6> | 339 | <v-flex sm6 xs6> |
342 | <b> | 340 | <b> |
343 | <h5 class="right my-1"> | 341 | <h5 class="right my-1"> |
344 | <b>Father Cell No:</b> | 342 | <b>Father Cell No:</b> |
345 | </h5> | 343 | </h5> |
346 | </b> | 344 | </b> |
347 | </v-flex> | 345 | </v-flex> |
348 | <v-flex sm6 xs6> | 346 | <v-flex sm6 xs6> |
349 | <h5 class="my-1">{{ editedItem.fatherCellNo }}</h5> | 347 | <h5 class="my-1">{{ editedItem.fatherCellNo }}</h5> |
350 | </v-flex> | 348 | </v-flex> |
351 | </v-layout> | 349 | </v-layout> |
352 | </v-flex> | 350 | </v-flex> |
353 | </v-layout> | 351 | </v-layout> |
354 | <v-layout> | 352 | <v-layout> |
355 | <v-flex xs12> | 353 | <v-flex xs12> |
356 | <v-layout> | 354 | <v-layout> |
357 | <v-flex xs6> | 355 | <v-flex xs6> |
358 | <b> | 356 | <b> |
359 | <h5 class="right my-1"> | 357 | <h5 class="right my-1"> |
360 | <b>Mother Cell No:</b> | 358 | <b>Mother Cell No:</b> |
361 | </h5> | 359 | </h5> |
362 | </b> | 360 | </b> |
363 | </v-flex> | 361 | </v-flex> |
364 | <v-flex xs6> | 362 | <v-flex xs6> |
365 | <h5 class="my-1">{{ editedItem.motherCellNo }}</h5> | 363 | <h5 class="my-1">{{ editedItem.motherCellNo }}</h5> |
366 | </v-flex> | 364 | </v-flex> |
367 | </v-layout> | 365 | </v-layout> |
368 | </v-flex> | 366 | </v-flex> |
369 | </v-layout> | 367 | </v-layout> |
370 | <v-layout> | 368 | <v-layout> |
371 | <v-flex xs12> | 369 | <v-flex xs12> |
372 | <v-layout> | 370 | <v-layout> |
373 | <v-flex xs6> | 371 | <v-flex xs6> |
374 | <b> | 372 | <b> |
375 | <h5 class="right my-1 hidden-lg-only hidden-xl-only hidden-md-only"> | 373 | <h5 class="right my-1 hidden-lg-only hidden-xl-only hidden-md-only"> |
376 | <b>FatherProfession:</b> | 374 | <b>FatherProfession:</b> |
377 | </h5> | 375 | </h5> |
378 | <h5 class="right my-1 hidden-sm-only hidden-xs-only"> | 376 | <h5 class="right my-1 hidden-sm-only hidden-xs-only"> |
379 | <b>Father Profession:</b> | 377 | <b>Father Profession:</b> |
380 | </h5> | 378 | </h5> |
381 | </b> | 379 | </b> |
382 | </v-flex> | 380 | </v-flex> |
383 | <v-flex xs6> | 381 | <v-flex xs6> |
384 | <h5 class="my-1">{{ editedItem.fatherProfession }}</h5> | 382 | <h5 class="my-1">{{ editedItem.fatherProfession }}</h5> |
385 | </v-flex> | 383 | </v-flex> |
386 | </v-layout> | 384 | </v-layout> |
387 | </v-flex> | 385 | </v-flex> |
388 | </v-layout> | 386 | </v-layout> |
389 | <v-layout> | 387 | <v-layout> |
390 | <v-flex xs12> | 388 | <v-flex xs12> |
391 | <v-layout> | 389 | <v-layout> |
392 | <v-flex xs6> | 390 | <v-flex xs6> |
393 | <b> | 391 | <b> |
394 | <h5 class="right my-1 hidden-lg-only hidden-xl-only hidden-md-only"> | 392 | <h5 class="right my-1 hidden-lg-only hidden-xl-only hidden-md-only"> |
395 | <b>MotherProfession:</b> | 393 | <b>MotherProfession:</b> |
396 | </h5> | 394 | </h5> |
397 | <h5 class="right my-1 hidden-sm-only hidden-xs-only"> | 395 | <h5 class="right my-1 hidden-sm-only hidden-xs-only"> |
398 | <b>Mother Profession:</b> | 396 | <b>Mother Profession:</b> |
399 | </h5> | 397 | </h5> |
400 | </b> | 398 | </b> |
401 | </v-flex> | 399 | </v-flex> |
402 | <v-flex xs6> | 400 | <v-flex xs6> |
403 | <h5 class="my-1">{{ editedItem.motherProfession }}</h5> | 401 | <h5 class="my-1">{{ editedItem.motherProfession }}</h5> |
404 | </v-flex> | 402 | </v-flex> |
405 | </v-layout> | 403 | </v-layout> |
406 | <!-- <v-layout> | 404 | <!-- <v-layout> |
407 | <v-flex xs6> | 405 | <v-flex xs6> |
408 | <b> | 406 | <b> |
409 | <h5 class="right my-1 hidden-lg-only hidden-xl-only hidden-md-only"> | 407 | <h5 class="right my-1 hidden-lg-only hidden-xl-only hidden-md-only"> |
410 | <b>Password:</b> | 408 | <b>Password:</b> |
411 | </h5> | 409 | </h5> |
412 | <h5 class="right my-1 hidden-sm-only hidden-xs-only"> | 410 | <h5 class="right my-1 hidden-sm-only hidden-xs-only"> |
413 | <b>Password:</b> | 411 | <b>Password:</b> |
414 | </h5> | 412 | </h5> |
415 | </b> | 413 | </b> |
416 | </v-flex> | 414 | </v-flex> |
417 | <v-flex xs6> | 415 | <v-flex xs6> |
418 | <h5 class="my-1">{{ editedItem.password }}</h5> | 416 | <h5 class="my-1">{{ editedItem.password }}</h5> |
419 | </v-flex> | 417 | </v-flex> |
420 | </v-layout>--> | 418 | </v-layout>--> |
421 | </v-flex> | 419 | </v-flex> |
422 | </v-layout> | 420 | </v-layout> |
423 | </v-flex> | 421 | </v-flex> |
424 | </v-layout> | 422 | </v-layout> |
425 | </v-container> | 423 | </v-container> |
426 | </v-card> | 424 | </v-card> |
427 | </v-dialog> | 425 | </v-dialog> |
428 | <!-- ****** EXISTING-USERS Parents TABLE ****** --> | 426 | <!-- ****** EXISTING-USERS Parents TABLE ****** --> |
429 | <v-toolbar color="transparent" flat> | 427 | <v-toolbar color="transparent" flat> |
430 | <v-btn | 428 | <v-btn |
431 | fab | 429 | fab |
432 | dark | 430 | dark |
433 | class="open-dialog-button hidden-xl-only hidden-md-only hidden-lg-only" | 431 | class="open-dialog-button hidden-xl-only hidden-md-only hidden-lg-only" |
434 | small | 432 | small |
435 | @click="addParentDialog = true" | 433 | @click="addParentDialog = true" |
436 | > | 434 | > |
437 | <v-icon dark>add</v-icon> | 435 | <v-icon dark>add</v-icon> |
438 | </v-btn> | 436 | </v-btn> |
439 | <v-btn | 437 | <v-btn |
440 | v-if="role != 'TEACHER' " | 438 | v-if="role != 'TEACHER' " |
441 | round | 439 | round |
442 | class="open-dialog-button hidden-sm-only hidden-xs-only" | 440 | class="open-dialog-button hidden-sm-only hidden-xs-only" |
443 | dark | 441 | dark |
444 | @click="addParentDialog = true" | 442 | @click="addParentDialog = true" |
445 | > | 443 | > |
446 | <v-icon class="white--text pr-1" size="20">add</v-icon>Add Parent | 444 | <v-icon class="white--text pr-1" size="20">add</v-icon>Add Parent |
447 | </v-btn> | 445 | </v-btn> |
448 | <v-spacer></v-spacer> | 446 | <v-spacer></v-spacer> |
449 | <v-card-title class="body-1" v-show="show"> | 447 | <v-card-title class="body-1" v-show="show"> |
450 | <v-btn icon large flat @click="displaySearch"> | 448 | <v-btn icon large flat @click="displaySearch"> |
451 | <v-avatar size="27"> | 449 | <v-avatar size="27"> |
452 | <img src="/static/icon/search.png" alt="icon" /> | 450 | <img src="/static/icon/search.png" alt="icon" /> |
453 | </v-avatar> | 451 | </v-avatar> |
454 | </v-btn> | 452 | </v-btn> |
455 | </v-card-title> | 453 | </v-card-title> |
456 | <v-flex xs8 sm8 md2 lg2 v-show="showSearch"> | 454 | <v-flex xs8 sm8 md2 lg2 v-show="showSearch"> |
457 | <v-layout> | 455 | <v-layout> |
458 | <v-text-field | 456 | <v-text-field |
459 | v-model="search" | 457 | v-model="search" |
460 | label="Search" | 458 | label="Search" |
461 | prepend-inner-icon="search" | 459 | prepend-inner-icon="search" |
462 | color="primary" | 460 | color="primary" |
463 | style="transition: 0.8s cubic-bezier(0.25, 0.8, 0.25, 1); !important" | 461 | style="transition: 0.8s cubic-bezier(0.25, 0.8, 0.25, 1); !important" |
464 | ></v-text-field> | 462 | ></v-text-field> |
465 | <v-icon @click="closeSearch" color="error">close</v-icon> | 463 | <v-icon @click="closeSearch" color="error">close</v-icon> |
466 | </v-layout> | 464 | </v-layout> |
467 | </v-flex> | 465 | </v-flex> |
468 | </v-toolbar> | 466 | </v-toolbar> |
469 | <v-data-table | 467 | <v-data-table |
470 | :headers="headers" | 468 | :headers="headers" |
471 | :items="parentsList" | 469 | :items="parentsList" |
472 | :pagination.sync="pagination" | 470 | :pagination.sync="pagination" |
473 | :search="search" | 471 | :search="search" |
474 | > | 472 | > |
475 | <template slot="items" slot-scope="props"> | 473 | <template slot="items" slot-scope="props"> |
476 | <tr class="tr"> | 474 | <tr class="tr"> |
477 | <td class="text-xs-center td td-row">{{ props.index + 1}}</td> | 475 | <td class="text-xs-center td td-row">{{ props.index + 1}}</td> |
478 | <td class="text-xs-center td td-row">{{ props.item.email }}</td> | 476 | <td class="text-xs-center td td-row">{{ props.item.email }}</td> |
479 | <td class="text-xs-center td td-row">{{ props.item.fatherName }}</td> | 477 | <td class="text-xs-center td td-row">{{ props.item.fatherName }}</td> |
480 | <td class="text-xs-center td td-row">{{ props.item.fatherCellNo }}</td> | 478 | <td class="text-xs-center td td-row">{{ props.item.fatherCellNo }}</td> |
481 | <td class="text-xs-center td td-row">{{ props.item.motherName }}</td> | 479 | <td class="text-xs-center td td-row">{{ props.item.motherName }}</td> |
482 | <td class="text-xs-center td td-row">{{ props.item.motherCellNo }}</td> | 480 | <td class="text-xs-center td td-row">{{ props.item.motherCellNo }}</td> |
483 | <td class="text-xs-center td td-row"> | 481 | <td class="text-xs-center td td-row"> |
484 | <span> | 482 | <span> |
485 | <v-tooltip top> | 483 | <v-tooltip top> |
486 | <img | 484 | <img |
487 | slot="activator" | 485 | slot="activator" |
488 | style="cursor:pointer; width:25px; height:25px; " | 486 | style="cursor:pointer; width:25px; height:25px; " |
489 | class="mr-3" | 487 | class="mr-3" |
490 | @click="profile(props.item)" | 488 | @click="profile(props.item)" |
491 | src="/static/icon/view.png" | 489 | src="/static/icon/view.png" |
492 | /> | 490 | /> |
493 | <span>View</span> | 491 | <span>View</span> |
494 | </v-tooltip> | 492 | </v-tooltip> |
495 | <v-tooltip top v-if="role != 'TEACHER' "> | 493 | <v-tooltip top v-if="role != 'TEACHER' "> |
496 | <img | 494 | <img |
497 | slot="activator" | 495 | slot="activator" |
498 | style="cursor:pointer; width:20px; height:18px; " | 496 | style="cursor:pointer; width:20px; height:18px; " |
499 | @click="editItem(props.item)" | 497 | @click="editItem(props.item)" |
500 | src="/static/icon/edit.png" | 498 | src="/static/icon/edit.png" |
501 | class="mr-3" | 499 | class="mr-3" |
502 | /> | 500 | /> |
503 | <span>Edit</span> | 501 | <span>Edit</span> |
504 | </v-tooltip> | 502 | </v-tooltip> |
505 | </span> | 503 | </span> |
506 | </td> | 504 | </td> |
507 | </tr> | 505 | </tr> |
508 | </template> | 506 | </template> |
509 | <v-alert | 507 | <v-alert |
510 | slot="no-results" | 508 | slot="no-results" |
511 | :value="true" | 509 | :value="true" |
512 | color="error" | 510 | color="error" |
513 | icon="warning" | 511 | icon="warning" |
514 | >Your search for "{{ search }}" found no results.</v-alert> | 512 | >Your search for "{{ search }}" found no results.</v-alert> |
515 | </v-data-table> | 513 | </v-data-table> |
516 | 514 | ||
517 | <!-- ****** ADD PARENTS DETAILS****** --> | 515 | <!-- ****** ADD PARENTS DETAILS****** --> |
518 | <v-dialog v-model="addParentDialog" max-width="1100px"> | 516 | <v-dialog v-model="addParentDialog" max-width="1100px"> |
519 | <v-card flat class="card-style pa-2" dark> | 517 | <v-card flat class="card-style pa-2" dark> |
520 | <v-layout> | 518 | <v-layout> |
521 | <v-flex xs12> | 519 | <v-flex xs12> |
522 | <label class="title text-xs-center">Add Parent</label> | 520 | <label class="title text-xs-center">Add Parent</label> |
523 | <v-icon size="24" class="right" @click="addParentDialog = false">cancel</v-icon> | 521 | <v-icon size="24" class="right" @click="addParentDialog = false">cancel</v-icon> |
524 | </v-flex> | 522 | </v-flex> |
525 | </v-layout> | 523 | </v-layout> |
526 | <v-container fluid fill-height> | 524 | <v-container fluid fill-height> |
527 | <v-layout align-center> | 525 | <v-layout align-center> |
528 | <v-flex xs12 sm12> | 526 | <v-flex xs12 sm12> |
529 | <v-form ref="parentForm" v-model="valid" lazy-validation> | 527 | <v-form ref="parentForm" v-model="valid" lazy-validation> |
530 | <v-container fluid class="hidden-xs-only hidden-sm-only"> | 528 | <v-container fluid class="hidden-xs-only hidden-sm-only"> |
531 | <v-layout> | 529 | <v-layout> |
532 | <v-flex xs12 sm6> | 530 | <v-flex xs12 sm6> |
533 | <v-layout> | 531 | <v-layout> |
534 | <v-flex xs4 class="pt-4 subheading"> | 532 | <v-flex xs4 class="pt-4 subheading"> |
535 | <label class="right">Father Cell No:</label> | 533 | <label class="right">Father Cell No:</label> |
536 | </v-flex> | 534 | </v-flex> |
537 | <v-flex xs8 class="ml-3"> | 535 | <v-flex xs8 class="ml-3"> |
538 | <v-text-field | 536 | <v-text-field |
539 | v-model="parentData.fatherCellNo" | 537 | v-model="parentData.fatherCellNo" |
540 | placeholder="fill your father Cell Number" | 538 | placeholder="fill your father Cell Number" |
541 | type="number" | 539 | type="number" |
542 | :rules="fatheCellNoRules" | 540 | :rules="fatheCellNoRules" |
543 | counter="10" | 541 | counter="10" |
544 | required | 542 | required |
545 | ></v-text-field> | 543 | ></v-text-field> |
546 | </v-flex> | 544 | </v-flex> |
547 | </v-layout> | 545 | </v-layout> |
548 | </v-flex> | 546 | </v-flex> |
549 | <v-flex xs12 sm6> | 547 | <v-flex xs12 sm6> |
550 | <v-layout> | 548 | <v-layout> |
551 | <v-flex xs4 class="pt-4 subheading"> | 549 | <v-flex xs4 class="pt-4 subheading"> |
552 | <label class="right">Parent Email Id:</label> | 550 | <label class="right">Parent Email Id:</label> |
553 | </v-flex> | 551 | </v-flex> |
554 | <v-flex xs8 class="ml-3"> | 552 | <v-flex xs8 class="ml-3"> |
555 | <v-text-field | 553 | <v-text-field |
556 | placeholder="fill Parent email" | 554 | placeholder="fill Parent email" |
557 | v-model="parentData.email" | 555 | v-model="parentData.email" |
558 | type="text" | 556 | type="text" |
559 | required | 557 | required |
560 | ></v-text-field> | 558 | ></v-text-field> |
561 | </v-flex> | 559 | </v-flex> |
562 | </v-layout> | 560 | </v-layout> |
563 | </v-flex> | 561 | </v-flex> |
564 | </v-layout> | 562 | </v-layout> |
565 | <v-layout> | 563 | <v-layout> |
566 | <v-flex xs12 sm6> | 564 | <v-flex xs12 sm6> |
567 | <v-layout> | 565 | <v-layout> |
568 | <v-flex xs4 class="pt-4 subheading"> | 566 | <v-flex xs4 class="pt-4 subheading"> |
569 | <label class="right">Father Name:</label> | 567 | <label class="right">Father Name:</label> |
570 | </v-flex> | 568 | </v-flex> |
571 | <v-flex xs8 class="ml-3"> | 569 | <v-flex xs8 class="ml-3"> |
572 | <v-text-field | 570 | <v-text-field |
573 | v-model="parentData.fatherName" | 571 | v-model="parentData.fatherName" |
574 | placeholder="Fill your father Name" | 572 | placeholder="Fill your father Name" |
575 | required | 573 | required |
576 | ></v-text-field> | 574 | ></v-text-field> |
577 | </v-flex> | 575 | </v-flex> |
578 | </v-layout> | 576 | </v-layout> |
579 | </v-flex> | 577 | </v-flex> |
580 | <v-flex xs12 sm6> | 578 | <v-flex xs12 sm6> |
581 | <v-layout> | 579 | <v-layout> |
582 | <v-flex xs4 class="pt-4 subheading"> | 580 | <v-flex xs4 class="pt-4 subheading"> |
583 | <label class="right">Father Profession:</label> | 581 | <label class="right">Father Profession:</label> |
584 | </v-flex> | 582 | </v-flex> |
585 | <v-flex xs8 class="ml-3"> | 583 | <v-flex xs8 class="ml-3"> |
586 | <v-text-field | 584 | <v-text-field |
587 | v-model="parentData.fatherProfession" | 585 | v-model="parentData.fatherProfession" |
588 | placeholder="fill your father Profession" | 586 | placeholder="fill your father Profession" |
589 | required | 587 | required |
590 | ></v-text-field> | 588 | ></v-text-field> |
591 | </v-flex> | 589 | </v-flex> |
592 | </v-layout> | 590 | </v-layout> |
593 | </v-flex> | 591 | </v-flex> |
594 | </v-layout> | 592 | </v-layout> |
595 | <v-layout> | 593 | <v-layout> |
596 | <v-flex xs12 sm6> | 594 | <v-flex xs12 sm6> |
597 | <v-layout> | 595 | <v-layout> |
598 | <v-flex xs4 class="pt-4 subheading"> | 596 | <v-flex xs4 class="pt-4 subheading"> |
599 | <label class="right">Mother Name:</label> | 597 | <label class="right">Mother Name:</label> |
600 | </v-flex> | 598 | </v-flex> |
601 | <v-flex xs8 class="ml-3"> | 599 | <v-flex xs8 class="ml-3"> |
602 | <v-text-field | 600 | <v-text-field |
603 | v-model="parentData.motherName" | 601 | v-model="parentData.motherName" |
604 | placeholder="fill your Mother Name" | 602 | placeholder="fill your Mother Name" |
605 | type="text" | 603 | type="text" |
606 | required | 604 | required |
607 | ></v-text-field> | 605 | ></v-text-field> |
608 | </v-flex> | 606 | </v-flex> |
609 | </v-layout> | 607 | </v-layout> |
610 | </v-flex> | 608 | </v-flex> |
611 | <v-flex xs12 sm6> | 609 | <v-flex xs12 sm6> |
612 | <v-layout> | 610 | <v-layout> |
613 | <v-flex xs4 class="pt-4 subheading"> | 611 | <v-flex xs4 class="pt-4 subheading"> |
614 | <label class="right">Mother Cell No:</label> | 612 | <label class="right">Mother Cell No:</label> |
615 | </v-flex> | 613 | </v-flex> |
616 | <v-flex xs8 class="ml-3"> | 614 | <v-flex xs8 class="ml-3"> |
617 | <v-text-field | 615 | <v-text-field |
618 | v-model="parentData.motherCellNo" | 616 | v-model="parentData.motherCellNo" |
619 | placeholder="fill your Mother Cell Number" | 617 | placeholder="fill your Mother Cell Number" |
620 | counter="10" | 618 | counter="10" |
621 | type="number" | 619 | type="number" |
622 | required | 620 | required |
623 | ></v-text-field> | 621 | ></v-text-field> |
624 | </v-flex> | 622 | </v-flex> |
625 | </v-layout> | 623 | </v-layout> |
626 | </v-flex> | 624 | </v-flex> |
627 | </v-layout> | 625 | </v-layout> |
628 | <v-layout> | 626 | <v-layout> |
629 | <v-flex xs12 sm6> | 627 | <v-flex xs12 sm6> |
630 | <v-layout> | 628 | <v-layout> |
631 | <v-flex xs4 class="pt-4 subheading"> | 629 | <v-flex xs4 class="pt-4 subheading"> |
632 | <label class="right">Mother Profession:</label> | 630 | <label class="right">Mother Profession:</label> |
633 | </v-flex> | 631 | </v-flex> |
634 | <v-flex xs8 class="ml-3"> | 632 | <v-flex xs8 class="ml-3"> |
635 | <v-text-field | 633 | <v-text-field |
636 | v-model="parentData.motherProfession" | 634 | v-model="parentData.motherProfession" |
637 | placeholder="fill your Mother Profession" | 635 | placeholder="fill your Mother Profession" |
638 | type="text" | 636 | type="text" |
639 | required | 637 | required |
640 | ></v-text-field> | 638 | ></v-text-field> |
641 | </v-flex> | 639 | </v-flex> |
642 | </v-layout> | 640 | </v-layout> |
643 | </v-flex> | 641 | </v-flex> |
644 | <v-flex xs12 sm6> | 642 | <v-flex xs12 sm6> |
645 | <v-layout> | 643 | <v-layout> |
646 | <v-flex xs4 class="pt-4 subheading"> | 644 | <v-flex xs4 class="pt-4 subheading"> |
647 | <label class="right">Password:</label> | 645 | <label class="right">Password:</label> |
648 | </v-flex> | 646 | </v-flex> |
649 | <v-flex xs8 class="ml-3"> | 647 | <v-flex xs8 class="ml-3"> |
650 | <v-text-field | 648 | <v-text-field |
651 | v-model="parentData.password" | 649 | v-model="parentData.password" |
652 | :append-icon="e1 ? 'visibility_off' : 'visibility'" | 650 | :append-icon="e1 ? 'visibility_off' : 'visibility'" |
653 | :append-icon-cb="() => (e1 = !e1)" | 651 | :append-icon-cb="() => (e1 = !e1)" |
654 | :type="e1 ? 'password' : 'text'" | 652 | :type="e1 ? 'password' : 'text'" |
655 | :rules="password" | 653 | :rules="password" |
656 | placeholder="Enter Your Password" | 654 | placeholder="Enter Your Password" |
657 | required | 655 | required |
658 | ></v-text-field> | 656 | ></v-text-field> |
659 | </v-flex> | 657 | </v-flex> |
660 | </v-layout> | 658 | </v-layout> |
661 | </v-flex> | 659 | </v-flex> |
662 | </v-layout> | 660 | </v-layout> |
663 | <v-flex xs12 sm12> | 661 | <v-flex xs12 sm12> |
664 | <v-layout> | 662 | <v-layout> |
665 | <v-flex xs12 sm12> | 663 | <v-flex xs12 sm12> |
666 | <v-btn | 664 | <v-btn |
667 | class="right add-button" | 665 | class="right add-button" |
668 | @click="submitParentDetails" | 666 | @click="submitParentDetails" |
669 | round | 667 | round |
670 | dark | 668 | dark |
671 | :loading="loading" | 669 | :loading="loading" |
672 | v-show="showParent" | 670 | v-show="showParent" |
673 | >Add</v-btn> | 671 | >Add</v-btn> |
674 | <v-btn @click="clear" round dark class="clear-button right">Clear</v-btn> | 672 | <v-btn @click="clear" round dark class="clear-button right">Clear</v-btn> |
675 | </v-flex> | 673 | </v-flex> |
676 | </v-layout> | 674 | </v-layout> |
677 | </v-flex> | 675 | </v-flex> |
678 | </v-container> | 676 | </v-container> |
679 | <v-container fluid class="hidden-lg-only hidden-xl-only hidden-md-only"> | 677 | <v-container fluid class="hidden-lg-only hidden-xl-only hidden-md-only"> |
680 | <v-layout wrap> | 678 | <v-layout wrap> |
681 | <v-flex xs12 sm6> | 679 | <v-flex xs12 sm6> |
682 | <v-layout wrap> | 680 | <v-layout wrap> |
683 | <v-flex xs12 class="pt-4 subheading"> | 681 | <v-flex xs12 class="pt-4 subheading"> |
684 | <label>Father Cell No:</label> | 682 | <label>Father Cell No:</label> |
685 | </v-flex> | 683 | </v-flex> |
686 | <v-flex xs12> | 684 | <v-flex xs12> |
687 | <v-text-field | 685 | <v-text-field |
688 | v-model="parentData.fatherCellNo" | 686 | v-model="parentData.fatherCellNo" |
689 | :rules="fatheCellNoRules" | 687 | :rules="fatheCellNoRules" |
690 | counter="10" | 688 | counter="10" |
691 | placeholder="fill your father Cell Number" | 689 | placeholder="fill your father Cell Number" |
692 | type="number" | 690 | type="number" |
693 | required | 691 | required |
694 | ></v-text-field> | 692 | ></v-text-field> |
695 | </v-flex> | 693 | </v-flex> |
696 | </v-layout> | 694 | </v-layout> |
697 | </v-flex> | 695 | </v-flex> |
698 | <v-flex xs12 sm6> | 696 | <v-flex xs12 sm6> |
699 | <v-layout wrap> | 697 | <v-layout wrap> |
700 | <v-flex xs12 class="pt-4 subheading"> | 698 | <v-flex xs12 class="pt-4 subheading"> |
701 | <label>Parent Email Id:</label> | 699 | <label>Parent Email Id:</label> |
702 | </v-flex> | 700 | </v-flex> |
703 | <v-flex xs12> | 701 | <v-flex xs12> |
704 | <v-text-field | 702 | <v-text-field |
705 | placeholder="fill Parent email" | 703 | placeholder="fill Parent email" |
706 | v-model="parentData.email" | 704 | v-model="parentData.email" |
707 | type="text" | 705 | type="text" |
708 | required | 706 | required |
709 | ></v-text-field> | 707 | ></v-text-field> |
710 | </v-flex> | 708 | </v-flex> |
711 | </v-layout> | 709 | </v-layout> |
712 | </v-flex> | 710 | </v-flex> |
713 | </v-layout> | 711 | </v-layout> |
714 | <v-layout wrap> | 712 | <v-layout wrap> |
715 | <v-flex xs12 sm6> | 713 | <v-flex xs12 sm6> |
716 | <v-layout wrap> | 714 | <v-layout wrap> |
717 | <v-flex xs12 class="pt-4 subheading"> | 715 | <v-flex xs12 class="pt-4 subheading"> |
718 | <label>Father Name:</label> | 716 | <label>Father Name:</label> |
719 | </v-flex> | 717 | </v-flex> |
720 | <v-flex xs12> | 718 | <v-flex xs12> |
721 | <v-text-field | 719 | <v-text-field |
722 | v-model="parentData.fatherName" | 720 | v-model="parentData.fatherName" |
723 | placeholder="Fill your father Name" | 721 | placeholder="Fill your father Name" |
724 | required | 722 | required |
725 | ></v-text-field> | 723 | ></v-text-field> |
726 | </v-flex> | 724 | </v-flex> |
727 | </v-layout> | 725 | </v-layout> |
728 | </v-flex> | 726 | </v-flex> |
729 | <v-flex xs12 sm6> | 727 | <v-flex xs12 sm6> |
730 | <v-layout wrap> | 728 | <v-layout wrap> |
731 | <v-flex xs12 class="pt-4 subheading"> | 729 | <v-flex xs12 class="pt-4 subheading"> |
732 | <label>Father Profession:</label> | 730 | <label>Father Profession:</label> |
733 | </v-flex> | 731 | </v-flex> |
734 | <v-flex xs12> | 732 | <v-flex xs12> |
735 | <v-text-field | 733 | <v-text-field |
736 | v-model="parentData.fatherProfession" | 734 | v-model="parentData.fatherProfession" |
737 | placeholder="fill your father Profession" | 735 | placeholder="fill your father Profession" |
738 | required | 736 | required |
739 | ></v-text-field> | 737 | ></v-text-field> |
740 | </v-flex> | 738 | </v-flex> |
741 | </v-layout> | 739 | </v-layout> |
742 | </v-flex> | 740 | </v-flex> |
743 | </v-layout> | 741 | </v-layout> |
744 | <v-layout wrap> | 742 | <v-layout wrap> |
745 | <v-flex xs12 sm6> | 743 | <v-flex xs12 sm6> |
746 | <v-layout wrap> | 744 | <v-layout wrap> |
747 | <v-flex xs12 class="pt-4 subheading"> | 745 | <v-flex xs12 class="pt-4 subheading"> |
748 | <label>Mother Name:</label> | 746 | <label>Mother Name:</label> |
749 | </v-flex> | 747 | </v-flex> |
750 | <v-flex xs12> | 748 | <v-flex xs12> |
751 | <v-text-field | 749 | <v-text-field |
752 | v-model="parentData.motherName" | 750 | v-model="parentData.motherName" |
753 | placeholder="fill your Mother Name" | 751 | placeholder="fill your Mother Name" |
754 | type="text" | 752 | type="text" |
755 | required | 753 | required |
756 | ></v-text-field> | 754 | ></v-text-field> |
757 | </v-flex> | 755 | </v-flex> |
758 | </v-layout> | 756 | </v-layout> |
759 | </v-flex> | 757 | </v-flex> |
760 | <v-flex xs12 sm6> | 758 | <v-flex xs12 sm6> |
761 | <v-layout wrap> | 759 | <v-layout wrap> |
762 | <v-flex xs42 class="pt-4 subheading"> | 760 | <v-flex xs42 class="pt-4 subheading"> |
763 | <label>Mother Cell No:</label> | 761 | <label>Mother Cell No:</label> |
764 | </v-flex> | 762 | </v-flex> |
765 | <v-flex xs12> | 763 | <v-flex xs12> |
766 | <v-text-field | 764 | <v-text-field |
767 | v-model="parentData.motherCellNo" | 765 | v-model="parentData.motherCellNo" |
768 | placeholder="fill your Mother Cell Number" | 766 | placeholder="fill your Mother Cell Number" |
769 | type="number" | 767 | type="number" |
770 | required | 768 | required |
771 | ></v-text-field> | 769 | ></v-text-field> |
772 | </v-flex> | 770 | </v-flex> |
773 | </v-layout> | 771 | </v-layout> |
774 | </v-flex> | 772 | </v-flex> |
775 | </v-layout> | 773 | </v-layout> |
776 | <v-layout wrap> | 774 | <v-layout wrap> |
777 | <v-flex xs12 sm6> | 775 | <v-flex xs12 sm6> |
778 | <v-layout wrap> | 776 | <v-layout wrap> |
779 | <v-flex xs12 class="pt-4 subheading"> | 777 | <v-flex xs12 class="pt-4 subheading"> |
780 | <label>Mother Profession:</label> | 778 | <label>Mother Profession:</label> |
781 | </v-flex> | 779 | </v-flex> |
782 | <v-flex xs12> | 780 | <v-flex xs12> |
783 | <v-text-field | 781 | <v-text-field |
784 | v-model="parentData.motherProfession" | 782 | v-model="parentData.motherProfession" |
785 | placeholder="fill your Mother Profession" | 783 | placeholder="fill your Mother Profession" |
786 | type="text" | 784 | type="text" |
787 | required | 785 | required |
788 | ></v-text-field> | 786 | ></v-text-field> |
789 | </v-flex> | 787 | </v-flex> |
790 | </v-layout> | 788 | </v-layout> |
791 | </v-flex> | 789 | </v-flex> |
792 | </v-layout> | 790 | </v-layout> |
793 | <v-flex xs12 sm12> | 791 | <v-flex xs12 sm12> |
794 | <v-layout> | 792 | <v-layout> |
795 | <v-flex xs6 sm6 offset-sm1> | 793 | <v-flex xs6 sm6 offset-sm1> |
796 | <v-btn @click="clear" class="clear-button" round dark>clear</v-btn> | 794 | <v-btn @click="clear" class="clear-button" round dark>clear</v-btn> |
797 | </v-flex> | 795 | </v-flex> |
798 | <v-flex xs6 sm6> | 796 | <v-flex xs6 sm6> |
799 | <v-btn | 797 | <v-btn |
800 | class="add-button" | 798 | class="add-button" |
801 | @click="submitParentDetails" | 799 | @click="submitParentDetails" |
802 | round | 800 | round |
803 | dark | 801 | dark |
804 | :loading="loading" | 802 | :loading="loading" |
805 | v-show="showParent" | 803 | v-show="showParent" |
806 | >Add</v-btn> | 804 | >Add</v-btn> |
807 | </v-flex> | 805 | </v-flex> |
808 | </v-layout> | 806 | </v-layout> |
809 | </v-flex> | 807 | </v-flex> |
810 | </v-container> | 808 | </v-container> |
811 | </v-form> | 809 | </v-form> |
812 | </v-flex> | 810 | </v-flex> |
813 | </v-layout> | 811 | </v-layout> |
814 | </v-container> | 812 | </v-container> |
815 | </v-card> | 813 | </v-card> |
816 | </v-dialog> | 814 | </v-dialog> |
817 | <div class="loader" v-if="showLoader"> | 815 | <div class="loader" v-if="showLoader"> |
818 | <v-progress-circular indeterminate color="white"></v-progress-circular> | 816 | <v-progress-circular indeterminate color="white"></v-progress-circular> |
819 | </div> | 817 | </div> |
820 | <v-snackbar | 818 | <v-snackbar |
821 | :timeout="timeout" | 819 | :timeout="timeout" |
822 | :top="y === 'top'" | 820 | :top="y === 'top'" |
823 | :right="x === 'right'" | 821 | :right="x === 'right'" |
824 | :vertical="mode === 'vertical'" | 822 | :vertical="mode === 'vertical'" |
825 | v-model="snackbar" | 823 | v-model="snackbar" |
826 | color="success" | 824 | color="success" |
827 | >{{ text }}</v-snackbar> | 825 | >{{ text }}</v-snackbar> |
828 | </v-container> | 826 | </v-container> |
829 | </template> | 827 | </template> |
830 | 828 | ||
831 | <script> | 829 | <script> |
832 | import http from "@/Services/http.js"; | 830 | import http from "@/Services/http.js"; |
833 | import Util from "@/util"; | 831 | import Util from "@/util"; |
834 | import moment from "moment"; | 832 | import moment from "moment"; |
835 | 833 | ||
836 | export default { | 834 | export default { |
837 | data: () => ({ | 835 | data: () => ({ |
838 | e1: true, | 836 | e1: true, |
839 | showParent: true, | 837 | showParent: true, |
840 | snackbar: false, | 838 | snackbar: false, |
841 | role: "", | 839 | role: "", |
842 | // TEACHER: "", | 840 | // TEACHER: "", |
843 | y: "top", | 841 | y: "top", |
844 | x: "right", | 842 | x: "right", |
845 | color: "", | 843 | color: "", |
846 | mode: "", | 844 | mode: "", |
847 | timeout: 3000, | 845 | timeout: 3000, |
848 | text: "", | 846 | text: "", |
849 | show: true, | 847 | show: true, |
850 | showSearch: false, | 848 | showSearch: false, |
851 | showLoader: false, | 849 | showLoader: false, |
852 | loading: false, | 850 | loading: false, |
853 | date: null, | 851 | date: null, |
854 | search: "", | 852 | search: "", |
855 | password: "", | 853 | password: "", |
856 | addParentDialog: false, | 854 | addParentDialog: false, |
857 | menu: false, | 855 | menu: false, |
858 | menu1: false, | 856 | menu1: false, |
859 | editParentDilaog: false, | 857 | editParentDilaog: false, |
860 | profileParentDialog: false, | 858 | profileParentDialog: false, |
861 | viewProfileParentDialog: false, | 859 | viewProfileParentDialog: false, |
862 | valid: true, | 860 | valid: true, |
863 | validEditParent: true, | 861 | validEditParent: true, |
864 | pagination: { | 862 | pagination: { |
865 | rowsPerPage: 10 | 863 | rowsPerPage: 10 |
866 | }, | 864 | }, |
867 | fatherNameRules: [v => !!v || " Father Name is required"], | 865 | fatherNameRules: [v => !!v || " Father Name is required"], |
868 | fatheCellNoRules: [ | 866 | fatheCellNoRules: [ |
869 | v => !!v || " father Cell Number is required", | 867 | v => !!v || " father Cell Number is required", |
870 | v => v <= 10000000000 || "Max 10 characters is required" | 868 | v => v <= 10000000000 || "Max 10 characters is required" |
871 | ], | 869 | ], |
872 | password: [ | 870 | password: [ |
873 | v => !!v || "Password field is Required." | 871 | v => !!v || "Password field is Required." |
874 | // v => (/^(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{8,})/).test(v) && v.length >= 8 || 'Min 8 characters lower case symbol required' | 872 | // v => (/^(?=.*[a-z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{8,})/).test(v) && v.length >= 8 || 'Min 8 characters lower case symbol required' |
875 | ], | 873 | ], |
876 | editFatherNoRule: [ | 874 | editFatherNoRule: [ |
877 | v => !!v || " father Cell Number is required", | 875 | v => !!v || " father Cell Number is required", |
878 | v => v <= 10000000000 || "Max 10 characters is required" | 876 | v => v <= 10000000000 || "Max 10 characters is required" |
879 | ], | 877 | ], |
880 | 878 | ||
881 | editfatherCellNo: [v => !!v || " Father Name is required"], | 879 | editfatherCellNo: [v => !!v || " Father Name is required"], |
882 | errorMessages: "", | 880 | errorMessages: "", |
883 | emailRules: [ | 881 | emailRules: [ |
884 | v => !!v || "E-mail is required", | 882 | v => !!v || "E-mail is required", |
885 | v => | 883 | v => |
886 | /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) || | 884 | /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) || |
887 | "E-mail must be valid" | 885 | "E-mail must be valid" |
888 | ], | 886 | ], |
889 | headers: [ | 887 | headers: [ |
890 | { | 888 | { |
891 | text: "No", | 889 | text: "No", |
892 | align: "center", | 890 | align: "center", |
893 | sortable: false, | 891 | sortable: false, |
894 | value: "No" | 892 | value: "No" |
895 | }, | 893 | }, |
896 | { text: "Email", value: "email", sortable: false, align: "center" }, | 894 | { text: "Email", value: "email", sortable: false, align: "center" }, |
897 | { | 895 | { |
898 | text: "Father Name", | 896 | text: "Father Name", |
899 | value: "fatherName", | 897 | value: "fatherName", |
900 | sortable: false, | 898 | sortable: false, |
901 | align: "center" | 899 | align: "center" |
902 | }, | 900 | }, |
903 | { | 901 | { |
904 | text: "Father Cell No", | 902 | text: "Father Cell No", |
905 | value: "fatherName", | 903 | value: "fatherName", |
906 | sortable: false, | 904 | sortable: false, |
907 | align: "center" | 905 | align: "center" |
908 | }, | 906 | }, |
909 | { | 907 | { |
910 | text: "Mother Name", | 908 | text: "Mother Name", |
911 | value: "motherName", | 909 | value: "motherName", |
912 | sortable: false, | 910 | sortable: false, |
913 | align: "center" | 911 | align: "center" |
914 | }, | 912 | }, |
915 | { | 913 | { |
916 | text: "Mother Cell No", | 914 | text: "Mother Cell No", |
917 | value: "motherCellNo", | 915 | value: "motherCellNo", |
918 | sortable: false, | 916 | sortable: false, |
919 | align: "center" | 917 | align: "center" |
920 | }, | 918 | }, |
921 | { text: "Action", value: "", sortable: false, align: "center" } | 919 | { text: "Action", value: "", sortable: false, align: "center" } |
922 | ], | 920 | ], |
923 | parentsList: [], | 921 | parentsList: [], |
924 | editedIndex: -1, | 922 | editedIndex: -1, |
925 | parentData: {}, | 923 | parentData: {}, |
926 | max: 10, | 924 | max: 10, |
927 | editedItem: { | 925 | editedItem: { |
928 | fatherName: "", | 926 | fatherName: "", |
929 | fatherCellNo: "", | 927 | fatherCellNo: "", |
930 | motherName: "", | 928 | motherName: "", |
931 | motherCellNo: "", | 929 | motherCellNo: "", |
932 | email: "", | 930 | email: "", |
933 | password: "" | 931 | password: "" |
934 | } | 932 | } |
935 | }), | 933 | }), |
936 | watch: { | 934 | watch: { |
937 | menu(val) { | 935 | menu(val) { |
938 | val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR")); | 936 | val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR")); |
939 | }, | 937 | }, |
940 | menu1(val) { | 938 | menu1(val) { |
941 | val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR")); | 939 | val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR")); |
942 | } | 940 | } |
943 | }, | 941 | }, |
944 | methods: { | 942 | methods: { |
945 | editItem(item) { | 943 | editItem(item) { |
946 | this.editedIndex = this.parentsList.indexOf(item); | 944 | this.editedIndex = this.parentsList.indexOf(item); |
947 | this.editedItem = Object.assign({}, item); | 945 | this.editedItem = Object.assign({}, item); |
948 | this.editParentDilaog = true; | 946 | this.editParentDilaog = true; |
949 | }, | 947 | }, |
950 | profile(item) { | 948 | profile(item) { |
951 | this.editedIndex = this.parentsList.indexOf(item); | 949 | this.editedIndex = this.parentsList.indexOf(item); |
952 | this.editedItem = Object.assign({}, item); | 950 | this.editedItem = Object.assign({}, item); |
953 | this.profileParentDialog = true; | 951 | this.profileParentDialog = true; |
954 | }, | 952 | }, |
955 | close() { | 953 | close() { |
956 | this.editParentDilaog = false; | 954 | this.editParentDilaog = false; |
957 | }, | 955 | }, |
958 | closeProfile() { | 956 | closeProfile() { |
959 | this.profileParentDialog = false; | 957 | this.profileParentDialog = false; |
960 | }, | 958 | }, |
961 | clear() { | 959 | clear() { |
962 | this.$refs.parentForm.reset(); | 960 | this.$refs.parentForm.reset(); |
963 | }, | 961 | }, |
964 | save() { | 962 | save() { |
965 | if (this.$refs.editParentForm.validate()) { | 963 | if (this.$refs.editParentForm.validate()) { |
966 | this.editedItem.parentId = this.editedItem._id; | 964 | this.editedItem.parentId = this.editedItem._id; |
967 | http() | 965 | http() |
968 | .put("/updateParent", this.editedItem) | 966 | .put("/updateParent", this.editedItem) |
969 | .then(response => { | 967 | .then(response => { |
970 | this.snackbar = true; | 968 | this.snackbar = true; |
971 | this.color = "green"; | 969 | this.color = "green"; |
972 | this.text = response.data.message; | 970 | this.text = response.data.message; |
973 | this.getParentDetails(); | 971 | this.getParentDetails(); |
974 | this.close(); | 972 | this.close(); |
975 | }) | 973 | }) |
976 | .catch(error => { | 974 | .catch(error => { |
977 | this.snackbar = true; | 975 | this.snackbar = true; |
978 | this.color = "error"; | 976 | this.color = "error"; |
979 | this.text = error.response.data.message; | 977 | this.text = error.response.data.message; |
980 | if (error.response.data.statusText) { | 978 | if (error.response.data.statusText) { |
981 | this.text = error.response.data.statusText; | 979 | this.text = error.response.data.statusText; |
982 | } | 980 | } |
983 | }); | 981 | }); |
984 | } | 982 | } |
985 | }, | 983 | }, |
986 | async submitParentDetails() { | 984 | async submitParentDetails() { |
987 | if (this.$refs.parentForm.validate()) { | 985 | if (this.$refs.parentForm.validate()) { |
988 | this.parentData.role = "PARENT"; | 986 | this.parentData.role = "PARENT"; |
989 | this.loading = true; | 987 | this.loading = true; |
990 | await http() | 988 | await http() |
991 | .post("/createParent", this.parentData) | 989 | .post("/createParent", this.parentData) |
992 | .then(response => { | 990 | .then(response => { |
993 | this.parentId = response.data.data.id; | 991 | this.parentId = response.data.data.id; |
994 | this.snackbar = true; | 992 | this.snackbar = true; |
995 | this.color = "green"; | 993 | this.color = "green"; |
996 | this.text = response.data.message; | 994 | this.text = response.data.message; |
997 | this.getParentDetails(); | 995 | this.getParentDetails(); |
998 | this.clear(); | 996 | this.clear(); |
999 | this.loading = false; | 997 | this.loading = false; |
1000 | this.addParentDialog = false; | 998 | this.addParentDialog = false; |
1001 | }) | 999 | }) |
1002 | .catch(error => { | 1000 | .catch(error => { |
1003 | this.snackbar = true; | 1001 | this.snackbar = true; |
1004 | this.color = "error"; | 1002 | this.color = "error"; |
1005 | this.text = error.response.data.message; | 1003 | this.text = error.response.data.message; |
1006 | if (error.response.data.statusText) { | 1004 | if (error.response.data.statusText) { |
1007 | this.text = error.response.data.statusText; | 1005 | this.text = error.response.data.statusText; |
1008 | } | 1006 | } |
1009 | this.loading = false; | 1007 | this.loading = false; |
1010 | }); | 1008 | }); |
1011 | } | 1009 | } |
1012 | }, | 1010 | }, |
1013 | getParentDetails() { | 1011 | getParentDetails() { |
1014 | http() | 1012 | http() |
1015 | .get("getParentsList", { | 1013 | .get("getParentsList", { |
1016 | headers: { | 1014 | headers: { |
1017 | Authorization: "Bearer " + this.$store.state.token | 1015 | Authorization: "Bearer " + this.$store.state.token |
1018 | } | 1016 | } |
1019 | }) | 1017 | }) |
1020 | .then(response => { | 1018 | .then(response => { |
1021 | this.parentsList = response.data.data; | 1019 | this.parentsList = response.data.data; |
1022 | }) | 1020 | }) |
1023 | .catch(error => { | 1021 | .catch(error => { |
1024 | // console.log("err====>", error.response.data.message); | 1022 | // console.log("err====>", error.response.data.message); |
1025 | this.showLoader = false; | 1023 | this.showLoader = false; |
1026 | if (error.response.status === 401) { | 1024 | if (error.response.status === 401) { |
1027 | this.$router.replace({ path: "/" }); | 1025 | this.$router.replace({ path: "/" }); |
1028 | this.$store.dispatch("setToken", null); | 1026 | this.$store.dispatch("setToken", null); |
1029 | this.$store.dispatch("Id", null); | 1027 | this.$store.dispatch("Id", null); |
1030 | this.$store.dispatch("Role", null); | 1028 | this.$store.dispatch("Role", null); |
1031 | } | 1029 | } |
1032 | }); | 1030 | }); |
1033 | }, | 1031 | }, |
1034 | displaySearch() { | 1032 | displaySearch() { |
1035 | (this.show = false), (this.showSearch = true); | 1033 | (this.show = false), (this.showSearch = true); |
1036 | }, | 1034 | }, |
1037 | closeSearch() { | 1035 | closeSearch() { |
1038 | this.showSearch = false; | 1036 | this.showSearch = false; |
1039 | this.show = true; | 1037 | this.show = true; |
1040 | this.search = ""; | 1038 | this.search = ""; |
1041 | } | 1039 | } |
1042 | }, | 1040 | }, |
1043 | mounted() { | 1041 | mounted() { |
1044 | this.getParentDetails(); | 1042 | this.getParentDetails(); |
1045 | // console.log("role", this.$store.state.role); | 1043 | // console.log("role", this.$store.state.role); |
1046 | this.role = this.$store.state.role; | 1044 | this.role = this.$store.state.role; |
1047 | } | 1045 | } |
1048 | }; | 1046 | }; |
1049 | </script> | 1047 | </script> |
src/router/paths.js
1 | export default [{ | 1 | export default [{ |
2 | path: '*', | 2 | path: '*', |
3 | meta: { | 3 | meta: { |
4 | public: true, | 4 | public: true, |
5 | }, | 5 | }, |
6 | redirect: { | 6 | redirect: { |
7 | path: '/404' | 7 | path: '/404' |
8 | } | 8 | } |
9 | }, | 9 | }, |
10 | { | 10 | { |
11 | path: '/404', | 11 | path: '/404', |
12 | meta: { | 12 | meta: { |
13 | public: true, | 13 | public: true, |
14 | }, | 14 | }, |
15 | name: 'NotFound', | 15 | name: 'NotFound', |
16 | component: () => | 16 | component: () => |
17 | import ( | 17 | import ( |
18 | /* webpackChunkName: "routes" */ | 18 | /* webpackChunkName: "routes" */ |
19 | /* webpackMode: "lazy-once" */ | 19 | /* webpackMode: "lazy-once" */ |
20 | `@/pages/NotFound/NotFound.vue` | 20 | `@/pages/NotFound/NotFound.vue` |
21 | ) | 21 | ) |
22 | }, | 22 | }, |
23 | { | 23 | { |
24 | path: '*', | 24 | path: '*', |
25 | meta: {}, | 25 | meta: {}, |
26 | name: 'dashboardAdmin', | 26 | name: 'dashboardAdmin', |
27 | props: (route) => ({ type: route.query.type }), | 27 | props: (route) => ({ type: route.query.type }), |
28 | component: () => | 28 | component: () => |
29 | import ( | 29 | import ( |
30 | /* webpackChunkName: "routes" */ | 30 | /* webpackChunkName: "routes" */ |
31 | /* webpackMode: "lazy-once" */ | 31 | /* webpackMode: "lazy-once" */ |
32 | `@/pages/Dashboard/dashboard.vue` | 32 | `@/pages/Dashboard/dashboard.vue` |
33 | ) | 33 | ) |
34 | }, | 34 | }, |
35 | { | 35 | { |
36 | path: '/500', | 36 | path: '/500', |
37 | meta: { | 37 | meta: { |
38 | public: true, | 38 | public: true, |
39 | }, | 39 | }, |
40 | name: 'ServerError', | 40 | name: 'ServerError', |
41 | component: () => | 41 | component: () => |
42 | import ( | 42 | import ( |
43 | /* webpackChunkName: "routes" */ | 43 | /* webpackChunkName: "routes" */ |
44 | /* webpackMode: "lazy-once" */ | 44 | /* webpackMode: "lazy-once" */ |
45 | `@/pages/NotFound/Error.vue` | 45 | `@/pages/NotFound/Error.vue` |
46 | ) | 46 | ) |
47 | }, | 47 | }, |
48 | { | 48 | { |
49 | path: '/changepassword', | 49 | path: '/changepassword', |
50 | meta: {}, | 50 | meta: {}, |
51 | name: 'changepassword', | 51 | name: 'changepassword', |
52 | props: (route) => ({ type: route.query.type }), | 52 | props: (route) => ({ type: route.query.type }), |
53 | component: () => | 53 | component: () => |
54 | import ( | 54 | import ( |
55 | /* webpackChunkName: "routes" */ | 55 | /* webpackChunkName: "routes" */ |
56 | /* webpackMode: "lazy-once" */ | 56 | /* webpackMode: "lazy-once" */ |
57 | `@/pages/Authentication/changepassword.vue` | 57 | `@/pages/Authentication/changepassword.vue` |
58 | ) | 58 | ) |
59 | }, | 59 | }, |
60 | { | 60 | { |
61 | path: '/teachers', | 61 | path: '/teachers', |
62 | meta: { breadcrumb: false }, | 62 | meta: { breadcrumb: false }, |
63 | name: 'Teachers', | 63 | name: 'Teachers', |
64 | component: () => | 64 | component: () => |
65 | import ( | 65 | import ( |
66 | /* webpackChunkName: "routes" */ | 66 | /* webpackChunkName: "routes" */ |
67 | /* webpackMode: "lazy-once" */ | 67 | /* webpackMode: "lazy-once" */ |
68 | `@/pages/Teachers/teachers.vue` | 68 | `@/pages/Teachers/teachers.vue` |
69 | ) | 69 | ) |
70 | }, | 70 | }, |
71 | { | 71 | { |
72 | path: '/', | 72 | path: '/', |
73 | meta: { | 73 | meta: { |
74 | public: true, | 74 | public: true, |
75 | }, | 75 | }, |
76 | name: 'Login', | 76 | name: 'Login', |
77 | component: () => | 77 | component: () => |
78 | import ( | 78 | import ( |
79 | /* webpackChunkName: "routes" */ | 79 | /* webpackChunkName: "routes" */ |
80 | /* webpackMode: "lazy-once" */ | 80 | /* webpackMode: "lazy-once" */ |
81 | `@/pages/Authentication/Login.vue` | 81 | `@/pages/Authentication/Login.vue` |
82 | ) | 82 | ) |
83 | }, | 83 | }, |
84 | { | 84 | { |
85 | path: '/forgetpassword', | 85 | path: '/forgetpassword', |
86 | meta: { | 86 | meta: { |
87 | public: true, | 87 | public: true, |
88 | }, | 88 | }, |
89 | name: 'forgetpassword', | 89 | name: 'forgetpassword', |
90 | component: () => | 90 | component: () => |
91 | import ( | 91 | import ( |
92 | /* webpackChunkName: "routes" */ | 92 | /* webpackChunkName: "routes" */ |
93 | /* webpackMode: "lazy-once" */ | 93 | /* webpackMode: "lazy-once" */ |
94 | `@/pages/Authentication/forgetpassword.vue` | 94 | `@/pages/Authentication/forgetpassword.vue` |
95 | ) | 95 | ) |
96 | }, | 96 | }, |
97 | { | 97 | { |
98 | path: '/students', | 98 | path: '/students', |
99 | meta: {}, | 99 | meta: {}, |
100 | name: 'Students', | 100 | name: 'Students', |
101 | props: (route) => ({ type: route.query.type }), | 101 | props: (route) => ({ type: route.query.type }), |
102 | component: () => | 102 | component: () => |
103 | import ( | 103 | import ( |
104 | /* webpackChunkName: "routes" */ | 104 | /* webpackChunkName: "routes" */ |
105 | /* webpackMode: "lazy-once" */ | 105 | /* webpackMode: "lazy-once" */ |
106 | `@/pages/Students/students.vue` | 106 | `@/pages/Students/students.vue` |
107 | ) | 107 | ) |
108 | }, | 108 | }, |
109 | { | 109 | { |
110 | path: '/class', | 110 | path: '/class', |
111 | meta: {}, | 111 | meta: {}, |
112 | name: 'Class', | 112 | name: 'Class', |
113 | props: (route) => ({ type: route.query.type }), | 113 | props: (route) => ({ type: route.query.type }), |
114 | component: () => | 114 | component: () => |
115 | import ( | 115 | import ( |
116 | /* webpackChunkName: "routes" */ | 116 | /* webpackChunkName: "routes" */ |
117 | /* webpackMode: "lazy-once" */ | 117 | /* webpackMode: "lazy-once" */ |
118 | `@/pages/Class/addclass.vue` | 118 | `@/pages/Class/addclass.vue` |
119 | ) | 119 | ) |
120 | }, | 120 | }, |
121 | { | 121 | { |
122 | path: '/section', | 122 | path: '/section', |
123 | meta: {}, | 123 | meta: {}, |
124 | name: 'Section', | 124 | name: 'Section', |
125 | props: (route) => ({ type: route.query.type }), | 125 | props: (route) => ({ type: route.query.type }), |
126 | component: () => | 126 | component: () => |
127 | import ( | 127 | import ( |
128 | /* webpackChunkName: "routes" */ | 128 | /* webpackChunkName: "routes" */ |
129 | /* webpackMode: "lazy-once" */ | 129 | /* webpackMode: "lazy-once" */ |
130 | `@/pages/Section/section.vue` | 130 | `@/pages/Section/section.vue` |
131 | ) | 131 | ) |
132 | }, | 132 | }, |
133 | { | 133 | { |
134 | path: '/noticeBoard', | 134 | path: '/noticeBoard', |
135 | meta: {}, | 135 | meta: {}, |
136 | name: 'Notice Board', | 136 | name: 'Notice Board', |
137 | props: (route) => ({ type: route.query.type }), | 137 | props: (route) => ({ type: route.query.type }), |
138 | component: () => | 138 | component: () => |
139 | import ( | 139 | import ( |
140 | /* webpackChunkName: "routes" */ | 140 | /* webpackChunkName: "routes" */ |
141 | /* webpackMode: "lazy-once" */ | 141 | /* webpackMode: "lazy-once" */ |
142 | `@/pages/NoticeBoard/noticeBoard.vue` | 142 | `@/pages/NoticeBoard/noticeBoard.vue` |
143 | ) | 143 | ) |
144 | }, | 144 | }, |
145 | { | 145 | { |
146 | path: '/news', | 146 | path: '/news', |
147 | meta: {}, | 147 | meta: {}, |
148 | name: 'News', | 148 | name: 'News', |
149 | props: (route) => ({ type: route.query.type }), | 149 | props: (route) => ({ type: route.query.type }), |
150 | component: () => | 150 | component: () => |
151 | import ( | 151 | import ( |
152 | /* webpackChunkName: "routes" */ | 152 | /* webpackChunkName: "routes" */ |
153 | /* webpackMode: "lazy-once" */ | 153 | /* webpackMode: "lazy-once" */ |
154 | `@/pages/News/news.vue` | 154 | `@/pages/News/news.vue` |
155 | ) | 155 | ) |
156 | }, | 156 | }, |
157 | // { | 157 | // { |
158 | // path: '/reminder', | 158 | // path: '/reminder', |
159 | // meta: { }, | 159 | // meta: { }, |
160 | // name: 'reminder', | 160 | // name: 'reminder', |
161 | // props: (route) => ({ type: route.query.type }), | 161 | // props: (route) => ({ type: route.query.type }), |
162 | // component: () => import( | 162 | // component: () => import( |
163 | // /* webpackChunkName: "routes" */ | 163 | // /* webpackChunkName: "routes" */ |
164 | // /* webpackMode: "lazy-once" */ | 164 | // /* webpackMode: "lazy-once" */ |
165 | // `@/pages/Reminder/reminder.vue` | 165 | // `@/pages/Reminder/reminder.vue` |
166 | // ) | 166 | // ) |
167 | // }, | 167 | // }, |
168 | { | 168 | { |
169 | path: '/timeTable', | 169 | path: '/timeTable', |
170 | meta: {}, | 170 | meta: {}, |
171 | name: 'Time Table', | 171 | name: 'Time Table', |
172 | props: (route) => ({ type: route.query.type }), | 172 | props: (route) => ({ type: route.query.type }), |
173 | component: () => | 173 | component: () => |
174 | import ( | 174 | import ( |
175 | /* webpackChunkName: "routes" */ | 175 | /* webpackChunkName: "routes" */ |
176 | /* webpackMode: "lazy-once" */ | 176 | /* webpackMode: "lazy-once" */ |
177 | `@/pages/TimeTable/timeTable.vue` | 177 | `@/pages/TimeTable/timeTable.vue` |
178 | ) | 178 | ) |
179 | }, | 179 | }, |
180 | { | 180 | { |
181 | path: '/notification', | 181 | path: '/notification', |
182 | meta: {}, | 182 | meta: {}, |
183 | name: 'Notification', | 183 | name: 'Notification', |
184 | props: (route) => ({ type: route.query.type }), | 184 | props: (route) => ({ type: route.query.type }), |
185 | component: () => | 185 | component: () => |
186 | import ( | 186 | import ( |
187 | /* webpackChunkName: "routes" */ | 187 | /* webpackChunkName: "routes" */ |
188 | /* webpackMode: "lazy-once" */ | 188 | /* webpackMode: "lazy-once" */ |
189 | `@/pages/Notification/notification.vue` | 189 | `@/pages/Notification/notification.vue` |
190 | ) | 190 | ) |
191 | }, | 191 | }, |
192 | { | 192 | { |
193 | path: '/parents', | 193 | path: '/parents', |
194 | meta: {}, | 194 | meta: {}, |
195 | name: 'Parents', | 195 | name: 'Parents', |
196 | props: (route) => ({ type: route.query.type }), | 196 | props: (route) => ({ type: route.query.type }), |
197 | component: () => | 197 | component: () => |
198 | import ( | 198 | import ( |
199 | /* webpackChunkName: "routes" */ | 199 | /* webpackChunkName: "routes" */ |
200 | /* webpackMode: "lazy-once" */ | 200 | /* webpackMode: "lazy-once" */ |
201 | `@/pages/Parent/parents.vue` | 201 | `@/pages/Parent/parents.vue` |
202 | ) | 202 | ) |
203 | }, | 203 | }, |
204 | // { | 204 | // { |
205 | // path: '/subject', | 205 | // path: '/subject', |
206 | // meta: {}, | 206 | // meta: {}, |
207 | // name: 'Subject', | 207 | // name: 'Subject', |
208 | // props: (route) => ({ type: route.query.type }), | 208 | // props: (route) => ({ type: route.query.type }), |
209 | // component: () => | 209 | // component: () => |
210 | // import ( | 210 | // import ( |
211 | // /* webpackChunkName: "routes" */ | 211 | // /* webpackChunkName: "routes" */ |
212 | // /* webpackMode: "lazy-once" */ | 212 | // /* webpackMode: "lazy-once" */ |
213 | // `@/pages/Subjects/subjects.vue` | 213 | // `@/pages/Subjects/subjects.vue` |
214 | // ) | 214 | // ) |
215 | // }, | 215 | // }, |
216 | { | 216 | { |
217 | path: '/dashboard', | 217 | path: '/dashboard', |
218 | meta: {}, | 218 | meta: {}, |
219 | name: 'Dashboard', | 219 | name: 'Dashboard', |
220 | props: (route) => ({ type: route.query.type }), | 220 | props: (route) => ({ type: route.query.type }), |
221 | component: () => | 221 | component: () => |
222 | import ( | 222 | import ( |
223 | /* webpackChunkName: "routes" */ | 223 | /* webpackChunkName: "routes" */ |
224 | /* webpackMode: "lazy-once" */ | 224 | /* webpackMode: "lazy-once" */ |
225 | `@/pages/Dashboard/dashboard.vue` | 225 | `@/pages/Dashboard/dashboard.vue` |
226 | ) | 226 | ) |
227 | }, | 227 | }, |
228 | { | 228 | { |
229 | path: '/socialMedia', | 229 | path: '/socialMedia', |
230 | meta: {}, | 230 | meta: {}, |
231 | name: 'Social Media', | 231 | name: 'Social Media', |
232 | props: (route) => ({ type: route.query.type }), | 232 | props: (route) => ({ type: route.query.type }), |
233 | component: () => | 233 | component: () => |
234 | import ( | 234 | import ( |
235 | /* webpackChunkName: "routes" */ | 235 | /* webpackChunkName: "routes" */ |
236 | /* webpackMode: "lazy-once" */ | 236 | /* webpackMode: "lazy-once" */ |
237 | `@/pages/socialMedia/socialMedia.vue` | 237 | `@/pages/socialMedia/socialMedia.vue` |
238 | ) | 238 | ) |
239 | }, | 239 | }, |
240 | { | 240 | { |
241 | path: '/gallery', | 241 | path: '/gallery', |
242 | meta: {}, | 242 | meta: {}, |
243 | name: 'Gallery', | 243 | name: 'Gallery', |
244 | props: (route) => ({ type: route.query.type }), | 244 | props: (route) => ({ type: route.query.type }), |
245 | component: () => | 245 | component: () => |
246 | import ( | 246 | import ( |
247 | /* webpackChunkName: "routes" */ | 247 | /* webpackChunkName: "routes" */ |
248 | /* webpackMode: "lazy-once" */ | 248 | /* webpackMode: "lazy-once" */ |
249 | `@/pages/Gallery/gallery.vue` | 249 | `@/pages/Gallery/gallery.vue` |
250 | ) | 250 | ) |
251 | }, | 251 | }, |
252 | { | 252 | { |
253 | path: '/event', | 253 | path: '/event', |
254 | meta: {}, | 254 | meta: {}, |
255 | name: 'Event', | 255 | name: 'Event', |
256 | props: (route) => ({ type: route.query.type }), | 256 | props: (route) => ({ type: route.query.type }), |
257 | component: () => | 257 | component: () => |
258 | import ( | 258 | import ( |
259 | /* webpackChunkName: "routes" */ | 259 | /* webpackChunkName: "routes" */ |
260 | /* webpackMode: "lazy-once" */ | 260 | /* webpackMode: "lazy-once" */ |
261 | `@/pages/Event/event.vue` | 261 | `@/pages/Event/event.vue` |
262 | ) | 262 | ) |
263 | }, | 263 | }, |
264 | { | 264 | { |
265 | path: '/holiday', | 265 | path: '/holiday', |
266 | meta: {}, | 266 | meta: {}, |
267 | name: 'Holiday', | 267 | name: 'Holiday', |
268 | props: (route) => ({ type: route.query.type }), | 268 | props: (route) => ({ type: route.query.type }), |
269 | component: () => | 269 | component: () => |
270 | import ( | 270 | import ( |
271 | /* webpackChunkName: "routes" */ | 271 | /* webpackChunkName: "routes" */ |
272 | /* webpackMode: "lazy-once" */ | 272 | /* webpackMode: "lazy-once" */ |
273 | `@/pages/Holiday/holiday.vue` | 273 | `@/pages/Holiday/holiday.vue` |
274 | ) | 274 | ) |
275 | }, | 275 | }, |
276 | { | 276 | { |
277 | path: '/user', | 277 | path: '/user', |
278 | meta: {}, | 278 | meta: {}, |
279 | name: 'User', | 279 | name: 'User', |
280 | props: (route) => ({ type: route.query.type }), | 280 | props: (route) => ({ type: route.query.type }), |
281 | component: () => | 281 | component: () => |
282 | import ( | 282 | import ( |
283 | /* webpackChunkName: "routes" */ | 283 | /* webpackChunkName: "routes" */ |
284 | /* webpackMode: "lazy-once" */ | 284 | /* webpackMode: "lazy-once" */ |
285 | `@/pages/User/user.vue` | 285 | `@/pages/User/user.vue` |
286 | ) | 286 | ) |
287 | }, | 287 | }, |
288 | { | 288 | { |
289 | path: '/AttendenceStudent', | 289 | path: '/AttendenceStudent', |
290 | meta: {}, | 290 | meta: {}, |
291 | name: 'Student Attendence', | 291 | name: 'Student Attendence', |
292 | props: (route) => ({ type: route.query.type }), | 292 | props: (route) => ({ type: route.query.type }), |
293 | component: () => | 293 | component: () => |
294 | import ( | 294 | import ( |
295 | /* webpackChunkName: "routes" */ | 295 | /* webpackChunkName: "routes" */ |
296 | /* webpackMode: "lazy-once" */ | 296 | /* webpackMode: "lazy-once" */ |
297 | `@/pages/Attendence/studentAttendence.vue` | 297 | `@/pages/Attendence/studentAttendence.vue` |
298 | ) | 298 | ) |
299 | }, | 299 | }, |
300 | { | 300 | { |
301 | path: '/AttendenceTeacher', | 301 | path: '/AttendenceTeacher', |
302 | meta: {}, | 302 | meta: {}, |
303 | name: 'Teacher Attendence', | 303 | name: 'Teacher Attendence', |
304 | props: (route) => ({ type: route.query.type }), | 304 | props: (route) => ({ type: route.query.type }), |
305 | component: () => | 305 | component: () => |
306 | import ( | 306 | import ( |
307 | /* webpackChunkName: "routes" */ | 307 | /* webpackChunkName: "routes" */ |
308 | /* webpackMode: "lazy-once" */ | 308 | /* webpackMode: "lazy-once" */ |
309 | `@/pages/Attendence/teacherAttendence.vue` | 309 | `@/pages/Attendence/teacherAttendence.vue` |
310 | ) | 310 | ) |
311 | }, | 311 | }, |
312 | { | 312 | { |
313 | path: '/salaryTemplate', | 313 | path: '/salaryTemplate', |
314 | meta: {}, | 314 | meta: {}, |
315 | name: 'Salary Template', | 315 | name: 'Salary Template', |
316 | props: (route) => ({ type: route.query.type }), | 316 | props: (route) => ({ type: route.query.type }), |
317 | component: () => | 317 | component: () => |
318 | import ( | 318 | import ( |
319 | `@/pages/Payroll/salaryTemplate.vue` | 319 | `@/pages/Payroll/salaryTemplate.vue` |
320 | ) | 320 | ) |
321 | }, | 321 | }, |
322 | { | 322 | { |
323 | path: '/hourlyTemplate', | 323 | path: '/hourlyTemplate', |
324 | meta: {}, | 324 | meta: {}, |
325 | name: 'Hourly Template', | 325 | name: 'Hourly Template', |
326 | props: (route) => ({ type: route.query.type }), | 326 | props: (route) => ({ type: route.query.type }), |
327 | component: () => | 327 | component: () => |
328 | import ( | 328 | import ( |
329 | `@/pages/Payroll/hourlyTemplate.vue` | 329 | `@/pages/Payroll/hourlyTemplate.vue` |
330 | ) | 330 | ) |
331 | }, | 331 | }, |
332 | { | 332 | { |
333 | path: '/manageSalary', | 333 | path: '/manageSalary', |
334 | meta: {}, | 334 | meta: {}, |
335 | name: 'Manage Salary', | 335 | name: 'Manage Salary', |
336 | props: (route) => ({ type: route.query.type }), | 336 | props: (route) => ({ type: route.query.type }), |
337 | component: () => | 337 | component: () => |
338 | import ( | 338 | import ( |
339 | `@/pages/Payroll/manageSalary.vue` | 339 | `@/pages/Payroll/manageSalary.vue` |
340 | ) | 340 | ) |
341 | }, | 341 | }, |
342 | // { | 342 | // { |
343 | // path: '/makePayment', | 343 | // path: '/makePayment', |
344 | // meta: {}, | 344 | // meta: {}, |
345 | // name: 'Make Payment', | 345 | // name: 'Make Payment', |
346 | // props: (route) => ({ type: route.query.type }), | 346 | // props: (route) => ({ type: route.query.type }), |
347 | // component: () => | 347 | // component: () => |
348 | // import ( | 348 | // import ( |
349 | // `@/pages/Payroll/makePayment.vue` | 349 | // `@/pages/Payroll/makePayment.vue` |
350 | // ) | 350 | // ) |
351 | // }, | 351 | // }, |
352 | { | 352 | { |
353 | path: '/AttendenceUser', | 353 | path: '/AttendenceUser', |
354 | meta: {}, | 354 | meta: {}, |
355 | name: 'User Attendence', | 355 | name: 'User Attendence', |
356 | props: (route) => ({ type: route.query.type }), | 356 | props: (route) => ({ type: route.query.type }), |
357 | component: () => | 357 | component: () => |
358 | import ( | 358 | import ( |
359 | /* webpackChunkName: "routes" */ | 359 | /* webpackChunkName: "routes" */ |
360 | /* webpackMode: "lazy-once" */ | 360 | /* webpackMode: "lazy-once" */ |
361 | `@/pages/Attendence/userAttendence.vue` | 361 | `@/pages/Attendence/userAttendence.vue` |
362 | ) | 362 | ) |
363 | }, | 363 | }, |
364 | { | 364 | { |
365 | path: '/feeTypes', | 365 | path: '/feeTypes', |
366 | meta: {}, | 366 | meta: {}, |
367 | name: 'Fee Types', | 367 | name: 'Fee Types', |
368 | props: (route) => ({ type: route.query.type }), | 368 | props: (route) => ({ type: route.query.type }), |
369 | component: () => | 369 | component: () => |
370 | import ( | 370 | import ( |
371 | /* webpackChunkName: "routes" */ | 371 | /* webpackChunkName: "routes" */ |
372 | /* webpackMode: "lazy-once" */ | 372 | /* webpackMode: "lazy-once" */ |
373 | `@/pages/Account/feeTypes.vue` | 373 | `@/pages/Account/feeTypes.vue` |
374 | ) | 374 | ) |
375 | }, | 375 | }, |
376 | { | 376 | { |
377 | path: '/invoice', | 377 | path: '/invoice', |
378 | meta: {}, | 378 | meta: {}, |
379 | name: 'Invoice', | 379 | name: 'Invoice', |
380 | props: (route) => ({ type: route.query.type }), | 380 | props: (route) => ({ type: route.query.type }), |
381 | component: () => | 381 | component: () => |
382 | import ( | 382 | import ( |
383 | /* webpackChunkName: "routes" */ | 383 | /* webpackChunkName: "routes" */ |
384 | /* webpackMode: "lazy-once" */ | 384 | /* webpackMode: "lazy-once" */ |
385 | `@/pages/Account/invoice.vue` | 385 | `@/pages/Account/invoice.vue` |
386 | ) | 386 | ) |
387 | }, | 387 | }, |
388 | { | 388 | { |
389 | path: '/paymentHistory', | 389 | path: '/paymentHistory', |
390 | meta: {}, | 390 | meta: {}, |
391 | name: 'Payment History', | 391 | name: 'Payment History', |
392 | props: (route) => ({ type: route.query.type }), | 392 | props: (route) => ({ type: route.query.type }), |
393 | component: () => | 393 | component: () => |
394 | import ( | 394 | import ( |
395 | /* webpackChunkName: "routes" */ | 395 | /* webpackChunkName: "routes" */ |
396 | /* webpackMode: "lazy-once" */ | 396 | /* webpackMode: "lazy-once" */ |
397 | `@/pages/Account/paymentHistory.vue` | 397 | `@/pages/Account/paymentHistory.vue` |
398 | ) | 398 | ) |
399 | }, | 399 | }, |
400 | { | 400 | { |
401 | path: '/expense', | 401 | path: '/expense', |
402 | meta: {}, | 402 | meta: {}, |
403 | name: 'Expense', | 403 | name: 'Expense', |
404 | props: (route) => ({ type: route.query.type }), | 404 | props: (route) => ({ type: route.query.type }), |
405 | component: () => | 405 | component: () => |
406 | import ( | 406 | import ( |
407 | /* webpackChunkName: "routes" */ | 407 | /* webpackChunkName: "routes" */ |
408 | /* webpackMode: "lazy-once" */ | 408 | /* webpackMode: "lazy-once" */ |
409 | `@/pages/Account/expense.vue` | 409 | `@/pages/Account/expense.vue` |
410 | ) | 410 | ) |
411 | }, | 411 | }, |
412 | { | 412 | { |
413 | path: '/income', | 413 | path: '/income', |
414 | meta: {}, | 414 | meta: {}, |
415 | name: 'Income', | 415 | name: 'Income', |
416 | props: (route) => ({ type: route.query.type }), | 416 | props: (route) => ({ type: route.query.type }), |
417 | component: () => | 417 | component: () => |
418 | import ( | 418 | import ( |
419 | /* webpackChunkName: "routes" */ | 419 | /* webpackChunkName: "routes" */ |
420 | /* webpackMode: "lazy-once" */ | 420 | /* webpackMode: "lazy-once" */ |
421 | `@/pages/Account/income.vue` | 421 | `@/pages/Account/income.vue` |
422 | ) | 422 | ) |
423 | }, | 423 | }, |
424 | { | 424 | { |
425 | path: '/libraryMember', | 425 | path: '/libraryMember', |
426 | meta: {}, | 426 | meta: {}, |
427 | name: 'Library Member', | 427 | name: 'Library Member', |
428 | props: (route) => ({ type: route.query.type }), | 428 | props: (route) => ({ type: route.query.type }), |
429 | component: () => | 429 | component: () => |
430 | import ( | 430 | import ( |
431 | /* webpackChunkName: "routes" */ | 431 | /* webpackChunkName: "routes" */ |
432 | /* webpackMode: "lazy-once" */ | 432 | /* webpackMode: "lazy-once" */ |
433 | `@/pages/Library/member.vue` | 433 | `@/pages/Library/member.vue` |
434 | ) | 434 | ) |
435 | }, | 435 | }, |
436 | { | 436 | { |
437 | path: '/books', | 437 | path: '/books', |
438 | meta: {}, | 438 | meta: {}, |
439 | name: 'Books', | 439 | name: 'Books', |
440 | props: (route) => ({ type: route.query.type }), | 440 | props: (route) => ({ type: route.query.type }), |
441 | component: () => | 441 | component: () => |
442 | import ( | 442 | import ( |
443 | /* webpackChunkName: "routes" */ | 443 | /* webpackChunkName: "routes" */ |
444 | /* webpackMode: "lazy-once" */ | 444 | /* webpackMode: "lazy-once" */ |
445 | `@/pages/Library/books.vue` | 445 | `@/pages/Library/books.vue` |
446 | ) | 446 | ) |
447 | }, | 447 | }, |
448 | { | 448 | { |
449 | path: '/issue', | 449 | path: '/issue', |
450 | meta: {}, | 450 | meta: {}, |
451 | name: 'Issue', | 451 | name: 'Issue', |
452 | props: (route) => ({ type: route.query.type }), | 452 | props: (route) => ({ type: route.query.type }), |
453 | component: () => | 453 | component: () => |
454 | import ( | 454 | import ( |
455 | /* webpackChunkName: "routes" */ | 455 | /* webpackChunkName: "routes" */ |
456 | /* webpackMode: "lazy-once" */ | 456 | /* webpackMode: "lazy-once" */ |
457 | `@/pages/Library/issue.vue` | 457 | `@/pages/Library/issue.vue` |
458 | ) | 458 | ) |
459 | }, | 459 | }, |
460 | { | 460 | { |
461 | path: '/e-books', | 461 | path: '/e-books', |
462 | meta: {}, | 462 | meta: {}, |
463 | name: 'E-Books', | 463 | name: 'E-Books', |
464 | props: (route) => ({ type: route.query.type }), | 464 | props: (route) => ({ type: route.query.type }), |
465 | component: () => | 465 | component: () => |
466 | import ( | 466 | import ( |
467 | /* webpackChunkName: "routes" */ | 467 | /* webpackChunkName: "routes" */ |
468 | /* webpackMode: "lazy-once" */ | 468 | /* webpackMode: "lazy-once" */ |
469 | `@/pages/Library/eBook.vue` | 469 | `@/pages/Library/eBook.vue` |
470 | ) | 470 | ) |
471 | }, | 471 | }, |
472 | { | 472 | { |
473 | path: '/editInvoice/:invoiceid', | 473 | path: '/editInvoice/:invoiceid', |
474 | meta: {}, | 474 | meta: {}, |
475 | name: 'Edit Invoice', | 475 | name: 'Edit Invoice', |
476 | // props: (route) => ({ type: route.query.type }), | 476 | // props: (route) => ({ type: route.query.type }), |
477 | component: () => | 477 | component: () => |
478 | import ( | 478 | import ( |
479 | /* webpackChunkName: "routes" */ | 479 | /* webpackChunkName: "routes" */ |
480 | /* webpackMode: "lazy-once" */ | 480 | /* webpackMode: "lazy-once" */ |
481 | `@/pages/Account/editInvoice.vue` | 481 | `@/pages/Account/editInvoice.vue` |
482 | ) | 482 | ) |
483 | }, | 483 | }, |
484 | { | 484 | { |
485 | path: '/StudentsAttendence/:id', | 485 | path: '/StudentsAttendence/:id', |
486 | meta: {}, | 486 | meta: {}, |
487 | name: 'View Students Attendence', | 487 | name: 'View Students Attendence', |
488 | props: (route) => ({ type: route.query.type }), | 488 | props: (route) => ({ type: route.query.type }), |
489 | component: () => | 489 | component: () => |
490 | import ( | 490 | import ( |
491 | /* webpackChunkName: "routes" */ | 491 | /* webpackChunkName: "routes" */ |
492 | /* webpackMode: "lazy-once" */ | 492 | /* webpackMode: "lazy-once" */ |
493 | `@/pages/Attendence/viewStudentsAttendence.vue` | 493 | `@/pages/Attendence/viewStudentsAttendence.vue` |
494 | ) | 494 | ) |
495 | }, | 495 | }, |
496 | { | 496 | { |
497 | path: '/TeacherAttendence/:teacherId', | 497 | path: '/TeacherAttendence/:teacherId', |
498 | meta: {}, | 498 | meta: {}, |
499 | name: 'View Teacher Attendence', | 499 | name: 'View Teacher Attendence', |
500 | props: (route) => ({ type: route.query.type }), | 500 | props: (route) => ({ type: route.query.type }), |
501 | component: () => | 501 | component: () => |
502 | import ( | 502 | import ( |
503 | /* webpackChunkName: "routes" */ | 503 | /* webpackChunkName: "routes" */ |
504 | /* webpackMode: "lazy-once" */ | 504 | /* webpackMode: "lazy-once" */ |
505 | `@/pages/Attendence/viewTeacherAttendence.vue` | 505 | `@/pages/Attendence/viewTeacherAttendence.vue` |
506 | ) | 506 | ) |
507 | }, | 507 | }, |
508 | { | 508 | { |
509 | path: '/viewInvoice/:viewInvoiceId', | 509 | path: '/viewInvoice/:viewInvoiceId', |
510 | meta: {}, | 510 | meta: {}, |
511 | name: 'View Invoice', | 511 | name: 'View Invoice', |
512 | props: (route) => ({ type: route.query.type }), | 512 | props: (route) => ({ type: route.query.type }), |
513 | component: () => | 513 | component: () => |
514 | import ( | 514 | import ( |
515 | /* webpackChunkName: "routes" */ | 515 | /* webpackChunkName: "routes" */ |
516 | /* webpackMode: "lazy-once" */ | 516 | /* webpackMode: "lazy-once" */ |
517 | `@/pages/Account/viewInvoice.vue` | 517 | `@/pages/Account/viewInvoice.vue` |
518 | ) | 518 | ) |
519 | }, | 519 | }, |
520 | { | 520 | { |
521 | path: '/viewPaymentInvoice/:viewPaymentInvoiceId', | 521 | path: '/viewPaymentInvoice/:viewPaymentInvoiceId', |
522 | meta: {}, | 522 | meta: {}, |
523 | name: 'View Payment Invoice', | 523 | name: 'View Payment Invoice', |
524 | props: (route) => ({ type: route.query.type }), | 524 | props: (route) => ({ type: route.query.type }), |
525 | component: () => | 525 | component: () => |
526 | import ( | 526 | import ( |
527 | /* webpackChunkName: "routes" */ | 527 | /* webpackChunkName: "routes" */ |
528 | /* webpackMode: "lazy-once" */ | 528 | /* webpackMode: "lazy-once" */ |
529 | `@/pages/Account/viewPaymentInvoice.vue` | 529 | `@/pages/Account/viewPaymentInvoice.vue` |
530 | ) | 530 | ) |
531 | }, | 531 | }, |
532 | { | 532 | { |
533 | path: '/globalPayment', | 533 | path: '/globalPayment', |
534 | meta: {}, | 534 | meta: {}, |
535 | name: 'Global Payment', | 535 | name: 'Global Payment', |
536 | props: (route) => ({ type: route.query.type }), | 536 | props: (route) => ({ type: route.query.type }), |
537 | component: () => | 537 | component: () => |
538 | import ( | 538 | import ( |
539 | /* webpackChunkName: "routes" */ | 539 | /* webpackChunkName: "routes" */ |
540 | /* webpackMode: "lazy-once" */ | 540 | /* webpackMode: "lazy-once" */ |
541 | `@/pages/Account/globalPayment.vue` | 541 | `@/pages/Account/globalPayment.vue` |
542 | ) | 542 | ) |
543 | }, | 543 | }, |
544 | { | 544 | { |
545 | path: '/exam', | 545 | path: '/exam', |
546 | meta: {}, | 546 | meta: {}, |
547 | name: 'Exam', | 547 | name: 'Exam', |
548 | props: (route) => ({ type: route.query.type }), | 548 | props: (route) => ({ type: route.query.type }), |
549 | component: () => | 549 | component: () => |
550 | import ( | 550 | import ( |
551 | /* webpackChunkName: "routes" */ | 551 | /* webpackChunkName: "routes" */ |
552 | /* webpackMode: "lazy-once" */ | 552 | /* webpackMode: "lazy-once" */ |
553 | `@/pages/Exam/exam.vue` | 553 | `@/pages/Exam/exam.vue` |
554 | ) | 554 | ) |
555 | }, | 555 | }, |
556 | { | 556 | { |
557 | path: '/grade', | 557 | path: '/grade', |
558 | meta: {}, | 558 | meta: {}, |
559 | name: 'Grade', | 559 | name: 'Grade', |
560 | props: (route) => ({ type: route.query.type }), | 560 | props: (route) => ({ type: route.query.type }), |
561 | component: () => | 561 | component: () => |
562 | import ( | 562 | import ( |
563 | /* webpackChunkName: "routes" */ | 563 | /* webpackChunkName: "routes" */ |
564 | /* webpackMode: "lazy-once" */ | 564 | /* webpackMode: "lazy-once" */ |
565 | `@/pages/Exam/grade.vue` | 565 | `@/pages/Exam/grade.vue` |
566 | ) | 566 | ) |
567 | }, | 567 | }, |
568 | { | 568 | { |
569 | path: '/examSchedule', | 569 | path: '/examSchedule', |
570 | meta: {}, | 570 | meta: {}, |
571 | name: 'Exam Schedule', | 571 | name: 'Exam Schedule', |
572 | props: (route) => ({ type: route.query.type }), | 572 | props: (route) => ({ type: route.query.type }), |
573 | component: () => | 573 | component: () => |
574 | import ( | 574 | import ( |
575 | /* webpackChunkName: "routes" */ | 575 | /* webpackChunkName: "routes" */ |
576 | /* webpackMode: "lazy-once" */ | 576 | /* webpackMode: "lazy-once" */ |
577 | `@/pages/Exam/examSchedule.vue` | 577 | `@/pages/Exam/examSchedule.vue` |
578 | ) | 578 | ) |
579 | }, | 579 | }, |
580 | { | 580 | { |
581 | path: '/examAttendence', | 581 | path: '/examAttendence', |
582 | meta: {}, | 582 | meta: {}, |
583 | name: 'Exam Attendence', | 583 | name: 'Exam Attendence', |
584 | props: (route) => ({ type: route.query.type }), | 584 | props: (route) => ({ type: route.query.type }), |
585 | component: () => | 585 | component: () => |
586 | import ( | 586 | import ( |
587 | /* webpackChunkName: "routes" */ | 587 | /* webpackChunkName: "routes" */ |
588 | /* webpackMode: "lazy-once" */ | 588 | /* webpackMode: "lazy-once" */ |
589 | `@/pages/Exam/examAttendence.vue` | 589 | `@/pages/Exam/examAttendence.vue` |
590 | ) | 590 | ) |
591 | }, | 591 | }, |
592 | { | 592 | { |
593 | path: '/mark', | 593 | path: '/mark', |
594 | meta: {}, | 594 | meta: {}, |
595 | name: 'Mark', | 595 | name: 'Mark', |
596 | props: (route) => ({ type: route.query.type }), | 596 | props: (route) => ({ type: route.query.type }), |
597 | component: () => | 597 | component: () => |
598 | import ( | 598 | import ( |
599 | /* webpackChunkName: "routes" */ | 599 | /* webpackChunkName: "routes" */ |
600 | /* webpackMode: "lazy-once" */ | 600 | /* webpackMode: "lazy-once" */ |
601 | `@/pages/Mark/mark.vue` | 601 | `@/pages/Mark/mark.vue` |
602 | ) | 602 | ) |
603 | }, | 603 | }, |
604 | { | 604 | { |
605 | path: '/viewMark/:markId', | 605 | path: '/viewMark/:markId', |
606 | meta: {}, | 606 | meta: {}, |
607 | name: 'view Mark', | 607 | name: 'view Mark', |
608 | props: (route) => ({ type: route.query.type }), | 608 | props: (route) => ({ type: route.query.type }), |
609 | component: () => | 609 | component: () => |
610 | import ( | 610 | import ( |
611 | /* webpackChunkName: "routes" */ | 611 | /* webpackChunkName: "routes" */ |
612 | /* webpackMode: "lazy-once" */ | 612 | /* webpackMode: "lazy-once" */ |
613 | `@/pages/Mark/viewMark.vue` | 613 | `@/pages/Mark/viewMark.vue` |
614 | ) | 614 | ) |
615 | }, | 615 | }, |
616 | { | 616 | { |
617 | path: '/markDistribution', | 617 | path: '/markDistribution', |
618 | meta: {}, | 618 | meta: {}, |
619 | name: 'Mark Distribution', | 619 | name: 'Mark Distribution', |
620 | props: (route) => ({ type: route.query.type }), | 620 | props: (route) => ({ type: route.query.type }), |
621 | component: () => | 621 | component: () => |
622 | import ( | 622 | import ( |
623 | /* webpackChunkName: "routes" */ | 623 | /* webpackChunkName: "routes" */ |
624 | /* webpackMode: "lazy-once" */ | 624 | /* webpackMode: "lazy-once" */ |
625 | `@/pages/Mark/markDistribution.vue` | 625 | `@/pages/Mark/markDistribution.vue` |
626 | ) | 626 | ) |
627 | }, | 627 | }, |
628 | { | 628 | { |
629 | path: '/meet', | 629 | path: '/meet', |
630 | meta: {}, | 630 | meta: {}, |
631 | name: 'Meet', | 631 | name: 'Meet', |
632 | props: (route) => ({ type: route.query.type }), | 632 | props: (route) => ({ type: route.query.type }), |
633 | component: () => | 633 | component: () => |
634 | import ( | 634 | import ( |
635 | /* webpackChunkName: "routes" */ | 635 | /* webpackChunkName: "routes" */ |
636 | /* webpackMode: "lazy-once" */ | 636 | /* webpackMode: "lazy-once" */ |
637 | `@/pages/Meet/meet.vue` | 637 | `@/pages/Meet/meet.vue` |
638 | ) | 638 | ) |
639 | }, | 639 | }, |
640 | { | 640 | { |
641 | path: '/academicYear', | 641 | path: '/academicYear', |
642 | meta: {}, | 642 | meta: {}, |
643 | name: 'Academic Year', | 643 | name: 'Academic Year', |
644 | props: (route) => ({ type: route.query.type }), | 644 | props: (route) => ({ type: route.query.type }), |
645 | component: () => | 645 | component: () => |
646 | import ( | 646 | import ( |
647 | /* webpackChunkName: "routes" */ | 647 | /* webpackChunkName: "routes" */ |
648 | /* webpackMode: "lazy-once" */ | 648 | /* webpackMode: "lazy-once" */ |
649 | `@/pages/Administrator/academicYear.vue` | 649 | `@/pages/Administrator/academicYear.vue` |
650 | ) | 650 | ) |
651 | }, | 651 | }, |
652 | { | 652 | { |
653 | path: '/systemAdmin', | 653 | path: '/systemAdmin', |
654 | meta: {}, | 654 | meta: {}, |
655 | name: 'System Admin', | 655 | name: 'System Admin', |
656 | props: (route) => ({ type: route.query.type }), | 656 | props: (route) => ({ type: route.query.type }), |
657 | component: () => | 657 | component: () => |
658 | import ( | 658 | import ( |
659 | /* webpackChunkName: "routes" */ | 659 | /* webpackChunkName: "routes" */ |
660 | /* webpackMode: "lazy-once" */ | 660 | /* webpackMode: "lazy-once" */ |
661 | `@/pages/Administrator/systemAdmin.vue` | 661 | `@/pages/Administrator/systemAdmin.vue` |
662 | ) | 662 | ) |
663 | }, | 663 | }, |
664 | { | 664 | { |
665 | path: '/resetPassword', | 665 | path: '/resetPassword', |
666 | meta: {}, | 666 | meta: {}, |
667 | name: 'Change Password', | 667 | name: 'Change Password', |
668 | props: (route) => ({ type: route.query.type }), | 668 | props: (route) => ({ type: route.query.type }), |
669 | component: () => | 669 | component: () => |
670 | import ( | 670 | import ( |
671 | /* webpackChunkName: "routes" */ | 671 | /* webpackChunkName: "routes" */ |
672 | /* webpackMode: "lazy-once" */ | 672 | /* webpackMode: "lazy-once" */ |
673 | `@/pages/Administrator/resetPassword.vue` | 673 | `@/pages/Administrator/resetPassword.vue` |
674 | ) | 674 | ) |
675 | }, | 675 | }, |
676 | { | 676 | { |
677 | path: '/role', | 677 | path: '/role', |
678 | meta: {}, | 678 | meta: {}, |
679 | name: 'Role', | 679 | name: 'Role', |
680 | props: (route) => ({ type: route.query.type }), | 680 | props: (route) => ({ type: route.query.type }), |
681 | component: () => | 681 | component: () => |
682 | import ( | 682 | import ( |
683 | /* webpackChunkName: "routes" */ | 683 | /* webpackChunkName: "routes" */ |
684 | /* webpackMode: "lazy-once" */ | 684 | /* webpackMode: "lazy-once" */ |
685 | `@/pages/Administrator/role.vue` | 685 | `@/pages/Administrator/role.vue` |
686 | ) | 686 | ) |
687 | }, | 687 | }, |
688 | { | 688 | { |
689 | path: '/bulkImport', | 689 | path: '/bulkImport', |
690 | meta: {}, | 690 | meta: {}, |
691 | name: 'Bulk Import', | 691 | name: 'Bulk Import', |
692 | props: (route) => ({ type: route.query.type }), | 692 | props: (route) => ({ type: route.query.type }), |
693 | component: () => | 693 | component: () => |
694 | import ( | 694 | import ( |
695 | /* webpackChunkName: "routes" */ | 695 | /* webpackChunkName: "routes" */ |
696 | /* webpackMode: "lazy-once" */ | 696 | /* webpackMode: "lazy-once" */ |
697 | `@/pages/Administrator/bulkImport.vue` | 697 | `@/pages/Administrator/bulkImport.vue` |
698 | ) | 698 | ) |
699 | }, | 699 | }, |
700 | { | 700 | { |
701 | path: '/studentReport', | 701 | path: '/studentReport', |
702 | meta: {}, | 702 | meta: {}, |
703 | name: 'Student Report', | 703 | name: 'Student Report', |
704 | props: (route) => ({ type: route.query.type }), | 704 | props: (route) => ({ type: route.query.type }), |
705 | component: () => | 705 | component: () => |
706 | import ( | 706 | import ( |
707 | /* webpackChunkName: "routes" */ | 707 | /* webpackChunkName: "routes" */ |
708 | /* webpackMode: "lazy-once" */ | 708 | /* webpackMode: "lazy-once" */ |
709 | `@/pages/Report/studentReport.vue` | 709 | `@/pages/Report/studentReport.vue` |
710 | ) | 710 | ) |
711 | }, | 711 | }, |
712 | { | 712 | { |
713 | path: '/progressCardReport', | 713 | path: '/progressCardReport', |
714 | meta: {}, | 714 | meta: {}, |
715 | name: 'Progress Card Report', | 715 | name: 'Progress Card Report', |
716 | props: (route) => ({ type: route.query.type }), | 716 | props: (route) => ({ type: route.query.type }), |
717 | component: () => | 717 | component: () => |
718 | import ( | 718 | import ( |
719 | /* webpackChunkName: "routes" */ | 719 | /* webpackChunkName: "routes" */ |
720 | /* webpackMode: "lazy-once" */ | 720 | /* webpackMode: "lazy-once" */ |
721 | `@/pages/Report/progressCardReport.vue` | 721 | `@/pages/Report/progressCardReport.vue` |
722 | ) | 722 | ) |
723 | }, | 723 | }, |
724 | { | 724 | { |
725 | path: '/idCard', | 725 | path: '/idCard', |
726 | meta: {}, | 726 | meta: {}, |
727 | name: 'Id Card Report', | 727 | name: 'Id Card Report', |
728 | props: (route) => ({ type: route.query.type }), | 728 | props: (route) => ({ type: route.query.type }), |
729 | component: () => | 729 | component: () => |
730 | import ( | 730 | import ( |
731 | `@/pages/Report/idCard.vue` | 731 | `@/pages/Report/idCard.vue` |
732 | ) | 732 | ) |
733 | }, | 733 | }, |
734 | { | 734 | { |
735 | path: '/admitCard', | 735 | path: '/admitCard', |
736 | meta: {}, | 736 | meta: {}, |
737 | name: 'Admit Card Report', | 737 | name: 'Admit Card Report', |
738 | props: (route) => ({ type: route.query.type }), | 738 | props: (route) => ({ type: route.query.type }), |
739 | component: () => | 739 | component: () => |
740 | import ( | 740 | import ( |
741 | `@/pages/Report/admitCard.vue` | 741 | `@/pages/Report/admitCard.vue` |
742 | ) | 742 | ) |
743 | }, | 743 | }, |
744 | { | 744 | { |
745 | path: '/generalSetting', | 745 | path: '/generalSetting', |
746 | meta: {}, | 746 | meta: {}, |
747 | name: 'General Setting', | 747 | name: 'General Setting', |
748 | props: (route) => ({ type: route.query.type }), | 748 | props: (route) => ({ type: route.query.type }), |
749 | component: () => | 749 | component: () => |
750 | import ( | 750 | import ( |
751 | /* webpackChunkName: "routes" */ | 751 | /* webpackChunkName: "routes" */ |
752 | /* webpackMode: "lazy-once" */ | 752 | /* webpackMode: "lazy-once" */ |
753 | `@/pages/generalSetting/generalSetting.vue` | 753 | `@/pages/generalSetting/generalSetting.vue` |
754 | ) | 754 | ) |
755 | }, | 755 | }, |
756 | { | 756 | { |
757 | path: '/assignment', | 757 | path: '/assignment', |
758 | meta: {}, | 758 | meta: {}, |
759 | name: 'Assignment', | 759 | name: 'Assignment', |
760 | props: (route) => ({ type: route.query.type }), | 760 | props: (route) => ({ type: route.query.type }), |
761 | component: () => | 761 | component: () => |
762 | import ( | 762 | import ( |
763 | `@/pages/Academic/assignment.vue` | 763 | `@/pages/Academic/assignment.vue` |
764 | ) | 764 | ) |
765 | }, | 765 | }, |
766 | { | 766 | { |
767 | path: '/routine', | 767 | path: '/routine', |
768 | meta: {}, | 768 | meta: {}, |
769 | name: 'Routine', | 769 | name: 'Routine', |
770 | props: (route) => ({ type: route.query.type }), | 770 | props: (route) => ({ type: route.query.type }), |
771 | component: () => | 771 | component: () => |
772 | import ( | 772 | import ( |
773 | `@/pages/Academic/routine.vue` | 773 | `@/pages/Academic/routine.vue` |
774 | ) | 774 | ) |
775 | }, | 775 | }, |
776 | { | 776 | { |
777 | path: '/subject', | 777 | path: '/subject', |
778 | meta: {}, | 778 | meta: {}, |
779 | name: 'Subject', | 779 | name: 'Subject', |
780 | props: (route) => ({ type: route.query.type }), | 780 | props: (route) => ({ type: route.query.type }), |
781 | component: () => | 781 | component: () => |
782 | import ( | 782 | import ( |
783 | `@/pages/Academic/subject.vue` | 783 | `@/pages/Academic/subject.vue` |
784 | ) | 784 | ) |
785 | }, | 785 | }, |
786 | { | 786 | { |
787 | path: '/syllabus', | 787 | path: '/syllabus', |
788 | meta: {}, | 788 | meta: {}, |
789 | name: 'Syllabus', | 789 | name: 'Syllabus', |
790 | props: (route) => ({ type: route.query.type }), | 790 | props: (route) => ({ type: route.query.type }), |
791 | component: () => | 791 | component: () => |
792 | import ( | 792 | import ( |
793 | `@/pages/Academic/syllabus.vue` | 793 | `@/pages/Academic/syllabus.vue` |
794 | ) | 794 | ) |
795 | }, | 795 | }, |
796 | 796 | { | |
797 | path: '/course', | ||
798 | meta: {}, | ||
799 | name: 'Course', | ||
800 | props: (route) => ({ type: route.query.type }), | ||
801 | component: () => | ||
802 | import ( | ||
803 | /* webpackChunkName: "routes" */ | ||
804 | /* webpackMode: "lazy-once" */ | ||
805 | `@/pages/Course/course.vue` | ||
806 | ) | ||
807 | }, | ||
808 | { | ||
809 | path: '/enrollStudents', | ||
810 | meta: {}, | ||
811 | name: 'Enroll Students', | ||
812 | props: (route) => ({ type: route.query.type }), | ||
813 | component: () => | ||
814 | import ( | ||
815 | /* webpackChunkName: "routes" */ | ||
816 | /* webpackMode: "lazy-once" */ | ||
817 | `@/pages/Course/enrollStudents.vue` | ||
818 | ) | ||
819 | }, | ||
820 | { | ||
821 | path: '/annoucement', | ||
822 | meta: {}, | ||
823 | name: 'Annoucement', | ||
824 | props: (route) => ({ type: route.query.type }), | ||
825 | component: () => | ||
826 | import ( | ||
827 | /* webpackChunkName: "routes" */ | ||
828 | /* webpackMode: "lazy-once" */ | ||
829 | `@/pages/Annoucement/annoucement.vue` | ||
830 | ) | ||
831 | }, | ||
797 | //////SCHOOL | 832 | //////SCHOOL |
798 | 833 | ||
799 | { | 834 | { |
800 | path: '/school', | 835 | path: '/school', |
801 | meta: {}, | 836 | meta: {}, |
802 | name: 'School', | 837 | name: 'School', |
803 | props: (route) => ({ type: route.query.type }), | 838 | props: (route) => ({ type: route.query.type }), |
804 | component: () => | 839 | component: () => |
805 | import ( | 840 | import ( |
806 | /* webpackChunkName: "routes" */ | 841 | /* webpackChunkName: "routes" */ |
807 | /* webpackMode: "lazy-once" */ | 842 | /* webpackMode: "lazy-once" */ |
808 | `@/pages/School/school.vue` | 843 | `@/pages/School/school.vue` |
809 | ) | 844 | ) |
810 | }, | 845 | }, |
811 | { | 846 | { |
812 | path: '/schooldashboard', | 847 | path: '/schooldashboard', |
813 | meta: {}, | 848 | meta: {}, |
814 | name: 'View School Dashboard', | 849 | name: 'View School Dashboard', |
815 | props: (route) => ({ type: route.query.type }), | 850 | props: (route) => ({ type: route.query.type }), |
816 | component: () => | 851 | component: () => |
817 | import ( | 852 | import ( |
818 | /* webpackChunkName: "routes" */ | 853 | /* webpackChunkName: "routes" */ |
819 | /* webpackMode: "lazy-once" */ | 854 | /* webpackMode: "lazy-once" */ |
820 | `@/pages/School/viewSchoolDashboard.vue` | 855 | `@/pages/School/viewSchoolDashboard.vue` |
821 | ) | 856 | ) |
822 | } | 857 | } |
823 | ]; | 858 | ]; |
static/icon/camera-icon-white.jpg
68.4 KB