Commit 0cd2fbfba4d050be584a1a84b5180128293fa2da

Authored by Neeraj Sharma
1 parent 29ac0dbb24

implement create teacher antendece and view teahers attendence

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 path: '/dashboard', 6 path: '/dashboard',
7 icon: '/static/schoolIcons/Dashboard.png', 7 icon: '/static/schoolIcons/Dashboard.png',
8 }, 8 },
9 { 9 {
10 title: 'Class', 10 title: 'Class',
11 // group: 'apps', 11 // group: 'apps',
12 path: '/addclass', 12 path: '/addclass',
13 icon: '/static/schoolIcons/Class.png', 13 icon: '/static/schoolIcons/Class.png',
14 }, 14 },
15 { 15 {
16 title: 'Section', 16 title: 'Section',
17 // group: 'apps', 17 // group: 'apps',
18 path: '/section', 18 path: '/section',
19 icon: '/static/schoolIcons/Section.png', 19 icon: '/static/schoolIcons/Section.png',
20 }, 20 },
21 { 21 {
22 title: 'Subjects', 22 title: 'Subjects',
23 path: '/subject', 23 path: '/subject',
24 icon: '/static/schoolIcons/Subjects.png', 24 icon: '/static/schoolIcons/Subjects.png',
25 }, 25 },
26 { 26 {
27 title: 'Parents', 27 title: 'Parents',
28 // group: 'apps', 28 // group: 'apps',
29 path: '/parents', 29 path: '/parents',
30 icon: '/static/schoolIcons/Parents.png', 30 icon: '/static/schoolIcons/Parents.png',
31 }, 31 },
32 { 32 {
33 title: 'Teachers', 33 title: 'Teachers',
34 // group: '', 34 // group: '',
35 path: 'teachers', 35 path: 'teachers',
36 icon: '/static/schoolIcons/Teachers.png', 36 icon: '/static/schoolIcons/Teachers.png',
37 }, 37 },
38 { 38 {
39 title: 'Students', 39 title: 'Students',
40 // group: 'apps', 40 // group: 'apps',
41 path: '/Students', 41 path: '/Students',
42 icon: '/static/schoolIcons/Students.png', 42 icon: '/static/schoolIcons/Students.png',
43 }, 43 },
44 { 44 {
45 title: 'User', 45 title: 'User',
46 path: '/User', 46 path: '/User',
47 icon: '/static/schoolIcons/User.png', 47 icon: '/static/schoolIcons/User.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/schoolIcons/Attendance.png', 53 icon: '/static/schoolIcons/Attendance.png',
54 items: [ 54 items: [
55 { name: 'studentAttendence', title: 'Student Attendance', component: 'studentAttendence', action: '', }, 55 { name: 'studentAttendence', title: 'Student Attendance', component: 'studentAttendence', action: '', },
56 // { name: 'teacherAttendence', title: 'Teacher Attendance', component: 'teacherAttendence', action: '', }, 56 { name: 'teacherAttendence', title: 'Teacher Attendance', component: 'teacherAttendence', action: '', }
57 // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', action: '', }, 57 // { name: 'userAttendence', title: 'User Attendance', component: 'userAttendence', 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/schoolIcons/exam.png', 64 icon: '/static/schoolIcons/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: 'ExamSchedule', action: '', }, 67 { name: 'ExamSchedule', title: 'Exam Schedule', component: 'ExamSchedule', 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: 'Mark', 73 title: 'Mark',
74 group: 'Mark', 74 group: 'Mark',
75 component: 'Mark', 75 component: 'Mark',
76 icon: '/static/schoolIcons/marks.png', 76 icon: '/static/schoolIcons/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: 'markDistribution', action: '', }, 79 { name: 'markDistribution', title: 'Mark Distribution', component: 'markDistribution', 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: 'Administrator', 85 title: 'Administrator',
86 group: 'Administrator', 86 group: 'Administrator',
87 component: 'Administrator', 87 component: 'Administrator',
88 icon: '/static/schoolIcons/administrator.png', 88 icon: '/static/schoolIcons/administrator.png',
89 items: [ 89 items: [
90 { name: 'academicYear', title: 'Academic Year', component: 'academicYear', action: '', }, 90 { name: 'academicYear', title: 'Academic Year', component: 'academicYear', action: '', },
91 { name: 'systemAdmin', title: 'System Admin', component: 'systemAdmin', action: '', }, 91 { name: 'systemAdmin', title: 'System Admin', component: 'systemAdmin', action: '', },
92 { name: 'resetPassword', title: 'Reset Password', component: 'resetPassword', action: '', }, 92 { name: 'resetPassword', title: 'Reset Password', component: 'resetPassword', action: '', },
93 { name: 'Role', title: 'Role', component: 'Role', action: '', }, 93 { name: 'Role', title: 'Role', component: 'Role', action: '', },
94 { name: 'bulkImportole', title: 'Bulk Import', component: 'bulkImport', action: '', }, 94 { name: 'bulkImportole', title: 'Bulk Import', component: 'bulkImport', action: '', },
95 95
96 ] 96 ]
97 }, 97 },
98 { 98 {
99 title: 'Notice Board', 99 title: 'Notice Board',
100 path: '/NoticeBoard', 100 path: '/NoticeBoard',
101 icon: '/static/schoolIcons/Notice_board.png', 101 icon: '/static/schoolIcons/Notice_board.png',
102 }, 102 },
103 { 103 {
104 title: 'News', 104 title: 'News',
105 path: '/news', 105 path: '/news',
106 icon: '/static/schoolIcons/News.png', 106 icon: '/static/schoolIcons/News.png',
107 }, 107 },
108 // { 108 // {
109 // title: 'Reminder', 109 // title: 'Reminder',
110 // name: 'reminder', 110 // name: 'reminder',
111 // icon: 'alarm_add', 111 // icon: 'alarm_add',
112 // }, 112 // },
113 { 113 {
114 title: 'Time Table', 114 title: 'Time Table',
115 path: '/timeTable', 115 path: '/timeTable',
116 icon: '/static/schoolIcons/Time_table.png', 116 icon: '/static/schoolIcons/Time_table.png',
117 }, 117 },
118 { 118 {
119 title: 'Library', 119 title: 'Library',
120 group: 'Library', 120 group: 'Library',
121 component: 'Library', 121 component: 'Library',
122 icon: '/static/schoolIcons/Library.png', 122 icon: '/static/schoolIcons/Library.png',
123 items: [ 123 items: [
124 { name: 'libraryMember', title: ' Library Member', component: 'libraryMember', action: '', }, 124 { name: 'libraryMember', title: ' Library Member', component: 'libraryMember', action: '', },
125 { name: 'Books', title: 'Books', component: 'Books', action: '', }, 125 { name: 'Books', title: 'Books', component: 'Books', action: '', },
126 { name: 'Issue', title: ' Issue', component: 'Issue', action: '', }, 126 { name: 'Issue', title: ' Issue', component: 'Issue', action: '', },
127 { name: 'eBooks', title: 'E-Books', component: 'eBooks', action: '', } 127 { name: 'eBooks', title: 'E-Books', component: 'eBooks', action: '', }
128 128
129 ] 129 ]
130 }, 130 },
131 { 131 {
132 title: 'Report', 132 title: 'Report',
133 group: 'Report', 133 group: 'Report',
134 component: 'Report', 134 component: 'Report',
135 icon: '/static/schoolIcons/reports.png', 135 icon: '/static/schoolIcons/reports.png',
136 items: [ 136 items: [
137 { name: 'studentReport', title: 'Student Report', component: 'studentReport', action: '', }, 137 { name: 'studentReport', title: 'Student Report', component: 'studentReport', action: '', },
138 { name: 'progressCardReport', title: 'Progress Card Report', component: 'progressCardReport', action: '', } 138 { name: 'progressCardReport', title: 'Progress Card Report', component: 'progressCardReport', action: '', }
139 ] 139 ]
140 }, 140 },
141 { 141 {
142 title: 'Notification', 142 title: 'Notification',
143 path: '/notification', 143 path: '/notification',
144 icon: '/static/schoolIcons/Notification.png', 144 icon: '/static/schoolIcons/Notification.png',
145 }, 145 },
146 { 146 {
147 title: 'Social Media', 147 title: 'Social Media',
148 path: '/SocialMedia', 148 path: '/SocialMedia',
149 icon: '/static/schoolIcons/Social_Media.png', 149 icon: '/static/schoolIcons/Social_Media.png',
150 }, 150 },
151 { 151 {
152 title: 'Gallery', 152 title: 'Gallery',
153 path: '/Gallery', 153 path: '/Gallery',
154 icon: '/static/schoolIcons/Gallery.png', 154 icon: '/static/schoolIcons/Gallery.png',
155 }, 155 },
156 { 156 {
157 title: 'Event', 157 title: 'Event',
158 path: '/Event', 158 path: '/Event',
159 icon: '/static/schoolIcons/Events.png', 159 icon: '/static/schoolIcons/Events.png',
160 }, 160 },
161 { 161 {
162 title: 'Account', 162 title: 'Account',
163 group: 'Account', 163 group: 'Account',
164 component: 'Account', 164 component: 'Account',
165 icon: '/static/schoolIcons/Account.png', 165 icon: '/static/schoolIcons/Account.png',
166 items: [ 166 items: [
167 { name: 'feeTypes', title: 'Fee Types', component: 'feeTypes', action: '', }, 167 { name: 'feeTypes', title: 'Fee Types', component: 'feeTypes', action: '', },
168 { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', }, 168 { name: 'Invoice', title: 'Invoice', component: 'Invoice', action: '', },
169 { name: 'paymentHistory', title: 'Payment History', component: 'paymentHistory', action: '', }, 169 { name: 'paymentHistory', title: 'Payment History', component: 'paymentHistory', action: '', },
170 { name: 'Expense', title: 'Expense', component: 'Expense', action: '', }, 170 { name: 'Expense', title: 'Expense', component: 'Expense', action: '', },
171 { name: 'Income', title: 'Income', component: 'Income', action: '', }, 171 { name: 'Income', title: 'Income', component: 'Income', action: '', },
172 ] 172 ]
173 }, 173 },
174 { 174 {
175 title: 'Holiday', 175 title: 'Holiday',
176 path: '/Holiday', 176 path: '/Holiday',
177 icon: '/static/schoolIcons/Holidays.png', 177 icon: '/static/schoolIcons/Holidays.png',
178 }, 178 },
179 { 179 {
180 title: 'General Setting', 180 title: 'General Setting',
181 path: '/generalSetting', 181 path: '/generalSetting',
182 icon: '/static/schoolIcons/settings.png', 182 icon: '/static/schoolIcons/settings.png',
183 } 183 }
184 ]; 184 ];
185 185
186 const schoolMenu = [ 186 const schoolMenu = [
187 // { header: 'Apps' }, 187 // { header: 'Apps' },
188 { 188 {
189 title: 'School', 189 title: 'School',
190 // group: 'apps', 190 // group: 'apps',
191 path: '/school', 191 path: '/school',
192 icon: '/static/schoolIcons/Dashboard.png', 192 icon: '/static/schoolIcons/Dashboard.png',
193 } 193 }
194 ]; 194 ];
195 195
196 // reorder menu 196 // reorder menu
197 // Menu.forEach((item) => { 197 // Menu.forEach((item) => {
198 // if (item.items) { 198 // if (item.items) {
199 // item.items.sort((x, y) => { 199 // item.items.sort((x, y) => {
200 // let textA = x.title.toUpperCase(); 200 // let textA = x.title.toUpperCase();
201 // let textB = y.title.toUpperCase(); 201 // let textB = y.title.toUpperCase();
202 // return (textA < textB) ? -1 : (textA > textB) ? 1 : 0; 202 // return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
203 // }); 203 // });
204 // } 204 // }
205 // }); 205 // });
206 206
207 export default { adminMenu, schoolMenu }; 207 export default { adminMenu, schoolMenu };
src/pages/Attendence/teacherAttendence.vue
1 <template> 1 <template>
2 <v-app id="pages-dasboard"> 2 <v-app id="pages-dasboard">
3 <!-- ****** EXISTING-Teachers TABLE DATA****** --> 3 <v-tabs grow slider-color="gray">
4 <v-card flat> 4 <v-tab
5 <v-card-actions> 5 ripple
6 <v-layout> 6 @click="activeTab('existing')"
7 <h4 class="right mt-2 ml-2">Teacher Attendence</h4> 7 v-bind:class="{ active: isActive }"
8 </v-layout> 8 id="tab"
9 <v-spacer></v-spacer> 9 class="subheading"
10 </v-card-actions> 10 >Existing Teacher Attendence</v-tab>
11 </v-card> 11 <v-tab
12 <v-data-table 12 ripple
13 :headers="headers" 13 @click="activeTab('new')"
14 :items="desserts" 14 v-bind:class="{ active: newActive }"
15 :pagination.sync="pagination" 15 id="tab1"
16 :search="search" 16 User
17 > 17 class="subheading"
18 <template slot="items" slot-scope="props"> 18 >Add Teachers Attendence</v-tab>
19 <td id="td" class="text-xs-center">{{ props.index + 1}}</td> 19 <v-tab-item>
20 <td id="td" class="text-xs-center"> 20 <!-- ****** EXISTING TACHERS-TABLE DATA****** -->
21 <v-avatar> 21 <v-data-table
22 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" /> 22 :headers="headers"
23 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" /> 23 :items="desserts"
24 </v-avatar> 24 :pagination.sync="pagination"
25 </td> 25 :search="search"
26 <td id="td" class="text-xs-center">{{ props.item.name}}</td> 26 >
27 <td id="td" class="text-xs-center">{{ props.item.email }}</td> 27 <template slot="items" slot-scope="props">
28 <td id="td" class="text-xs-center">{{ dates(props.item.dob) }}</td> 28 <td id="td" class="text-xs-center">{{ props.index + 1}}</td>
29 <td id="td" class="text-xs-center">{{ dates(props.item.joinDate)}}</td> 29 <td id="td" class="text-xs-center">
30 <td id="td" class="text-xs-center">{{ props.item.mobileNo }}</td> 30 <v-avatar>
31 <td class="text-xs-center"> 31 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
32 <span> 32 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
33 <img 33 </v-avatar>
34 style="cursor:pointer; width:25px; height:18px; " 34 </td>
35 class="mr-5" 35 <td id="td" class="text-xs-center">{{ props.item.name}}</td>
36 @click="profile(props.item)" 36 <td id="td" class="text-xs-center">{{ props.item.email }}</td>
37 src="/static/icon/eye1.png" 37 <td id="td" class="text-xs-center">{{ props.item.mobileNo }}</td>
38 /> 38 <td class="text-xs-center">
39 </span> 39 <router-link :to="{ name:'ViewTeacherAttendence',params: { teacherId:props.item._id } }">
40 </td> 40 <span>
41 </template> 41 <v-tooltip top>
42 <v-alert 42 <img
43 slot="no-results" 43 slot="activator"
44 :value="true" 44 style="cursor:pointer; width:25px; height:18px; "
45 color="error" 45 class="mr5"
46 icon="warning" 46 src="/static/icon/eye1.png"
47 >Your search for "{{ search }}" found no results.</v-alert> 47 />
48 </v-data-table> 48 <span>View</span>
49 </v-tooltip>
50 </span>
51 </router-link>
52 </td>
53 </template>
54 <v-alert
55 slot="no-results"
56 :value="true"
57 color="error"
58 icon="warning"
59 >Your search for "{{ search }}" found no results.</v-alert>
60 </v-data-table>
61 </v-tab-item>
62 <!-- ****** Add Teachers Attendece****** -->
63 <v-tab-item>
64 <v-card flat>
65 <v-flex xs12>
66 <v-layout wrap>
67 <v-flex xs12 md6>
68 <v-layout>
69 <v-flex xs4 sm4 md2>
70 <label class="title right mr-3 mt-4">Date:</label>
71 </v-flex>
72 <v-flex xs6>
73 <v-menu
74 ref="menu"
75 :close-on-content-click="false"
76 v-model="menu"
77 :nudge-right="40"
78 lazy
79 transition="scale-transition"
80 offset-y
81 full-width
82 min-width="290px"
83 >
84 <v-text-field
85 slot="activator"
86 v-model="date"
87 label="Select Date"
88 append-icon="event"
89 readonly
90 ></v-text-field>
91 <v-date-picker
92 ref="picker"
93 v-model="date"
94 :max="new Date().toISOString().substr(0, 10)"
95 min="1950-01-01"
96 @change="save"
97 ></v-date-picker>
98 </v-menu>
99 </v-flex>
100 </v-layout>
101 </v-flex>
102 <v-flex xs8 sm8 md6>
103 <v-btn class="right mt-3 black" dark round @click="showTable">Attendence</v-btn>
104 </v-flex>
105 </v-layout>
106 </v-flex>
107 </v-card>
108 <v-flex xs12 v-show="attendeceTable">
109 <v-data-table
110 :headers="headers"
111 :items="teachersData"
112 :pagination.sync="pagination"
113 :search="search"
114 >
115 <template slot="items" slot-scope="props">
116 <td id="td" class="text-xs-center">{{ props.index + 1}}</td>
117 <td id="td" class="text-xs-center">
118 <v-avatar>
119 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
120 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
121 </v-avatar>
122 </td>
123 <td id="td" class="text-xs-center">{{ props.item.name}}</td>
124 <td id="td" class="text-xs-center">{{ props.item.email }}</td>
125 <td id="td" class="text-xs-center">{{ props.item.mobileNo }}</td>
126 <td class="text-xs-center">
127 <v-radio-group v-model="props.item.attendence" :mandatory="false" row>
128 <v-radio
129 v-for="attendences in attendenceType"
130 :key="attendences.value"
131 :label="`${attendences.label}`"
132 :value="attendences.value"
133 ></v-radio>
134 </v-radio-group>
135 </td>
136 </template>
137 </v-data-table>
138 <v-btn @click="submit()" class="right black" round dark>Submit</v-btn>
139 </v-flex>
140 </v-tab-item>
141 </v-tabs>
142 <v-snackbar
143 :timeout="timeout"
144 :top="y === 'top'"
145 :right="x === 'right'"
146 :vertical="mode === 'vertical'"
147 v-model="snackbar"
148 color="success"
149 >{{ text }}</v-snackbar>
49 <div class="loader" v-if="showLoader"> 150 <div class="loader" v-if="showLoader">
50 <v-progress-circular indeterminate color="white"></v-progress-circular> 151 <v-progress-circular indeterminate color="white"></v-progress-circular>
51 </div> 152 </div>
52 </v-app> 153 </v-app>
53 </template> 154 </template>
54 155
55 <script> 156 <script>
56 import http from "@/Services/http.js"; 157 import http from "@/Services/http.js";
57 import Util from "@/util";
58 import moment from "moment"; 158 import moment from "moment";
59 159
60 export default { 160 export default {
61 data: () => ({ 161 data: () => ({
162 snackbar: false,
163 y: "top",
164 x: "right",
165 mode: "",
166 timeout: 3000,
167 text: "",
168 date: null,
169 menu: false,
170 attendeceTable: false,
62 showLoader: false, 171 showLoader: false,
172 loading: false,
63 search: "", 173 search: "",
174 valid: true,
175 isActive: true,
176 newActive: false,
177 attendenceType: [
178 {
179 label: "Present",
180 value: "present"
181 },
182 {
183 label: "Late Present With Excuset",
184 value: "latePresentWithExcuse"
185 },
186 {
187 label: "Late Present",
188 value: "latePresent"
189 },
190 {
191 label: "Absent",
192 value: "absent"
193 }
194 ],
64 pagination: { 195 pagination: {
65 rowsPerPage: 15 196 rowsPerPage: 15
66 }, 197 },
67 headers: [ 198 headers: [
68 { 199 {
69 text: "No", 200 text: "No",
70 align: "center", 201 align: "center",
71 sortable: false, 202 sortable: false,
72 value: "No" 203 value: "No"
73 }, 204 },
74 { 205 {
75 text: "Profile Pic", 206 text: "Profile Pic",
76 value: "profilePicUrl", 207 value: "profilePicUrl",
77 sortable: false, 208 sortable: false,
78 align: "center" 209 align: "center"
79 }, 210 },
80 { text: "Name", value: "name", sortable: false, align: "center" }, 211 { text: "Name", value: "name", sortable: false, align: "center" },
81 { text: "Email", value: "email", sortable: false, align: "center" }, 212 { text: "Email", value: "email", sortable: false, align: "center" },
82 { text: "DOB", value: "dob", sortable: false, align: "center" },
83 {
84 text: "Join Date",
85 value: "joinDate",
86 sortable: false,
87 align: "center"
88 },
89 { 213 {
90 text: "Mobile No", 214 text: "Mobile No",
91 value: "mobileNo", 215 value: "mobileNo",
92 sortable: false, 216 sortable: false,
93 align: "center" 217 align: "center"
94 }, 218 },
95 { text: "Action", value: "", sortable: false, align: "center" } 219 { text: "Attendance", value: "", sortable: false, align: "center" }
96 ], 220 ],
97 desserts: [] 221 desserts: [],
222 teachersData: [],
223 addTeachers: {}
98 }), 224 }),
225 watch: {
226 menu(val) {
227 val && this.$nextTick(() => (this.$refs.picker.activePicker = "DAY"));
228 }
229 },
99 methods: { 230 methods: {
100 dates: function(date) { 231 save(date) {
101 return moment(date).format("MMMM DD, YYYY"); 232 this.$refs.menu.save(date);
233 },
234 showTable() {
235 this.attendeceTable = true;
236 this.getTeacherList();
237 console.log("date", this.date);
102 }, 238 },
103 getTeacherList() { 239 getTeacherList() {
104 this.showLoader = true; 240 this.showLoader = true;
105 var token = this.$store.state.token; 241 var token = this.$store.state.token;
106 http() 242 http()
107 .get("/getTeachersList", { 243 .get("/getTeachersList", {
108 headers: { Authorization: "Bearer " + token } 244 headers: { Authorization: "Bearer " + token }
109 }) 245 })
110 .then(response => { 246 .then(response => {
247 this.teachersData = response.data.data;
111 this.desserts = response.data.data; 248 this.desserts = response.data.data;
249 var attendence = "";
250 for (let i = 0; i < this.teachersData.length; i++) {
251 this.teachersData[i].attendence = "present";
252 }
112 this.showLoader = false; 253 this.showLoader = false;
113 // console.log("getTeacherList=====>",this.desserts) 254 // console.log("getTeacherList=====>",this.desserts)
114 }) 255 })
115 .catch(error => { 256 .catch(error => {
116 this.showLoader = false; 257 this.showLoader = false;
117 if (error.response.status === 401) { 258 if (error.response.status === 401) {
118 this.$router.replace({ path: "/" }); 259 this.$router.replace({ path: "/" });
119 this.$store.dispatch("setToken", null); 260 this.$store.dispatch("setToken", null);
120 this.$store.dispatch("Id", null); 261 this.$store.dispatch("Id", null);
121 } 262 }
122 }); 263 });
264 },
265 activeTab(type) {
266 switch (type) {
267 case "existing":
268 this.newActive = false;
269 this.isActive = true;
270 break;
271
272 default:
273 this.newActive = true;
274 this.isActive = false;
275 break;
276 }
277 },
278 submit() {
279 var teachersAttendence = [];
280 for (var j = 0; j < this.teachersData.length; j++) {
281 teachersAttendence.push({
282 teacherId: this.teachersData[j]._id,
283 attendanceType: this.teachersData[j].attendence
284 });
285 }
286 let attendanceData = {
287 date: this.date,
288 teachers: teachersAttendence
289 };
290 http()
291 .post("/createTeacherAttendance", attendanceData)
292 .then(response => {
293 this.snackbar = true;
294 this.text = response.data.message;
295 })
296 .catch(error => {
297 this.snackbar = true;
298 this.text = error.response.data.message;
299 });
300 },
301 clear() {
302 this.$refs.form.reset();
303 this.imageUrl = "";
123 } 304 }
124 }, 305 },
125 mounted() { 306 mounted() {
126 this.getTeacherList(); 307 this.getTeacherList();
127 }, 308 },
128 created() { 309 created() {
129 this.$root.$on("app:search", search => { 310 this.$root.$on("app:search", search => {
130 this.search = search; 311 this.search = search;
131 }); 312 });
132 }, 313 },
133 beforeDestroy() { 314 beforeDestroy() {
134 // dont forget to remove the listener 315 // dont forget to remove the listener
135 this.$root.$off("app:search"); 316 this.$root.$off("app:search");
136 } 317 }
137 }; 318 };
138 </script> 319 </script>
139 <style scoped> 320 <style scoped>
src/pages/Attendence/viewTeacherAttendence.vue
File was created 1 <template>
2 <v-container fluid grid-list-md>
3 <!-- <div v-show="hideData"> -->
4 <!-- <v-layout row>
5 <v-btn color="grey" @click="exportPdf" class="right" dark>
6 Export Pdf
7 <v-icon dark right size="20">save_alt</v-icon>
8 </v-btn>
9 <v-dialog v-model="dialogExport" max-width="500px">
10 <v-btn slot="activator" color="grey" class="right" dark>
11 Export csv
12 <v-icon dark right size="20">save_alt</v-icon>
13 </v-btn>
14 <v-card>
15 <h3 class="text-xs-center py-2 grey lighten-1 white--text">Export</h3>
16 <v-card-text>
17 <v-container grid-list-md>
18 <v-layout wrap>
19 <v-flex xs12>
20 <v-menu
21 ref="menuStartDate"
22 :close-on-content-click="false"
23 v-model="menuStartDate"
24 :nudge-right="40"
25 :return-value.sync="startDate"
26 lazy
27 transition="scale-transition"
28 offset-y
29 full-width
30 min-width="290px"
31 >
32 <v-text-field
33 slot="activator"
34 v-model="startDate"
35 label="Select Start Date"
36 prepend-icon="event"
37 readonly
38 ></v-text-field>
39 <v-date-picker
40 v-model="startDate"
41 @input="$refs.menuStartDate.save(startDate)"
42 ></v-date-picker>
43 </v-menu>
44 </v-flex>
45 <v-flex xs12>
46 <v-menu
47 ref="menuEndDate"
48 :close-on-content-click="false"
49 v-model="menuEndDate"
50 :nudge-right="40"
51 :return-value.sync="endDate"
52 lazy
53 transition="scale-transition"
54 offset-y
55 full-width
56 min-width="290px"
57 >
58 <v-text-field
59 slot="activator"
60 v-model="endDate"
61 label="Select End Date"
62 prepend-icon="event"
63 readonly
64 ></v-text-field>
65 <v-date-picker v-model="endDate" @input="$refs.menuEndDate.save(endDate)"></v-date-picker>
66 </v-menu>
67 </v-flex>
68 </v-layout>
69 </v-container>
70 </v-card-text>
71 <v-card-actions>
72 <v-spacer></v-spacer>
73 <v-btn color="blue darken-1" flat @click.native="dialogExport = false">Close</v-btn>
74 <download-csv :data="json_data">
75 <v-btn color="blue darken-1" flat @click.native="exportData">Export</v-btn>
76 </download-csv>
77 </v-card-actions>
78 </v-card>
79 </v-dialog>
80 </v-layout> -->
81 <v-layout wrap>
82 <v-flex xs12 sm12 md4>
83 <v-card flat>
84 <h3 class="text-xs-center py-2 grey lighten-1 white--text">Profile</h3>
85 <v-card-text>
86 <v-container>
87 <v-layout wrap>
88 <v-flex xs12>
89 <v-layout>
90 <v-flex
91 xs12
92 class="text-xs-center text-sm-center text-md-center text-lg-center"
93 >
94 <v-avatar size="160px">
95 <img src="/static/icon/user.png" v-if="!teacherData.teacherData.profilePicUrl" />
96 <img
97 :src="teacherData.teacherData.profilePicUrl"
98 v-else-if="teacherData.teacherData.profilePicUrl"
99 />
100 </v-avatar>
101 </v-flex>
102 </v-layout>
103 <v-layout>
104 <v-flex xs12 sm12>
105 <h3 class="text-xs-center">
106 <b>{{ teacherData.teacherData.name }}</b>
107 </h3>
108 <p class="text-xs-center grey--text">Teacher</p>
109 </v-flex>
110 </v-layout>
111 <!-- <v-layout style="border: 1px solid lightgrey;">
112 <v-flex xs6 sm6 class="pa-0">
113 <h4 class="right">
114 <b>Gender :</b>
115 </h4>
116 </v-flex>
117 <v-flex sm6 xs6 class="pa-0">
118 <h4>{{ teacherData.teacherData.gender }}</h4>
119 </v-flex>
120 </v-layout> -->
121 <v-layout style="border: 1px solid lightgrey;">
122 <v-flex xs6 sm6 class="pa-0">
123 <h4 class="right">
124 <b>D.O.B:</b>
125 </h4>
126 </v-flex>
127 <v-flex sm6 xs6 class="right pa-0">
128 <h4>{{ dates(teacherData.teacherData.dob) }}</h4>
129 </v-flex>
130 </v-layout>
131 <v-layout style="border: 1px solid lightgrey;">
132 <v-flex xs6 sm6 class="right pa-0">
133 <h4 class="right">
134 <b>Phone :</b>
135 </h4>
136 </v-flex>
137 <v-flex sm6 xs6 class="right pa-0">
138 <h4>{{ teacherData.teacherData.mobileNo}}</h4>
139 </v-flex>
140 </v-layout>
141 </v-flex>
142 </v-layout>
143 </v-container>
144 </v-card-text>
145 </v-card>
146 </v-flex>
147 <v-flex xs12 sm12 md8>
148 <v-card flat>
149 <h3 class="py-2 text-xs-center grey lighten-1 white--text">
150 Attendence
151 <span class="ml-4">
152 <v-avatar class="green caption" size="12"></v-avatar>
153 <span class="subheading">Present</span>
154 </span>
155 <span class="ml-4">
156 <v-avatar color="red caption" size="12" class></v-avatar>
157 <span class="subheading">Absent</span>
158 </span>
159 </h3>
160 <!-- <YearCalendar
161 v-model="year"
162 :activeDates="activeDates"
163 prefixClass="your_customized_wrapper_class"
164 :activeClass="activeClass"
165 ></YearCalendar> -->
166 </v-card>
167 </v-flex>
168 </v-layout>
169 </div>
170 <v-layout v-show="showPdfData">
171 <v-container>
172 <v-flex xs12 sm12 md8 offset-sm2>
173 <!-- <v-btn
174 color="grey"
175 @click="generatePDF2Canvas()"
176 :loading="loadingPdf"
177 class="right"
178 dark
179 >
180 Download
181 <v-icon dark right size="20">save_alt</v-icon>
182 </v-btn> -->
183 </v-flex>
184 </v-container>
185 </v-layout>
186 <v-layout v-show="showPdfData">
187 <v-container>
188 <v-layout v-show="showPdfData">
189 <v-flex xs12 sm12 md8 offset-sm2>
190 <div ref="printMe">
191 <v-flex xs12 class="pl-3">
192 <!-- <v-layout>
193 <v-flex xs6 sm2 class="pa-0 mb-1">
194 <h4>
195 <b>Name</b>
196 </h4>
197 </v-flex>
198 <v-flex sm10 xs6 class="pa-0">
199 <h4>: {{ studentData.name }}</h4>
200 </v-flex>
201 </v-layout>
202 <v-layout>
203 <v-flex xs6 sm2 class="pa-0 mb-1">
204 <h4>
205 <b>Type</b>
206 </h4>
207 </v-flex>
208 <v-flex sm10 xs6 class="pa-0 mb-1">
209 <h4>: Student</h4>
210 </v-flex>
211 </v-layout>
212 <v-layout>
213 <v-flex xs6 sm2 class="pa-0 mb-1">
214 <h4>
215 <b>Roll No</b>
216 </h4>
217 </v-flex>
218 <v-flex sm10 xs6 class="pa-0 mb-1">
219 <h4>: {{ studentData.rollNo }}</h4>
220 </v-flex>
221 </v-layout>
222 <v-layout>
223 <v-flex xs6 sm2 class="pa-0 mb-1">
224 <h4>
225 <b>Class</b>
226 </h4>
227 </v-flex>
228 <v-flex sm10 xs6 class="pa-0 mb-1">
229 <h4>: {{ studentData.classId.classNum }}</h4>
230 </v-flex>
231 </v-layout>
232 <v-layout>
233 <v-flex xs6 sm2 class="pa-0 mb-1">
234 <h4>
235 <b>Section</b>
236 </h4>
237 </v-flex>
238 <v-flex sm10 xs6 class="pa-0 mb-3">
239 <h4>: {{ studentData.sectionId.name}}</h4>
240 </v-flex>
241 </v-layout> -->
242 </v-flex>
243 <!-- <v-card flat>
244 <h3 class="py-2 text-xs-center grey lighten-1 white--text">
245 Attendence
246 <span class="ml-4">
247 <v-avatar class="green caption" size="12"></v-avatar>
248 <span class="subheading">Present</span>
249 </span>
250 <span class="ml-4">
251 <v-avatar color="red caption" size="12" class></v-avatar>
252 <span class="subheading">Absent</span>
253 </span>
254 </h3>
255 <YearCalendar
256 v-model="year"
257 :activeDates="activeDates"
258 prefixClass="your_customized_wrapper_class"
259 :activeClass="activeClass"
260 ></YearCalendar>
261 </v-card> -->
262 </div>
263 </v-flex>
264 </v-layout>
265 </v-container>
266 </v-layout>
267 <!-- <img :src="output" v-show="false"/> -->
268 <div class="loader" v-if="showLoader">
269 <v-progress-circular indeterminate color="white"></v-progress-circular>
270 </div>
271 </v-container>
272 </template>
273
274 <script lang="js">
275 import moment from "moment";
276 import http from "@/Services/http.js";
277 import YearCalendar from "vue-material-year-calendar";
278 import jsPDF from 'jspdf';
279 // eslint-disable-next-line
280 import autoTable from 'jspdf-autotable';
281
282 export default {
283 components: { YearCalendar },
284 data() {
285 return {
286 showPdfData:false,
287 hideData:true,
288 loadingPdf:false,
289 output:null,
290 studentsList: [],
291 json_data: [],
292 dialogExport: false,
293 startDate: "",
294 endDate: "",
295 menuEndDate: false,
296 menuStartDate: false,
297 showLoader: false,
298 token: "",
299 year: new Date().getFullYear(),
300 activeDates: [],
301 activeClass: "",
302 teacherData: {}
303 };
304 },
305 mounted() {
306 this.token = this.$store.state.token;
307 this.getTeacherAttendence();
308 // this.getStudentData();
309 },
310 methods: {
311 dates: function(date) {
312 return moment(date).format("MMMM DD, YYYY");
313 },
314 getTeacherAttendence() {
315 this.showLoader = true;
316 http()
317 .get(
318 "/teacherAttendance",
319 { params: { teacherId: this.$route.params.teacherId } },
320 {
321 headers: { Authorization: "Bearer " + this.token }
322 }
323 )
324 .then(response => {
325 this.showLoader = false;
326 this.teacherData = response.data.data;
327 // let array = [];
328 // for (let i = 0; i < response.data.data.length; i++) {
329 // if (response.data.data[i].students[0].isPresent == true) {
330 // array.push({
331 // date: response.data.data[i].date,
332 // className: "green"
333 // });
334 // } else if (response.data.data[i].students[0].isPresent == false) {
335 // array.push({
336 // date: response.data.data[i].date,
337 // className: "red"
338 // });
339 // }
340 // }
341 // this.activeDates = array;
342 })
343 .catch(error => {
344 this.showLoader = false;
345 if (error.response.status === 401) {
346 this.$router.replace({ path: "/" });
347 this.$store.dispatch("setToken", null);
348 this.$store.dispatch("Id", null);
349 this.$store.dispatch("Role", null);
350 }
351 });
352 },
353 // getStudentData() {
354 // http()
355 // .get(
356 // "/getParticularStudentDetail",
357 // { params: { studentId: this.$route.params.id } },
358 // {
359 // headers: { Authorization: "Bearer " + this.token }
360 // }
361 // )
362 // .then(response => {
363 // this.studentData = response.data.data;
364 // })
365 // .catch(err => {
366 // console.log("err====>", err);
367 // // this.$router.replace({ path: '/' });
368 // });
369 // },
370 // exportData() {
371 // http()
372 // .get(
373 // "/studentAttendanceByMonth",
374 // {
375 // params: {
376 // studentId: this.$route.params.id,
377 // startDate: this.startDate,
378 // endDate: this.endDate
379 // }
380 // },
381 // {
382 // headers: { Authorization: "Bearer " + this.token }
383 // }
384 // )
385 // .then(response => {
386 // this.json_data = response.data.data;
387 // this.dialogExport = true;
388 // })
389 // .catch(err => {
390 // console.log("err====>", err);
391 // // this.$router.replace({ path: '/' });
392 // });
393 // },
394 // exportPdf(){
395 // this.hideData = false;
396 // this.showPdfData = true
397 // },
398 // async generatePDF2Canvas(){
399 // this.loadingPdf = true
400 // const el = this.$refs.printMe;
401 // // add option type to get the image version
402 // // if not provided the promise will return
403 // // the canvas.
404 // const options = {
405 // type: 'dataURL'
406 // }
407 // this.output = await this.$html2canvas(el, options);
408 // if(this.output) {
409 // this.loadingPdf = false
410 // }
411 // let doc = new jsPDF();
412 // doc.addImage(this.output, 'JPEG', 5, 10, 200, 280);
413 // doc.save("Attendance.pdf");
414 // }
415 }
416 };
417 </script>
418
src/pages/Mark/mark.vue
1 <template> 1 <template>
2 <v-app id="pages-dasboard"> 2 <v-app id="pages-dasboard">
3 <v-tabs grow slider-color="gray"> 3 <v-tabs grow slider-color="gray">
4 <v-tab 4 <v-tab
5 ripple 5 ripple
6 @click="activeTab('existing')" 6 @click="activeTab('existing')"
7 v-bind:class="{ active: isActive }" 7 v-bind:class="{ active: isActive }"
8 id="tab" 8 id="tab"
9 class="subheading" 9 class="subheading"
10 >Existing Mark</v-tab> 10 >Existing Mark</v-tab>
11 <v-tab 11 <v-tab
12 ripple 12 ripple
13 @click="activeTab('new')" 13 @click="activeTab('new')"
14 v-bind:class="{ active: newActive }" 14 v-bind:class="{ active: newActive }"
15 id="tab1" 15 id="tab1"
16 User 16 User
17 class="subheading" 17 class="subheading"
18 >Add Mark</v-tab> 18 >Add Mark</v-tab>
19 19
20 <!-- ****** Edit Mark ****** --> 20 <!-- ****** Edit Mark ****** -->
21 21
22 <v-tab-item> 22 <v-tab-item>
23 <v-snackbar 23 <v-snackbar
24 :timeout="timeout" 24 :timeout="timeout"
25 :top="y === 'top'" 25 :top="y === 'top'"
26 :right="x === 'right'" 26 :right="x === 'right'"
27 :vertical="mode === 'vertical'" 27 :vertical="mode === 'vertical'"
28 v-model="snackbar" 28 v-model="snackbar"
29 color="success" 29 color="success"
30 >{{ text }}</v-snackbar> 30 >{{ text }}</v-snackbar>
31 31
32 <!-- ****** EXISTING MARK TABLE ****** --> 32 <!-- ****** EXISTING MARK TABLE ****** -->
33 33
34 <v-card flat> 34 <v-card flat>
35 <v-flex xs12 sm12 lg12> 35 <v-flex xs12 sm12 lg12>
36 <v-layout wrap> 36 <v-layout wrap>
37 <v-flex xs12 sm12 lg3> 37 <v-flex xs12 sm12 lg3>
38 <v-layout> 38 <v-layout>
39 <v-flex xs3 sm6 lg2 class="subheading mt-4"> 39 <v-flex xs3 sm6 lg2 class="subheading mt-4">
40 <label class="right">Class:</label> 40 <label class="right">Class:</label>
41 </v-flex> 41 </v-flex>
42 <v-flex xs12 sm12 lg8 class="ml-2"> 42 <v-flex xs12 sm12 lg8 class="ml-2">
43 <v-select 43 <v-select
44 v-model="getMark.classId" 44 v-model="getMark.classId"
45 label="Select your class" 45 label="Select your class"
46 type="text" 46 type="text"
47 :items="classList" 47 :items="classList"
48 item-text="classNum" 48 item-text="classNum"
49 item-value="_id" 49 item-value="_id"
50 @change="getSections(getMark.classId)" 50 @change="getSections(getMark.classId)"
51 required 51 required
52 ></v-select> 52 ></v-select>
53 </v-flex> 53 </v-flex>
54 </v-layout> 54 </v-layout>
55 </v-flex> 55 </v-flex>
56 <v-flex xs12 sm12 lg3> 56 <v-flex xs12 sm12 lg3>
57 <v-layout> 57 <v-layout>
58 <v-flex xs3 sm6 lg2 class="subheading mt-4"> 58 <v-flex xs3 sm6 lg2 class="subheading mt-4">
59 <label class="right">Section:</label> 59 <label class="right">Section:</label>
60 </v-flex> 60 </v-flex>
61 <v-flex xs12 sm12 lg8 class="ml-2"> 61 <v-flex xs12 sm12 lg8 class="ml-2">
62 <v-select 62 <v-select
63 :items="addSection" 63 :items="addSection"
64 label="Select your Section" 64 label="Select your Section"
65 v-model="getMark.sectionId" 65 v-model="getMark.sectionId"
66 item-text="name" 66 item-text="name"
67 item-value="_id" 67 item-value="_id"
68 name="Select Section" 68 name="Select Section"
69 required 69 required
70 ></v-select> 70 ></v-select>
71 </v-flex> 71 </v-flex>
72 </v-layout> 72 </v-layout>
73 </v-flex> 73 </v-flex>
74 <v-flex xs12 sm12 lg6> 74 <v-flex xs12 sm12 lg6>
75 <v-btn @click="getStudents" round dark :loading="loading" class="right mt-4">Mark</v-btn> 75 <v-btn @click="getStudents" round dark :loading="loading" class="right mt-4">Mark</v-btn>
76 </v-flex> 76 </v-flex>
77 </v-layout> 77 </v-layout>
78 </v-flex> 78 </v-flex>
79 </v-card> 79 </v-card>
80 <v-data-table 80 <v-data-table
81 :headers="headers" 81 :headers="headers"
82 :items="getStudentsList" 82 :items="getStudentsList"
83 :pagination.sync="pagination" 83 :pagination.sync="pagination"
84 :search="search" 84 :search="search"
85 > 85 >
86 <template slot="items" slot-scope="props"> 86 <template slot="items" slot-scope="props">
87 <td class="text-xs-center">{{ props.index + 1}}</td> 87 <td class="text-xs-center">{{ props.index + 1}}</td>
88 <td id="td" class="text-xs-center"> 88 <td id="td" class="text-xs-center">
89 <v-avatar> 89 <v-avatar>
90 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" /> 90 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
91 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" /> 91 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
92 </v-avatar> 92 </v-avatar>
93 </td> 93 </td>
94 <td id="td" class="text-xs-center">{{ props.item.name}}</td> 94 <td id="td" class="text-xs-center">{{ props.item.name}}</td>
95 <td id="td" class="text-xs-center">{{ props.item.rollNo }}</td> 95 <td id="td" class="text-xs-center">{{ props.item.rollNo }}</td>
96 <td id="td" class="text-xs-center">{{ props.item.email }}</td> 96 <td id="td" class="text-xs-center">{{ props.item.email }}</td>
97 <td class="text-xs-center"> 97 <td class="text-xs-center">
98 <span> 98 <span>
99 <router-link :to="{ name:'viewMark',params: { markId:props.item._id } }"> 99 <router-link :to="{ name:'viewMark',params: { markId:props.item._id } }">
100 <v-tooltip top> 100 <v-tooltip top>
101 <img 101 <img
102 slot="activator" 102 slot="activator"
103 style="cursor:pointer; width:20px; height:18px; " 103 style="cursor:pointer; width:20px; height:18px; "
104 class="mr-5" 104 class="mr-5"
105 src="/static/icon/edit1.png" 105 src="/static/icon/edit1.png"
106 /> 106 />
107 <span>Edit</span> 107 <span>Edit</span>
108 </v-tooltip> 108 </v-tooltip>
109 </router-link> 109 </router-link>
110 </span> 110 </span>
111 </td> 111 </td>
112 </template> 112 </template>
113 <v-alert 113 <v-alert
114 slot="no-results" 114 slot="no-results"
115 :value="true" 115 :value="true"
116 color="error" 116 color="error"
117 icon="warning" 117 icon="warning"
118 >Your search for "{{ search }}" found no results.</v-alert> 118 >Your search for "{{ search }}" found no results.</v-alert>
119 </v-data-table> 119 </v-data-table>
120 </v-tab-item> 120 </v-tab-item>
121 121
122 <!-- ****** ADD Mark Schedule ****** --> 122 <!-- ****** ADD Mark Schedule ****** -->
123 123
124 <v-tab-item> 124 <v-tab-item>
125 <v-snackbar 125 <v-snackbar
126 :timeout="timeout" 126 :timeout="timeout"
127 :top="y === 'top'" 127 :top="y === 'top'"
128 :right="x === 'right'" 128 :right="x === 'right'"
129 :vertical="mode === 'vertical'" 129 :vertical="mode === 'vertical'"
130 v-model="snackbar" 130 v-model="snackbar"
131 :color="color" 131 :color="color"
132 >{{ text }}</v-snackbar> 132 >{{ text }}</v-snackbar>
133 <v-form ref="form" v-model="valid" lazy-validation> 133 <v-form ref="form" v-model="valid" lazy-validation>
134 <v-container fluid> 134 <v-container fluid>
135 <v-flex xs12 sm12 lg12> 135 <v-flex xs12 sm12 lg12>
136 <v-layout wrap> 136 <v-layout wrap>
137 <v-flex xs12 sm12 lg10> 137 <v-flex xs12 sm12 lg10>
138 <v-layout wrap> 138 <v-layout wrap>
139 <v-flex xs12 sm12 lg3> 139 <v-flex xs12 sm12 lg3>
140 <v-flex xs3 sm2 lg2 class="subheading"> 140 <v-flex xs3 sm2 lg2 class="subheading">
141 <label>Exam:</label> 141 <label>Exam:</label>
142 </v-flex> 142 </v-flex>
143 <v-flex xs12 sm12 lg10> 143 <v-flex xs12 sm12 lg10>
144 <v-select 144 <v-select
145 label="Select your Exam Name" 145 label="Select your Exam Name"
146 :items="examList" 146 :items="examList"
147 v-model="addMark.examId" 147 v-model="addMark.examId"
148 :rules="examRules" 148 :rules="examRules"
149 item-text="examName" 149 item-text="examName"
150 item-value="_id" 150 item-value="_id"
151 ></v-select> 151 ></v-select>
152 </v-flex> 152 </v-flex>
153 </v-flex> 153 </v-flex>
154 <v-flex xs12 sm12 lg3> 154 <v-flex xs12 sm12 lg3>
155 <v-flex xs3 sm6 lg2 class="subheading"> 155 <v-flex xs3 sm6 lg2 class="subheading">
156 <label>Class:</label> 156 <label>Class:</label>
157 </v-flex> 157 </v-flex>
158 <v-flex xs12 sm12 lg10 class> 158 <v-flex xs12 sm12 lg10 class>
159 <v-select 159 <v-select
160 v-model="addMark.classId" 160 v-model="addMark.classId"
161 label="Select your class" 161 label="Select your class"
162 type="text" 162 type="text"
163 :items="classList" 163 :items="classList"
164 item-text="classNum" 164 item-text="classNum"
165 item-value="_id" 165 item-value="_id"
166 :rules="classRules" 166 :rules="classRules"
167 @change="getSections(addMark.classId)" 167 @change="getSections(addMark.classId)"
168 required 168 required
169 ></v-select> 169 ></v-select>
170 </v-flex> 170 </v-flex>
171 </v-flex> 171 </v-flex>
172 <v-flex xs12 sm12 lg3> 172 <v-flex xs12 sm12 lg3>
173 <v-flex xs3 sm6 lg2 class="subheading"> 173 <v-flex xs3 sm6 lg2 class="subheading">
174 <label>Section:</label> 174 <label>Section:</label>
175 </v-flex> 175 </v-flex>
176 <v-flex xs12 sm12 lg10 class> 176 <v-flex xs12 sm12 lg10 class>
177 <v-select 177 <v-select
178 :items="addSection" 178 :items="addSection"
179 label="Select your Section" 179 label="Select your Section"
180 v-model="addMark.sectionId" 180 v-model="addMark.sectionId"
181 item-text="name" 181 item-text="name"
182 item-value="_id" 182 item-value="_id"
183 name="Select Section" 183 name="Select Section"
184 :rules="sectionRules" 184 :rules="sectionRules"
185 required 185 required
186 ></v-select> 186 ></v-select>
187 </v-flex> 187 </v-flex>
188 </v-flex> 188 </v-flex>
189 <v-flex xs12 sm12 lg3> 189 <v-flex xs12 sm12 lg3>
190 <v-flex xs3 sm6 lg2 class="subheading"> 190 <v-flex xs3 sm6 lg2 class="subheading">
191 <label>Subject:</label> 191 <label>Subject:</label>
192 </v-flex> 192 </v-flex>
193 <v-flex xs12 sm12 lg10 class> 193 <v-flex xs12 sm12 lg10 class>
194 <v-select 194 <v-select
195 :items="subjects" 195 :items="subjects"
196 label="Select your Subject" 196 label="Select your Subject"
197 v-model="addMark.subjectId" 197 v-model="addMark.subjectId"
198 item-text="subjectName" 198 item-text="subjectName"
199 item-value="_id" 199 item-value="_id"
200 name="Select Section" 200 name="Select Section"
201 :rules="subjectRules" 201 :rules="subjectRules"
202 required 202 required
203 ></v-select> 203 ></v-select>
204 </v-flex> 204 </v-flex>
205 </v-flex> 205 </v-flex>
206 </v-layout> 206 </v-layout>
207 </v-flex> 207 </v-flex>
208 <v-flex xs12 sm12 lg2> 208 <v-flex xs12 sm12 lg2>
209 <v-flex xs12 sm12 lg12> 209 <v-flex xs12 sm12 lg12>
210 <v-btn 210 <v-btn
211 @click="findStudents" 211 @click="findStudents"
212 round 212 round
213 dark 213 dark
214 :loading="loading" 214 :loading="loading"
215 class="right mt-4" 215 class="right mt-4"
216 >Mark</v-btn> 216 >Mark</v-btn>
217 </v-flex> 217 </v-flex>
218 </v-flex> 218 </v-flex>
219 </v-layout> 219 </v-layout>
220 </v-flex> 220 </v-flex>
221 <v-card class="mt-4"> 221 <v-card class="mt-4">
222 <v-data-table 222 <v-data-table
223 :headers="headerOfMark" 223 :headers="headerOfMark"
224 :items="getStudentData" 224 :items="getStudentData"
225 :pagination.sync="pagination" 225 :pagination.sync="pagination"
226 :search="search" 226 :search="search"
227 > 227 >
228 <template slot="items" slot-scope="props"> 228 <template slot="items" slot-scope="props">
229 <td class="text-xs-center">{{ props.index + 1}}</td> 229 <td class="text-xs-center">{{ props.index + 1}}</td>
230 <td id="td" class="text-xs-center"> 230 <td id="td" class="text-xs-center">
231 <v-avatar> 231 <v-avatar>
232 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" /> 232 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
233 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" /> 233 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
234 </v-avatar> 234 </v-avatar>
235 </td> 235 </td>
236 <td id="td" class="text-xs-center">{{ props.item.name}}</td> 236 <td id="td" class="text-xs-center">{{ props.item.name}}</td>
237 <td id="td" class="text-xs-center">{{ props.item.rollNo }}</td> 237 <td id="td" class="text-xs-center">{{ props.item.rollNo }}</td>
238 <td 238 <td
239 id="td" 239 id="td"
240 class="text-xs-center markTable" 240 class="text-xs-center markTable"
241 v-for="(marks, index) in props.item.marksObtained" 241 v-for="(marks, index) in props.item.marksObtained"
242 :key="'A'+ index" 242 :key="'A'+ index"
243 > 243 >
244 <v-text-field v-model="marks.marksScored"></v-text-field> 244 <v-text-field v-model="marks.marksScored"></v-text-field>
245 </td> 245 </td>
246 </template> 246 </template>
247 <v-alert 247 <v-alert
248 slot="no-results" 248 slot="no-results"
249 :value="true" 249 :value="true"
250 color="error" 250 color="error"
251 icon="warning" 251 icon="warning"
252 >Your search for "{{ search }}" found no results.</v-alert> 252 >Your search for "{{ search }}" found no results.</v-alert>
253 </v-data-table> 253 </v-data-table>
254 </v-card> 254 </v-card>
255 <v-layout class="mt-2"> 255 <v-layout class="mt-2">
256 <v-flex xs12 sm12> 256 <v-flex xs12 sm12>
257 <v-layout> 257 <v-layout>
258 <v-flex xs12> 258 <v-flex xs12>
259 <v-btn @click="submit" round dark :loading="loading" class="right">Add Mark</v-btn> 259 <v-btn @click="submit" round dark :loading="loading" class="right">Add Mark</v-btn>
260 </v-flex> 260 </v-flex>
261 </v-layout> 261 </v-layout>
262 </v-flex> 262 </v-flex>
263 </v-layout> 263 </v-layout>
264 </v-container> 264 </v-container>
265 </v-form> 265 </v-form>
266 </v-tab-item> 266 </v-tab-item>
267 </v-tabs> 267 </v-tabs>
268 <div class="loader" v-if="showLoader"> 268 <div class="loader" v-if="showLoader">
269 <v-progress-circular indeterminate color="white"></v-progress-circular> 269 <v-progress-circular indeterminate color="white"></v-progress-circular>
270 </div> 270 </div>
271 </v-app> 271 </v-app>
272 </template> 272 </template>
273 273
274 <script> 274 <script>
275 import http from "@/Services/http.js"; 275 import http from "@/Services/http.js";
276 import moment from "moment"; 276 import moment from "moment";
277 277
278 export default { 278 export default {
279 data: () => ({ 279 data: () => ({
280 snackbar: false, 280 snackbar: false,
281 date: null, 281 date: null,
282 color: "", 282 color: "",
283 y: "top", 283 y: "top",
284 x: "right", 284 x: "right",
285 mode: "", 285 mode: "",
286 timeout: 10000, 286 timeout: 10000,
287 text: "", 287 text: "",
288 loading: false, 288 loading: false,
289 search: "", 289 search: "",
290 showLoader: false, 290 showLoader: false,
291 dialog: false, 291 dialog: false,
292 dialog1: false, 292 dialog1: false,
293 valid: true, 293 valid: true,
294 isActive: true, 294 isActive: true,
295 newActive: false, 295 newActive: false,
296 addSection: [], 296 addSection: [],
297 pagination: { 297 pagination: {
298 rowsPerPage: 15 298 rowsPerPage: 15
299 }, 299 },
300 classRules: [v => !!v || "Class is required"], 300 classRules: [v => !!v || "Class is required"],
301 sectionRules: [v => !!v || "section is required"], 301 sectionRules: [v => !!v || "section is required"],
302 subjectRules: [v => !!v || "Subject is required"], 302 subjectRules: [v => !!v || "Subject is required"],
303 examRules: [v => !!v || "Exam is required"], 303 examRules: [v => !!v || "Exam is required"],
304 304
305 headerOfMark: [ 305 headerOfMark: [
306 { 306 {
307 align: "justify-center", 307 align: "justify-center",
308 text: "No", 308 text: "No",
309 sortable: false, 309 sortable: false,
310 value: "No" 310 value: "No"
311 }, 311 },
312 { 312 {
313 text: "Profile Pic", 313 text: "Profile Pic",
314 vaue: "profilePicUrl", 314 vaue: "profilePicUrl",
315 sortable: false, 315 sortable: false,
316 align: "center" 316 align: "center"
317 }, 317 },
318 { 318 {
319 text: "Name", 319 text: "Name",
320 vaue: "name", 320 vaue: "name",
321 sortable: false, 321 sortable: false,
322 align: "center" 322 align: "center"
323 }, 323 },
324 { 324 {
325 text: "Roll No.", 325 text: "Roll No.",
326 value: "rollNo", 326 value: "rollNo",
327 sortable: false, 327 sortable: false,
328 align: "center" 328 align: "center"
329 } 329 }
330 ], 330 ],
331 headers: [ 331 headers: [
332 { 332 {
333 align: "justify-center", 333 align: "justify-center",
334 text: "No", 334 text: "No",
335 sortable: false, 335 sortable: false,
336 value: "No" 336 value: "No"
337 }, 337 },
338 { 338 {
339 text: "Profile Pic", 339 text: "Profile Pic",
340 vaue: "profilePicUrl", 340 vaue: "profilePicUrl",
341 sortable: false, 341 sortable: false,
342 align: "center" 342 align: "center"
343 }, 343 },
344 { 344 {
345 text: "Name", 345 text: "Name",
346 vaue: "name", 346 vaue: "name",
347 sortable: false, 347 sortable: false,
348 align: "center" 348 align: "center"
349 }, 349 },
350 { 350 {
351 text: "Roll No.", 351 text: "Roll No.",
352 value: "rollNo", 352 value: "rollNo",
353 sortable: false, 353 sortable: false,
354 align: "center" 354 align: "center"
355 }, 355 },
356 { 356 {
357 text: "Email", 357 text: "Email",
358 value: "email", 358 value: "email",
359 sortable: false, 359 sortable: false,
360 align: "center" 360 align: "center"
361 }, 361 },
362 { text: "Action", value: "", sortable: false, align: "center" } 362 { text: "Action", value: "", sortable: false, align: "center" }
363 ], 363 ],
364 classList: [], 364 classList: [],
365 examList: [], 365 examList: [],
366 subjects: [], 366 subjects: [],
367 addMark: {}, 367 addMark: {},
368 getMark: {}, 368 getMark: {},
369 getScheduleData: {}, 369 getScheduleData: {},
370 markData: [], 370 markData: [],
371 getStudentData: [], 371 getStudentData: [],
372 getStudentsList: [], 372 getStudentsList: [],
373 token: "" 373 token: ""
374 }), 374 }),
375 methods: { 375 methods: {
376 activeTab(type) { 376 activeTab(type) {
377 switch (type) { 377 switch (type) {
378 case "existing": 378 case "existing":
379 this.newActive = false; 379 this.newActive = false;
380 this.isActive = true; 380 this.isActive = true;
381 break; 381 break;
382 382
383 default: 383 default:
384 this.newActive = true; 384 this.newActive = true;
385 this.isActive = false; 385 this.isActive = false;
386 break; 386 break;
387 } 387 }
388 }, 388 },
389 getClass() { 389 getClass() {
390 this.showLoader = true; 390 this.showLoader = true;
391 http() 391 http()
392 .get("/getClassesList", { 392 .get("/getClassesList", {
393 headers: { Authorization: "Bearer " + this.token } 393 headers: { Authorization: "Bearer " + this.token }
394 }) 394 })
395 .then(response => { 395 .then(response => {
396 this.classList = response.data.data; 396 this.classList = response.data.data;
397 this.showLoader = false; 397 this.showLoader = false;
398 }) 398 })
399 .catch(err => { 399 .catch(err => {
400 // console.log("err====>", err); 400 // console.log("err====>", err);
401 this.showLoader = false; 401 this.showLoader = false;
402 }); 402 });
403 }, 403 },
404 getSections(_id) { 404 getSections(_id) {
405 this.showLoader = true; 405 this.showLoader = true;
406 for (let i = 0; i < this.classList.length; i++) { 406 for (let i = 0; i < this.classList.length; i++) {
407 if (_id == this.classList[i]._id) { 407 if (_id == this.classList[i]._id) {
408 this.subjects = this.classList[i].subjects; 408 this.subjects = this.classList[i].subjects;
409 } 409 }
410 } 410 }
411 http() 411 http()
412 .get( 412 .get(
413 "/getSectionsList", 413 "/getSectionsList",
414 { params: { classId: _id } }, 414 { params: { classId: _id } },
415 { 415 {
416 headers: { Authorization: "Bearer " + this.token } 416 headers: { Authorization: "Bearer " + this.token }
417 } 417 }
418 ) 418 )
419 .then(response => { 419 .then(response => {
420 this.addSection = response.data.data; 420 this.addSection = response.data.data;
421 this.showLoader = false; 421 this.showLoader = false;
422 }) 422 })
423 .catch(err => { 423 .catch(err => {
424 // console.log("err====>", err); 424 // console.log("err====>", err);
425 }); 425 });
426 }, 426 },
427 getExamList() { 427 getExamList() {
428 this.showLoader = true; 428 this.showLoader = true;
429 this.loadingSearch = true; 429 this.loadingSearch = true;
430 http() 430 http()
431 .get("/getExamsList", { 431 .get("/getExamsList", {
432 headers: { Authorization: "Bearer " + this.token } 432 headers: { Authorization: "Bearer " + this.token }
433 }) 433 })
434 .then(response => { 434 .then(response => {
435 this.examList = response.data.data; 435 this.examList = response.data.data;
436 this.showLoader = false; 436 this.showLoader = false;
437 this.loadingSearch = false; 437 this.loadingSearch = false;
438 }) 438 })
439 .catch(error => { 439 .catch(error => {
440 // console.log("err====>", err); 440 // console.log("err====>", err);
441 this.showLoader = false; 441 this.showLoader = false;
442 this.loadingSearch = false; 442 this.loadingSearch = false;
443 this.snackbar = true; 443 this.snackbar = true;
444 this.text = error.response.data.message; 444 this.text = error.response.data.message;
445 if (error.response.status === 401) { 445 if (error.response.status === 401) {
446 this.$router.replace({ path: "/" }); 446 this.$router.replace({ path: "/" });
447 this.$store.dispatch("setToken", null); 447 this.$store.dispatch("setToken", null);
448 this.$store.dispatch("Id", null); 448 this.$store.dispatch("Id", null);
449 this.$store.dispatch("Role", null); 449 this.$store.dispatch("Role", null);
450 } 450 }
451 }); 451 });
452 }, 452 },
453 clear() { 453 clear() {
454 this.$refs.form.reset(); 454 this.$refs.form.reset();
455 }, 455 },
456 findStudents() { 456 findStudents() {
457 this.getStudentData = []; 457 this.getStudentData = [];
458 // for (let k = 0; k < this.headerOfMark.length; k++) {
459 // this.headerOfMark[k].slice(5);
460 // console.log(this.headerOfMark);
461 // }
462 // console.log(this.headerOfMark);
463
464 if (this.$refs.form.validate()) { 458 if (this.$refs.form.validate()) {
465 this.showLoader = true; 459 this.showLoader = true;
466 http() 460 http()
467 .get("/getStudentWithClass", { 461 .get("/getStudentWithClass", {
468 params: { 462 params: {
469 classId: this.addMark.classId, 463 classId: this.addMark.classId,
470 sectionId: this.addMark.sectionId 464 sectionId: this.addMark.sectionId
471 } 465 }
472 }) 466 })
473 .then(response => { 467 .then(response => {
474 console.log(" bbbbbbbbbbbbbbbbbbb", this.headerOfMark);
475
476 this.getStudentData = response.data.data; 468 this.getStudentData = response.data.data;
477 this.showLoader = false; 469 this.showLoader = false;
478 this.showLoader = true; 470 this.showLoader = true;
479 http() 471 http()
480 .get("/getMarkDistributionsList", { 472 .get("/getMarkDistributionsList", {
481 params: this.addMark 473 params: this.addMark
482 }) 474 })
483 .then(response => { 475 .then(response => {
484 this.showLoader = false; 476 this.showLoader = false;
485 this.headerOfMark.length = 4; 477 this.headerOfMark.length = 4;
486 // console.log("getSectionsList=====>", response.data.data);
487 for (var i = 0; i < response.data.data.length; i++) { 478 for (var i = 0; i < response.data.data.length; i++) {
488 this.headerOfMark.push({ 479 this.headerOfMark.push({
489 text: 480 text:
490 response.data.data[i].distributionType + 481 response.data.data[i].distributionType +
491 " (" + 482 " (" +
492 response.data.data[i].markValue + 483 response.data.data[i].markValue +
493 ")", 484 ")",
494 sortable: false, 485 sortable: false,
495 align: "center" 486 align: "center"
496 }); 487 });
497 } 488 }
498 for (var n = 0; n < this.getStudentData.length; n++) { 489 for (var n = 0; n < this.getStudentData.length; n++) {
499 this.getStudentData[n].marksObtained = []; 490 this.getStudentData[n].marksObtained = [];
500 for (var j = 0; j < response.data.data.length; j++) { 491 for (var j = 0; j < response.data.data.length; j++) {
501 this.getStudentData[n].marksObtained.push({ 492 this.getStudentData[n].marksObtained.push({
502 markDistributionId: response.data.data[j]._id, 493 markDistributionId: response.data.data[j]._id,
503 marksScored: 0 494 marksScored: 0
504 }); 495 });
505 } 496 }
506 } 497 }
507 }) 498 })
508 .catch(error => { 499 .catch(error => {
509 console.log("err====>", error); 500 console.log("err====>", error);
510 this.showLoader = false; 501 this.showLoader = false;
511 }); 502 });
512 }) 503 })
513 .catch(error => { 504 .catch(error => {
514 console.log("err====>", error); 505 console.log("err====>", error);
515 this.showLoader = false; 506 this.showLoader = false;
516 }); 507 });
517 } 508 }
518 }, 509 },
519 submit() { 510 submit() {
520 for (var j = 0; j < this.getStudentData.length; j++) { 511 for (var j = 0; j < this.getStudentData.length; j++) {
521 let data = { 512 let data = {
522 examId: this.addMark.examId, 513 examId: this.addMark.examId,
523 classId: this.addMark.classId, 514 classId: this.addMark.classId,
524 sectionId: this.addMark.sectionId, 515 sectionId: this.addMark.sectionId,
525 subjectId: this.addMark.subjectId, 516 subjectId: this.addMark.subjectId,
526 studentId: this.getStudentData[j]._id, 517 studentId: this.getStudentData[j]._id,
527 studentsMarks: this.getStudentData[j].marksObtained 518 studentsMarks: this.getStudentData[j].marksObtained
528 }; 519 };
529 http() 520 http()
530 .post("/createMark", data) 521 .post("/createMark", data)
531 .then(response => { 522 .then(response => {
532 this.getStudentData = []; 523 this.getStudentData = [];
533 this.snackbar = true; 524 this.snackbar = true;
534 this.text = response.data.message; 525 this.text = response.data.message;
535 this.color = "green"; 526 this.color = "green";
536 this.loading = false; 527 this.loading = false;
537 this.clear(); 528 this.clear();
538 }) 529 })
539 .catch(error => { 530 .catch(error => {
540 this.snackbar = true; 531 this.snackbar = true;
541 this.text = error.response.data.message; 532 this.text = error.response.data.message;
542 this.color = "red"; 533 this.color = "red";
543 }); 534 });
544 } 535 }
545 }, 536 },
546 getStudents() { 537 getStudents() {
547 this.showLoader = true; 538 this.showLoader = true;
548 http() 539 http()
549 .get("/getStudentWithClass", { 540 .get("/getStudentWithClass", {
550 params: { 541 params: {
551 classId: this.getMark.classId, 542 classId: this.getMark.classId,
552 sectionId: this.getMark.sectionId 543 sectionId: this.getMark.sectionId
553 } 544 }
554 }) 545 })
555 .then(response => { 546 .then(response => {
556 this.getStudentsList = response.data.data; 547 this.getStudentsList = response.data.data;
557 this.showLoader = false; 548 this.showLoader = false;
558 // console.log("getSectionsList=====>", response.data.data); 549 // console.log("getSectionsList=====>", response.data.data);
559 }) 550 })
560 .catch(error => { 551 .catch(error => {
561 console.log("err====>", error); 552 console.log("err====>", error);
562 this.showLoader = false; 553 this.showLoader = false;
563 }); 554 });
564 } 555 }
565 }, 556 },
566 mounted() { 557 mounted() {
567 this.token = this.$store.state.token; 558 this.token = this.$store.state.token;
568 this.getClass(); 559 this.getClass();
569 this.getExamList(); 560 this.getExamList();
570 }, 561 },
571 created() { 562 created() {
572 this.$root.$on("app:search", search => { 563 this.$root.$on("app:search", search => {
573 this.search = search; 564 this.search = search;
574 }); 565 });
575 }, 566 },
576 beforeDestroy() { 567 beforeDestroy() {
577 // dont forget to remove the listener 568 // dont forget to remove the listener
578 this.$root.$off("app:search"); 569 this.$root.$off("app:search");
579 } 570 }
580 }; 571 };
581 </script> 572 </script>
582 <style scoped> 573 <style scoped>
583 .active { 574 .active {
584 background-color: gray; 575 background-color: gray;
585 color: white !important; 576 color: white !important;
586 } 577 }
587 .activebtn { 578 .activebtn {
588 color: black !important; 579 color: black !important;
589 } 580 }
590 .markTable { 581 .markTable {
591 max-width: 80px !important; 582 max-width: 80px !important;
592 } 583 }
593 </style> 584 </style>
594 585
595 586
596 587
597 588
598 589
599 590
600 591
601 592
602 593
603 594
604 595
605 596
606 597
607 598
608 599
609 600
610 601
611 602
612 603
613 604
614 605
615 606
src/pages/Students/students.vue
1 <template> 1 <template>
2 <div> 2 <div>
3 <v-tabs grow slider-color="gray"> 3 <v-tabs grow slider-color="gray">
4 <v-tab 4 <v-tab
5 ripple 5 ripple
6 @click="activeTab('existing')" 6 @click="activeTab('existing')"
7 v-bind:class="{ active: isActive }" 7 v-bind:class="{ active: isActive }"
8 id="tab" 8 id="tab"
9 class="subheading" 9 class="subheading"
10 >Existing Students</v-tab> 10 >Existing Students</v-tab>
11 <v-tab 11 <v-tab
12 ripple 12 ripple
13 @click="activeTab('new')" 13 @click="activeTab('new')"
14 v-bind:class="{ active: newActive }" 14 v-bind:class="{ active: newActive }"
15 id="tab1" 15 id="tab1"
16 User 16 User
17 class="subheading" 17 class="subheading"
18 >Add New Students</v-tab> 18 >Add New Students</v-tab>
19 19
20 <!-- ****** EDITS STUDENTS DETAILS ****** --> 20 <!-- ****** EDITS STUDENTS DETAILS ****** -->
21 21
22 <v-tab-item> 22 <v-tab-item>
23 <v-snackbar 23 <v-snackbar
24 :timeout="timeout" 24 :timeout="timeout"
25 :top="y === 'top'" 25 :top="y === 'top'"
26 :right="x === 'right'" 26 :right="x === 'right'"
27 :vertical="mode === 'vertical'" 27 :vertical="mode === 'vertical'"
28 v-model="snackbar" 28 v-model="snackbar"
29 color="success" 29 color="success"
30 >{{ text }}</v-snackbar> 30 >{{ text }}</v-snackbar>
31 <v-dialog v-model="dialog" max-width="1500px" scrollable> 31 <v-dialog v-model="dialog" max-width="170 0px" scrollable>
32 <v-card flat> 32 <v-card flat>
33 <v-toolbar color="grey lighten-2" flat> 33 <v-toolbar color="grey lighten-2" flat>
34 <v-spacer></v-spacer> 34 <v-spacer></v-spacer>
35 <v-toolbar-title> 35 <v-toolbar-title>
36 <h3>Edit Student Profile</h3> 36 <h3>Edit Student Profile</h3>
37 </v-toolbar-title> 37 </v-toolbar-title>
38 <v-spacer></v-spacer> 38 <v-spacer></v-spacer>
39 </v-toolbar> 39 </v-toolbar>
40 <v-card-text style="height: 586px;"> 40 <v-card-text style="height: 680px;">
41 <v-form ref="form"> 41 <v-form ref="form">
42 <v-container fluid> 42 <v-container fluid>
43 <v-layout> 43 <v-layout>
44 <v-flex 44 <v-flex
45 xs12 45 xs12
46 class="text-xs-center text-sm-center text-md-center text-lg-center mr-4" 46 class="text-xs-center text-sm-center text-md-center text-lg-center"
47 > 47 >
48 <v-avatar size="160px"> 48 <v-avatar size="160px">
49 <img 49 <img
50 src="/static/icon/user.png" 50 src="/static/icon/user.png"
51 v-if="!editedItem.profilePicUrl && !imageUrl" 51 v-if="!editedItem.profilePicUrl && !imageUrl"
52 /> 52 />
53 <img 53 <img
54 :src="editedItem.profilePicUrl" 54 :src="editedItem.profilePicUrl"
55 v-else-if="editedItem.profilePicUrl && !imageUrl" 55 v-else-if="editedItem.profilePicUrl && !imageUrl"
56 /> 56 />
57 <img 57 <img
58 v-if="imageUrl" 58 v-if="imageUrl"
59 :src="imageUrl" 59 :src="imageUrl"
60 height="150" 60 height="150"
61 style="border-radius:50%; width:200px" 61 style="border-radius:50%; width:200px"
62 /> 62 />
63 </v-avatar> 63 </v-avatar>
64 <input 64 <input
65 type="file" 65 type="file"
66 style="display: none" 66 style="display: none"
67 ref="image" 67 ref="image"
68 accept="image/*" 68 accept="image/*"
69 @change="onFilePicked" 69 @change="onFilePicked"
70 /> 70 />
71 </v-flex> 71 </v-flex>
72 </v-layout> 72 </v-layout>
73 <v-layout> 73 <v-layout>
74 <v-flex xs12 sm4> 74 <v-flex xs12 sm4>
75 <v-layout> 75 <v-layout>
76 <v-flex xs4 class="pt-4 subheading"> 76 <v-flex xs4 class="pt-4 subheading">
77 <label class="right hidden-xs-only hidden-sm-only">Select Class:</label> 77 <label class="right hidden-xs-only hidden-sm-only">Select Class:</label>
78 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Class:</label> 78 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Class:</label>
79 </v-flex> 79 </v-flex>
80 <v-flex xs8 class="ml-3"> 80 <v-flex xs8 class="ml-3">
81 <v-select 81 <v-select
82 :items="addclass" 82 :items="addclass"
83 label="Select Class" 83 label="Select Class"
84 v-model="editedItem.select" 84 v-model="editedItem.select"
85 item-text="classNum" 85 item-text="classNum"
86 item-value="_id" 86 item-value="_id"
87 name="Select Class" 87 name="Select Class"
88 @change="getSections(editedItem.select)" 88 @change="getSections(editedItem.select)"
89 required 89 required
90 ></v-select> 90 ></v-select>
91 </v-flex> 91 </v-flex>
92 </v-layout> 92 </v-layout>
93 </v-flex> 93 </v-flex>
94 <v-flex xs12 sm4> 94 <v-flex xs12 sm4>
95 <v-layout> 95 <v-layout>
96 <v-flex xs4 class="pt-4 subheading"> 96 <v-flex xs4 class="pt-4 subheading">
97 <label class="right hidden-xs-only hidden-sm-only">Select Section:</label> 97 <label class="right hidden-xs-only hidden-sm-only">Select Section:</label>
98 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Section:</label> 98 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Section:</label>
99 </v-flex> 99 </v-flex>
100 <v-flex xs8 class="ml-3"> 100 <v-flex xs8 class="ml-3">
101 <v-select 101 <v-select
102 :items="addSection" 102 :items="addSection"
103 label="Select Section" 103 label="Select Section"
104 v-model="editedItem.selectSection" 104 v-model="editedItem.selectSection"
105 item-text="name" 105 item-text="name"
106 item-value="_id" 106 item-value="_id"
107 name="Select Section" 107 name="Select Section"
108 required 108 required
109 ></v-select> 109 ></v-select>
110 </v-flex> 110 </v-flex>
111 </v-layout> 111 </v-layout>
112 </v-flex> 112 </v-flex>
113 <v-flex xs12 sm4> 113 <v-flex xs12 sm4>
114 <v-layout> 114 <v-layout>
115 <v-flex xs4 class="pt-4 subheading"> 115 <v-flex xs4 class="pt-4 subheading">
116 <label class="right hidden-xs-only hidden-sm-only">Full Name:</label> 116 <label class="right hidden-xs-only hidden-sm-only">Full Name:</label>
117 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Name:</label> 117 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Name:</label>
118 </v-flex> 118 </v-flex>
119 <v-flex xs8 class="ml-3"> 119 <v-flex xs8 class="ml-3">
120 <v-text-field 120 <v-text-field
121 v-model="editedItem.name" 121 v-model="editedItem.name"
122 placeholder="fill your full Name" 122 placeholder="fill your full Name"
123 name="name" 123 name="name"
124 type="text" 124 type="text"
125 required 125 required
126 ></v-text-field> 126 ></v-text-field>
127 </v-flex> 127 </v-flex>
128 </v-layout> 128 </v-layout>
129 </v-flex> 129 </v-flex>
130 </v-layout> 130 </v-layout>
131 <v-layout> 131 <v-layout>
132 <v-flex xs12 sm4> 132 <v-flex xs12 sm4>
133 <v-layout> 133 <v-layout>
134 <v-flex xs4 class="pt-4 subheading"> 134 <v-flex xs4 class="pt-4 subheading">
135 <label class="right">Email ID:</label> 135 <label class="right">Email ID:</label>
136 </v-flex> 136 </v-flex>
137 <v-flex xs8 class="ml-3"> 137 <v-flex xs8 class="ml-3">
138 <v-text-field 138 <v-text-field
139 placeholder="fill your email" 139 placeholder="fill your email"
140 v-model="editedItem.email" 140 v-model="editedItem.email"
141 type="text" 141 type="text"
142 name="email" 142 name="email"
143 required 143 required
144 ></v-text-field> 144 ></v-text-field>
145 </v-flex> 145 </v-flex>
146 </v-layout> 146 </v-layout>
147 </v-flex> 147 </v-flex>
148 <v-flex xs12 sm4> 148 <v-flex xs12 sm4>
149 <v-layout> 149 <v-layout>
150 <v-flex xs4 class="pt-4 subheading"> 150 <v-flex xs4 class="pt-4 subheading">
151 <label class="right hidden-sm-only hidden-xs-only">Date of Birth:</label> 151 <label class="right hidden-sm-only hidden-xs-only">Date of Birth:</label>
152 <label class="right hidden-lg-only hidden-xl-only hidden-md-only">D.O.B:</label> 152 <label class="right hidden-lg-only hidden-xl-only hidden-md-only">D.O.B:</label>
153 </v-flex> 153 </v-flex>
154 <v-flex xs8 class="ml-3"> 154 <v-flex xs8 class="ml-3">
155 <v-menu 155 <v-menu
156 ref="menu" 156 ref="menu"
157 :close-on-content-click="false" 157 :close-on-content-click="false"
158 v-model="menu1" 158 v-model="menu1"
159 :nudge-right="40" 159 :nudge-right="40"
160 lazy 160 lazy
161 transition="scale-transition" 161 transition="scale-transition"
162 offset-y 162 offset-y
163 full-width 163 full-width
164 min-width="290px" 164 min-width="290px"
165 > 165 >
166 <v-text-field 166 <v-text-field
167 slot="activator" 167 slot="activator"
168 v-model="editedItem.dob" 168 v-model="editedItem.dob"
169 placeholder="Select Dob" 169 placeholder="Select Dob"
170 ></v-text-field> 170 ></v-text-field>
171 <v-date-picker 171 <v-date-picker
172 ref="picker" 172 ref="picker"
173 v-model="editedItem.dob" 173 v-model="editedItem.dob"
174 :max="new Date().toISOString().substr(0, 10)" 174 :max="new Date().toISOString().substr(0, 10)"
175 min="1950-01-01" 175 min="1950-01-01"
176 @input="menu1 = false" 176 @input="menu1 = false"
177 ></v-date-picker> 177 ></v-date-picker>
178 </v-menu> 178 </v-menu>
179 </v-flex> 179 </v-flex>
180 </v-layout> 180 </v-layout>
181 </v-flex> 181 </v-flex>
182 <v-flex xs12 sm4> 182 <v-flex xs12 sm4>
183 <v-layout> 183 <v-layout>
184 <v-flex xs4 class="pt-4 subheading"> 184 <v-flex xs4 class="pt-4 subheading">
185 <label class="right">City:</label> 185 <label class="right">City:</label>
186 </v-flex> 186 </v-flex>
187 <v-flex xs8 class="ml-3"> 187 <v-flex xs8 class="ml-3">
188 <v-text-field 188 <v-text-field
189 v-model="editedItem.city" 189 v-model="editedItem.city"
190 placeholder="fill your City Name" 190 placeholder="fill your City Name"
191 name="City" 191 name="City"
192 type="text" 192 type="text"
193 required 193 required
194 ></v-text-field> 194 ></v-text-field>
195 </v-flex> 195 </v-flex>
196 </v-layout> 196 </v-layout>
197 </v-flex> 197 </v-flex>
198 </v-layout> 198 </v-layout>
199 <v-layout> 199 <v-layout>
200 <v-flex xs12 sm4> 200 <v-flex xs12 sm4>
201 <v-layout> 201 <v-layout>
202 <v-flex xs4 class="pt-4 subheading"> 202 <v-flex xs4 class="pt-4 subheading">
203 <label class="right hidden-xs-only hidden-sm-only">Blood Group:</label> 203 <label class="right hidden-xs-only hidden-sm-only">Blood Group:</label>
204 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Blood:</label> 204 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Blood:</label>
205 </v-flex> 205 </v-flex>
206 <v-flex xs8 class="ml-3"> 206 <v-flex xs8 class="ml-3">
207 <v-text-field 207 <v-text-field
208 v-model="editedItem.bloodGroup" 208 v-model="editedItem.bloodGroup"
209 placeholder="fill your BloodGroup" 209 placeholder="fill your BloodGroup"
210 name="state" 210 name="state"
211 type="text" 211 type="text"
212 required 212 required
213 ></v-text-field> 213 ></v-text-field>
214 </v-flex> 214 </v-flex>
215 </v-layout> 215 </v-layout>
216 </v-flex> 216 </v-flex>
217 <v-flex xs12 sm4> 217 <v-flex xs12 sm4>
218 <v-layout> 218 <v-layout>
219 <v-flex xs4 class="pt-4 subheading"> 219 <v-flex xs4 class="pt-4 subheading">
220 <label class="right">Allergies:</label> 220 <label class="right">Allergies:</label>
221 </v-flex> 221 </v-flex>
222 <v-flex xs8 class="ml-3"> 222 <v-flex xs8 class="ml-3">
223 <v-text-field 223 <v-text-field
224 v-model="editedItem.allergies" 224 v-model="editedItem.allergies"
225 placeholder="fill your Allergies" 225 placeholder="fill your Allergies"
226 name="pincode" 226 name="pincode"
227 required 227 required
228 ></v-text-field> 228 ></v-text-field>
229 </v-flex> 229 </v-flex>
230 </v-layout> 230 </v-layout>
231 </v-flex> 231 </v-flex>
232 <v-flex xs12 sm4> 232 <v-flex xs12 sm4>
233 <v-layout> 233 <v-layout>
234 <v-flex xs4 class="pt-4 subheading"> 234 <v-flex xs4 class="pt-4 subheading">
235 <label class="right">Medical Notes:</label> 235 <label class="right">Medical Notes:</label>
236 </v-flex> 236 </v-flex>
237 <v-flex xs8 class="ml-3"> 237 <v-flex xs8 class="ml-3">
238 <v-text-field 238 <v-text-field
239 v-model="editedItem.medicalNotes" 239 v-model="editedItem.medicalNotes"
240 placeholder="fill your medicalNotes" 240 placeholder="fill your medicalNotes"
241 name="mobileNo" 241 name="mobileNo"
242 required 242 required
243 ></v-text-field> 243 ></v-text-field>
244 </v-flex> 244 </v-flex>
245 </v-layout> 245 </v-layout>
246 </v-flex> 246 </v-flex>
247 </v-layout> 247 </v-layout>
248 <v-layout> 248 <v-layout>
249 <v-flex xs12 sm4> 249 <v-flex xs12 sm4>
250 <v-layout> 250 <v-layout>
251 <v-flex xs4 class="pt-4 subheading"> 251 <v-flex xs4 class="pt-4 subheading">
252 <label class="right">Height:</label> 252 <label class="right">Height:</label>
253 </v-flex> 253 </v-flex>
254 <v-flex xs8 class="ml-3"> 254 <v-flex xs8 class="ml-3">
255 <v-text-field 255 <v-text-field
256 v-model="editedItem.height" 256 v-model="editedItem.height"
257 placeholder="fill your Height" 257 placeholder="fill your Height"
258 name="state" 258 name="state"
259 type="text" 259 type="text"
260 required 260 required
261 ></v-text-field> 261 ></v-text-field>
262 </v-flex> 262 </v-flex>
263 </v-layout> 263 </v-layout>
264 </v-flex> 264 </v-flex>
265 <v-flex xs12 sm4> 265 <v-flex xs12 sm4>
266 <v-layout> 266 <v-layout>
267 <v-flex xs4 class="pt-4 subheading"> 267 <v-flex xs4 class="pt-4 subheading">
268 <label class="right">Weight:</label> 268 <label class="right">Weight:</label>
269 </v-flex> 269 </v-flex>
270 <v-flex xs8 class="ml-3"> 270 <v-flex xs8 class="ml-3">
271 <v-text-field 271 <v-text-field
272 v-model="editedItem.weight" 272 v-model="editedItem.weight"
273 placeholder="fill your Weight" 273 placeholder="fill your Weight"
274 name="pincode" 274 name="pincode"
275 required 275 required
276 ></v-text-field> 276 ></v-text-field>
277 </v-flex> 277 </v-flex>
278 </v-layout> 278 </v-layout>
279 </v-flex> 279 </v-flex>
280 <v-flex xs12 sm4> 280 <v-flex xs12 sm4>
281 <v-layout> 281 <v-layout>
282 <v-flex xs4 class="pt-4 subheading"> 282 <v-flex xs4 class="pt-4 subheading">
283 <label class="right hidden-xs-only hidden-sm-only">Uplaod Image:</label> 283 <label class="right hidden-xs-only hidden-sm-only">Uplaod Image:</label>
284 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Uplaod :</label> 284 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Uplaod:</label>
285 </v-flex> 285 </v-flex>
286 <v-flex xs8 class="ml-3"> 286 <v-flex xs8 class="ml-3">
287 <v-text-field 287 <v-text-field
288 label="Select Image" 288 label="Select Image"
289 @click="pickFile" 289 @click="pickFile"
290 v-model="imageName" 290 v-model="imageName"
291 append-icon="attach_file" 291 append-icon="attach_file"
292 ></v-text-field> 292 ></v-text-field>
293 </v-flex> 293 </v-flex>
294 </v-layout> 294 </v-layout>
295 </v-flex> 295 </v-flex>
296 </v-layout> 296 </v-layout>
297 <v-layout> 297 <v-layout>
298 <v-flex xs12 sm4> 298 <v-flex xs12 sm4>
299 <v-layout> 299 <v-layout>
300 <v-flex xs4 class="pt-4 subheading"> 300 <v-flex xs4 class="pt-4 subheading">
301 <label class="right">State:</label> 301 <label class="right">State:</label>
302 </v-flex> 302 </v-flex>
303 <v-flex xs8 class="ml-3"> 303 <v-flex xs8 class="ml-3">
304 <v-text-field 304 <v-text-field
305 v-model="editedItem.state" 305 v-model="editedItem.state"
306 placeholder="fill your State Name" 306 placeholder="fill your State Name"
307 name="state" 307 name="state"
308 type="text" 308 type="text"
309 required 309 required
310 ></v-text-field> 310 ></v-text-field>
311 </v-flex> 311 </v-flex>
312 </v-layout> 312 </v-layout>
313 </v-flex> 313 </v-flex>
314 <v-flex xs12 sm4> 314 <v-flex xs12 sm4>
315 <v-layout> 315 <v-layout>
316 <v-flex xs4 class="pt-4 subheading"> 316 <v-flex xs4 class="pt-4 subheading">
317 <label class="right">Pincode:</label> 317 <label class="right">Pincode:</label>
318 </v-flex> 318 </v-flex>
319 <v-flex xs8 class="ml-3"> 319 <v-flex xs8 class="ml-3">
320 <v-text-field 320 <v-text-field
321 v-model="editedItem.pincode" 321 v-model="editedItem.pincode"
322 placeholder="fill your pincode" 322 placeholder="fill your pincode"
323 name="pincode" 323 name="pincode"
324 type="number" 324 type="number"
325 required 325 required
326 ></v-text-field> 326 ></v-text-field>
327 </v-flex> 327 </v-flex>
328 </v-layout> 328 </v-layout>
329 </v-flex> 329 </v-flex>
330 <v-flex xs12 sm4> 330 <v-flex xs12 sm4>
331 <v-layout> 331 <v-layout>
332 <v-flex xs4 class="pt-4 subheading"> 332 <v-flex xs4 class="pt-4 subheading">
333 <label class="right hidden-xs-only hidden-sm-only">Mobile No:</label> 333 <label class="right hidden-xs-only hidden-sm-only">Mobile No:</label>
334 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Mobile:</label> 334 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Mobile:</label>
335 </v-flex> 335 </v-flex>
336 <v-flex xs8 class="ml-3"> 336 <v-flex xs8 class="ml-3">
337 <v-text-field 337 <v-text-field
338 v-model="editedItem.mobile" 338 v-model="editedItem.mobile"
339 placeholder="fill your MobileNo" 339 placeholder="fill your MobileNo"
340 name="mobileNo" 340 name="mobileNo"
341 type="number" 341 type="number"
342 required 342 required
343 ></v-text-field> 343 ></v-text-field>
344 </v-flex> 344 </v-flex>
345 </v-layout> 345 </v-layout>
346 </v-flex> 346 </v-flex>
347 </v-layout> 347 </v-layout>
348 <v-layout> 348 <v-layout>
349 <v-flex xs12 sm4> 349 <v-flex xs12 sm4>
350 <v-layout> 350 <v-layout>
351 <v-flex xs4 class="pt-4 subheading"> 351 <v-flex xs4 class="pt-4 subheading">
352 <label class="right hidden-xs-only hidden-sm-only">Select Country:</label> 352 <label class="right hidden-xs-only hidden-sm-only">Select Country:</label>
353 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Country:</label> 353 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Country:</label>
354 </v-flex> 354 </v-flex>
355 <v-flex xs8 class="ml-3"> 355 <v-flex xs8 class="ml-3">
356 <v-autocomplete 356 <v-autocomplete
357 v-model="editedItem.country" 357 v-model="editedItem.country"
358 :items="countries" 358 :items="countries"
359 placeholder="Select Country Name" 359 placeholder="Select Country Name"
360 required 360 required
361 ></v-autocomplete> 361 ></v-autocomplete>
362 </v-flex> 362 </v-flex>
363 </v-layout> 363 </v-layout>
364 </v-flex> 364 </v-flex>
365 <v-flex xs12 sm4> 365 <v-flex xs12 sm4>
366 <v-layout> 366 <v-layout>
367 <v-flex xs4 class="pt-4 subheading"> 367 <v-flex xs4 class="pt-4 subheading">
368 <label class="right">Gender:</label> 368 <label class="right">Gender:</label>
369 </v-flex> 369 </v-flex>
370 <v-flex xs8 class="ml-3"> 370 <v-flex xs8 class="ml-3">
371 <v-select 371 <v-select
372 :items="gender" 372 :items="gender"
373 v-model="editedItem.gender" 373 v-model="editedItem.gender"
374 placeholder="Select Gender" 374 placeholder="Select Gender"
375 required 375 required
376 ></v-select> 376 ></v-select>
377 </v-flex> 377 </v-flex>
378 </v-layout> 378 </v-layout>
379 </v-flex> 379 </v-flex>
380 <v-flex xs12 sm4> 380 <v-flex xs12 sm4>
381 <v-layout> 381 <v-layout>
382 <v-flex xs4 class="pt-4 subheading"> 382 <v-flex xs4 class="pt-4 subheading">
383 <label class="right hidden-xs-only hidden-sm-only">Roll Number:</label> 383 <label class="right hidden-xs-only hidden-sm-only">Roll Number:</label>
384 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Roll No:</label> 384 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Roll No:</label>
385 </v-flex> 385 </v-flex>
386 <v-flex xs8 class="ml-3"> 386 <v-flex xs8 class="ml-3">
387 <v-text-field 387 <v-text-field
388 :items="gender" 388 :items="gender"
389 v-model="editedItem.rollNo" 389 v-model="editedItem.rollNo"
390 placeholder="fill roll number" 390 placeholder="fill roll number"
391 required 391 required
392 ></v-text-field> 392 ></v-text-field>
393 </v-flex> 393 </v-flex>
394 </v-layout> 394 </v-layout>
395 </v-flex> 395 </v-flex>
396 </v-layout> 396 </v-layout>
397 <v-layout class="hidden-xs-only hidden-sm-only"> 397 <v-layout class="hidden-xs-only hidden-sm-only">
398 <v-flex xs12 sm12> 398 <v-flex xs12 sm4>
399 <v-layout> 399 <v-layout>
400 <v-flex xs4 sm2 class="pt-4 subheading ml-5"> 400 <v-flex xs4 sm4 class="pt-4 subheading">
401 <label class="right pr-4">Present Address:</label> 401 <label class="right hidden-xs-only hidden-sm-only">Permanent Address:</label>
402 <label
403 class="right hidden-lg-only hidden-md-only hidden-xl-only"
404 >Permanent Address:</label>
402 </v-flex> 405 </v-flex>
403 <v-flex xs8 sm12> 406 <v-flex xs12 sm8 class="ml-3">
404 <v-text-field 407 <v-text-field
405 name="input-4-3" 408 v-model="editedItem.permanentAddress"
406 v-model="editedItem.presentAddress" 409 placeholder="fill Your Permanent Address"
407 placeholder="fill Your present Address"
408 required 410 required
409 ></v-text-field> 411 ></v-text-field>
410 </v-flex> 412 </v-flex>
411 </v-layout> 413 </v-layout>
412 </v-flex> 414 </v-flex>
413 <v-flex xs12 sm12> 415 <v-flex xs12 sm4>
414 <v-layout> 416 <v-layout>
415 <v-flex xs4 sm2 class="pt-4 subheading ml-5 addressForm"> 417 <v-flex xs4 class="pt-4 subheading">
416 <label class>Permanent Address:</label> 418 <label class="right hidden-xs-only hidden-sm-only">Present Address:</label>
419 <label
420 class="right hidden-lg-only hidden-md-only hidden-xl-only"
421 >Present Address:</label>
417 </v-flex> 422 </v-flex>
418 <v-flex xs12 sm12> 423 <v-flex xs8 class="ml-3">
419 <v-text-field 424 <v-text-field
420 name="input-4-3" 425 v-model="editedItem.presentAddress"
421 v-model="editedItem.permanentAddress" 426 placeholder="Select Country Name"
422 placeholder="fill Your Permanent Address"
423 required 427 required
424 ></v-text-field> 428 ></v-text-field>
425 </v-flex> 429 </v-flex>
426 </v-layout> 430 </v-layout>
427 </v-flex> 431 </v-flex>
428 </v-layout> 432 </v-layout>
429 <v-layout class="hidden-lg-only hidden-md-only hidden-xl-only"> 433 <v-layout class="hidden-lg-only hidden-md-only hidden-xl-only">
430 <v-flex xs12 sm12> 434 <v-flex xs12 sm12>
431 <v-layout> 435 <v-layout>
432 <v-flex xs12 sm3 class="pt-4 subheading text-xs-center"> 436 <v-flex xs12 sm3 class="pt-4 subheading text-xs-center">
433 <label class>Present Address :</label> 437 <label class>Present Address :</label>
434 </v-flex> 438 </v-flex>
435 </v-layout> 439 </v-layout>
436 <v-layout> 440 <v-layout>
437 <v-flex xs12 sm12> 441 <v-flex xs12 sm12>
438 <v-textarea 442 <v-textarea
439 name="input-4-3"
440 v-model="editedItem.presentAddress" 443 v-model="editedItem.presentAddress"
441 placeholder="fill Your present Address" 444 placeholder="fill Your present Address"
442 required 445 required
443 ></v-textarea> 446 ></v-textarea>
444 </v-flex> 447 </v-flex>
445 </v-layout> 448 </v-layout>
446 </v-flex> 449 </v-flex>
447 <v-flex xs12 sm12> 450 <v-flex xs12 sm12>
448 <v-layout> 451 <v-layout>
449 <v-flex xs12 sm3 class="pt-4 pr-4 subheading text-xs-center addressForm"> 452 <v-flex xs12 sm3 class="pt-4 pr-4 subheading text-xs-center addressForm">
450 <label>Permanent addr:</label> 453 <label>Permanent addr:</label>
451 </v-flex> 454 </v-flex>
452 </v-layout> 455 </v-layout>
453 <v-layout> 456 <v-layout>
454 <v-flex xs12 sm12> 457 <v-flex xs12 sm12>
455 <v-textarea 458 <v-textarea
456 name="input-4-3" 459 name="input-4-3"
457 v-model="editedItem.permanentAddress" 460 v-model="editedItem.permanentAddress"
458 placeholder="fill Your Permanent Address" 461 placeholder="fill Your Permanent Address"
459 required 462 required
460 ></v-textarea> 463 ></v-textarea>
461 </v-flex> 464 </v-flex>
462 </v-layout> 465 </v-layout>
463 </v-flex> 466 </v-flex>
464 </v-layout> 467 </v-layout>
465 <v-layout> 468 <v-layout>
466 <v-flex xs12 sm12> 469 <v-flex xs12 sm12>
467 <v-layout> 470 <v-layout>
468 <v-flex xs6> 471 <v-flex xs6>
469 <v-btn round dark @click.native="close">Cancel</v-btn> 472 <v-btn round dark @click.native="close">Cancel</v-btn>
470 </v-flex> 473 </v-flex>
471 <v-flex xs6> 474 <v-flex xs6>
472 <v-btn @click="save" round dark :loading="loading" class="right">Save</v-btn> 475 <v-btn @click="save" round dark :loading="loading" class="right">Save</v-btn>
473 </v-flex> 476 </v-flex>
474 </v-layout> 477 </v-layout>
475 </v-flex> 478 </v-flex>
476 </v-layout> 479 </v-layout>
477 </v-container> 480 </v-container>
478 </v-form> 481 </v-form>
479 </v-card-text> 482 </v-card-text>
480 </v-card> 483 </v-card>
481 </v-dialog> 484 </v-dialog>
482 485
483 <!-- ****** PROFILE VIEW STUDENTS DEATILS ****** --> 486 <!-- ****** PROFILE VIEW STUDENTS DEATILS ****** -->
484 487
485 <v-dialog v-model="dialog1" max-width="1100px" scrollable> 488 <v-dialog v-model="dialog1" max-width="1100px" scrollable>
486 <v-card> 489 <v-card>
487 <v-toolbar color="grey lighten-2" flat> 490 <v-toolbar color="grey lighten-2" flat>
488 <v-spacer></v-spacer> 491 <v-spacer></v-spacer>
489 <v-toolbar-title>Student Profile</v-toolbar-title> 492 <v-toolbar-title>Student Profile</v-toolbar-title>
490 <v-spacer></v-spacer> 493 <v-spacer></v-spacer>
491 <v-icon @click="close1">close</v-icon> 494 <v-icon @click="close1">close</v-icon>
492 </v-toolbar> 495 </v-toolbar>
493 <v-card-text style="height: 700px;"> 496 <v-card-text style="height: 700px;">
494 <v-flex align-center justify-center layout text-xs-center class="mt-3"> 497 <v-flex align-center justify-center layout text-xs-center class="mt-3">
495 <v-avatar size="160px"> 498 <v-avatar size="160px">
496 <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl" /> 499 <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl" />
497 <img :src="editedItem.profilePicUrl" v-else-if="editedItem.profilePicUrl" /> 500 <img :src="editedItem.profilePicUrl" v-else-if="editedItem.profilePicUrl" />
498 </v-avatar> 501 </v-avatar>
499 </v-flex> 502 </v-flex>
500 <v-container grid-list-md> 503 <v-container grid-list-md>
501 <v-layout wrap> 504 <v-layout wrap>
502 <v-flex xs12 sm6> 505 <v-flex xs12 sm6>
503 <v-layout> 506 <v-layout>
504 <v-flex xs6 sm5> 507 <v-flex xs6 sm5>
505 <h5 class="right my-1"> 508 <h5 class="right my-1">
506 <b>Full Name:</b> 509 <b>Full Name:</b>
507 </h5> 510 </h5>
508 </v-flex> 511 </v-flex>
509 <v-flex sm7 xs6> 512 <v-flex sm7 xs6>
510 <h5 class="my-1 left">{{ editedItem.name }}</h5> 513 <h5 class="my-1 left">{{ editedItem.name }}</h5>
511 </v-flex> 514 </v-flex>
512 </v-layout> 515 </v-layout>
513 </v-flex> 516 </v-flex>
514 <v-flex xs12 sm6> 517 <v-flex xs12 sm6>
515 <v-layout> 518 <v-layout>
516 <v-flex xs6 sm4> 519 <v-flex xs6 sm4>
517 <h5 class="right my-1"> 520 <h5 class="right my-1">
518 <b>Email:</b> 521 <b>Email:</b>
519 </h5> 522 </h5>
520 </v-flex> 523 </v-flex>
521 <v-flex sm8 xs6> 524 <v-flex sm8 xs6>
522 <h5 class="my-1 left">{{ editedItem.email }}</h5> 525 <h5 class="my-1 left">{{ editedItem.email }}</h5>
523 </v-flex> 526 </v-flex>
524 </v-layout> 527 </v-layout>
525 </v-flex> 528 </v-flex>
526 </v-layout> 529 </v-layout>
527 <v-layout wrap> 530 <v-layout wrap>
528 <v-flex xs12 sm6> 531 <v-flex xs12 sm6>
529 <v-layout> 532 <v-layout>
530 <v-flex xs6 sm5> 533 <v-flex xs6 sm5>
531 <b> 534 <b>
532 <h5 class="right my-1"> 535 <h5 class="right my-1">
533 <b>Gender:</b> 536 <b>Gender:</b>
534 </h5> 537 </h5>
535 </b> 538 </b>
536 </v-flex> 539 </v-flex>
537 <v-flex sm7 xs6> 540 <v-flex sm7 xs6>
538 <h5 class="my-1 left">{{ editedItem.gender }}</h5> 541 <h5 class="my-1 left">{{ editedItem.gender }}</h5>
539 </v-flex> 542 </v-flex>
540 </v-layout> 543 </v-layout>
541 </v-flex> 544 </v-flex>
542 <v-flex xs12 sm6> 545 <v-flex xs12 sm6>
543 <v-layout> 546 <v-layout>
544 <v-flex xs6 sm4> 547 <v-flex xs6 sm4>
545 <b> 548 <b>
546 <h5 class="right my-1"> 549 <h5 class="right my-1">
547 <b>D.O.B:</b> 550 <b>D.O.B:</b>
548 </h5> 551 </h5>
549 </b> 552 </b>
550 </v-flex> 553 </v-flex>
551 <v-flex sm7 xs6> 554 <v-flex sm7 xs6>
552 <h5 class="my-1">{{ dates(editedItem.dob) }}</h5> 555 <h5 class="my-1">{{ dates(editedItem.dob) }}</h5>
553 </v-flex> 556 </v-flex>
554 </v-layout> 557 </v-layout>
555 </v-flex> 558 </v-flex>
556 </v-layout> 559 </v-layout>
557 <v-layout wrap> 560 <v-layout wrap>
558 <v-flex xs12 sm6> 561 <v-flex xs12 sm6>
559 <v-layout> 562 <v-layout>
560 <v-flex xs6 sm5> 563 <v-flex xs6 sm5>
561 <b> 564 <b>
562 <h5 class="right my-1"> 565 <h5 class="right my-1">
563 <b>Blood Group:</b> 566 <b>Blood Group:</b>
564 </h5> 567 </h5>
565 </b> 568 </b>
566 </v-flex> 569 </v-flex>
567 <v-flex sm7 xs6> 570 <v-flex sm7 xs6>
568 <h5 class="my-1 left">{{ editedItem.bloodGroup }}</h5> 571 <h5 class="my-1 left">{{ editedItem.bloodGroup }}</h5>
569 </v-flex> 572 </v-flex>
570 </v-layout> 573 </v-layout>
571 </v-flex> 574 </v-flex>
572 <v-flex xs12 sm6> 575 <v-flex xs12 sm6>
573 <v-layout> 576 <v-layout>
574 <v-flex xs6 sm4> 577 <v-flex xs6 sm4>
575 <b> 578 <b>
576 <h5 class="right my-1"> 579 <h5 class="right my-1">
577 <b>Allergies:</b> 580 <b>Allergies:</b>
578 </h5> 581 </h5>
579 </b> 582 </b>
580 </v-flex> 583 </v-flex>
581 <v-flex sm8 xs6> 584 <v-flex sm8 xs6>
582 <h5 class="my-1">{{ editedItem.allergies }}</h5> 585 <h5 class="my-1">{{ editedItem.allergies }}</h5>
583 </v-flex> 586 </v-flex>
584 </v-layout> 587 </v-layout>
585 </v-flex> 588 </v-flex>
586 </v-layout> 589 </v-layout>
587 <v-layout wrap> 590 <v-layout wrap>
588 <v-flex xs12 sm6> 591 <v-flex xs12 sm6>
589 <v-layout> 592 <v-layout>
590 <v-flex xs6 sm5> 593 <v-flex xs6 sm5>
591 <b> 594 <b>
592 <h5 class="right my-1"> 595 <h5 class="right my-1">
593 <b>Height:</b> 596 <b>Height:</b>
594 </h5> 597 </h5>
595 </b> 598 </b>
596 </v-flex> 599 </v-flex>
597 <v-flex sm7 xs6> 600 <v-flex sm7 xs6>
598 <h5 class="my-1 left">{{ editedItem.height }}</h5> 601 <h5 class="my-1 left">{{ editedItem.height }}</h5>
599 </v-flex> 602 </v-flex>
600 </v-layout> 603 </v-layout>
601 </v-flex> 604 </v-flex>
602 <v-flex xs12 sm6> 605 <v-flex xs12 sm6>
603 <v-layout> 606 <v-layout>
604 <v-flex xs6 sm4> 607 <v-flex xs6 sm4>
605 <b> 608 <b>
606 <h5 class="right my-1"> 609 <h5 class="right my-1">
607 <b>Weight:</b> 610 <b>Weight:</b>
608 </h5> 611 </h5>
609 </b> 612 </b>
610 </v-flex> 613 </v-flex>
611 <v-flex sm8 xs6> 614 <v-flex sm8 xs6>
612 <h5 class="my-1">{{ editedItem.weight }}</h5> 615 <h5 class="my-1">{{ editedItem.weight }}</h5>
613 </v-flex> 616 </v-flex>
614 </v-layout> 617 </v-layout>
615 </v-flex> 618 </v-flex>
616 </v-layout> 619 </v-layout>
617 <v-layout wrap> 620 <v-layout wrap>
618 <v-flex xs12 sm6> 621 <v-flex xs12 sm6>
619 <v-layout> 622 <v-layout>
620 <v-flex xs6 sm5> 623 <v-flex xs6 sm5>
621 <b> 624 <b>
622 <h5 class="right my-1"> 625 <h5 class="right my-1">
623 <b>City:</b> 626 <b>City:</b>
624 </h5> 627 </h5>
625 </b> 628 </b>
626 </v-flex> 629 </v-flex>
627 <v-flex sm7 xs6> 630 <v-flex sm7 xs6>
628 <h5 class="my-1 left">{{ editedItem.city }}</h5> 631 <h5 class="my-1 left">{{ editedItem.city }}</h5>
629 </v-flex> 632 </v-flex>
630 </v-layout> 633 </v-layout>
631 </v-flex> 634 </v-flex>
632 <v-flex xs12 sm6> 635 <v-flex xs12 sm6>
633 <v-layout> 636 <v-layout>
634 <v-flex xs6 sm4> 637 <v-flex xs6 sm4>
635 <b> 638 <b>
636 <h5 class="right my-1"> 639 <h5 class="right my-1">
637 <b>State:</b> 640 <b>State:</b>
638 </h5> 641 </h5>
639 </b> 642 </b>
640 </v-flex> 643 </v-flex>
641 <v-flex sm8 xs6> 644 <v-flex sm8 xs6>
642 <h5 class="my-1">{{ editedItem.state }}</h5> 645 <h5 class="my-1">{{ editedItem.state }}</h5>
643 </v-flex> 646 </v-flex>
644 </v-layout> 647 </v-layout>
645 </v-flex> 648 </v-flex>
646 </v-layout> 649 </v-layout>
647 <v-layout wrap> 650 <v-layout wrap>
648 <v-flex xs12 sm6> 651 <v-flex xs12 sm6>
649 <v-layout> 652 <v-layout>
650 <v-flex xs6 sm5> 653 <v-flex xs6 sm5>
651 <b> 654 <b>
652 <h5 class="right my-1"> 655 <h5 class="right my-1">
653 <b>Pincode:</b> 656 <b>Pincode:</b>
654 </h5> 657 </h5>
655 </b> 658 </b>
656 </v-flex> 659 </v-flex>
657 <v-flex sm7 xs6> 660 <v-flex sm7 xs6>
658 <h5 class="my-1">{{ editedItem.pincode }}</h5> 661 <h5 class="my-1">{{ editedItem.pincode }}</h5>
659 </v-flex> 662 </v-flex>
660 </v-layout> 663 </v-layout>
661 </v-flex> 664 </v-flex>
662 <v-flex xs12 sm5> 665 <v-flex xs12 sm5>
663 <v-layout> 666 <v-layout>
664 <v-flex xs6 sm5> 667 <v-flex xs6 sm5>
665 <b> 668 <b>
666 <h5 class="right my-1"> 669 <h5 class="right my-1">
667 <b>Country:</b> 670 <b>Country:</b>
668 </h5> 671 </h5>
669 </b> 672 </b>
670 </v-flex> 673 </v-flex>
671 <v-flex sm7 xs6> 674 <v-flex sm7 xs6>
672 <h5 class="my-1">{{ editedItem.country }}</h5> 675 <h5 class="my-1">{{ editedItem.country }}</h5>
673 </v-flex> 676 </v-flex>
674 </v-layout> 677 </v-layout>
675 </v-flex> 678 </v-flex>
676 </v-layout> 679 </v-layout>
677 <v-layout wrap> 680 <v-layout wrap>
678 <v-flex xs12 sm6> 681 <v-flex xs12 sm6>
679 <v-layout> 682 <v-layout>
680 <v-flex sm5 xs6> 683 <v-flex sm5 xs6>
681 <b> 684 <b>
682 <h5 class="right my-1"> 685 <h5 class="right my-1">
683 <b>Mobile No:</b> 686 <b>Mobile No:</b>
684 </h5> 687 </h5>
685 </b> 688 </b>
686 </v-flex> 689 </v-flex>
687 <v-flex sm6 xs6> 690 <v-flex sm6 xs6>
688 <h5 class="my-1">{{ editedItem.mobile }}</h5> 691 <h5 class="my-1">{{ editedItem.mobile }}</h5>
689 </v-flex> 692 </v-flex>
690 </v-layout> 693 </v-layout>
691 </v-flex> 694 </v-flex>
692 <v-flex xs12 sm6> 695 <v-flex xs12 sm6>
693 <v-layout> 696 <v-layout>
694 <v-flex xs6 sm4> 697 <v-flex xs6 sm4>
695 <b> 698 <b>
696 <h5 class="right my-1"> 699 <h5 class="right my-1">
697 <b>Fahter Name:</b> 700 <b>Fahter Name:</b>
698 </h5> 701 </h5>
699 </b> 702 </b>
700 </v-flex> 703 </v-flex>
701 <v-flex sm8 xs6> 704 <v-flex sm8 xs6>
702 <h5 class="my-1">{{ editedItem.fatherName }}</h5> 705 <h5 class="my-1">{{ editedItem.fatherName }}</h5>
703 </v-flex> 706 </v-flex>
704 </v-layout> 707 </v-layout>
705 </v-flex> 708 </v-flex>
706 </v-layout> 709 </v-layout>
707 <v-layout wrap> 710 <v-layout wrap>
708 <v-flex xs12 sm5> 711 <v-flex xs12 sm5>
709 <v-layout> 712 <v-layout>
710 <v-flex xs6 sm6> 713 <v-flex xs6 sm6>
711 <b> 714 <b>
712 <h5 class="right my-1"> 715 <h5 class="right my-1">
713 <b>Mother Name:</b> 716 <b>Mother Name:</b>
714 </h5> 717 </h5>
715 </b> 718 </b>
716 </v-flex> 719 </v-flex>
717 <v-flex sm6 xs6> 720 <v-flex sm6 xs6>
718 <h5 class="my-1">{{ editedItem.motherName }}</h5> 721 <h5 class="my-1">{{ editedItem.motherName }}</h5>
719 </v-flex> 722 </v-flex>
720 </v-layout> 723 </v-layout>
721 </v-flex> 724 </v-flex>
722 <v-flex xs12 sm6> 725 <v-flex xs12 sm6>
723 <v-layout> 726 <v-layout>
724 <v-flex xs6 sm6> 727 <v-flex xs6 sm6>
725 <b> 728 <b>
726 <h5 class="right my-1"> 729 <h5 class="right my-1">
727 <b>Father Cell No:</b> 730 <b>Father Cell No:</b>
728 </h5> 731 </h5>
729 </b> 732 </b>
730 </v-flex> 733 </v-flex>
731 <v-flex sm6 xs6> 734 <v-flex sm6 xs6>
732 <h5 class="my-1">{{ editedItem.fatherCellNo }}</h5> 735 <h5 class="my-1">{{ editedItem.fatherCellNo }}</h5>
733 </v-flex> 736 </v-flex>
734 </v-layout> 737 </v-layout>
735 </v-flex> 738 </v-flex>
736 </v-layout> 739 </v-layout>
737 <v-layout wrap> 740 <v-layout wrap>
738 <v-flex xs12 sm5> 741 <v-flex xs12 sm5>
739 <v-layout> 742 <v-layout>
740 <v-flex xs6 sm6> 743 <v-flex xs6 sm6>
741 <b> 744 <b>
742 <h5 class="right my-1"> 745 <h5 class="right my-1">
743 <b>Mother Cell No:</b> 746 <b>Mother Cell No:</b>
744 </h5> 747 </h5>
745 </b> 748 </b>
746 </v-flex> 749 </v-flex>
747 <v-flex sm6 xs6> 750 <v-flex sm6 xs6>
748 <h5 class="my-1">{{ editedItem.motherCellNo }}</h5> 751 <h5 class="my-1">{{ editedItem.motherCellNo }}</h5>
749 </v-flex> 752 </v-flex>
750 </v-layout> 753 </v-layout>
751 </v-flex> 754 </v-flex>
752 <v-flex xs12 sm6> 755 <v-flex xs12 sm6>
753 <v-layout> 756 <v-layout>
754 <v-flex xs6 sm6> 757 <v-flex xs6 sm6>
755 <b> 758 <b>
756 <h5 class="my-1 right"> 759 <h5 class="my-1 right">
757 <b>Academic Year:</b> 760 <b>Academic Year:</b>
758 </h5> 761 </h5>
759 </b> 762 </b>
760 </v-flex> 763 </v-flex>
761 <v-flex sm5 xs6> 764 <v-flex sm5 xs6>
762 <h5 class="my-1">{{ editedItem.establishmentYear }}</h5> 765 <h5 class="my-1">{{ editedItem.establishmentYear }}</h5>
763 </v-flex> 766 </v-flex>
764 </v-layout> 767 </v-layout>
765 </v-flex> 768 </v-flex>
766 </v-layout> 769 </v-layout>
767 <v-layout wrap> 770 <v-layout wrap>
768 <v-flex xs12 sm5> 771 <v-flex xs12 sm5>
769 <v-layout> 772 <v-layout>
770 <v-flex xs6 sm6> 773 <v-flex xs6 sm6>
771 <b> 774 <b>
772 <h5 class="my-1 right"> 775 <h5 class="my-1 right">
773 <b>Medical Notes:</b> 776 <b>Medical Notes:</b>
774 </h5> 777 </h5>
775 </b> 778 </b>
776 </v-flex> 779 </v-flex>
777 <v-flex sm5 xs6> 780 <v-flex sm5 xs6>
778 <h5 class="my-1">{{ editedItem.medicalNotes }}</h5> 781 <h5 class="my-1">{{ editedItem.medicalNotes }}</h5>
779 </v-flex> 782 </v-flex>
780 </v-layout> 783 </v-layout>
781 </v-flex> 784 </v-flex>
782 <v-flex xs12 sm6> 785 <v-flex xs12 sm6>
783 <v-layout> 786 <v-layout>
784 <v-flex xs6 sm6> 787 <v-flex xs6 sm6>
785 <b> 788 <b>
786 <h5 class="right my-1"> 789 <h5 class="right my-1">
787 <b>Roll No. :</b> 790 <b>Roll No. :</b>
788 </h5> 791 </h5>
789 </b> 792 </b>
790 </v-flex> 793 </v-flex>
791 <v-flex sm6 xs6> 794 <v-flex sm6 xs6>
792 <h5 class="my-1">{{ editedItem.rollNo }}</h5> 795 <h5 class="my-1">{{ editedItem.rollNo }}</h5>
793 </v-flex> 796 </v-flex>
794 </v-layout> 797 </v-layout>
795 </v-flex> 798 </v-flex>
796 </v-layout> 799 </v-layout>
797 <v-layout wrap class="hidden-xs-only"> 800 <v-layout wrap class="hidden-xs-only">
798 <v-flex xs12 sm5> 801 <v-flex xs12 sm5>
799 <v-layout wrap> 802 <v-layout wrap>
800 <v-flex sm6> 803 <v-flex sm6>
801 <b> 804 <b>
802 <h5 class="my-1 right"> 805 <h5 class="my-1 right">
803 <b>present Address:</b> 806 <b>present Address:</b>
804 </h5> 807 </h5>
805 </b> 808 </b>
806 </v-flex> 809 </v-flex>
807 <v-flex sm5> 810 <v-flex sm5>
808 <h5 class="my-1">{{ editedItem.presentAddress }}</h5> 811 <h5 class="my-1">{{ editedItem.presentAddress }}</h5>
809 </v-flex> 812 </v-flex>
810 </v-layout> 813 </v-layout>
811 </v-flex> 814 </v-flex>
812 <v-flex sm6> 815 <v-flex sm6>
813 <v-layout wrap> 816 <v-layout wrap>
814 <v-flex sm6> 817 <v-flex sm6>
815 <b> 818 <b>
816 <h5 class="my-1 right"> 819 <h5 class="my-1 right">
817 <b>Permanent Address:</b> 820 <b>Permanent Address:</b>
818 </h5> 821 </h5>
819 </b> 822 </b>
820 </v-flex> 823 </v-flex>
821 <v-flex sm6> 824 <v-flex sm6>
822 <h5 class="my-1">{{ editedItem.permanentAddress }}</h5> 825 <h5 class="my-1">{{ editedItem.permanentAddress }}</h5>
823 </v-flex> 826 </v-flex>
824 </v-layout> 827 </v-layout>
825 </v-flex> 828 </v-flex>
826 </v-layout> 829 </v-layout>
827 <v-layout wrap class="hidden-sm-only hidden-md-only hidden-lg-only hidden-xl-only"> 830 <v-layout wrap class="hidden-sm-only hidden-md-only hidden-lg-only hidden-xl-only">
828 <v-flex xs12 sm5> 831 <v-flex xs12 sm5>
829 <v-layout wrap> 832 <v-layout wrap>
830 <v-flex xs8 sm6> 833 <v-flex xs8 sm6>
831 <b> 834 <b>
832 <h5 class="my-1"> 835 <h5 class="my-1">
833 <b>present Address:-</b> 836 <b>present Address:-</b>
834 </h5> 837 </h5>
835 </b> 838 </b>
836 </v-flex> 839 </v-flex>
837 <v-flex sm5 xs12> 840 <v-flex sm5 xs12>
838 <h5 class="my-1">{{ editedItem.presentAddress }}</h5> 841 <h5 class="my-1">{{ editedItem.presentAddress }}</h5>
839 </v-flex> 842 </v-flex>
840 </v-layout> 843 </v-layout>
841 </v-flex> 844 </v-flex>
842 <v-flex xs12 sm6> 845 <v-flex xs12 sm6>
843 <v-layout wrap> 846 <v-layout wrap>
844 <v-flex xs9 sm6> 847 <v-flex xs9 sm6>
845 <b> 848 <b>
846 <h5 class="my-1"> 849 <h5 class="my-1">
847 <b>Permanent Address:-</b> 850 <b>Permanent Address:-</b>
848 </h5> 851 </h5>
849 </b> 852 </b>
850 </v-flex> 853 </v-flex>
851 <v-flex sm6 xs12> 854 <v-flex sm6 xs12>
852 <h5 class="my-1">{{ editedItem.permanentAddress }}</h5> 855 <h5 class="my-1">{{ editedItem.permanentAddress }}</h5>
853 </v-flex> 856 </v-flex>
854 </v-layout> 857 </v-layout>
855 </v-flex> 858 </v-flex>
856 </v-layout> 859 </v-layout>
857 </v-container> 860 </v-container>
858 </v-card-text> 861 </v-card-text>
859 </v-card> 862 </v-card>
860 </v-dialog> 863 </v-dialog>
861 864
862 <v-snackbar 865 <v-snackbar
863 :timeout="timeout" 866 :timeout="timeout"
864 :top="y === 'top'" 867 :top="y === 'top'"
865 :right="x === 'right'" 868 :right="x === 'right'"
866 :vertical="mode === 'vertical'" 869 :vertical="mode === 'vertical'"
867 v-model="snackbar" 870 v-model="snackbar"
868 color="success" 871 color="success"
869 >{{ text }}</v-snackbar> 872 >{{ text }}</v-snackbar>
870 873
871 <!-- ****** EXISTING-USERS STUDENTS TABLE ****** --> 874 <!-- ****** EXISTING-USERS STUDENTS TABLE ****** -->
872 <v-card flat> 875 <v-card flat>
873 <v-card-actions class="hidden-xs-only hidden-sm-only"> 876 <v-card-actions class="hidden-xs-only hidden-sm-only">
874 <v-layout> 877 <v-layout>
875 <label class="right mt-4 ml-5">Select Class:</label> 878 <label class="right mt-4 ml-5">Select Class:</label>
876 <v-select 879 <v-select
877 :items="addclass" 880 :items="addclass"
878 label="Select Class" 881 label="Select Class"
879 v-model="selectStudents.select" 882 v-model="selectStudents.select"
880 item-text="classNum" 883 item-text="classNum"
881 item-value="_id" 884 item-value="_id"
882 name="Select Class" 885 name="Select Class"
883 :rules="classRules" 886 :rules="classRules"
884 @change="getSections(selectStudents.select)" 887 @change="getSections(selectStudents.select)"
885 class="px-4" 888 class="px-4"
886 required 889 required
887 ></v-select> 890 ></v-select>
888 <label class="right mt-4">Select Section:</label> 891 <label class="right mt-4">Select Section:</label>
889 <v-select 892 <v-select
890 :items="addSection" 893 :items="addSection"
891 label="Select Section" 894 label="Select Section"
892 v-model="selectStudents.selectSection" 895 v-model="selectStudents.selectSection"
893 item-text="name" 896 item-text="name"
894 item-value="_id" 897 item-value="_id"
895 name="Select Section" 898 name="Select Section"
896 :rules="sectionRules" 899 :rules="sectionRules"
897 class="pl-3" 900 class="pl-3"
898 required 901 required
899 ></v-select> 902 ></v-select>
900 </v-layout> 903 </v-layout>
901 <v-spacer></v-spacer> 904 <v-spacer></v-spacer>
902 <v-btn @click="findStudents()" round dark :loading="loading" class="left">Find</v-btn> 905 <v-btn @click="findStudents()" round dark :loading="loading" class="left">Find</v-btn>
903 </v-card-actions> 906 </v-card-actions>
904 <v-flex class="hidden-xl-only hidden-lg-only hidden-md-only"> 907 <v-flex class="hidden-xl-only hidden-lg-only hidden-md-only">
905 <v-layout> 908 <v-layout>
906 <v-flex xs4> 909 <v-flex xs4>
907 <label class="right mt-4">Select Class:</label> 910 <label class="right mt-4">Select Class:</label>
908 </v-flex> 911 </v-flex>
909 <v-flex xs8> 912 <v-flex xs8>
910 <v-select 913 <v-select
911 :items="addclass" 914 :items="addclass"
912 label="Select Class" 915 label="Select Class"
913 v-model="selectStudents.select" 916 v-model="selectStudents.select"
914 item-text="classNum" 917 item-text="classNum"
915 item-value="_id" 918 item-value="_id"
916 name="Select Class" 919 name="Select Class"
917 :rules="classRules" 920 :rules="classRules"
918 @change="getSections(selectStudents.select)" 921 @change="getSections(selectStudents.select)"
919 class="px-2" 922 class="px-2"
920 required 923 required
921 ></v-select> 924 ></v-select>
922 </v-flex> 925 </v-flex>
923 </v-layout> 926 </v-layout>
924 <v-layout> 927 <v-layout>
925 <v-flex xs4> 928 <v-flex xs4>
926 <label class="right mt-4">Select Section:</label> 929 <label class="right mt-4">Select Section:</label>
927 </v-flex> 930 </v-flex>
928 <v-flex xs8> 931 <v-flex xs8>
929 <v-select 932 <v-select
930 :items="addSection" 933 :items="addSection"
931 label="Select Section" 934 label="Select Section"
932 v-model="selectStudents.selectSection" 935 v-model="selectStudents.selectSection"
933 item-text="name" 936 item-text="name"
934 item-value="_id" 937 item-value="_id"
935 name="Select Section" 938 name="Select Section"
936 :rules="sectionRules" 939 :rules="sectionRules"
937 class="px-2" 940 class="px-2"
938 required 941 required
939 ></v-select> 942 ></v-select>
940 </v-flex> 943 </v-flex>
941 </v-layout> 944 </v-layout>
942 <v-layout> 945 <v-layout>
943 <v-flex xs5 class="mx-auto mb-2"> 946 <v-flex xs5 class="mx-auto mb-2">
944 <v-btn @click="findStudents()" block round dark :loading="loading">Find</v-btn> 947 <v-btn @click="findStudents()" block round dark :loading="loading">Find</v-btn>
945 </v-flex> 948 </v-flex>
946 </v-layout> 949 </v-layout>
947 </v-flex> 950 </v-flex>
948 </v-card> 951 </v-card>
949 <v-data-table 952 <v-data-table
950 :headers="headers" 953 :headers="headers"
951 :items="desserts" 954 :items="desserts"
952 :pagination.sync="pagination" 955 :pagination.sync="pagination"
953 :search="search" 956 :search="search"
954 > 957 >
955 <template slot="items" slot-scope="props"> 958 <template slot="items" slot-scope="props">
956 <td id="td" class="text-xs-center">{{ props.item.rollNo}}</td> 959 <td id="td" class="text-xs-center">{{ props.item.rollNo}}</td>
957 <td id="td" class="text-xs-center"> 960 <td id="td" class="text-xs-center">
958 <v-avatar> 961 <v-avatar>
959 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" /> 962 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
960 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" /> 963 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
961 </v-avatar> 964 </v-avatar>
962 </td> 965 </td>
963 <td id="td" class="text-xs-center">{{ props.item.name}}</td> 966 <td id="td" class="text-xs-center">{{ props.item.name}}</td>
964 <td id="td" class="text-xs-center">{{ props.item.email }}</td> 967 <td id="td" class="text-xs-center">{{ props.item.email }}</td>
965 <td id="td" class="text-xs-center">{{ dates(props.item.dob) }}</td> 968 <td id="td" class="text-xs-center">{{ dates(props.item.dob) }}</td>
966 <td id="td" class="text-xs-center">{{ props.item.gender }}</td> 969 <td id="td" class="text-xs-center">{{ props.item.gender }}</td>
967 <td id="td" class="text-xs-center">{{ props.item.parentId.fatherName }}</td> 970 <td id="td" class="text-xs-center">{{ props.item.parentId.fatherName }}</td>
968 <td id="td" class="text-xs-center">{{ props.item.parentId.motherName }}</td> 971 <td id="td" class="text-xs-center">{{ props.item.parentId.motherName }}</td>
969 <td id="td" class="text-xs-center">{{ props.item.establishmentYear }}</td> 972 <td id="td" class="text-xs-center">{{ props.item.establishmentYear }}</td>
970 <td id="td" class="text-xs-center">{{ props.item.mobile}}</td> 973 <td id="td" class="text-xs-center">{{ props.item.mobile}}</td>
971 974
972 <td class="text-xs-center"> 975 <td class="text-xs-center">
973 <span> 976 <span>
974 <v-tooltip top> 977 <v-tooltip top>
975 <img 978 <img
976 slot="activator" 979 slot="activator"
977 style="cursor:pointer; width:25px; height:18px; " 980 style="cursor:pointer; width:25px; height:18px; "
978 class="mr5" 981 class="mr5"
979 @click="profile(props.item)" 982 @click="profile(props.item)"
980 src="/static/icon/eye1.png" 983 src="/static/icon/eye1.png"
981 /> 984 />
982 <span>View</span> 985 <span>View</span>
983 </v-tooltip> 986 </v-tooltip>
984 <v-tooltip top> 987 <v-tooltip top>
985 <img 988 <img
986 slot="activator" 989 slot="activator"
987 style="cursor:pointer; width:20px; height:18px; " 990 style="cursor:pointer; width:20px; height:18px; "
988 class="mr5" 991 class="mr5"
989 @click="editItem(props.item)" 992 @click="editItem(props.item)"
990 src="/static/icon/edit1.png" 993 src="/static/icon/edit1.png"
991 /> 994 />
992 <span>Edit</span> 995 <span>Edit</span>
993 </v-tooltip> 996 </v-tooltip>
994 <v-tooltip top> 997 <v-tooltip top>
995 <img 998 <img
996 slot="activator" 999 slot="activator"
997 style="cursor:pointer; width:20px; height:20px; " 1000 style="cursor:pointer; width:20px; height:20px; "
998 class="mr5" 1001 class="mr5"
999 @click="deleteItem(props.item)" 1002 @click="deleteItem(props.item)"
1000 src="/static/icon/delete1.png" 1003 src="/static/icon/delete1.png"
1001 /> 1004 />
1002 <span>Delete</span> 1005 <span>Delete</span>
1003 </v-tooltip> 1006 </v-tooltip>
1004 </span> 1007 </span>
1005 </td> 1008 </td>
1006 </template> 1009 </template>
1007 <v-alert 1010 <v-alert
1008 slot="no-results" 1011 slot="no-results"
1009 :value="true" 1012 :value="true"
1010 color="error" 1013 color="error"
1011 icon="warning" 1014 icon="warning"
1012 >Your search for "{{ search }}" found no results.</v-alert> 1015 >Your search for "{{ search }}" found no results.</v-alert>
1013 </v-data-table> 1016 </v-data-table>
1014 </v-tab-item> 1017 </v-tab-item>
1015 1018
1016 <!-- ****** ADD STUDENTS DETAILS****** --> 1019 <!-- ****** ADD STUDENTS DETAILS****** -->
1017 <v-tab-item> 1020 <v-tab-item>
1018 <v-container fluid> 1021 <v-container fluid>
1019 <v-layout align-center justify-center fill-height> 1022 <v-layout align-center justify-center fill-height>
1020 <v-flex xs12 sm12 md10 lg11> 1023 <v-flex xs12 sm12 md10 lg11>
1021 <div> 1024 <div>
1022 <v-app> 1025 <v-app>
1023 <v-stepper v-model="e2"> 1026 <v-stepper v-model="e2">
1024 <v-stepper-header> 1027 <v-stepper-header>
1025 <v-stepper-step :complete="e2 > 1" step="1">Fill parent Details</v-stepper-step> 1028 <v-stepper-step :complete="e2 > 1" step="1">Fill parent Details</v-stepper-step>
1026 <v-divider></v-divider> 1029 <v-divider></v-divider>
1027 <v-stepper-step step="2">Fill Student Details</v-stepper-step> 1030 <v-stepper-step step="2">Fill Student Details</v-stepper-step>
1028 </v-stepper-header> 1031 </v-stepper-header>
1029 <v-stepper-items> 1032 <v-stepper-items>
1030 <v-stepper-content step="1"> 1033 <v-stepper-content step="1">
1031 <v-container fluid class> 1034 <v-container fluid class>
1032 <v-snackbar 1035 <v-snackbar
1033 :timeout="timeout" 1036 :timeout="timeout"
1034 :top="y === 'top'" 1037 :top="y === 'top'"
1035 :right="x === 'right'" 1038 :right="x === 'right'"
1036 :vertical="mode === 'vertical'" 1039 :vertical="mode === 'vertical'"
1037 v-model="snackbar" 1040 v-model="snackbar"
1038 color="success" 1041 color="success"
1039 >{{ text }}</v-snackbar> 1042 >{{ text }}</v-snackbar>
1040 <v-flex xs12 sm12> 1043 <v-flex xs12 sm12>
1041 <v-form ref="parentForm" v-model="valid" lazy-validation> 1044 <v-form ref="parentForm" v-model="valid" lazy-validation>
1042 <v-layout wrap> 1045 <v-layout wrap>
1043 <v-flex xs12 sm6> 1046 <v-flex xs12 sm6>
1044 <v-layout> 1047 <v-layout>
1045 <v-flex xs4 class="pt-4 subheading"> 1048 <v-flex xs4 class="pt-4 subheading">
1046 <label class="right">Parent Email Id:</label> 1049 <label class="right">Parent Email Id:</label>
1047 </v-flex> 1050 </v-flex>
1048 <v-flex xs8 class="ml-3"> 1051 <v-flex xs8 class="ml-3">
1049 <v-text-field 1052 <v-text-field
1050 placeholder="fill Parent email" 1053 placeholder="fill Parent email"
1051 :rules="emailRules" 1054 :rules="emailRules"
1052 v-model.trim="parentData.email" 1055 v-model.trim="parentData.email"
1053 type="text" 1056 type="text"
1054 v-on:keyup="getParentDetails" 1057 v-on:keyup="getParentDetails"
1055 name="email" 1058 name="email"
1056 required 1059 required
1057 ></v-text-field> 1060 ></v-text-field>
1058 </v-flex> 1061 </v-flex>
1059 </v-layout> 1062 </v-layout>
1060 </v-flex> 1063 </v-flex>
1061 <v-flex xs12 sm6> 1064 <v-flex xs12 sm6>
1062 <v-layout> 1065 <v-layout>
1063 <v-flex xs4 class="pt-4 subheading"> 1066 <v-flex xs4 class="pt-4 subheading">
1064 <label class="right">Father Name:</label> 1067 <label class="right">Father Name:</label>
1065 </v-flex> 1068 </v-flex>
1066 <v-flex xs8 class="ml-3"> 1069 <v-flex xs8 class="ml-3">
1067 <v-text-field 1070 <v-text-field
1068 v-model="parentData.fatherName" 1071 v-model="parentData.fatherName"
1069 :rules="fatherNameRules" 1072 :rules="fatherNameRules"
1070 placeholder="Fill your father Name" 1073 placeholder="Fill your father Name"
1071 required 1074 required
1072 ></v-text-field> 1075 ></v-text-field>
1073 </v-flex> 1076 </v-flex>
1074 </v-layout> 1077 </v-layout>
1075 </v-flex> 1078 </v-flex>
1076 </v-layout> 1079 </v-layout>
1077 <v-layout wrap> 1080 <v-layout wrap>
1078 <v-flex xs12 sm6> 1081 <v-flex xs12 sm6>
1079 <v-layout> 1082 <v-layout>
1080 <v-flex xs4 class="pt-4 subheading"> 1083 <v-flex xs4 class="pt-4 subheading">
1081 <label class="right">Father Cell No:</label> 1084 <label class="right">Father Cell No:</label>
1082 </v-flex> 1085 </v-flex>
1083 <v-flex xs8 class="ml-3"> 1086 <v-flex xs8 class="ml-3">
1084 <v-text-field 1087 <v-text-field
1085 v-model="parentData.fatherCellNo" 1088 v-model="parentData.fatherCellNo"
1086 placeholder="fill your father Cell Number" 1089 placeholder="fill your father Cell Number"
1087 name="state" 1090 name="state"
1088 type="number" 1091 type="number"
1089 :rules="fatheCellNoRules" 1092 :rules="fatheCellNoRules"
1090 required 1093 required
1091 ></v-text-field> 1094 ></v-text-field>
1092 </v-flex> 1095 </v-flex>
1093 </v-layout> 1096 </v-layout>
1094 </v-flex> 1097 </v-flex>
1095 <v-flex xs12 sm6> 1098 <v-flex xs12 sm6>
1096 <v-layout> 1099 <v-layout>
1097 <v-flex xs4 class="pt-4 subheading"> 1100 <v-flex xs4 class="pt-4 subheading">
1098 <label class="right">Mother Name:</label> 1101 <label class="right">Mother Name:</label>
1099 </v-flex> 1102 </v-flex>
1100 <v-flex xs8 class="ml-3"> 1103 <v-flex xs8 class="ml-3">
1101 <v-text-field 1104 <v-text-field
1102 v-model="parentData.motherName" 1105 v-model="parentData.motherName"
1103 placeholder="fill your Mother Name" 1106 placeholder="fill your Mother Name"
1104 name="state" 1107 name="state"
1105 type="text" 1108 type="text"
1106 :rules="motherNameRules" 1109 :rules="motherNameRules"
1107 required 1110 required
1108 ></v-text-field> 1111 ></v-text-field>
1109 </v-flex> 1112 </v-flex>
1110 </v-layout> 1113 </v-layout>
1111 </v-flex> 1114 </v-flex>
1112 </v-layout> 1115 </v-layout>
1113 <v-layout wrap> 1116 <v-layout wrap>
1114 <v-flex xs12 sm6> 1117 <v-flex xs12 sm6>
1115 <v-layout> 1118 <v-layout>
1116 <v-flex xs4 class="pt-4 subheading"> 1119 <v-flex xs4 class="pt-4 subheading">
1117 <label class="right">Mother Cell No:</label> 1120 <label class="right">Mother Cell No:</label>
1118 </v-flex> 1121 </v-flex>
1119 <v-flex xs8 class="ml-3"> 1122 <v-flex xs8 class="ml-3">
1120 <v-text-field 1123 <v-text-field
1121 v-model="parentData.motherCellNo" 1124 v-model="parentData.motherCellNo"
1122 placeholder="fill your Mother Cell Number" 1125 placeholder="fill your Mother Cell Number"
1123 name="state" 1126 name="state"
1124 type="number" 1127 type="number"
1125 :rules="motherCellNoRules" 1128 :rules="motherCellNoRules"
1126 required 1129 required
1127 ></v-text-field> 1130 ></v-text-field>
1128 </v-flex> 1131 </v-flex>
1129 </v-layout> 1132 </v-layout>
1130 </v-flex> 1133 </v-flex>
1131 </v-layout> 1134 </v-layout>
1132 <v-flex sm12 class="hidden-xs-only"> 1135 <v-flex sm12 class="hidden-xs-only">
1133 <v-card-actions> 1136 <v-card-actions>
1134 <v-spacer></v-spacer> 1137 <v-spacer></v-spacer>
1135 <v-btn 1138 <v-btn
1136 @click="submitParentDetails" 1139 @click="submitParentDetails"
1137 round 1140 round
1138 dark 1141 dark
1139 :loading="loading" 1142 :loading="loading"
1140 v-show="showParent" 1143 v-show="showParent"
1141 >Add</v-btn> 1144 >Add</v-btn>
1142 <v-btn v-show="showNext" @click="e2 = 2" round dark>Next</v-btn> 1145 <v-btn v-show="showNext" @click="e2 = 2" round dark>Next</v-btn>
1143 </v-card-actions> 1146 </v-card-actions>
1144 </v-flex> 1147 </v-flex>
1145 <v-flex 1148 <v-flex
1146 xs6 1149 xs6
1147 class="hidden-md-only hidden-sm-only hidden-lg-only hidden-xl-only mx-auto mt-2" 1150 class="hidden-md-only hidden-sm-only hidden-lg-only hidden-xl-only mx-auto mt-2"
1148 > 1151 >
1149 <v-btn 1152 <v-btn
1150 @click="submitParentDetails" 1153 @click="submitParentDetails"
1151 round 1154 round
1152 dark 1155 dark
1153 :loading="loading" 1156 :loading="loading"
1154 v-show="showParent" 1157 v-show="showParent"
1155 >Add</v-btn> 1158 >Add</v-btn>
1156 <v-btn v-show="showNext" @click="e2 = 2" round dark>Next</v-btn> 1159 <v-btn v-show="showNext" @click="e2 = 2" round dark>Next</v-btn>
1157 </v-flex> 1160 </v-flex>
1158 </v-form> 1161 </v-form>
1159 </v-flex> 1162 </v-flex>
1160 </v-container> 1163 </v-container>
1161 </v-stepper-content> 1164 </v-stepper-content>
1162 <v-stepper-content step="2"> 1165 <v-stepper-content step="2">
1163 <!-- <v-container fluid> --> 1166 <!-- <v-container fluid> -->
1164 <v-snackbar 1167 <v-snackbar
1165 :timeout="timeout" 1168 :timeout="timeout"
1166 :top="y === 'top'" 1169 :top="y === 'top'"
1167 :right="x === 'right'" 1170 :right="x === 'right'"
1168 :vertical="mode === 'vertical'" 1171 :vertical="mode === 'vertical'"
1169 v-model="snackbar" 1172 v-model="snackbar"
1170 color="success" 1173 color="success"
1171 >{{ text }}</v-snackbar> 1174 >{{ text }}</v-snackbar>
1172 <v-flex xs12 sm12> 1175 <v-flex xs12 sm12>
1173 <v-form ref="form" v-model="valid" lazy-validation> 1176 <v-form ref="form" v-model="valid" lazy-validation>
1174 <!-- <v-container fluid> --> 1177 <!-- <v-container fluid> -->
1175 <v-layout> 1178 <v-layout>
1176 <v-flex 1179 <v-flex
1177 xs12 1180 xs12
1178 class="text-xs-center text-sm-center text-md-center text-lg-center" 1181 class="text-xs-center text-sm-center text-md-center text-lg-center"
1179 > 1182 >
1180 <v-avatar size="100px"> 1183 <v-avatar size="100px">
1181 <img src="/static/icon/user.png" v-if="!imageUrl" /> 1184 <img src="/static/icon/user.png" v-if="!imageUrl" />
1182 </v-avatar> 1185 </v-avatar>
1183 <input 1186 <input
1184 type="file" 1187 type="file"
1185 style="display: none" 1188 style="display: none"
1186 ref="image" 1189 ref="image"
1187 accept="image/*" 1190 accept="image/*"
1188 @change="onFilePicked" 1191 @change="onFilePicked"
1189 /> 1192 />
1190 <img 1193 <img
1191 :src="imageData.imageUrl" 1194 :src="imageData.imageUrl"
1192 height="150" 1195 height="150"
1193 v-if="imageUrl" 1196 v-if="imageUrl"
1194 style="border-radius:50%; width:200px" 1197 style="border-radius:50%; width:200px"
1195 /> 1198 />
1196 </v-flex> 1199 </v-flex>
1197 </v-layout> 1200 </v-layout>
1198 <v-layout wrap> 1201 <v-layout wrap>
1199 <v-flex xs12 sm6> 1202 <v-flex xs12 sm6>
1200 <v-layout> 1203 <v-layout>
1201 <v-flex x4 sm4 class="pt-4 subheading"> 1204 <v-flex x4 sm4 class="pt-4 subheading">
1202 <label class="right hidden-xs-only hidden-sm-only">Select Class:</label> 1205 <label class="right hidden-xs-only hidden-sm-only">Select Class:</label>
1203 <label 1206 <label
1204 class="right hidden-lg-only hidden-md-only hidden-xl-only" 1207 class="right hidden-lg-only hidden-md-only hidden-xl-only"
1205 >Class:</label> 1208 >Class:</label>
1206 </v-flex> 1209 </v-flex>
1207 <v-flex xs8 sm8 class="ml-3"> 1210 <v-flex xs8 sm8 class="ml-3">
1208 <v-select 1211 <v-select
1209 :items="addclass" 1212 :items="addclass"
1210 label="Select Class" 1213 label="Select Class"
1211 v-model="addStudents.select" 1214 v-model="addStudents.select"
1212 item-text="classNum" 1215 item-text="classNum"
1213 item-value="_id" 1216 item-value="_id"
1214 name="Select Class" 1217 name="Select Class"
1215 :rules="classRules" 1218 :rules="classRules"
1216 @change="getSection(addStudents.select)" 1219 @change="getSection(addStudents.select)"
1217 required 1220 required
1218 ></v-select> 1221 ></v-select>
1219 </v-flex> 1222 </v-flex>
1220 </v-layout> 1223 </v-layout>
1221 </v-flex> 1224 </v-flex>
1222 <v-flex xs12 sm6> 1225 <v-flex xs12 sm6>
1223 <v-layout> 1226 <v-layout>
1224 <v-flex xs4 class="pt-4 subheading"> 1227 <v-flex xs4 class="pt-4 subheading">
1225 <label 1228 <label
1226 class="right hidden-xs-only hidden-sm-only" 1229 class="right hidden-xs-only hidden-sm-only"
1227 >Select Section:</label> 1230 >Select Section:</label>
1228 <label 1231 <label
1229 class="right hidden-lg-only hidden-md-only hidden-xl-only" 1232 class="right hidden-lg-only hidden-md-only hidden-xl-only"
1230 >Section:</label> 1233 >Section:</label>
1231 </v-flex> 1234 </v-flex>
1232 <v-flex xs8 class="ml-3"> 1235 <v-flex xs8 class="ml-3">
1233 <v-select 1236 <v-select
1234 :items="addSection" 1237 :items="addSection"
1235 label="Select Section" 1238 label="Select Section"
1236 v-model="addStudents.selectSection" 1239 v-model="addStudents.selectSection"
1237 item-text="name" 1240 item-text="name"
1238 item-value="_id" 1241 item-value="_id"
1239 name="Select Section" 1242 name="Select Section"
1240 :rules="sectionRules" 1243 :rules="sectionRules"
1241 required 1244 required
1242 ></v-select> 1245 ></v-select>
1243 </v-flex> 1246 </v-flex>
1244 </v-layout> 1247 </v-layout>
1245 </v-flex> 1248 </v-flex>
1246 </v-layout> 1249 </v-layout>
1247 <v-layout wrap> 1250 <v-layout wrap>
1248 <v-flex xs12 sm6> 1251 <v-flex xs12 sm6>
1249 <v-layout> 1252 <v-layout>
1250 <v-flex xs4 sm4 class="pt-4 subheading"> 1253 <v-flex xs4 sm4 class="pt-4 subheading">
1251 <label class="right hidden-xs-only hidden-sm-only">Full Name:</label> 1254 <label class="right hidden-xs-only hidden-sm-only">Full Name:</label>
1252 <label 1255 <label
1253 class="right hidden-lg-only hidden-md-only hidden-xl-only" 1256 class="right hidden-lg-only hidden-md-only hidden-xl-only"
1254 >Name:</label> 1257 >Name:</label>
1255 </v-flex> 1258 </v-flex>
1256 <v-flex xs8 sm8 class="ml-3"> 1259 <v-flex xs8 sm8 class="ml-3">
1257 <v-text-field 1260 <v-text-field
1258 v-model="addStudents.name" 1261 v-model="addStudents.name"
1259 placeholder="fill your full Name" 1262 placeholder="fill your full Name"
1260 name="name" 1263 name="name"
1261 type="text" 1264 type="text"
1262 :rules="nameRules" 1265 :rules="nameRules"
1263 required 1266 required
1264 ></v-text-field> 1267 ></v-text-field>
1265 </v-flex> 1268 </v-flex>
1266 </v-layout> 1269 </v-layout>
1267 </v-flex> 1270 </v-flex>
1268 <v-flex xs12 sm6> 1271 <v-flex xs12 sm6>
1269 <v-layout> 1272 <v-layout>
1270 <v-flex xs4 sm4 class="pt-4 subheading"> 1273 <v-flex xs4 sm4 class="pt-4 subheading">
1271 <label class="right">Email ID:</label> 1274 <label class="right">Email ID:</label>
1272 </v-flex> 1275 </v-flex>
1273 <v-flex xs8 sm8 class="ml-3"> 1276 <v-flex xs8 sm8 class="ml-3">
1274 <v-text-field 1277 <v-text-field
1275 placeholder="fill your email" 1278 placeholder="fill your email"
1276 :rules="emailRules" 1279 :rules="emailRules"
1277 v-model="addStudents.email" 1280 v-model="addStudents.email"
1278 type="text" 1281 type="text"
1279 name="email" 1282 name="email"
1280 required 1283 required
1281 ></v-text-field> 1284 ></v-text-field>
1282 </v-flex> 1285 </v-flex>
1283 </v-layout> 1286 </v-layout>
1284 </v-flex> 1287 </v-flex>
1285 </v-layout> 1288 </v-layout>
1286 <v-layout wrap> 1289 <v-layout wrap>
1287 <v-flex xs12 sm6> 1290 <v-flex xs12 sm6>
1288 <v-layout> 1291 <v-layout>
1289 <v-flex xs4 sm4 class="pt-4 subheading"> 1292 <v-flex xs4 sm4 class="pt-4 subheading">
1290 <label 1293 <label
1291 class="right hidden-sm-only hidden-xs-only" 1294 class="right hidden-sm-only hidden-xs-only"
1292 >Date of Birth:</label> 1295 >Date of Birth:</label>
1293 <label 1296 <label
1294 class="right hidden-lg-only hidden-xl-only hidden-md-only" 1297 class="right hidden-lg-only hidden-xl-only hidden-md-only"
1295 >D.O.B:</label> 1298 >D.O.B:</label>
1296 </v-flex> 1299 </v-flex>
1297 <v-flex xs8 sm8 class="ml-3"> 1300 <v-flex xs8 sm8 class="ml-3">
1298 <v-menu 1301 <v-menu
1299 ref="menu" 1302 ref="menu"
1300 :close-on-content-click="false" 1303 :close-on-content-click="false"
1301 v-model="menu" 1304 v-model="menu"
1302 :nudge-right="40" 1305 :nudge-right="40"
1303 lazy 1306 lazy
1304 transition="scale-transition" 1307 transition="scale-transition"
1305 offset-y 1308 offset-y
1306 full-width 1309 full-width
1307 min-width="290px" 1310 min-width="290px"
1308 > 1311 >
1309 <v-text-field 1312 <v-text-field
1310 slot="activator" 1313 slot="activator"
1311 :rules="dateRules" 1314 :rules="dateRules"
1312 v-model="addStudents.date" 1315 v-model="addStudents.date"
1313 placeholder="Select date" 1316 placeholder="Select date"
1314 ></v-text-field> 1317 ></v-text-field>
1315 <v-date-picker 1318 <v-date-picker
1316 ref="picker" 1319 ref="picker"
1317 v-model="addStudents.date" 1320 v-model="addStudents.date"
1318 :max="new Date().toISOString().substr(0, 10)" 1321 :max="new Date().toISOString().substr(0, 10)"
1319 min="1950-01-01" 1322 min="1950-01-01"
1320 @input="menu = false" 1323 @input="menu = false"
1321 ></v-date-picker> 1324 ></v-date-picker>
1322 </v-menu> 1325 </v-menu>
1323 </v-flex> 1326 </v-flex>
1324 </v-layout> 1327 </v-layout>
1325 </v-flex> 1328 </v-flex>
1326 <v-flex xs12 sm6> 1329 <v-flex xs12 sm6>
1327 <v-layout> 1330 <v-layout>
1328 <v-flex xs4 class="pt-4 subheading"> 1331 <v-flex xs4 class="pt-4 subheading">
1329 <label class="right">City:</label> 1332 <label class="right">City:</label>
1330 </v-flex> 1333 </v-flex>
1331 <v-flex xs8 class="ml-3"> 1334 <v-flex xs8 class="ml-3">
1332 <v-text-field 1335 <v-text-field
1333 v-model="addStudents.city" 1336 v-model="addStudents.city"
1334 placeholder="fill your City Name" 1337 placeholder="fill your City Name"
1335 name="City" 1338 name="City"
1336 type="text" 1339 type="text"
1337 :rules="cityRules" 1340 :rules="cityRules"
1338 required 1341 required
1339 ></v-text-field> 1342 ></v-text-field>
1340 </v-flex> 1343 </v-flex>
1341 </v-layout> 1344 </v-layout>
1342 </v-flex> 1345 </v-flex>
1343 </v-layout> 1346 </v-layout>
1344 <v-layout wrap> 1347 <v-layout wrap>
1345 <v-flex xs12 sm6> 1348 <v-flex xs12 sm6>
1346 <v-layout> 1349 <v-layout>
1347 <v-flex xs4 class="pt-4 subheading"> 1350 <v-flex xs4 class="pt-4 subheading">
1348 <label class="right">State:</label> 1351 <label class="right">State:</label>
1349 </v-flex> 1352 </v-flex>
1350 <v-flex xs8 class="ml-3"> 1353 <v-flex xs8 class="ml-3">
1351 <v-text-field 1354 <v-text-field
1352 v-model="addStudents.state" 1355 v-model="addStudents.state"
1353 placeholder="fill your State Name" 1356 placeholder="fill your State Name"
1354 name="state" 1357 name="state"
1355 type="text" 1358 type="text"
1356 :rules="stateRules" 1359 :rules="stateRules"
1357 required 1360 required
1358 ></v-text-field> 1361 ></v-text-field>
1359 </v-flex> 1362 </v-flex>
1360 </v-layout> 1363 </v-layout>
1361 </v-flex> 1364 </v-flex>
1362 <v-flex xs12 sm6> 1365 <v-flex xs12 sm6>
1363 <v-layout> 1366 <v-layout>
1364 <v-flex xs4 class="pt-4 subheading"> 1367 <v-flex xs4 class="pt-4 subheading">
1365 <label class="right">Pincode:</label> 1368 <label class="right">Pincode:</label>
1366 </v-flex> 1369 </v-flex>
1367 <v-flex xs8 class="ml-3"> 1370 <v-flex xs8 class="ml-3">
1368 <v-text-field 1371 <v-text-field
1369 v-model="addStudents.pincode" 1372 v-model="addStudents.pincode"
1370 placeholder="fill your pincode" 1373 placeholder="fill your pincode"
1371 name="pincode" 1374 name="pincode"
1372 type="number" 1375 type="number"
1373 :rules="pincode" 1376 :rules="pincode"
1374 required 1377 required
1375 ></v-text-field> 1378 ></v-text-field>
1376 </v-flex> 1379 </v-flex>
1377 </v-layout> 1380 </v-layout>
1378 </v-flex> 1381 </v-flex>
1379 </v-layout> 1382 </v-layout>
1380 <v-layout wrap> 1383 <v-layout wrap>
1381 <v-flex xs12 sm6> 1384 <v-flex xs12 sm6>
1382 <v-layout> 1385 <v-layout>
1383 <v-flex xs4 class="pt-4 subheading"> 1386 <v-flex xs4 class="pt-4 subheading">
1384 <label class="right hidden-xs-only hidden-sm-only">Mobile No:</label> 1387 <label class="right hidden-xs-only hidden-sm-only">Mobile No:</label>
1385 <label 1388 <label
1386 class="right hidden-lg-only hidden-md-only hidden-xl-only" 1389 class="right hidden-lg-only hidden-md-only hidden-xl-only"
1387 >Mobile:</label> 1390 >Mobile:</label>
1388 </v-flex> 1391 </v-flex>
1389 <v-flex xs8 class="ml-3"> 1392 <v-flex xs8 class="ml-3">
1390 <v-text-field 1393 <v-text-field
1391 v-model="addStudents.mobile" 1394 v-model="addStudents.mobile"
1392 placeholder="fill your MobileNo" 1395 placeholder="fill your MobileNo"
1393 name="mobileNo" 1396 name="mobileNo"
1394 type="number" 1397 type="number"
1395 :rules="mobileNoRules" 1398 :rules="mobileNoRules"
1396 required 1399 required
1397 ></v-text-field> 1400 ></v-text-field>
1398 </v-flex> 1401 </v-flex>
1399 </v-layout> 1402 </v-layout>
1400 </v-flex> 1403 </v-flex>
1401 <v-flex xs12 sm6> 1404 <v-flex xs12 sm6>
1402 <v-layout> 1405 <v-layout>
1403 <v-flex xs4 class="pt-4 subheading"> 1406 <v-flex xs4 class="pt-4 subheading">
1404 <label 1407 <label
1405 class="right hidden-xs-only hidden-sm-only" 1408 class="right hidden-xs-only hidden-sm-only"
1406 >Select Country:</label> 1409 >Select Country:</label>
1407 <label 1410 <label
1408 class="right hidden-lg-only hidden-md-only hidden-xl-only" 1411 class="right hidden-lg-only hidden-md-only hidden-xl-only"
1409 >Country:</label> 1412 >Country:</label>
1410 </v-flex> 1413 </v-flex>
1411 <v-flex xs8 class="ml-3"> 1414 <v-flex xs8 class="ml-3">
1412 <v-autocomplete 1415 <v-autocomplete
1413 v-model="addStudents.country" 1416 v-model="addStudents.country"
1414 :rules="country" 1417 :rules="country"
1415 :items="countries" 1418 :items="countries"
1416 placeholder="Select Country Name" 1419 placeholder="Select Country Name"
1417 required 1420 required
1418 ></v-autocomplete> 1421 ></v-autocomplete>
1419 </v-flex> 1422 </v-flex>
1420 </v-layout> 1423 </v-layout>
1421 </v-flex> 1424 </v-flex>
1422 </v-layout> 1425 </v-layout>
1423 <v-layout wrap> 1426 <v-layout wrap>
1424 <v-flex xs12 sm6> 1427 <v-flex xs12 sm6>
1425 <v-layout> 1428 <v-layout>
1426 <v-flex xs4 class="pt-4 subheading"> 1429 <v-flex xs4 class="pt-4 subheading">
1427 <label class="right">Gender:</label> 1430 <label class="right">Gender:</label>
1428 </v-flex> 1431 </v-flex>
1429 <v-flex xs8 class="ml-3"> 1432 <v-flex xs8 class="ml-3">
1430 <v-select 1433 <v-select
1431 :items="gender" 1434 :items="gender"
1432 v-model="addStudents.gender" 1435 v-model="addStudents.gender"
1433 :rules="genderRules" 1436 :rules="genderRules"
1434 label="Select Gender" 1437 label="Select Gender"
1435 required 1438 required
1436 ></v-select> 1439 ></v-select>
1437 </v-flex> 1440 </v-flex>
1438 </v-layout> 1441 </v-layout>
1439 </v-flex> 1442 </v-flex>
1440 <v-flex xs12 sm6> 1443 <v-flex xs12 sm6>
1441 <v-layout> 1444 <v-layout>
1442 <v-flex xs4 class="pt-4 subheading"> 1445 <v-flex xs4 class="pt-4 subheading">
1443 <label class="right hidden-xs-only hidden-sm-only">Blood Group:</label> 1446 <label class="right hidden-xs-only hidden-sm-only">Blood Group:</label>
1444 <label 1447 <label
1445 class="right hidden-lg-only hidden-md-only hidden-xl-only" 1448 class="right hidden-lg-only hidden-md-only hidden-xl-only"
1446 >Blood:</label> 1449 >Blood:</label>
1447 </v-flex> 1450 </v-flex>
1448 <v-flex xs8 class="ml-3"> 1451 <v-flex xs8 class="ml-3">
1449 <v-text-field 1452 <v-text-field
1450 v-model="addStudents.bloodGroup" 1453 v-model="addStudents.bloodGroup"
1451 placeholder="Fill your Blood Group" 1454 placeholder="Fill your Blood Group"
1452 required 1455 required
1453 ></v-text-field> 1456 ></v-text-field>
1454 </v-flex> 1457 </v-flex>
1455 </v-layout> 1458 </v-layout>
1456 </v-flex> 1459 </v-flex>
1457 </v-layout> 1460 </v-layout>
1458 <v-layout wrap> 1461 <v-layout wrap>
1459 <v-flex xs12 sm6> 1462 <v-flex xs12 sm6>
1460 <v-layout> 1463 <v-layout>
1461 <v-flex xs4 class="pt-4 subheading"> 1464 <v-flex xs4 class="pt-4 subheading">
1462 <label class="right">Allergies:</label> 1465 <label class="right">Allergies:</label>
1463 </v-flex> 1466 </v-flex>
1464 <v-flex xs8 class="ml-3"> 1467 <v-flex xs8 class="ml-3">
1465 <v-text-field 1468 <v-text-field
1466 v-model="addStudents.allergies" 1469 v-model="addStudents.allergies"
1467 placeholder="Fill your Allergies" 1470 placeholder="Fill your Allergies"
1468 required 1471 required
1469 ></v-text-field> 1472 ></v-text-field>
1470 </v-flex> 1473 </v-flex>
1471 </v-layout> 1474 </v-layout>
1472 </v-flex> 1475 </v-flex>
1473 <v-flex xs12 sm6> 1476 <v-flex xs12 sm6>
1474 <v-layout> 1477 <v-layout>
1475 <v-flex xs4 class="pt-4 subheading"> 1478 <v-flex xs4 class="pt-4 subheading">
1476 <label 1479 <label
1477 class="right hidden-xs-only hidden-sm-only" 1480 class="right hidden-xs-only hidden-sm-only"
1478 >Medical Notes:</label> 1481 >Medical Notes:</label>
1479 <label 1482 <label
1480 class="right hidden-lg-only hidden-md-only hidden-xl-only" 1483 class="right hidden-lg-only hidden-md-only hidden-xl-only"
1481 >Medical:</label> 1484 >Medical:</label>
1482 </v-flex> 1485 </v-flex>
1483 <v-flex xs8 class="ml-3"> 1486 <v-flex xs8 class="ml-3">
1484 <v-text-field 1487 <v-text-field
1485 v-model="addStudents.medicalNotes" 1488 v-model="addStudents.medicalNotes"
1486 placeholder="Fill your Medical Notes" 1489 placeholder="Fill your Medical Notes"
1487 required 1490 required
1488 ></v-text-field> 1491 ></v-text-field>
1489 </v-flex> 1492 </v-flex>
1490 </v-layout> 1493 </v-layout>
1491 </v-flex> 1494 </v-flex>
1492 </v-layout> 1495 </v-layout>
1493 <v-layout wrap> 1496 <v-layout wrap>
1494 <v-flex xs12 sm6> 1497 <v-flex xs12 sm6>
1495 <v-layout> 1498 <v-layout>
1496 <v-flex xs4 class="pt-4 subheading"> 1499 <v-flex xs4 class="pt-4 subheading">
1497 <label class="right">Height:</label> 1500 <label class="right">Height:</label>
1498 </v-flex> 1501 </v-flex>
1499 <v-flex xs8 class="ml-3"> 1502 <v-flex xs8 class="ml-3">
1500 <v-text-field 1503 <v-text-field
1501 v-model="addStudents.height" 1504 v-model="addStudents.height"
1502 placeholder="Fill your Height" 1505 placeholder="Fill your Height"
1503 required 1506 required
1504 ></v-text-field> 1507 ></v-text-field>
1505 </v-flex> 1508 </v-flex>
1506 </v-layout> 1509 </v-layout>
1507 </v-flex> 1510 </v-flex>
1508 <v-flex xs12 sm6> 1511 <v-flex xs12 sm6>
1509 <v-layout> 1512 <v-layout>
1510 <v-flex xs4 class="pt-4 subheading"> 1513 <v-flex xs4 class="pt-4 subheading">
1511 <label class="right">Weight:</label> 1514 <label class="right">Weight:</label>
1512 </v-flex> 1515 </v-flex>
1513 <v-flex xs8 class="ml-3"> 1516 <v-flex xs8 class="ml-3">
1514 <v-text-field 1517 <v-text-field
1515 v-model="addStudents.weight" 1518 v-model="addStudents.weight"
1516 placeholder="Fill your Weight" 1519 placeholder="Fill your Weight"
1517 required 1520 required
1518 ></v-text-field> 1521 ></v-text-field>
1519 </v-flex> 1522 </v-flex>
1520 </v-layout> 1523 </v-layout>
1521 </v-flex> 1524 </v-flex>
1522 </v-layout> 1525 </v-layout>
1523 <v-layout wrap> 1526 <v-layout wrap>
1524 <v-flex xs12 sm6> 1527 <v-flex xs12 sm6>
1525 <v-layout> 1528 <v-layout>
1526 <v-flex xs4 class="pt-4 subheading"> 1529 <v-flex xs4 class="pt-4 subheading">
1527 <label class="right hidden-xs-only hidden-sm-only">Uplaod Image:</label> 1530 <label class="right hidden-xs-only hidden-sm-only">Uplaod Image:</label>
1528 <label 1531 <label
1529 class="right hidden-lg-only hidden-md-only hidden-xl-only" 1532 class="right hidden-lg-only hidden-md-only hidden-xl-only"
1530 >Uplaod :</label> 1533 >Uplaod :</label>
1531 </v-flex> 1534 </v-flex>
1532 <v-flex xs8 class="ml-3"> 1535 <v-flex xs8 class="ml-3">
1533 <v-text-field 1536 <v-text-field
1534 label="Select Image" 1537 label="Select Image"
1535 @click="pickFile" 1538 @click="pickFile"
1536 v-model="imageName" 1539 v-model="imageName"
1537 append-icon="attach_file" 1540 append-icon="attach_file"
1538 ></v-text-field> 1541 ></v-text-field>
1539 </v-flex> 1542 </v-flex>
1540 </v-layout> 1543 </v-layout>
1541 </v-flex> 1544 </v-flex>
1542 <v-flex xs12 sm6> 1545 <v-flex xs12 sm6>
1543 <v-layout> 1546 <v-layout>
1544 <v-flex xs4 class="pt-4 subheading"> 1547 <v-flex xs4 class="pt-4 subheading">
1545 <label 1548 <label
1546 class="right hidden-xs-only hidden-sm-only" 1549 class="right hidden-xs-only hidden-sm-only"
1547 >Academic Year:</label> 1550 >Academic Year:</label>
1548 <label 1551 <label
1549 class="right hidden-lg-only hidden-md-only hidden-xl-only" 1552 class="right hidden-lg-only hidden-md-only hidden-xl-only"
1550 >Year:</label> 1553 >Year:</label>
1551 </v-flex> 1554 </v-flex>
1552 <v-flex xs8 class="ml-3"> 1555 <v-flex xs8 class="ml-3">
1553 <v-text-field 1556 <v-text-field
1554 v-model="addStudents.establishmentYear" 1557 v-model="addStudents.establishmentYear"
1555 placeholder="fill your Academic Year" 1558 placeholder="fill your Academic Year"
1556 name="state" 1559 name="state"
1557 type="number" 1560 type="number"
1558 :rules="establishmentYearRules" 1561 :rules="establishmentYearRules"
1559 required 1562 required
1560 ></v-text-field> 1563 ></v-text-field>
1561 </v-flex> 1564 </v-flex>
1562 </v-layout> 1565 </v-layout>
1563 </v-flex> 1566 </v-flex>
1564 </v-layout> 1567 </v-layout>
1565 <v-layout wrap> 1568 <v-layout wrap>
1566 <v-flex xs12 sm6> 1569 <v-flex xs12 sm6>
1567 <v-layout> 1570 <v-layout>
1568 <v-flex xs4 class="pt-4 subheading"> 1571 <v-flex xs4 class="pt-4 subheading">
1569 <label class="right hidden-xs-only hidden-sm-only">Roll Number:</label> 1572 <label class="right hidden-xs-only hidden-sm-only">Roll Number:</label>
1570 <label 1573 <label
1571 class="right hidden-lg-only hidden-md-only hidden-xl-only" 1574 class="right hidden-lg-only hidden-md-only hidden-xl-only"
1572 >Roll No:</label> 1575 >Roll No:</label>
1573 </v-flex> 1576 </v-flex>
1574 <v-flex xs8 class="ml-3"> 1577 <v-flex xs8 class="ml-3">
1575 <v-text-field 1578 <v-text-field
1576 v-model="addStudents.rollNo" 1579 v-model="addStudents.rollNo"
1577 placeholder="Fill your Roll Number" 1580 placeholder="Fill your Roll Number"
1578 required 1581 required
1579 ></v-text-field> 1582 ></v-text-field>
1580 </v-flex> 1583 </v-flex>
1581 </v-layout> 1584 </v-layout>
1582 </v-flex> 1585 </v-flex>
1583 <v-flex xs12 sm6 class="hidden-xs-only hidden-sm-only"> 1586 <v-flex xs12 sm6 class="hidden-xs-only hidden-sm-only">
1584 <v-layout> 1587 <v-layout>
1585 <v-flex xs4 sm4 class="pt-4 subheading"> 1588 <v-flex xs4 sm4 class="pt-4 subheading">
1586 <label class="right pr-4">Present Address:</label> 1589 <label class="right pr-4">Present Address:</label>
1587 </v-flex> 1590 </v-flex>
1588 <v-flex xs8 sm8 class="ml-3"> 1591 <v-flex xs8 sm8 class="ml-3">
1589 <v-text-field 1592 <v-text-field
1590 name="input-4-3" 1593 name="input-4-3"
1591 v-model="addStudents.presentAddress" 1594 v-model="addStudents.presentAddress"
1592 :rules="presentAddress" 1595 :rules="presentAddress"
1593 placeholder="fill Your present Address" 1596 placeholder="fill Your present Address"
1594 required 1597 required
1595 ></v-text-field> 1598 ></v-text-field>
1596 </v-flex> 1599 </v-flex>
1597 </v-layout> 1600 </v-layout>
1598 </v-flex> 1601 </v-flex>
1599 </v-layout> 1602 </v-layout>
1600 <v-layout class="hidden-xs-only hidden-sm-only" wrap> 1603 <v-layout class="hidden-xs-only hidden-sm-only" wrap>
1601 <v-flex xs12 sm6> 1604 <v-flex xs12 sm6>
1602 <v-layout> 1605 <v-layout>
1603 <v-flex xs4 sm4 class="pt-4 subheading addressForm"> 1606 <v-flex xs4 sm4 class="pt-4 subheading addressForm">
1604 <label class="right">Permanent Address:</label> 1607 <label class="right">Permanent Address:</label>
1605 </v-flex> 1608 </v-flex>
1606 <v-flex xs12 sm8 class="ml-3"> 1609 <v-flex xs12 sm8 class="ml-3">
1607 <v-text-field 1610 <v-text-field
1608 name="input-4-3" 1611 name="input-4-3"
1609 v-model="addStudents.permanentAddress" 1612 v-model="addStudents.permanentAddress"
1610 :rules="permanentAddress" 1613 :rules="permanentAddress"
1611 placeholder="fill Your Permanent Address" 1614 placeholder="fill Your Permanent Address"
1612 required 1615 required
1613 ></v-text-field> 1616 ></v-text-field>
1614 </v-flex> 1617 </v-flex>
1615 </v-layout> 1618 </v-layout>
1616 </v-flex> 1619 </v-flex>
1617 </v-layout> 1620 </v-layout>
1618 <v-layout class="hidden-lg-only hidden-md-only hidden-xl-only" wrap> 1621 <v-layout class="hidden-lg-only hidden-md-only hidden-xl-only" wrap>
1619 <v-flex xs12 sm12> 1622 <v-flex xs12 sm12>
1620 <v-layout> 1623 <v-layout>
1621 <v-flex xs12 sm12 class="pt-4 subheading text-xs-center"> 1624 <v-flex xs12 sm12 class="pt-4 subheading text-xs-center">
1622 <label class>Present Address :</label> 1625 <label class>Present Address :</label>
1623 </v-flex> 1626 </v-flex>
1624 </v-layout> 1627 </v-layout>
1625 <v-layout> 1628 <v-layout>
1626 <v-flex xs12 sm12> 1629 <v-flex xs12 sm12>
1627 <v-textarea 1630 <v-textarea
1628 name="input-4-3" 1631 name="input-4-3"
1629 v-model="addStudents.presentAddress" 1632 v-model="addStudents.presentAddress"
1630 :rules="presentAddress" 1633 :rules="presentAddress"
1631 placeholder="fill Your present Address" 1634 placeholder="fill Your present Address"
1632 required 1635 required
1633 ></v-textarea> 1636 ></v-textarea>
1634 </v-flex> 1637 </v-flex>
1635 </v-layout> 1638 </v-layout>
1636 </v-flex> 1639 </v-flex>
1637 <v-flex xs12 sm12> 1640 <v-flex xs12 sm12>
1638 <v-layout> 1641 <v-layout>
1639 <v-flex 1642 <v-flex
1640 xs12 1643 xs12
1641 sm12 1644 sm12
1642 class="pt-4 pr-4 subheading text-xs-center addressForm" 1645 class="pt-4 pr-4 subheading text-xs-center addressForm"
1643 > 1646 >
1644 <label>Permanent addr:</label> 1647 <label>Permanent addr:</label>
1645 </v-flex> 1648 </v-flex>
1646 </v-layout> 1649 </v-layout>
1647 <v-layout> 1650 <v-layout>
1648 <v-flex xs12 sm12> 1651 <v-flex xs12 sm12>
1649 <v-textarea 1652 <v-textarea
1650 name="input-4-3" 1653 name="input-4-3"
1651 v-model="addStudents.permanentAddress" 1654 v-model="addStudents.permanentAddress"
1652 :rules="permanentAddress" 1655 :rules="permanentAddress"
1653 placeholder="fill Your Permanent Address" 1656 placeholder="fill Your Permanent Address"
1654 required 1657 required
1655 ></v-textarea> 1658 ></v-textarea>
1656 </v-flex> 1659 </v-flex>
1657 </v-layout> 1660 </v-layout>
1658 </v-flex> 1661 </v-flex>
1659 </v-layout> 1662 </v-layout>
1660 <v-layout> 1663 <v-layout>
1661 <v-flex xs12 sm12> 1664 <v-flex xs12 sm12>
1662 <v-layout> 1665 <v-layout>
1663 <v-flex xs6> 1666 <v-flex xs6>
1664 <v-btn round dark @click="e2 = 1">Back</v-btn> 1667 <v-btn round dark @click="e2 = 1">Back</v-btn>
1665 </v-flex> 1668 </v-flex>
1666 <v-flex xs6> 1669 <v-flex xs6>
1667 <v-btn 1670 <v-btn
1668 @click="submit" 1671 @click="submit"
1669 round 1672 round
1670 dark 1673 dark
1671 :loading="loading" 1674 :loading="loading"
1672 class="right" 1675 class="right"
1673 >Add</v-btn> 1676 >Add</v-btn>
1674 </v-flex> 1677 </v-flex>
1675 </v-layout> 1678 </v-layout>
1676 </v-flex> 1679 </v-flex>
1677 </v-layout> 1680 </v-layout>
1678 </v-form> 1681 </v-form>
1679 </v-flex> 1682 </v-flex>
1680 </v-stepper-content> 1683 </v-stepper-content>
1681 </v-stepper-items> 1684 </v-stepper-items>
1682 </v-stepper> 1685 </v-stepper>
1683 </v-app> 1686 </v-app>
1684 </div> 1687 </div>
1685 </v-flex> 1688 </v-flex>
1686 </v-layout> 1689 </v-layout>
1687 </v-container> 1690 </v-container>
1688 </v-tab-item> 1691 </v-tab-item>
1689 </v-tabs> 1692 </v-tabs>
1690 <div class="loader" v-if="showLoader"> 1693 <div class="loader" v-if="showLoader">
1691 <v-progress-circular indeterminate color="white"></v-progress-circular> 1694 <v-progress-circular indeterminate color="white"></v-progress-circular>
1692 </div> 1695 </div>
1693 </div> 1696 </div>
1694 </template> 1697 </template>
1695 1698
1696 <script> 1699 <script>
1697 import http from "@/Services/http.js"; 1700 import http from "@/Services/http.js";
1698 import moment from "moment"; 1701 import moment from "moment";
1699 import countryList from "@/script/country.js"; 1702 import countryList from "@/script/country.js";
1700 import parent from '@/script/parents.js' 1703 import parent from "@/script/parents.js";
1701 1704
1702 export default { 1705 export default {
1703 data: () => ({ 1706 data: () => ({
1704 e2: 0, 1707 e2: 0,
1705 showParent: true, 1708 showParent: true,
1706 showNext: false, 1709 showNext: false,
1707 snackbar: false, 1710 snackbar: false,
1708 y: "top", 1711 y: "top",
1709 x: "right", 1712 x: "right",
1710 mode: "", 1713 mode: "",
1711 timeout: 3000, 1714 timeout: 3000,
1712 text: "", 1715 text: "",
1713 showLoader: false, 1716 showLoader: false,
1714 loading: false, 1717 loading: false,
1715 date: null, 1718 date: null,
1716 search: "", 1719 search: "",
1717 menu: false, 1720 menu: false,
1718 menu1: false, 1721 menu1: false,
1719 dialog: false, 1722 dialog: false,
1720 dialog1: false, 1723 dialog1: false,
1721 valid: true, 1724 valid: true,
1722 isActive: true, 1725 isActive: true,
1723 newActive: false, 1726 newActive: false,
1724 addclass: [], 1727 addclass: [],
1725 addSection: [], 1728 addSection: [],
1726 gender: ["Male", "Female"], 1729 gender: ["Male", "Female"],
1727 pagination: { 1730 pagination: {
1728 rowsPerPage: 15 1731 rowsPerPage: 15
1729 }, 1732 },
1730 imageData: {}, 1733 imageData: {},
1731 imageName: "", 1734 imageName: "",
1732 imageUrl: "", 1735 imageUrl: "",
1733 imageFile: "", 1736 imageFile: "",
1734 nameRules: [v => !!v || " Full Name is required"], 1737 nameRules: [v => !!v || " Full Name is required"],
1735 dateRules: [v => !!v || " DOB is required"], 1738 dateRules: [v => !!v || " DOB is required"],
1736 cityRules: [v => !!v || " City Name is required"], 1739 cityRules: [v => !!v || " City Name is required"],
1737 pincode: [v => !!v || " Pincode is required"], 1740 pincode: [v => !!v || " Pincode is required"],
1738 country: [v => !!v || " Country Name is required"], 1741 country: [v => !!v || " Country Name is required"],
1739 permanentAddress: [v => !!v || " Permanent Address is required"], 1742 permanentAddress: [v => !!v || " Permanent Address is required"],
1740 presentAddress: [v => !!v || " Present Address is required"], 1743 presentAddress: [v => !!v || " Present Address is required"],
1741 mobileNoRules: [v => !!v || "Mobile Number is required"], 1744 mobileNoRules: [v => !!v || "Mobile Number is required"],
1742 stateRules: [v => !!v || "State Name is required"], 1745 stateRules: [v => !!v || "State Name is required"],
1743 classRules: [v => !!v || " Class Name is required"], 1746 classRules: [v => !!v || " Class Name is required"],
1744 sectionRules: [v => !!v || " Section Name is required"], 1747 sectionRules: [v => !!v || " Section Name is required"],
1745 genderRules: [v => !!v || " Select Gender is required"], 1748 genderRules: [v => !!v || " Select Gender is required"],
1746 fatherNameRules: [v => !!v || " Father Name is required"], 1749 fatherNameRules: [v => !!v || " Father Name is required"],
1747 fatheCellNoRules: [v => !!v || " father Cell Number is required"], 1750 fatheCellNoRules: [v => !!v || " father Cell Number is required"],
1748 motherNameRules: [v => !!v || " Mother Name is required"], 1751 motherNameRules: [v => !!v || " Mother Name is required"],
1749 motherCellNoRules: [v => !!v || " Mother Cell Number is required"], 1752 motherCellNoRules: [v => !!v || " Mother Cell Number is required"],
1750 establishmentYearRules: [v => !!v || " Academic Year is required"], 1753 establishmentYearRules: [v => !!v || " Academic Year is required"],
1751 errorMessages: "", 1754 errorMessages: "",
1752 emailRules: [ 1755 emailRules: [
1753 v => !!v || "E-mail is required", 1756 v => !!v || "E-mail is required",
1754 v => 1757 v =>
1755 /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) || 1758 /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) ||
1756 "E-mail must be valid" 1759 "E-mail must be valid"
1757 ], 1760 ],
1758 countries: [], 1761 countries: [],
1759 headers: [ 1762 headers: [
1760 { 1763 {
1761 text: "Roll No.", 1764 text: "Roll No.",
1762 align: "center", 1765 align: "center",
1763 sortable: false, 1766 sortable: false,
1764 value: "rollNo" 1767 value: "rollNo"
1765 }, 1768 },
1766 { 1769 {
1767 text: "Profile Pic", 1770 text: "Profile Pic",
1768 value: "profilePicUrl", 1771 value: "profilePicUrl",
1769 sortable: false, 1772 sortable: false,
1770 align: "center" 1773 align: "center"
1771 }, 1774 },
1772 { text: "Name", value: "name", sortable: false, align: "center" }, 1775 { text: "Name", value: "name", sortable: false, align: "center" },
1773 { text: "Email", value: "email", sortable: false, align: "center" }, 1776 { text: "Email", value: "email", sortable: false, align: "center" },
1774 { text: "Dob", value: "dob", sortable: false, align: "center" }, 1777 { text: "Dob", value: "dob", sortable: false, align: "center" },
1775 { text: "Gender", value: "gender", sortable: false, align: "center" }, 1778 { text: "Gender", value: "gender", sortable: false, align: "center" },
1776 { 1779 {
1777 text: "Father Name", 1780 text: "Father Name",
1778 value: "fatherName", 1781 value: "fatherName",
1779 sortable: false, 1782 sortable: false,
1780 align: "center" 1783 align: "center"
1781 }, 1784 },
1782 { 1785 {
1783 text: "Mother Name", 1786 text: "Mother Name",
1784 value: "motherName", 1787 value: "motherName",
1785 sortable: false, 1788 sortable: false,
1786 align: "center" 1789 align: "center"
1787 }, 1790 },
1788 { 1791 {
1789 text: "Academic Year", 1792 text: "Academic Year",
1790 value: "establishmentYear", 1793 value: "establishmentYear",
1791 sortable: false, 1794 sortable: false,
1792 align: "center" 1795 align: "center"
1793 }, 1796 },
1794 { text: "Mobile No", value: "mobile", sortable: false, align: "center" }, 1797 { text: "Mobile No", value: "mobile", sortable: false, align: "center" },
1795 { text: "Action", value: "", sortable: false, align: "center" } 1798 { text: "Action", value: "", sortable: false, align: "center" }
1796 ], 1799 ],
1797 desserts: [], 1800 desserts: [],
1798 parentId: "", 1801 parentId: "",
1799 editedIndex: -1, 1802 editedIndex: -1,
1800 parentData: {}, 1803 parentData: {},
1801 addStudents: { 1804 addStudents: {
1802 role: "STUDENT", 1805 role: "STUDENT",
1803 name: "", 1806 name: "",
1804 email: "", 1807 email: "",
1805 date: "", 1808 date: "",
1806 city: "", 1809 city: "",
1807 pincode: "", 1810 pincode: "",
1808 country: "", 1811 country: "",
1809 permanentAddress: "", 1812 permanentAddress: "",
1810 presentAddress: "", 1813 presentAddress: "",
1811 mobile: "", 1814 mobile: "",
1812 state: "", 1815 state: "",
1813 gender: "", 1816 gender: "",
1814 select: "", 1817 select: "",
1815 selectSection: "", 1818 selectSection: "",
1816 bloodGroup: "", 1819 bloodGroup: "",
1817 allergies: "", 1820 allergies: "",
1818 medicalNotes: "", 1821 medicalNotes: "",
1819 height: "", 1822 height: "",
1820 weight: "", 1823 weight: "",
1821 rollNo: "", 1824 rollNo: "",
1822 establishmentYear: new Date().getFullYear() 1825 establishmentYear: new Date().getFullYear()
1823 }, 1826 },
1824 selectStudents: { 1827 selectStudents: {
1825 select: "", 1828 select: "",
1826 selectSection: "" 1829 selectSection: ""
1827 }, 1830 },
1828 editedItem: { 1831 editedItem: {
1829 role: "STUDENT", 1832 role: "STUDENT",
1830 name: "", 1833 name: "",
1831 email: "", 1834 email: "",
1832 dob: "", 1835 dob: "",
1833 city: "", 1836 city: "",
1834 pincode: "", 1837 pincode: "",
1835 country: "", 1838 country: "",
1836 permanentAddress: "", 1839 permanentAddress: "",
1837 presentAddress: "", 1840 presentAddress: "",
1838 mobile: "", 1841 mobile: "",
1839 state: "", 1842 state: "",
1840 gender: "", 1843 gender: "",
1841 select: "", 1844 select: "",
1842 selectSection: "", 1845 selectSection: "",
1843 bloodGroup: "", 1846 bloodGroup: "",
1844 allergies: "", 1847 allergies: "",
1845 medicalNotes: "", 1848 medicalNotes: "",
1846 height: "", 1849 height: "",
1847 weight: "", 1850 weight: "",
1848 rollNo: "", 1851 rollNo: "",
1849 establishmentYear: new Date().getFullYear() 1852 establishmentYear: new Date().getFullYear()
1850 } 1853 }
1851 }), 1854 }),
1852 watch: { 1855 watch: {
1853 menu(val) { 1856 menu(val) {
1854 val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR")); 1857 val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
1855 }, 1858 },
1856 menu1(val) { 1859 menu1(val) {
1857 val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR")); 1860 val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
1858 } 1861 }
1859 }, 1862 },
1860 methods: { 1863 methods: {
1861 findStudents() { 1864 findStudents() {
1862 this.showLoader = true; 1865 this.showLoader = true;
1863 http() 1866 http()
1864 .get("/getStudentWithClass", { 1867 .get("/getStudentWithClass", {
1865 params: { 1868 params: {
1866 classId: this.selectStudents.select, 1869 classId: this.selectStudents.select,
1867 sectionId: this.selectStudents.selectSection 1870 sectionId: this.selectStudents.selectSection
1868 } 1871 }
1869 }) 1872 })
1870 .then(response => { 1873 .then(response => {
1871 this.desserts = response.data.data; 1874 this.desserts = response.data.data;
1872 this.showLoader = false; 1875 this.showLoader = false;
1873 console.log("getSectionsList=====>", this.addSection); 1876 console.log("getSectionsList=====>", this.addSection);
1874 }) 1877 })
1875 .catch(err => { 1878 .catch(err => {
1876 console.log("err====>", err); 1879 console.log("err====>", err);
1877 this.showLoader = false; 1880 this.showLoader = false;
1878 }); 1881 });
1879 }, 1882 },
1880 getSections(_id) { 1883 getSections(_id) {
1881 var token = this.$store.state.token; 1884 var token = this.$store.state.token;
1882 this.showLoader = true; 1885 this.showLoader = true;
1883 http() 1886 http()
1884 .get( 1887 .get(
1885 "/getSectionsList", 1888 "/getSectionsList",
1886 { params: { classId: _id } }, 1889 { params: { classId: _id } },
1887 { 1890 {
1888 headers: { Authorization: "Bearer " + token } 1891 headers: { Authorization: "Bearer " + token }
1889 } 1892 }
1890 ) 1893 )
1891 .then(response => { 1894 .then(response => {
1892 this.addSection = response.data.data; 1895 this.addSection = response.data.data;
1893 this.showLoader = false; 1896 this.showLoader = false;
1894 // console.log("getSectionsList=====>", this.addSection); 1897 // console.log("getSectionsList=====>", this.addSection);
1895 }) 1898 })
1896 .catch(err => { 1899 .catch(err => {
1897 this.showLoader = false; 1900 this.showLoader = false;
1898 // console.log("err====>", err); 1901 // console.log("err====>", err);
1899 // this.$router.replace({ path: '/' }); 1902 // this.$router.replace({ path: '/' });
1900 }); 1903 });
1901 }, 1904 },
1902 getSection(_id) { 1905 getSection(_id) {
1903 var token = this.$store.state.token; 1906 var token = this.$store.state.token;
1904 this.showLoader = true; 1907 this.showLoader = true;
1905 http() 1908 http()
1906 .get( 1909 .get(
1907 "/getSectionsList", 1910 "/getSectionsList",
1908 { params: { classId: _id } }, 1911 { params: { classId: _id } },
1909 { 1912 {
1910 headers: { Authorization: "Bearer " + token } 1913 headers: { Authorization: "Bearer " + token }
1911 } 1914 }
1912 ) 1915 )
1913 .then(response => { 1916 .then(response => {
1914 this.addSection = response.data.data; 1917 this.addSection = response.data.data;
1915 this.showLoader = false; 1918 this.showLoader = false;
1916 // console.log("getSectionsList=====>", this.addSection); 1919 // console.log("getSectionsList=====>", this.addSection);
1917 }) 1920 })
1918 .catch(err => { 1921 .catch(err => {
1919 this.showLoader = false; 1922 this.showLoader = false;
1920 // console.log("err====>", err); 1923 // console.log("err====>", err);
1921 // this.$router.replace({ path: '/' }); 1924 // this.$router.replace({ path: '/' });
1922 }); 1925 });
1923 }, 1926 },
1924 pickFile() { 1927 pickFile() {
1925 this.$refs.image.click(); 1928 this.$refs.image.click();
1926 }, 1929 },
1927 dates: function(date) { 1930 dates: function(date) {
1928 return moment(date).format("MMMM DD, YYYY"); 1931 return moment(date).format("MMMM DD, YYYY");
1929 }, 1932 },
1930 onFilePicked(e) { 1933 onFilePicked(e) {
1931 // console.log(e) 1934 // console.log(e)
1932 const files = e.target.files; 1935 const files = e.target.files;
1933 this.imageData.upload = e.target.files[0]; 1936 this.imageData.upload = e.target.files[0];
1934 if (files[0] !== undefined) { 1937 if (files[0] !== undefined) {
1935 this.imageName = files[0].name; 1938 this.imageName = files[0].name;
1936 if (this.imageName.lastIndexOf(".") <= 0) { 1939 if (this.imageName.lastIndexOf(".") <= 0) {
1937 return; 1940 return;
1938 } 1941 }
1939 const fr = new FileReader(); 1942 const fr = new FileReader();
1940 fr.readAsDataURL(files[0]); 1943 fr.readAsDataURL(files[0]);
1941 fr.addEventListener("load", () => { 1944 fr.addEventListener("load", () => {
1942 this.imageUrl = fr.result; 1945 this.imageUrl = fr.result;
1943 this.imageFile = files[0]; // this is an image file that can be sent to server... 1946 this.imageFile = files[0]; // this is an image file that can be sent to server...
1944 this.imageData.imageUrl = URL.createObjectURL(this.imageFile); 1947 this.imageData.imageUrl = URL.createObjectURL(this.imageFile);
1945 }); 1948 });
1946 } else { 1949 } else {
1947 this.imageName = ""; 1950 this.imageName = "";
1948 this.imageFile = ""; 1951 this.imageFile = "";
1949 this.imageUrl = ""; 1952 this.imageUrl = "";
1950 } 1953 }
1951 }, 1954 },
1952 // getStudentList() { 1955 // getStudentList() {
1953 // this.showLoader = true; 1956 // this.showLoader = true;
1954 // var token = this.$store.state.token; 1957 // var token = this.$store.state.token;
1955 // http() 1958 // http()
1956 // .get("/getStudentsList", { 1959 // .get("/getStudentsList", {
1957 // headers: { Authorization: "Bearer " + token } 1960 // headers: { Authorization: "Bearer " + token }
1958 // }) 1961 // })
1959 // .then(response => { 1962 // .then(response => {
1960 // this.desserts = response.data.data; 1963 // this.desserts = response.data.data;
1961 // this.showLoader = false; 1964 // this.showLoader = false;
1962 // // console.log("getStudentList=====>",this.desserts) 1965 // // console.log("getStudentList=====>",this.desserts)
1963 // }) 1966 // })
1964 // .catch(err => { 1967 // .catch(err => {
1965 // // console.log("err====>", err); 1968 // // console.log("err====>", err);
1966 // this.showLoader = false; 1969 // this.showLoader = false;
1967 // this.$router.replace({ path: "/" }); 1970 // this.$router.replace({ path: "/" });
1968 // }); 1971 // });
1969 // }, 1972 // },
1970 editItem(item) { 1973 editItem(item) {
1971 this.editedIndex = this.desserts.indexOf(item); 1974 this.editedIndex = this.desserts.indexOf(item);
1972 this.editedItem = Object.assign({}, item); 1975 this.editedItem = Object.assign({}, item);
1973 this.editedItem.fatherName = item.parentId.fatherName; 1976 this.editedItem.fatherName = item.parentId.fatherName;
1974 this.editedItem.fatherCellNo = item.parentId.fatherCellNo; 1977 this.editedItem.fatherCellNo = item.parentId.fatherCellNo;
1975 this.editedItem.motherName = item.parentId.motherName; 1978 this.editedItem.motherName = item.parentId.motherName;
1976 this.editedItem.motherCellNo = item.parentId.motherCellNo; 1979 this.editedItem.motherCellNo = item.parentId.motherCellNo;
1977 this.editedItem.dob = 1980 this.editedItem.dob =
1978 this.editedItem.dob != undefined 1981 this.editedItem.dob != undefined
1979 ? (this.editedItem.dob = this.editedItem.dob.substring(0, 10)) 1982 ? (this.editedItem.dob = this.editedItem.dob.substring(0, 10))
1980 : (this.editedItem.dob = ""); 1983 : (this.editedItem.dob = "");
1981 this.dialog = true; 1984 this.dialog = true;
1982 }, 1985 },
1983 profile(item) { 1986 profile(item) {
1984 console.log("item", item); 1987 console.log("item", item);
1985 this.editedIndex = this.desserts.indexOf(item); 1988 this.editedIndex = this.desserts.indexOf(item);
1986 this.editedItem = Object.assign({}, item); 1989 this.editedItem = Object.assign({}, item);
1987 this.editedItem.fatherName = item.parentId.fatherName; 1990 this.editedItem.fatherName = item.parentId.fatherName;
1988 this.editedItem.fatherCellNo = item.parentId.fatherCellNo; 1991 this.editedItem.fatherCellNo = item.parentId.fatherCellNo;
1989 this.editedItem.motherName = item.parentId.motherName; 1992 this.editedItem.motherName = item.parentId.motherName;
1990 this.editedItem.motherCellNo = item.parentId.motherCellNo; 1993 this.editedItem.motherCellNo = item.parentId.motherCellNo;
1991 1994
1992 this.dialog1 = true; 1995 this.dialog1 = true;
1993 }, 1996 },
1994 deleteItem(item) { 1997 deleteItem(item) {
1995 let deleteStudent = { 1998 let deleteStudent = {
1996 studentId: item._id 1999 studentId: item._id
1997 }; 2000 };
1998 http() 2001 http()
1999 .delete( 2002 .delete(
2000 "/deleteStudent", 2003 "/deleteStudent",
2001 confirm("Are you sure you want to delete this?") && { 2004 confirm("Are you sure you want to delete this?") && {
2002 params: deleteStudent 2005 params: deleteStudent
2003 } 2006 }
2004 ) 2007 )
2005 .then(response => { 2008 .then(response => {
2006 // console.log("deleteUers",deleteStudent) 2009 // console.log("deleteUers",deleteStudent)
2007 if ((this.snackbar = true)) { 2010 if ((this.snackbar = true)) {
2008 this.text = "Successfully delete Existing Student"; 2011 this.text = "Successfully delete Existing Student";
2009 } 2012 }
2010 this.getStudentList(); 2013 this.getStudentList();
2011 }) 2014 })
2012 .catch(error => { 2015 .catch(error => {
2013 // console.log(error); 2016 // console.log(error);
2014 }); 2017 });
2015 }, 2018 },
2016 activeTab(type) { 2019 activeTab(type) {
2017 switch (type) { 2020 switch (type) {
2018 case "existing": 2021 case "existing":
2019 this.newActive = false; 2022 this.newActive = false;
2020 this.isActive = true; 2023 this.isActive = true;
2021 break; 2024 break;
2022 2025
2023 default: 2026 default:
2024 this.newActive = true; 2027 this.newActive = true;
2025 this.isActive = false; 2028 this.isActive = false;
2026 break; 2029 break;
2027 } 2030 }
2028 }, 2031 },
2029 close() { 2032 close() {
2030 this.dialog = false; 2033 this.dialog = false;
2031 setTimeout(() => { 2034 setTimeout(() => {
2032 this.editedItem = Object.assign({}, this.defaultItem); 2035 this.editedItem = Object.assign({}, this.defaultItem);
2033 this.editedIndex = -1; 2036 this.editedIndex = -1;
2034 }, 300); 2037 }, 300);
2035 }, 2038 },
2036 close1() { 2039 close1() {
2037 this.dialog1 = false; 2040 this.dialog1 = false;
2038 }, 2041 },
2039 submit() { 2042 submit() {
2040 if (this.$refs.form.validate()) { 2043 if (this.$refs.form.validate()) {
2041 let addStudent = { 2044 let addStudent = {
2042 parentId: this.parentId, 2045 parentId: this.parentId,
2043 name: this.addStudents.name, 2046 name: this.addStudents.name,
2044 email: this.addStudents.email, 2047 email: this.addStudents.email,
2045 role: this.addStudents.role, 2048 role: this.addStudents.role,
2046 dob: this.addStudents.date, 2049 dob: this.addStudents.date,
2047 city: this.addStudents.city, 2050 city: this.addStudents.city,
2048 pincode: this.addStudents.pincode, 2051 pincode: this.addStudents.pincode,
2049 country: this.addStudents.country, 2052 country: this.addStudents.country,
2050 permanentAddress: this.addStudents.permanentAddress, 2053 permanentAddress: this.addStudents.permanentAddress,
2051 presentAddress: this.addStudents.presentAddress, 2054 presentAddress: this.addStudents.presentAddress,
2052 mobile: this.addStudents.mobile, 2055 mobile: this.addStudents.mobile,
2053 state: this.addStudents.state, 2056 state: this.addStudents.state,
2054 gender: this.addStudents.gender, 2057 gender: this.addStudents.gender,
2055 establishmentYear: this.addStudents.establishmentYear, 2058 establishmentYear: this.addStudents.establishmentYear,
2056 classId: this.addStudents.select, 2059 classId: this.addStudents.select,
2057 sectionId: this.addStudents.selectSection, 2060 sectionId: this.addStudents.selectSection,
2058 bloodGroup: this.addStudents.bloodGroup, 2061 bloodGroup: this.addStudents.bloodGroup,
2059 allergies: this.addStudents.allergies, 2062 allergies: this.addStudents.allergies,
2060 medicalNotes: this.addStudents.medicalNotes, 2063 medicalNotes: this.addStudents.medicalNotes,
2061 height: this.addStudents.height, 2064 height: this.addStudents.height,
2062 weight: this.addStudents.weight, 2065 weight: this.addStudents.weight,
2063 rollNo: this.addStudents.rollNo 2066 rollNo: this.addStudents.rollNo
2064 }; 2067 };
2065 if (this.imageUrl) { 2068 if (this.imageUrl) {
2066 var str = this.imageUrl; 2069 var str = this.imageUrl;
2067 const [baseUrl, imageUrl] = str.split(/,/); 2070 const [baseUrl, imageUrl] = str.split(/,/);
2068 addStudent.upload = imageUrl; 2071 addStudent.upload = imageUrl;
2069 } 2072 }
2070 this.loading = true; 2073 this.loading = true;
2071 http() 2074 http()
2072 .post("/createStudent", addStudent) 2075 .post("/createStudent", addStudent)
2073 .then(response => { 2076 .then(response => {
2074 console.log(addStudent); 2077 console.log(addStudent);
2075 if ((this.snackbar = true)) { 2078 if ((this.snackbar = true)) {
2076 this.text = "New Student added successfully"; 2079 this.text = "New Student added successfully";
2077 } 2080 }
2078 // this.getStudentList(); 2081 // this.getStudentList();
2079 this.clear(); 2082 this.clear();
2080 this.loading = false; 2083 this.loading = false;
2081 }) 2084 })
2082 .catch(error => { 2085 .catch(error => {
2083 // console.log(error); 2086 // console.log(error);
2084 if ((this.snackbar = true)) { 2087 if ((this.snackbar = true)) {
2085 this.text = error.response.data.message; 2088 this.text = error.response.data.message;
2086 } 2089 }
2087 this.loading = false; 2090 this.loading = false;
2088 }); 2091 });
2089 } 2092 }
2090 }, 2093 },
2091 clear() { 2094 clear() {
2092 this.$refs.form.reset(); 2095 this.$refs.form.reset();
2093 this.imageUrl = ""; 2096 this.imageUrl = "";
2094 }, 2097 },
2095 save() { 2098 save() {
2096 let editStudent = { 2099 let editStudent = {
2097 studentId: this.editedItem._id, 2100 studentId: this.editedItem._id,
2098 name: this.editedItem.name, 2101 name: this.editedItem.name,
2099 email: this.editedItem.email, 2102 email: this.editedItem.email,
2100 role: this.editedItem.role, 2103 role: this.editedItem.role,
2101 dob: this.editedItem.dob, 2104 dob: this.editedItem.dob,
2102 city: this.editedItem.city, 2105 city: this.editedItem.city,
2103 pincode: this.editedItem.pincode, 2106 pincode: this.editedItem.pincode,
2104 country: this.editedItem.country, 2107 country: this.editedItem.country,
2105 permanentAddress: this.editedItem.permanentAddress, 2108 permanentAddress: this.editedItem.permanentAddress,
2106 presentAddress: this.editedItem.presentAddress, 2109 presentAddress: this.editedItem.presentAddress,
2107 mobile: this.editedItem.mobile, 2110 mobile: this.editedItem.mobile,
2108 state: this.editedItem.state, 2111 state: this.editedItem.state,
2109 gender: this.editedItem.gender, 2112 gender: this.editedItem.gender,
2110 establishmentYear: this.editedItem.establishmentYear, 2113 establishmentYear: this.editedItem.establishmentYear,
2111 classId: this.editedItem.select, 2114 classId: this.editedItem.select,
2112 sectionId: this.editedItem.selectSection, 2115 sectionId: this.editedItem.selectSection,
2113 bloodGroup: this.editedItem.bloodGroup, 2116 bloodGroup: this.editedItem.bloodGroup,
2114 allergies: this.editedItem.allergies, 2117 allergies: this.editedItem.allergies,
2115 medicalNotes: this.editedItem.medicalNotes, 2118 medicalNotes: this.editedItem.medicalNotes,
2116 height: this.editedItem.height, 2119 height: this.editedItem.height,
2117 weight: this.editedItem.weight, 2120 weight: this.editedItem.weight,
2118 rollNo: this.editedItem.rollNo 2121 rollNo: this.editedItem.rollNo
2119 }; 2122 };
2120 if (this.imageUrl) { 2123 if (this.imageUrl) {
2121 var str = this.imageUrl; 2124 var str = this.imageUrl;
2122 const [baseUrl, imageUrl] = str.split(/,/); 2125 const [baseUrl, imageUrl] = str.split(/,/);
2123 editStudent.upload = imageUrl; 2126 editStudent.upload = imageUrl;
2124 } 2127 }
2125 http() 2128 http()
2126 .put("/updateStudent", editStudent) 2129 .put("/updateStudent", editStudent)
2127 .then(response => { 2130 .then(response => {
2128 this.snackbar = true; 2131 this.snackbar = true;
2129 this.text = "Successfully Student Existing User"; 2132 this.text = "Successfully Student Existing User";
2130 this.imageUrl = ""; 2133 this.imageUrl = "";
2131 this.findStudents(); 2134 this.findStudents();
2132 this.close(); 2135 this.close();
2133 }) 2136 })
2134 .catch(error => { 2137 .catch(error => {
2135 // console.log(error); 2138 // console.log(error);
2136 if ((this.snackbar = true)) { 2139 if ((this.snackbar = true)) {
2137 this.text = error.response.data.statusText; 2140 this.text = error.response.data.statusText;
2138 } 2141 }
2139 }); 2142 });
2140 }, 2143 },
2141 submitParentDetails() { 2144 submitParentDetails() {
2142 if (this.$refs.parentForm.validate()) { 2145 if (this.$refs.parentForm.validate()) {
2143 let addparentDetails = { 2146 let addparentDetails = {
2144 email: this.parentData.email, 2147 email: this.parentData.email,
2145 fatherName: this.parentData.fatherName, 2148 fatherName: this.parentData.fatherName,
2146 fatherCellNo: this.parentData.fatherCellNo, 2149 fatherCellNo: this.parentData.fatherCellNo,
2147 motherName: this.parentData.motherName, 2150 motherName: this.parentData.motherName,
2148 motherCellNo: this.parentData.motherCellNo, 2151 motherCellNo: this.parentData.motherCellNo,
2149 role: "PARENT" 2152 role: "PARENT"
2150 }; 2153 };
2151 this.loading = true; 2154 this.loading = true;
2152 http() 2155 http()
2153 .post("/createParent", addparentDetails) 2156 .post("/createParent", addparentDetails)
2154 .then(response => { 2157 .then(response => {
2155 this.parentId = response.data.data.id; 2158 this.parentId = response.data.data.id;
2156 this.e2 = 2; 2159 this.e2 = 2;
2157 if ((this.snackbar = true)) { 2160 if ((this.snackbar = true)) {
2158 this.text = "successfully"; 2161 this.text = "successfully";
2159 } 2162 }
2160 // this.getStudentList(); 2163 // this.getStudentList();
2161 this.clear(); 2164 this.clear();
2162 this.loading = false; 2165 this.loading = false;
2163 }) 2166 })
2164 .catch(error => { 2167 .catch(error => {
2165 console.log(error.response.data); 2168 console.log(error.response.data);
2166 if ((this.snackbar = true)) { 2169 if ((this.snackbar = true)) {
2167 this.text = error.response.data.message; 2170 this.text = error.response.data.message;
2168 this.text = error.response.data.statusText; 2171 this.text = error.response.data.statusText;
2169 } 2172 }
2170 this.loading = false; 2173 this.loading = false;
2171 }); 2174 });
2172 } 2175 }
2173 }, 2176 },
2174 getParentDetails() { 2177 getParentDetails() {
2175 if (this.parentData.email) { 2178 if (this.parentData.email) {
2176 http() 2179 http()
2177 .get("getParticularParent", { 2180 .get("getParticularParent", {
2178 params: { email: this.parentData.email }, 2181 params: { email: this.parentData.email },
2179 headers: { 2182 headers: {
2180 Authorization: "Bearer " + this.$store.state.token 2183 Authorization: "Bearer " + this.$store.state.token
2181 } 2184 }
2182 }) 2185 })
2183 .then(response => { 2186 .then(response => {
2184 this.showNext = true; 2187 this.showNext = true;
2185 this.showParent = false; 2188 this.showParent = false;
2186 this.parentData = response.data.data; 2189 this.parentData = response.data.data;
2187 this.parentId = response.data.data._id; 2190 this.parentId = response.data.data._id;
2188 }) 2191 })
2189 .catch(error => { 2192 .catch(error => {
2190 console.log("err====>", error.response.data.message); 2193 console.log("err====>", error.response.data.message);
2191 }); 2194 });
2192 } 2195 }
2193 } 2196 }
2194 }, 2197 },
2195 mounted() { 2198 mounted() {
2196 const getCountryList = countryList(); 2199 const getCountryList = countryList();
2197 this.countries = getCountryList; 2200 this.countries = getCountryList;
2198 var token = this.$store.state.token; 2201 var token = this.$store.state.token;
2199 http() 2202 http()
2200 .get("/getClassesList", { 2203 .get("/getClassesList", {
2201 headers: { Authorization: "Bearer " + token } 2204 headers: { Authorization: "Bearer " + token }
2202 }) 2205 })
2203 .then(response => { 2206 .then(response => {
2204 this.addclass = response.data.data; 2207 this.addclass = response.data.data;
2205 }) 2208 })
2206 .catch(error => { 2209 .catch(error => {
2207 this.showLoader = false; 2210 this.showLoader = false;
2208 if (error.response.status === 401) { 2211 if (error.response.status === 401) {
2209 this.$router.replace({ path: "/" }); 2212 this.$router.replace({ path: "/" });
2210 this.$store.dispatch("setToken", null); 2213 this.$store.dispatch("setToken", null);
2211 this.$store.dispatch("Id", null); 2214 this.$store.dispatch("Id", null);
2212 this.$store.dispatch("Role", null); 2215 this.$store.dispatch("Role", null);
2213 } 2216 }
2214 }); 2217 });
2215 }, 2218 },
2216 created() { 2219 created() {
2217 this.$root.$on("app:search", search => { 2220 this.$root.$on("app:search", search => {
2218 this.search = search; 2221 this.search = search;
2219 }); 2222 });
2220 }, 2223 },
2221 beforeDestroy() { 2224 beforeDestroy() {
2222 // dont forget to remove the listener 2225 // dont forget to remove the listener
2223 this.$root.$off("app:search"); 2226 this.$root.$off("app:search");
2224 } 2227 }
2225 }; 2228 };
2226 </script> 2229 </script>
2227 <style scoped> 2230 <style scoped>
2228 .active { 2231 .active {
2229 background-color: gray; 2232 background-color: gray;
2230 color: white !important; 2233 color: white !important;
2231 } 2234 }
2232 .activebtn { 2235 .activebtn {
src/pages/Teachers/teachers.vue
1 <template> 1 <template>
2 <v-app id="pages-dasboard"> 2 <v-app id="pages-dasboard">
3 <v-tabs grow slider-color="gray"> 3 <v-tabs grow slider-color="gray">
4 <v-tab 4 <v-tab
5 ripple 5 ripple
6 @click="activeTab('existing')" 6 @click="activeTab('existing')"
7 v-bind:class="{ active: isActive }" 7 v-bind:class="{ active: isActive }"
8 id="tab" 8 id="tab"
9 class="subheading" 9 class="subheading"
10 >Existing Teachers</v-tab> 10 >Existing Teachers</v-tab>
11 <v-tab 11 <v-tab
12 ripple 12 ripple
13 @click="activeTab('new')" 13 @click="activeTab('new')"
14 v-bind:class="{ active: newActive }" 14 v-bind:class="{ active: newActive }"
15 id="tab1" 15 id="tab1"
16 User 16 User
17 class="subheading" 17 class="subheading"
18 >Add New Teachers</v-tab> 18 >Add New Teachers</v-tab>
19 <!-- ****** EDIT TEACHERS DETAILS ****** --> 19 <!-- ****** EDIT TEACHERS DETAILS ****** -->
20 <v-tab-item> 20 <v-tab-item>
21 <v-snackbar 21 <v-snackbar
22 :timeout="timeout" 22 :timeout="timeout"
23 :top="y === 'top'" 23 :top="y === 'top'"
24 :right="x === 'right'" 24 :right="x === 'right'"
25 :vertical="mode === 'vertical'" 25 :vertical="mode === 'vertical'"
26 v-model="snackbar" 26 v-model="snackbar"
27 color="success" 27 color="success"
28 >{{ text }}</v-snackbar> 28 >{{ text }}</v-snackbar>
29 <v-dialog v-model="dialog" max-width="1100px" scrollable> 29 <v-dialog v-model="dialog" max-width="1400px" scrollable>
30 <v-card flat> 30 <v-card flat>
31 <v-toolbar color="grey lighten-2" flat> 31 <v-toolbar color="grey lighten-2" flat>
32 <v-spacer></v-spacer> 32 <v-spacer></v-spacer>
33 <v-toolbar-title>Edit Teacher Profile</v-toolbar-title> 33 <v-toolbar-title>Edit Teacher Profile</v-toolbar-title>
34 <v-spacer></v-spacer> 34 <v-spacer></v-spacer>
35 </v-toolbar> 35 </v-toolbar>
36 <v-card-text style="height: 800px;"> 36 <v-card-text style="height: 740px;">
37 <v-layout> 37 <v-layout>
38 <v-flex 38 <v-flex
39 xs12 39 xs12
40 class="text-xs-center text-sm-center text-md-center text-lg-center my-4" 40 class="text-xs-center text-sm-center text-md-center text-lg-center my-4"
41 > 41 >
42 <v-avatar size="160px"> 42 <v-avatar size="160px">
43 <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl && !imageUrl" /> 43 <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl && !imageUrl" />
44 <img 44 <img
45 :src="editedItem.profilePicUrl" 45 :src="editedItem.profilePicUrl"
46 v-else-if="editedItem.profilePicUrl && !imageUrl" 46 v-else-if="editedItem.profilePicUrl && !imageUrl"
47 /> 47 />
48 <img 48 <img
49 v-if="imageUrl" 49 v-if="imageUrl"
50 :src="imageUrl" 50 :src="imageUrl"
51 height="150" 51 height="150"
52 style="border-radius:50%; width:200px" 52 style="border-radius:50%; width:200px"
53 /> 53 />
54 </v-avatar> 54 </v-avatar>
55 <input 55 <input
56 type="file" 56 type="file"
57 style="display:none" 57 style="display:none"
58 ref="image" 58 ref="image"
59 accept="image/*" 59 accept="image/*"
60 @change="onFilePicked" 60 @change="onFilePicked"
61 /> 61 />
62 </v-flex> 62 </v-flex>
63 </v-layout> 63 </v-layout>
64 <v-layout wrap> 64 <v-layout wrap>
65 <v-flex xs12 sm6> 65 <v-flex xs12 sm6>
66 <v-layout> 66 <v-layout>
67 <v-flex xs4 sm4 class="pt-4 subheading"> 67 <v-flex xs4 sm4 class="pt-4 subheading">
68 <label class="right hidden-xs-only hidden-sm-only">Full Name:</label> 68 <label class="right hidden-xs-only hidden-sm-only">Full Name:</label>
69 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Name:</label> 69 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Name:</label>
70 </v-flex> 70 </v-flex>
71 <v-flex xs8 sm6 class="ml-3"> 71 <v-flex xs8 sm6 class="ml-3">
72 <v-text-field 72 <v-text-field
73 v-model="editedItem.name" 73 v-model="editedItem.name"
74 placeholder="fill your full Name" 74 placeholder="fill your full Name"
75 type="text" 75 type="text"
76 required 76 required
77 ></v-text-field> 77 ></v-text-field>
78 </v-flex> 78 </v-flex>
79 </v-layout> 79 </v-layout>
80 </v-flex> 80 </v-flex>
81 <v-flex xs12 sm6> 81 <v-flex xs12 sm6>
82 <v-layout> 82 <v-layout>
83 <v-flex xs4 sm4 class="pt-4 subheading"> 83 <v-flex xs4 sm4 class="pt-4 subheading">
84 <label class="right">Email ID:</label> 84 <label class="right">Email ID:</label>
85 </v-flex> 85 </v-flex>
86 <v-flex xs8 sm6 class="ml-3"> 86 <v-flex xs8 sm6 class="ml-3">
87 <v-text-field 87 <v-text-field
88 placeholder="fill your email" 88 placeholder="fill your email"
89 v-model="editedItem.email" 89 v-model="editedItem.email"
90 type="text" 90 type="text"
91 required 91 required
92 ></v-text-field> 92 ></v-text-field>
93 </v-flex> 93 </v-flex>
94 </v-layout> 94 </v-layout>
95 </v-flex> 95 </v-flex>
96 </v-layout> 96 </v-layout>
97 <v-layout wrap> 97 <v-layout wrap>
98 <v-flex xs12 sm6> 98 <v-flex xs12 sm6>
99 <v-layout> 99 <v-layout>
100 <v-flex xs4 sm4 class="pt-4 subheading"> 100 <v-flex xs4 sm4 class="pt-4 subheading">
101 <label class="right hidden-sm-only hidden-xs-only">Date of Birth:</label> 101 <label class="right hidden-sm-only hidden-xs-only">Date of Birth:</label>
102 <label class="right hidden-lg-only hidden-xl-only hidden-md-only">D.O.B:</label> 102 <label class="right hidden-lg-only hidden-xl-only hidden-md-only">D.O.B:</label>
103 </v-flex> 103 </v-flex>
104 <v-flex xs8 sm6 class="ml-3"> 104 <v-flex xs8 sm6 class="ml-3">
105 <v-menu 105 <v-menu
106 ref="menu" 106 ref="menu"
107 :close-on-content-click="false" 107 :close-on-content-click="false"
108 v-model="menu2" 108 v-model="menu2"
109 :nudge-right="40" 109 :nudge-right="40"
110 lazy 110 lazy
111 transition="scale-transition" 111 transition="scale-transition"
112 offset-y 112 offset-y
113 full-width 113 full-width
114 min-width="290px" 114 min-width="290px"
115 > 115 >
116 <v-text-field 116 <v-text-field
117 slot="activator" 117 slot="activator"
118 v-model="editedItem.dob" 118 v-model="editedItem.dob"
119 placeholder="Select date" 119 placeholder="Select date"
120 ></v-text-field> 120 ></v-text-field>
121 <v-date-picker 121 <v-date-picker
122 ref="picker" 122 ref="picker"
123 v-model="editedItem.dob" 123 v-model="editedItem.dob"
124 :max="new Date().toISOString().substr(0, 10)" 124 :max="new Date().toISOString().substr(0, 10)"
125 min="1950-01-01" 125 min="1950-01-01"
126 @input="menu2 = false" 126 @input="menu2 = false"
127 ></v-date-picker> 127 ></v-date-picker>
128 </v-menu> 128 </v-menu>
129 </v-flex> 129 </v-flex>
130 </v-layout> 130 </v-layout>
131 </v-flex> 131 </v-flex>
132 <v-flex xs12 sm6> 132 <v-flex xs12 sm6>
133 <v-layout> 133 <v-layout>
134 <v-flex xs4 class="pt-4 subheading"> 134 <v-flex xs4 class="pt-4 subheading">
135 <label class="right">City:</label> 135 <label class="right">City:</label>
136 </v-flex> 136 </v-flex>
137 <v-flex xs8 sm6 class="ml-3"> 137 <v-flex xs8 sm6 class="ml-3">
138 <v-text-field 138 <v-text-field
139 v-model="editedItem.city" 139 v-model="editedItem.city"
140 placeholder="fill your City Name" 140 placeholder="fill your City Name"
141 type="text" 141 type="text"
142 required 142 required
143 ></v-text-field> 143 ></v-text-field>
144 </v-flex> 144 </v-flex>
145 </v-layout> 145 </v-layout>
146 </v-flex> 146 </v-flex>
147 </v-layout> 147 </v-layout>
148 <v-layout wrap> 148 <v-layout wrap>
149 <v-flex xs12 sm6> 149 <v-flex xs12 sm6>
150 <v-layout> 150 <v-layout>
151 <v-flex xs4 class="pt-4 subheading"> 151 <v-flex xs4 class="pt-4 subheading">
152 <label class="right">State:</label> 152 <label class="right">State:</label>
153 </v-flex> 153 </v-flex>
154 <v-flex xs8 sm6 class="ml-3"> 154 <v-flex xs8 sm6 class="ml-3">
155 <v-text-field 155 <v-text-field
156 v-model="editedItem.state" 156 v-model="editedItem.state"
157 placeholder="fill your State Name" 157 placeholder="fill your State Name"
158 type="text" 158 type="text"
159 required 159 required
160 ></v-text-field> 160 ></v-text-field>
161 </v-flex> 161 </v-flex>
162 </v-layout> 162 </v-layout>
163 </v-flex> 163 </v-flex>
164 <v-flex xs12 sm6> 164 <v-flex xs12 sm6>
165 <v-layout> 165 <v-layout>
166 <v-flex xs4 class="pt-4 subheading"> 166 <v-flex xs4 class="pt-4 subheading">
167 <label class="right">PinCode:</label> 167 <label class="right">PinCode:</label>
168 </v-flex> 168 </v-flex>
169 <v-flex xs8 sm6 class="ml-3"> 169 <v-flex xs8 sm6 class="ml-3">
170 <v-text-field 170 <v-text-field
171 v-model="editedItem.pincode" 171 v-model="editedItem.pincode"
172 placeholder="fill your pincode" 172 placeholder="fill your pincode"
173 type="number" 173 type="number"
174 required 174 required
175 ></v-text-field> 175 ></v-text-field>
176 </v-flex> 176 </v-flex>
177 </v-layout> 177 </v-layout>
178 </v-flex> 178 </v-flex>
179 </v-layout> 179 </v-layout>
180 <v-layout wrap> 180 <v-layout wrap>
181 <v-flex xs12 sm6> 181 <v-flex xs12 sm6>
182 <v-layout> 182 <v-layout>
183 <v-flex xs4 class="pt-4 subheading"> 183 <v-flex xs4 class="pt-4 subheading">
184 <label class="right hidden-xs-only hidden-sm-only">Mobile No:</label> 184 <label class="right hidden-xs-only hidden-sm-only">Mobile No:</label>
185 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Mobile:</label> 185 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Mobile:</label>
186 </v-flex> 186 </v-flex>
187 <v-flex xs8 sm6 class="ml-3"> 187 <v-flex xs8 sm6 class="ml-3">
188 <v-text-field 188 <v-text-field
189 v-model="editedItem.mobileNo" 189 v-model="editedItem.mobileNo"
190 placeholder="fill your MobileNo" 190 placeholder="fill your MobileNo"
191 type="number" 191 type="number"
192 required 192 required
193 ></v-text-field> 193 ></v-text-field>
194 </v-flex> 194 </v-flex>
195 </v-layout> 195 </v-layout>
196 </v-flex> 196 </v-flex>
197 <v-flex xs12 sm6> 197 <v-flex xs12 sm6>
198 <v-layout> 198 <v-layout>
199 <v-flex xs4 class="pt-4 subheading"> 199 <v-flex xs4 class="pt-4 subheading">
200 <label class="right hidden-xs-only hidden-sm-only">Select Country:</label> 200 <label class="right hidden-xs-only hidden-sm-only">Select Country:</label>
201 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Country:</label> 201 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Country:</label>
202 </v-flex> 202 </v-flex>
203 <v-flex xs8 sm6 class="ml-3"> 203 <v-flex xs8 sm6 class="ml-3">
204 <v-autocomplete 204 <v-autocomplete
205 v-model="editedItem.country" 205 v-model="editedItem.country"
206 :items="countries" 206 :items="countries"
207 placeholder="Select Country Name" 207 placeholder="Select Country Name"
208 required 208 required
209 ></v-autocomplete> 209 ></v-autocomplete>
210 </v-flex> 210 </v-flex>
211 </v-layout> 211 </v-layout>
212 </v-flex> 212 </v-flex>
213 </v-layout> 213 </v-layout>
214 <v-layout wrap> 214 <v-layout wrap>
215 <v-flex xs12 sm6> 215 <v-flex xs12 sm6>
216 <v-layout> 216 <v-layout>
217 <v-flex xs4 class="pt-4 subheading"> 217 <v-flex xs4 class="pt-4 subheading">
218 <label class="right">Join Date:</label> 218 <label class="right">Join Date:</label>
219 </v-flex> 219 </v-flex>
220 <v-flex xs8 sm6 class="ml-3"> 220 <v-flex xs8 sm6 class="ml-3">
221 <v-menu 221 <v-menu
222 ref="menu" 222 ref="menu"
223 :close-on-content-click="false" 223 :close-on-content-click="false"
224 v-model="menu3" 224 v-model="menu3"
225 :nudge-right="40" 225 :nudge-right="40"
226 lazy 226 lazy
227 transition="scale-transition" 227 transition="scale-transition"
228 offset-y 228 offset-y
229 full-width 229 full-width
230 min-width="290px" 230 min-width="290px"
231 > 231 >
232 <v-text-field 232 <v-text-field
233 slot="activator" 233 slot="activator"
234 v-model="editedItem.joinDate" 234 v-model="editedItem.joinDate"
235 placeholder="Select date" 235 placeholder="Select date"
236 ></v-text-field> 236 ></v-text-field>
237 <v-date-picker 237 <v-date-picker
238 ref="picker" 238 ref="picker"
239 v-model="editedItem.joinDate" 239 v-model="editedItem.joinDate"
240 :max="new Date().toISOString().substr(0, 10)" 240 :max="new Date().toISOString().substr(0, 10)"
241 min="1950-01-01" 241 min="1950-01-01"
242 @input="menu3 = false" 242 @input="menu3 = false"
243 ></v-date-picker> 243 ></v-date-picker>
244 </v-menu> 244 </v-menu>
245 </v-flex> 245 </v-flex>
246 </v-layout> 246 </v-layout>
247 </v-flex> 247 </v-flex>
248 <v-flex xs12 sm6> 248 <v-flex xs12 sm6>
249 <v-layout> 249 <v-layout>
250 <v-flex xs4 class="pt-4 subheading"> 250 <v-flex xs4 class="pt-4 subheading">
251 <label class="right hidden-xs-only hidden-sm-only">Uplaod Image:</label> 251 <label class="right hidden-xs-only hidden-sm-only">Uplaod Image:</label>
252 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Uplaod :</label> 252 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Uplaod :</label>
253 </v-flex> 253 </v-flex>
254 <v-flex xs8 sm6 class="ml-3"> 254 <v-flex xs8 sm6 class="ml-3">
255 <v-text-field 255 <v-text-field
256 label="Select Image" 256 label="Select Image"
257 @click="pickFile" 257 @click="pickFile"
258 v-model="imageName" 258 v-model="imageName"
259 append-icon="attach_file" 259 append-icon="attach_file"
260 ></v-text-field> 260 ></v-text-field>
261 </v-flex> 261 </v-flex>
262 </v-layout> 262 </v-layout>
263 </v-flex> 263 </v-flex>
264 </v-layout> 264 </v-layout>
265 <v-layout class="hidden-xs-only hidden-sm-only" wrap> 265 <v-layout class="hidden-xs-only hidden-sm-only" wrap>
266 <v-flex xs12 sm12> 266 <v-flex xs12 sm6>
267 <v-layout> 267 <v-layout>
268 <v-flex xs4 sm2 class="pt-4 subheading ml-5"> 268 <v-flex xs4 sm4 class="pt-4 subheading">
269 <label class="right pr-2">Present Address:</label> 269 <label class="right">Present Address:</label>
270 </v-flex> 270 </v-flex>
271 <v-flex xs8 sm10> 271 <v-flex xs8 sm6 class="ml-3">
272 <v-text-field 272 <v-text-field
273 name="input-4-3" 273 name="input-4-3"
274 v-model="editedItem.presentAddress" 274 v-model="editedItem.presentAddress"
275 placeholder="fill Your present Address" 275 placeholder="fill Your present Address"
276 required 276 required
277 ></v-text-field> 277 ></v-text-field>
278 </v-flex> 278 </v-flex>
279 </v-layout> 279 </v-layout>
280 </v-flex> 280 </v-flex>
281 <v-flex xs12 sm12> 281 <v-flex xs12 sm6>
282 <v-layout> 282 <v-layout>
283 <v-flex xs4 sm2 class="pt-4 subheading ml-5 addressForm"> 283 <v-flex xs4 sm4 class="pt-4 subheading">
284 <label class="pr-2">Permanent Address:</label> 284 <label class="right">Permanent Address:</label>
285 </v-flex> 285 </v-flex>
286 <v-flex xs12 sm10> 286 <v-flex xs12 sm6 class="ml-3">
287 <v-text-field 287 <v-text-field
288 name="input-4-3" 288 name="input-4-3"
289 v-model="editedItem.permanentAddress" 289 v-model="editedItem.permanentAddress"
290 placeholder="fill Your Permanent Address" 290 placeholder="fill Your Permanent Address"
291 required 291 required
292 ></v-text-field> 292 ></v-text-field>
293 </v-flex> 293 </v-flex>
294 </v-layout> 294 </v-layout>
295 </v-flex> 295 </v-flex>
296 </v-layout> 296 </v-layout>
297 <v-layout class="hidden-lg-only hidden-md-only hidden-xl-only" wrap> 297 <v-layout class="hidden-lg-only hidden-md-only hidden-xl-only" wrap>
298 <v-flex xs12 sm12> 298 <v-flex xs12 sm12>
299 <v-layout> 299 <v-layout>
300 <v-flex xs12 sm3 class="pt-4 subheading text-xs-center"> 300 <v-flex xs12 sm3 class="pt-4 subheading text-xs-center">
301 <label class>Present Address:</label> 301 <label class>Present Address:</label>
302 </v-flex> 302 </v-flex>
303 </v-layout> 303 </v-layout>
304 <v-layout> 304 <v-layout>
305 <v-flex xs12 sm12> 305 <v-flex xs12 sm12>
306 <v-textarea 306 <v-textarea
307 name="input-4-3" 307 name="input-4-3"
308 v-model="editedItem.presentAddress" 308 v-model="editedItem.presentAddress"
309 placeholder="fill Your present Address" 309 placeholder="fill Your present Address"
310 required 310 required
311 ></v-textarea> 311 ></v-textarea>
312 </v-flex> 312 </v-flex>
313 </v-layout> 313 </v-layout>
314 </v-flex> 314 </v-flex>
315 <v-flex xs12 sm12> 315 <v-flex xs12 sm12>
316 <v-layout> 316 <v-layout>
317 <v-flex xs12 sm3 class="pt-4 pr-4 subheading text-xs-center addressForm"> 317 <v-flex xs12 sm3 class="pt-4 pr-4 subheading text-xs-center addressForm">
318 <label>Permanent Address:</label> 318 <label>Permanent Address:</label>
319 </v-flex> 319 </v-flex>
320 </v-layout> 320 </v-layout>
321 <v-layout> 321 <v-layout>
322 <v-flex xs12 sm12> 322 <v-flex xs12 sm12>
323 <v-textarea 323 <v-textarea
324 name="input-4-3" 324 name="input-4-3"
325 v-model="editedItem.permanentAddress" 325 v-model="editedItem.permanentAddress"
326 placeholder="fill Your Permanent Address" 326 placeholder="fill Your Permanent Address"
327 required 327 required
328 ></v-textarea> 328 ></v-textarea>
329 </v-flex> 329 </v-flex>
330 </v-layout> 330 </v-layout>
331 </v-flex> 331 </v-flex>
332 </v-layout> 332 </v-layout>
333 <v-layout> 333 <v-layout>
334 <v-flex xs12 sm12> 334 <v-flex xs12 sm10 offset-sm1>
335 <v-layout> 335 <v-layout>
336 <v-flex xs6> 336 <v-flex xs6>
337 <v-btn round dark @click.native="close">Cancel</v-btn> 337 <v-btn round dark @click.native="close">Cancel</v-btn>
338 </v-flex> 338 </v-flex>
339 <v-flex xs6> 339 <v-flex xs6>
340 <v-btn @click="save" round dark :loading="loading" class="right">Save</v-btn> 340 <v-btn @click="save" round dark :loading="loading" class="right">Save</v-btn>
341 </v-flex> 341 </v-flex>
342 </v-layout> 342 </v-layout>
343 </v-flex> 343 </v-flex>
344 </v-layout> 344 </v-layout>
345 </v-card-text> 345 </v-card-text>
346 </v-card> 346 </v-card>
347 </v-dialog> 347 </v-dialog>
348 348
349 <!-- ****** PROFILE VIEW TEACHERS DETAILS ****** --> 349 <!-- ****** PROFILE VIEW TEACHERS DETAILS ****** -->
350 350
351 <v-dialog v-model="dialog1" max-width="600px" scrollable> 351 <v-dialog v-model="dialog1" max-width="600px" scrollable>
352 <v-card> 352 <v-card>
353 <v-toolbar color="grey lighten-2" flat> 353 <v-toolbar color="grey lighten-2" flat>
354 <v-spacer></v-spacer> 354 <v-spacer></v-spacer>
355 <v-toolbar-title> 355 <v-toolbar-title>
356 <h3>Teacher Profile</h3> 356 <h3>Teacher Profile</h3>
357 </v-toolbar-title> 357 </v-toolbar-title>
358 <v-spacer></v-spacer> 358 <v-spacer></v-spacer>
359 <v-icon @click="close1">close</v-icon> 359 <v-icon @click="close1">close</v-icon>
360 </v-toolbar> 360 </v-toolbar>
361 <v-card-text style="height: 700px;"> 361 <v-card-text style="height: 700px;">
362 <v-container grid-list-md> 362 <v-container grid-list-md>
363 <v-layout wrap> 363 <v-layout wrap>
364 <v-flex> 364 <v-flex>
365 <v-flex align-center justify-center layout text-xs-center> 365 <v-flex align-center justify-center layout text-xs-center>
366 <v-avatar size="160px"> 366 <v-avatar size="160px">
367 <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl" /> 367 <img src="/static/icon/user.png" v-if="!editedItem.profilePicUrl" />
368 <img :src="editedItem.profilePicUrl" v-else-if="editedItem.profilePicUrl" /> 368 <img :src="editedItem.profilePicUrl" v-else-if="editedItem.profilePicUrl" />
369 </v-avatar> 369 </v-avatar>
370 </v-flex> 370 </v-flex>
371 <v-layout> 371 <v-layout>
372 <v-flex xs5 sm6> 372 <v-flex xs5 sm6>
373 <h5 class="right my-1"> 373 <h5 class="right my-1">
374 <b>Full Name:</b> 374 <b>Full Name:</b>
375 </h5> 375 </h5>
376 </v-flex> 376 </v-flex>
377 <v-flex sm6 xs8> 377 <v-flex sm6 xs8>
378 <h5 class="my-1">{{ editedItem.name }}</h5> 378 <h5 class="my-1">{{ editedItem.name }}</h5>
379 </v-flex> 379 </v-flex>
380 </v-layout> 380 </v-layout>
381 <v-layout> 381 <v-layout>
382 <v-flex xs5 sm6> 382 <v-flex xs5 sm6>
383 <h5 class="right my-1"> 383 <h5 class="right my-1">
384 <b>Email:</b> 384 <b>Email:</b>
385 </h5> 385 </h5>
386 </v-flex> 386 </v-flex>
387 <v-flex sm6 xs8> 387 <v-flex sm6 xs8>
388 <h5 class="my-1">{{ editedItem.email }}</h5> 388 <h5 class="my-1">{{ editedItem.email }}</h5>
389 </v-flex> 389 </v-flex>
390 </v-layout> 390 </v-layout>
391 <v-layout> 391 <v-layout>
392 <v-flex xs5 sm6> 392 <v-flex xs5 sm6>
393 <h5 class="right my-1"> 393 <h5 class="right my-1">
394 <b>City:</b> 394 <b>City:</b>
395 </h5> 395 </h5>
396 </v-flex> 396 </v-flex>
397 <v-flex sm6 xs8> 397 <v-flex sm6 xs8>
398 <h5 class="my-1">{{ editedItem.city }}</h5> 398 <h5 class="my-1">{{ editedItem.city }}</h5>
399 </v-flex> 399 </v-flex>
400 </v-layout> 400 </v-layout>
401 <v-layout> 401 <v-layout>
402 <v-flex xs5 sm6> 402 <v-flex xs5 sm6>
403 <h5 class="right my-1"> 403 <h5 class="right my-1">
404 <b>State:</b> 404 <b>State:</b>
405 </h5> 405 </h5>
406 </v-flex> 406 </v-flex>
407 <v-flex sm6 xs8> 407 <v-flex sm6 xs8>
408 <h5 class="my-1">{{ editedItem.state }}</h5> 408 <h5 class="my-1">{{ editedItem.state }}</h5>
409 </v-flex> 409 </v-flex>
410 </v-layout> 410 </v-layout>
411 <v-layout> 411 <v-layout>
412 <v-flex xs5 sm6> 412 <v-flex xs5 sm6>
413 <h5 class="right my-1"> 413 <h5 class="right my-1">
414 <b>Country:</b> 414 <b>Country:</b>
415 </h5> 415 </h5>
416 </v-flex> 416 </v-flex>
417 <v-flex sm6 xs8> 417 <v-flex sm6 xs8>
418 <h5 class="my-1">{{ editedItem.country }}</h5> 418 <h5 class="my-1">{{ editedItem.country }}</h5>
419 </v-flex> 419 </v-flex>
420 </v-layout> 420 </v-layout>
421 <v-layout> 421 <v-layout>
422 <v-flex xs5 sm6> 422 <v-flex xs5 sm6>
423 <h5 class="right my-1"> 423 <h5 class="right my-1">
424 <b>Pincode:</b> 424 <b>Pincode:</b>
425 </h5> 425 </h5>
426 </v-flex> 426 </v-flex>
427 <v-flex sm6 xs8> 427 <v-flex sm6 xs8>
428 <h5 class="my-1">{{ editedItem.pincode }}</h5> 428 <h5 class="my-1">{{ editedItem.pincode }}</h5>
429 </v-flex> 429 </v-flex>
430 </v-layout> 430 </v-layout>
431 <v-layout> 431 <v-layout>
432 <v-flex xs5 sm6> 432 <v-flex xs5 sm6>
433 <h5 class="right my-1"> 433 <h5 class="right my-1">
434 <b>Mobile No:</b> 434 <b>Mobile No:</b>
435 </h5> 435 </h5>
436 </v-flex> 436 </v-flex>
437 <v-flex sm6 xs8> 437 <v-flex sm6 xs8>
438 <h5 class="my-1">{{ editedItem.mobileNo }}</h5> 438 <h5 class="my-1">{{ editedItem.mobileNo }}</h5>
439 </v-flex> 439 </v-flex>
440 </v-layout> 440 </v-layout>
441 <v-layout> 441 <v-layout>
442 <v-flex xs5 sm6> 442 <v-flex xs5 sm6>
443 <h5 class="right my-1"> 443 <h5 class="right my-1">
444 <b>Join Date:</b> 444 <b>Join Date:</b>
445 </h5> 445 </h5>
446 </v-flex> 446 </v-flex>
447 <v-flex sm6 xs8> 447 <v-flex sm6 xs8>
448 <h5 class="my-1">{{ dates(editedItem.joinDate) }}</h5> 448 <h5 class="my-1">{{ dates(editedItem.joinDate) }}</h5>
449 </v-flex> 449 </v-flex>
450 </v-layout> 450 </v-layout>
451 <v-layout> 451 <v-layout>
452 <v-flex xs5 sm6> 452 <v-flex xs5 sm6>
453 <h5 class="right my-1"> 453 <h5 class="right my-1">
454 <b>D.O.B :</b> 454 <b>D.O.B :</b>
455 </h5> 455 </h5>
456 </v-flex> 456 </v-flex>
457 <v-flex sm6 xs8> 457 <v-flex sm6 xs8>
458 <h5 class="my-1">{{ dates(editedItem.dob) }}</h5> 458 <h5 class="my-1">{{ dates(editedItem.dob) }}</h5>
459 </v-flex> 459 </v-flex>
460 </v-layout> 460 </v-layout>
461 <v-layout> 461 <v-layout>
462 <v-flex xs6 sm6> 462 <v-flex xs6 sm6>
463 <h5 class="right my-1"> 463 <h5 class="right my-1">
464 <b>Permanent Address:</b> 464 <b>Permanent Address:</b>
465 </h5> 465 </h5>
466 </v-flex> 466 </v-flex>
467 <v-flex sm6 xs8> 467 <v-flex sm6 xs8>
468 <h5 class="my-1">{{ editedItem.permanentAddress }}</h5> 468 <h5 class="my-1">{{ editedItem.permanentAddress }}</h5>
469 </v-flex> 469 </v-flex>
470 </v-layout> 470 </v-layout>
471 <v-layout> 471 <v-layout>
472 <v-flex xs6 sm6> 472 <v-flex xs6 sm6>
473 <h5 class="right my-1"> 473 <h5 class="right my-1">
474 <b>present Address:</b> 474 <b>present Address:</b>
475 </h5> 475 </h5>
476 </v-flex> 476 </v-flex>
477 <v-flex sm6 xs8> 477 <v-flex sm6 xs8>
478 <h5 class="my-1">{{ editedItem.presentAddress }}</h5> 478 <h5 class="my-1">{{ editedItem.presentAddress }}</h5>
479 </v-flex> 479 </v-flex>
480 </v-layout> 480 </v-layout>
481 </v-flex> 481 </v-flex>
482 </v-layout> 482 </v-layout>
483 </v-container> 483 </v-container>
484 </v-card-text> 484 </v-card-text>
485 </v-card> 485 </v-card>
486 </v-dialog> 486 </v-dialog>
487 <v-snackbar 487 <v-snackbar
488 :timeout="timeout" 488 :timeout="timeout"
489 :top="y === 'top'" 489 :top="y === 'top'"
490 :right="x === 'right'" 490 :right="x === 'right'"
491 :vertical="mode === 'vertical'" 491 :vertical="mode === 'vertical'"
492 v-model="snackbar" 492 v-model="snackbar"
493 color="success" 493 color="success"
494 >{{ text }}</v-snackbar> 494 >{{ text }}</v-snackbar>
495 495
496 <!-- ****** EXISTING-Teachers TABLE DATA****** --> 496 <!-- ****** EXISTING-Teachers TABLE DATA****** -->
497 497
498 <v-data-table 498 <v-data-table
499 :headers="headers" 499 :headers="headers"
500 :items="desserts" 500 :items="desserts"
501 :pagination.sync="pagination" 501 :pagination.sync="pagination"
502 :search="search" 502 :search="search"
503 > 503 >
504 <template slot="items" slot-scope="props"> 504 <template slot="items" slot-scope="props">
505 <td id="td" class="text-xs-center">{{ props.index + 1}}</td> 505 <td id="td" class="text-xs-center">{{ props.index + 1}}</td>
506 <td id="td" class="text-xs-center"> 506 <td id="td" class="text-xs-center">
507 <v-avatar> 507 <v-avatar>
508 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" /> 508 <img :src="props.item.profilePicUrl" v-if="props.item.profilePicUrl" />
509 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" /> 509 <img src="/static/icon/user.png" v-else-if="!props.item.profilePicUrl" />
510 </v-avatar> 510 </v-avatar>
511 </td> 511 </td>
512 <td id="td" class="text-xs-center">{{ props.item.name}}</td> 512 <td id="td" class="text-xs-center">{{ props.item.name}}</td>
513 <td id="td" class="text-xs-center">{{ props.item.email }}</td> 513 <td id="td" class="text-xs-center">{{ props.item.email }}</td>
514 <td id="td" class="text-xs-center">{{ dates(props.item.dob) }}</td> 514 <td id="td" class="text-xs-center">{{ dates(props.item.dob) }}</td>
515 <td id="td" class="text-xs-center">{{ dates(props.item.joinDate)}}</td> 515 <td id="td" class="text-xs-center">{{ dates(props.item.joinDate)}}</td>
516 <td id="td" class="text-xs-center">{{ props.item.mobileNo }}</td> 516 <td id="td" class="text-xs-center">{{ props.item.mobileNo }}</td>
517 <td class="text-xs-center"> 517 <td class="text-xs-center">
518 <span> 518 <span>
519 <v-tooltip top> 519 <v-tooltip top>
520 <img 520 <img
521 slot="activator" 521 slot="activator"
522 style="cursor:pointer; width:25px; height:18px; " 522 style="cursor:pointer; width:25px; height:18px; "
523 class="mr5" 523 class="mr5"
524 @click="profile(props.item)" 524 @click="profile(props.item)"
525 src="/static/icon/eye1.png" 525 src="/static/icon/eye1.png"
526 /> 526 />
527 <span>View</span> 527 <span>View</span>
528 </v-tooltip> 528 </v-tooltip>
529 <v-tooltip top> 529 <v-tooltip top>
530 <img 530 <img
531 slot="activator" 531 slot="activator"
532 style="cursor:pointer; width:20px; height:18px; " 532 style="cursor:pointer; width:20px; height:18px; "
533 class="mr5" 533 class="mr5"
534 @click="editItem(props.item)" 534 @click="editItem(props.item)"
535 src="/static/icon/edit1.png" 535 src="/static/icon/edit1.png"
536 /> 536 />
537 <span>Edit</span> 537 <span>Edit</span>
538 </v-tooltip> 538 </v-tooltip>
539 <v-tooltip top> 539 <v-tooltip top>
540 <img 540 <img
541 slot="activator" 541 slot="activator"
542 style="cursor:pointer; width:20px; height:20px; " 542 style="cursor:pointer; width:20px; height:20px; "
543 class="mr5" 543 class="mr5"
544 @click="deleteItem(props.item)" 544 @click="deleteItem(props.item)"
545 src="/static/icon/delete1.png" 545 src="/static/icon/delete1.png"
546 /> 546 />
547 <span>Delete</span> 547 <span>Delete</span>
548 </v-tooltip> 548 </v-tooltip>
549 </span> 549 </span>
550 </td> 550 </td>
551 </template> 551 </template>
552 <v-alert 552 <v-alert
553 slot="no-results" 553 slot="no-results"
554 :value="true" 554 :value="true"
555 color="error" 555 color="error"
556 icon="warning" 556 icon="warning"
557 >Your search for "{{ search }}" found no results.</v-alert> 557 >Your search for "{{ search }}" found no results.</v-alert>
558 </v-data-table> 558 </v-data-table>
559 </v-tab-item> 559 </v-tab-item>
560 560
561 <!-- ****** Add Teachers Data****** --> 561 <!-- ****** Add Teachers Data****** -->
562 <v-tab-item> 562 <v-tab-item>
563 <v-container fluid> 563 <v-container fluid>
564 <v-snackbar 564 <v-snackbar
565 :timeout="timeout" 565 :timeout="timeout"
566 :top="y === 'top'" 566 :top="y === 'top'"
567 :right="x === 'right'" 567 :right="x === 'right'"
568 :vertical="mode === 'vertical'" 568 :vertical="mode === 'vertical'"
569 v-model="snackbar" 569 v-model="snackbar"
570 color="success" 570 color="success"
571 >{{ text }}</v-snackbar> 571 >{{ text }}</v-snackbar>
572 <v-flex xs12 sm12 class="my-4"> 572 <v-flex xs12 sm12 class="my-4">
573 <v-card flat> 573 <v-card flat>
574 <v-form ref="form" v-model="valid" lazy-validation> 574 <v-form ref="form" v-model="valid" lazy-validation>
575 <v-container fluid> 575 <v-container fluid>
576 <v-layout> 576 <v-layout>
577 <v-flex 577 <v-flex
578 xs12 578 xs12
579 class="text-xs-center text-sm-center text-md-center text-lg-center my-4" 579 class="text-xs-center text-sm-center text-md-center text-lg-center my-4"
580 > 580 >
581 <v-avatar size="100px"> 581 <v-avatar size="100px">
582 <img src="/static/icon/user.png" v-if="!imageUrl" /> 582 <img src="/static/icon/user.png" v-if="!imageUrl" />
583 </v-avatar> 583 </v-avatar>
584 <img 584 <img
585 :src="imageUrl" 585 :src="imageUrl"
586 height="150" 586 height="150"
587 v-if="imageUrl" 587 v-if="imageUrl"
588 style="border-radius:50%; width:200px" 588 style="border-radius:50%; width:200px"
589 /> 589 />
590 </v-flex> 590 </v-flex>
591 </v-layout> 591 </v-layout>
592 <v-layout> 592 <v-layout>
593 <v-flex xs12 sm6> 593 <v-flex xs12 sm6>
594 <v-layout> 594 <v-layout>
595 <v-flex xs4 class="pt-4 subheading"> 595 <v-flex xs4 class="pt-4 subheading">
596 <label class="right hidden-sm-only hidden-xs-only">Full Name:</label> 596 <label class="right hidden-sm-only hidden-xs-only">Full Name:</label>
597 <label 597 <label
598 class="right hidden-lg-only hidden-xl-only hidden-md-only" 598 class="right hidden-lg-only hidden-xl-only hidden-md-only"
599 >Full Name</label> 599 >Full Name</label>
600 </v-flex> 600 </v-flex>
601 <v-flex xs8 class="ml-3"> 601 <v-flex xs8 class="ml-3">
602 <v-text-field 602 <v-text-field
603 v-model="addTeachers.name" 603 v-model="addTeachers.name"
604 placeholder="fill your full Name" 604 placeholder="fill your full Name"
605 name="name" 605 name="name"
606 type="text" 606 type="text"
607 :rules="nameRules" 607 :rules="nameRules"
608 required 608 required
609 ></v-text-field> 609 ></v-text-field>
610 </v-flex> 610 </v-flex>
611 </v-layout> 611 </v-layout>
612 </v-flex> 612 </v-flex>
613 <v-flex xs12 sm6> 613 <v-flex xs12 sm6>
614 <v-layout> 614 <v-layout>
615 <v-flex xs4 class="pt-4 subheading"> 615 <v-flex xs4 class="pt-4 subheading">
616 <label class="right">Email ID:</label> 616 <label class="right">Email ID:</label>
617 </v-flex> 617 </v-flex>
618 <v-flex xs8 class="ml-3"> 618 <v-flex xs8 class="ml-3">
619 <v-text-field 619 <v-text-field
620 placeholder="fill your email" 620 placeholder="fill your email"
621 :rules="emailRules" 621 :rules="emailRules"
622 v-model="addTeachers.email" 622 v-model="addTeachers.email"
623 type="text" 623 type="text"
624 name="email" 624 name="email"
625 required 625 required
626 ></v-text-field> 626 ></v-text-field>
627 </v-flex> 627 </v-flex>
628 </v-layout> 628 </v-layout>
629 </v-flex> 629 </v-flex>
630 </v-layout> 630 </v-layout>
631 <v-layout> 631 <v-layout>
632 <v-flex xs12 sm6> 632 <v-flex xs12 sm6>
633 <v-layout> 633 <v-layout>
634 <v-flex xs4 sm4 class="pt-4 subheading"> 634 <v-flex xs4 sm4 class="pt-4 subheading">
635 <label class="right hidden-sm-only hidden-xs-only">Date of Birth:</label> 635 <label class="right hidden-sm-only hidden-xs-only">Date of Birth:</label>
636 <label class="right hidden-lg-only hidden-xl-only hidden-md-only">D.O.B:</label> 636 <label class="right hidden-lg-only hidden-xl-only hidden-md-only">D.O.B:</label>
637 </v-flex> 637 </v-flex>
638 <v-flex xs8 class="ml-3"> 638 <v-flex xs8 class="ml-3">
639 <v-menu 639 <v-menu
640 ref="menu" 640 ref="menu"
641 :close-on-content-click="false" 641 :close-on-content-click="false"
642 v-model="menu" 642 v-model="menu"
643 :nudge-right="40" 643 :nudge-right="40"
644 lazy 644 lazy
645 transition="scale-transition" 645 transition="scale-transition"
646 offset-y 646 offset-y
647 full-width 647 full-width
648 min-width="290px" 648 min-width="290px"
649 > 649 >
650 <v-text-field 650 <v-text-field
651 slot="activator" 651 slot="activator"
652 :rules="dateRules" 652 :rules="dateRules"
653 v-model="addTeachers.date" 653 v-model="addTeachers.date"
654 placeholder="Select date" 654 placeholder="Select date"
655 ></v-text-field> 655 ></v-text-field>
656 <v-date-picker 656 <v-date-picker
657 ref="picker" 657 ref="picker"
658 v-model="addTeachers.date" 658 v-model="addTeachers.date"
659 :max="new Date().toISOString().substr(0, 10)" 659 :max="new Date().toISOString().substr(0, 10)"
660 min="1950-01-01" 660 min="1950-01-01"
661 @input="menu = false" 661 @input="menu = false"
662 ></v-date-picker> 662 ></v-date-picker>
663 </v-menu> 663 </v-menu>
664 </v-flex> 664 </v-flex>
665 </v-layout> 665 </v-layout>
666 </v-flex> 666 </v-flex>
667 <v-flex xs12 sm6> 667 <v-flex xs12 sm6>
668 <v-layout> 668 <v-layout>
669 <v-flex xs4 class="pt-4 subheading"> 669 <v-flex xs4 class="pt-4 subheading">
670 <label class="right">City:</label> 670 <label class="right">City:</label>
671 </v-flex> 671 </v-flex>
672 <v-flex xs8 class="ml-3"> 672 <v-flex xs8 class="ml-3">
673 <v-text-field 673 <v-text-field
674 v-model="addTeachers.city" 674 v-model="addTeachers.city"
675 placeholder="fill your City Name" 675 placeholder="fill your City Name"
676 name="City" 676 name="City"
677 type="text" 677 type="text"
678 :rules="cityRules" 678 :rules="cityRules"
679 required 679 required
680 ></v-text-field> 680 ></v-text-field>
681 </v-flex> 681 </v-flex>
682 </v-layout> 682 </v-layout>
683 </v-flex> 683 </v-flex>
684 </v-layout> 684 </v-layout>
685 <v-layout> 685 <v-layout>
686 <v-flex xs12 sm6> 686 <v-flex xs12 sm6>
687 <v-layout> 687 <v-layout>
688 <v-flex xs4 class="pt-4 subheading"> 688 <v-flex xs4 class="pt-4 subheading">
689 <label class="right">State:</label> 689 <label class="right">State:</label>
690 </v-flex> 690 </v-flex>
691 <v-flex xs8 class="ml-3"> 691 <v-flex xs8 class="ml-3">
692 <v-text-field 692 <v-text-field
693 v-model="addTeachers.state" 693 v-model="addTeachers.state"
694 placeholder="fill your State Name" 694 placeholder="fill your State Name"
695 name="state" 695 name="state"
696 type="text" 696 type="text"
697 :rules="stateRules" 697 :rules="stateRules"
698 required 698 required
699 ></v-text-field> 699 ></v-text-field>
700 </v-flex> 700 </v-flex>
701 </v-layout> 701 </v-layout>
702 </v-flex> 702 </v-flex>
703 <v-flex xs12 sm6> 703 <v-flex xs12 sm6>
704 <v-layout> 704 <v-layout>
705 <v-flex xs4 class="pt-4 subheading"> 705 <v-flex xs4 class="pt-4 subheading">
706 <label class="right">PinCode:</label> 706 <label class="right">PinCode:</label>
707 </v-flex> 707 </v-flex>
708 <v-flex xs8 class="ml-3"> 708 <v-flex xs8 class="ml-3">
709 <v-text-field 709 <v-text-field
710 v-model="addTeachers.pincode" 710 v-model="addTeachers.pincode"
711 placeholder="fill your pincode" 711 placeholder="fill your pincode"
712 name="pincode" 712 name="pincode"
713 type="number" 713 type="number"
714 :rules="pincode" 714 :rules="pincode"
715 required 715 required
716 ></v-text-field> 716 ></v-text-field>
717 </v-flex> 717 </v-flex>
718 </v-layout> 718 </v-layout>
719 </v-flex> 719 </v-flex>
720 </v-layout> 720 </v-layout>
721 <v-layout> 721 <v-layout>
722 <v-flex xs12 sm6> 722 <v-flex xs12 sm6>
723 <v-layout> 723 <v-layout>
724 <v-flex xs4 class="pt-4 subheading"> 724 <v-flex xs4 class="pt-4 subheading">
725 <label class="right hidden-xs-only hidden-sm-only">Mobile No:</label> 725 <label class="right hidden-xs-only hidden-sm-only">Mobile No:</label>
726 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Mobile:</label> 726 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Mobile:</label>
727 </v-flex> 727 </v-flex>
728 <v-flex xs8 class="ml-3"> 728 <v-flex xs8 class="ml-3">
729 <v-text-field 729 <v-text-field
730 v-model="addTeachers.mobileNo" 730 v-model="addTeachers.mobileNo"
731 placeholder="fill your Mobile No." 731 placeholder="fill your Mobile No."
732 name="mobileNo" 732 name="mobileNo"
733 type="number" 733 type="number"
734 :rules="mobileNoRules" 734 :rules="mobileNoRules"
735 required 735 required
736 ></v-text-field> 736 ></v-text-field>
737 </v-flex> 737 </v-flex>
738 </v-layout> 738 </v-layout>
739 </v-flex> 739 </v-flex>
740 <v-flex xs12 sm6> 740 <v-flex xs12 sm6>
741 <v-layout> 741 <v-layout>
742 <v-flex xs4 class="pt-4 subheading"> 742 <v-flex xs4 class="pt-4 subheading">
743 <label class="right hidden-xs-only hidden-sm-only">Select Country:</label> 743 <label class="right hidden-xs-only hidden-sm-only">Select Country:</label>
744 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Country:</label> 744 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Country:</label>
745 </v-flex> 745 </v-flex>
746 <v-flex xs8 class="ml-3"> 746 <v-flex xs8 class="ml-3">
747 <v-autocomplete 747 <v-autocomplete
748 v-model="addTeachers.country" 748 v-model="addTeachers.country"
749 :rules="country" 749 :rules="country"
750 :items="countries" 750 :items="countries"
751 placeholder="Select Country Name" 751 placeholder="Select Country Name"
752 required 752 required
753 ></v-autocomplete> 753 ></v-autocomplete>
754 </v-flex> 754 </v-flex>
755 </v-layout> 755 </v-layout>
756 </v-flex> 756 </v-flex>
757 </v-layout> 757 </v-layout>
758 <v-layout> 758 <v-layout>
759 <v-flex xs12 sm6> 759 <v-flex xs12 sm6>
760 <v-layout> 760 <v-layout>
761 <v-flex xs4 class="pt-4 subheading"> 761 <v-flex xs4 class="pt-4 subheading">
762 <label class="right">Join Date:</label> 762 <label class="right">Join Date:</label>
763 </v-flex> 763 </v-flex>
764 <v-flex xs8 class="ml-3"> 764 <v-flex xs8 class="ml-3">
765 <v-menu 765 <v-menu
766 ref="menu1" 766 ref="menu1"
767 :close-on-content-click="false" 767 :close-on-content-click="false"
768 v-model="menu1" 768 v-model="menu1"
769 :nudge-right="40" 769 :nudge-right="40"
770 lazy 770 lazy
771 transition="scale-transition" 771 transition="scale-transition"
772 offset-y 772 offset-y
773 full-width 773 full-width
774 min-width="290px" 774 min-width="290px"
775 > 775 >
776 <v-text-field 776 <v-text-field
777 slot="activator" 777 slot="activator"
778 :rules="joinDateRules" 778 :rules="joinDateRules"
779 v-model="addTeachers.joinDate" 779 v-model="addTeachers.joinDate"
780 placeholder="Select date" 780 placeholder="Select date"
781 ></v-text-field> 781 ></v-text-field>
782 <v-date-picker 782 <v-date-picker
783 ref="picker" 783 ref="picker"
784 v-model="addTeachers.joinDate" 784 v-model="addTeachers.joinDate"
785 :max="new Date().toISOString().substr(0, 10)" 785 :max="new Date().toISOString().substr(0, 10)"
786 min="1950-01-01" 786 min="1950-01-01"
787 @input="menu1 = false" 787 @input="menu1 = false"
788 ></v-date-picker> 788 ></v-date-picker>
789 </v-menu> 789 </v-menu>
790 </v-flex> 790 </v-flex>
791 </v-layout> 791 </v-layout>
792 </v-flex> 792 </v-flex>
793 <v-flex xs12 sm6> 793 <v-flex xs12 sm6>
794 <v-layout> 794 <v-layout>
795 <v-flex xs4 class="pt-4 subheading"> 795 <v-flex xs4 class="pt-4 subheading">
796 <label class="right hidden-xs-only hidden-sm-only">Uplaod Image:</label> 796 <label class="right hidden-xs-only hidden-sm-only">Uplaod Image:</label>
797 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Uplaod:</label> 797 <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Uplaod:</label>
798 </v-flex> 798 </v-flex>
799 <v-flex xs8 class="ml-3"> 799 <v-flex xs8 class="ml-3">
800 <v-text-field 800 <v-text-field
801 label="Select Image" 801 label="Select Image"
802 @click="pickFile" 802 @click="pickFile"
803 v-model="imageName" 803 v-model="imageName"
804 append-icon="attach_file" 804 append-icon="attach_file"
805 ></v-text-field> 805 ></v-text-field>
806 <input 806 <input
807 type="file" 807 type="file"
808 style="display:none" 808 style="display:none"
809 ref="image" 809 ref="image"
810 accept="image/*" 810 accept="image/*"
811 @change="onFilePicked" 811 @change="onFilePicked"
812 /> 812 />
813 </v-flex> 813 </v-flex>
814 </v-layout> 814 </v-layout>
815 </v-flex> 815 </v-flex>
816 </v-layout> 816 </v-layout>
817 <v-layout class="hidden-xs-only hidden-sm-only"> 817 <v-layout class="hidden-xs-only hidden-sm-only">
818 <v-flex xs12 sm6> 818 <v-flex xs12 sm6>
819 <v-layout> 819 <v-layout>
820 <v-flex xs4 md4 class="pt-4 subheading"> 820 <v-flex xs4 md4 class="pt-4 subheading">
821 <label class="right">Present Address:</label> 821 <label class="right">Present Address:</label>
822 </v-flex> 822 </v-flex>
823 <v-flex xs8 md8 class="ml-3"> 823 <v-flex xs8 md8 class="ml-3">
824 <v-text-field 824 <v-text-field
825 name="input-4-3" 825 name="input-4-3"
826 v-model="addTeachers.presentAddress" 826 v-model="addTeachers.presentAddress"
827 :rules="presentAddress" 827 :rules="presentAddress"
828 placeholder="fill Your present Address" 828 placeholder="fill Your present Address"
829 required 829 required
830 ></v-text-field> 830 ></v-text-field>
831 </v-flex> 831 </v-flex>
832 </v-layout> 832 </v-layout>
833 </v-flex> 833 </v-flex>
834 <v-flex xs12 sm6> 834 <v-flex xs12 sm6>
835 <v-layout> 835 <v-layout>
836 <v-flex xs4 md4 class="pt-4 subheading addressForm"> 836 <v-flex xs4 md4 class="pt-4 subheading addressForm">
837 <label class="right">Permanent Address:</label> 837 <label class="right">Permanent Address:</label>
838 </v-flex> 838 </v-flex>
839 <v-flex xs12 md8 class="ml-3"> 839 <v-flex xs12 md8 class="ml-3">
840 <v-text-field 840 <v-text-field
841 name="input-4-3" 841 name="input-4-3"
842 v-model="addTeachers.permanentAddress" 842 v-model="addTeachers.permanentAddress"
843 :rules="permanentAddress" 843 :rules="permanentAddress"
844 placeholder="fill Your Permanent Address" 844 placeholder="fill Your Permanent Address"
845 required 845 required
846 ></v-text-field> 846 ></v-text-field>
847 </v-flex> 847 </v-flex>
848 </v-layout> 848 </v-layout>
849 </v-flex> 849 </v-flex>
850 </v-layout> 850 </v-layout>
851 <v-layout class="hidden-lg-only hidden-md-only hidden-xl-only"> 851 <v-layout class="hidden-lg-only hidden-md-only hidden-xl-only">
852 <v-flex xs12 sm12> 852 <v-flex xs12 sm12>
853 <v-layout> 853 <v-layout>
854 <v-flex xs12 sm12 class="pt-4 subheading text-xs-center"> 854 <v-flex xs12 sm12 class="pt-4 subheading text-xs-center">
855 <label class>Present Addres:</label> 855 <label class>Present Addres:</label>
856 </v-flex> 856 </v-flex>
857 </v-layout> 857 </v-layout>
858 <v-layout> 858 <v-layout>
859 <v-flex xs12 sm12> 859 <v-flex xs12 sm12>
860 <v-textarea 860 <v-textarea
861 name="input-4-3" 861 name="input-4-3"
862 v-model="addTeachers.presentAddress" 862 v-model="addTeachers.presentAddress"
863 :rules="presentAddress" 863 :rules="presentAddress"
864 placeholder="fill Your present Address" 864 placeholder="fill Your present Address"
865 required 865 required
866 ></v-textarea> 866 ></v-textarea>
867 </v-flex> 867 </v-flex>
868 </v-layout> 868 </v-layout>
869 </v-flex> 869 </v-flex>
870 <v-flex xs12 sm12> 870 <v-flex xs12 sm12>
871 <v-layout> 871 <v-layout>
872 <v-flex xs12 sm12 class="pt-4 pr-4 subheading text-xs-center addressForm"> 872 <v-flex xs12 sm12 class="pt-4 pr-4 subheading text-xs-center addressForm">
873 <label>Permanent Address:</label> 873 <label>Permanent Address:</label>
874 </v-flex> 874 </v-flex>
875 </v-layout> 875 </v-layout>
876 <v-layout> 876 <v-layout>
877 <v-flex xs12 sm12> 877 <v-flex xs12 sm12>
878 <v-textarea 878 <v-textarea
879 name="input-4-3" 879 name="input-4-3"
880 v-model="addTeachers.permanentAddress" 880 v-model="addTeachers.permanentAddress"
881 :rules="permanentAddress" 881 :rules="permanentAddress"
882 placeholder="fill Your Permanent Address" 882 placeholder="fill Your Permanent Address"
883 required 883 required
884 ></v-textarea> 884 ></v-textarea>
885 </v-flex> 885 </v-flex>
886 </v-layout> 886 </v-layout>
887 </v-flex> 887 </v-flex>
888 </v-layout> 888 </v-layout>
889 <v-layout class="mx-2"> 889 <v-layout class="mx-2">
890 <v-flex xs12 sm11 offset-sm1> 890 <v-flex xs12 sm11 offset-sm1>
891 <v-layout> 891 <v-layout>
892 <v-flex xs6 class> 892 <v-flex xs6 class>
893 <v-btn @click="clear" round dark>clear</v-btn> 893 <v-btn @click="clear" round dark>clear</v-btn>
894 </v-flex> 894 </v-flex>
895 <v-flex xs6> 895 <v-flex xs6>
896 <v-btn @click="submit" round dark :loading="loading" class="right">Add</v-btn> 896 <v-btn @click="submit" round dark :loading="loading" class="right">Add</v-btn>
897 </v-flex> 897 </v-flex>
898 </v-layout> 898 </v-layout>
899 </v-flex> 899 </v-flex>
900 </v-layout> 900 </v-layout>
901 </v-container> 901 </v-container>
902 </v-form> 902 </v-form>
903 </v-card> 903 </v-card>
904 </v-flex> 904 </v-flex>
905 </v-container> 905 </v-container>
906 </v-tab-item> 906 </v-tab-item>
907 </v-tabs> 907 </v-tabs>
908 <div class="loader" v-if="showLoader"> 908 <div class="loader" v-if="showLoader">
909 <v-progress-circular indeterminate color="white"></v-progress-circular> 909 <v-progress-circular indeterminate color="white"></v-progress-circular>
910 </div> 910 </div>
911 </v-app> 911 </v-app>
912 </template> 912 </template>
913 913
914 <script> 914 <script>
915 import http from "@/Services/http.js"; 915 import http from "@/Services/http.js";
916 import moment from "moment"; 916 import moment from "moment";
917 import countryList from "@/script/country.js"; 917 import countryList from "@/script/country.js";
918 918
919 export default { 919 export default {
920 data: () => ({ 920 data: () => ({
921 component: "report-generate", 921 component: "report-generate",
922 snackbar: false, 922 snackbar: false,
923 y: "top", 923 y: "top",
924 x: "right", 924 x: "right",
925 mode: "", 925 mode: "",
926 timeout: 3000, 926 timeout: 3000,
927 text: "", 927 text: "",
928 showLoader: false, 928 showLoader: false,
929 loading: false, 929 loading: false,
930 date: null, 930 date: null,
931 search: "", 931 search: "",
932 menu: false, 932 menu: false,
933 menu1: false, 933 menu1: false,
934 menu2: false, 934 menu2: false,
935 menu3: false, 935 menu3: false,
936 dialog: false, 936 dialog: false,
937 dialog1: false, 937 dialog1: false,
938 valid: true, 938 valid: true,
939 isActive: true, 939 isActive: true,
940 newActive: false, 940 newActive: false,
941 pagination: { 941 pagination: {
942 rowsPerPage: 15 942 rowsPerPage: 15
943 }, 943 },
944 imageData: {}, 944 imageData: {},
945 imageName: "", 945 imageName: "",
946 imageUrl: "", 946 imageUrl: "",
947 imageFile: "", 947 imageFile: "",
948 nameRules: [v => !!v || " Full Name is required"], 948 nameRules: [v => !!v || " Full Name is required"],
949 dateRules: [v => !!v || " DOB is required"], 949 dateRules: [v => !!v || " DOB is required"],
950 cityRules: [v => !!v || " City Name is required"], 950 cityRules: [v => !!v || " City Name is required"],
951 pincode: [v => !!v || " Pincode is required"], 951 pincode: [v => !!v || " Pincode is required"],
952 country: [v => !!v || " Country Name is required"], 952 country: [v => !!v || " Country Name is required"],
953 permanentAddress: [v => !!v || " Permanent Address is required"], 953 permanentAddress: [v => !!v || " Permanent Address is required"],
954 presentAddress: [v => !!v || " Present Address is required"], 954 presentAddress: [v => !!v || " Present Address is required"],
955 mobileNoRules: [v => !!v || "Mobile Number is required"], 955 mobileNoRules: [v => !!v || "Mobile Number is required"],
956 stateRules: [v => !!v || "State Name is required"], 956 stateRules: [v => !!v || "State Name is required"],
957 joinDateRules: [v => !!v || " Join Date is required"], 957 joinDateRules: [v => !!v || " Join Date is required"],
958 errorMessages: "", 958 errorMessages: "",
959 emailRules: [ 959 emailRules: [
960 v => !!v || "E-mail is required", 960 v => !!v || "E-mail is required",
961 v => 961 v =>
962 /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) || 962 /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) ||
963 "E-mail must be valid" 963 "E-mail must be valid"
964 ], 964 ],
965 countries: [], 965 countries: [],
966 headers: [ 966 headers: [
967 { 967 {
968 text: "No", 968 text: "No",
969 align: "center", 969 align: "center",
970 sortable: false, 970 sortable: false,
971 value: "No" 971 value: "No"
972 }, 972 },
973 { 973 {
974 text: "Profile Pic", 974 text: "Profile Pic",
975 value: "profilePicUrl", 975 value: "profilePicUrl",
976 sortable: false, 976 sortable: false,
977 align: "center" 977 align: "center"
978 }, 978 },
979 { text: "Name", value: "name", sortable: false, align: "center" }, 979 { text: "Name", value: "name", sortable: false, align: "center" },
980 { text: "Email", value: "email", sortable: false, align: "center" }, 980 { text: "Email", value: "email", sortable: false, align: "center" },
981 { text: "DOB", value: "dob", sortable: false, align: "center" }, 981 { text: "DOB", value: "dob", sortable: false, align: "center" },
982 { 982 {
983 text: "Join Date", 983 text: "Join Date",
984 value: "joinDate", 984 value: "joinDate",
985 sortable: false, 985 sortable: false,
986 align: "center" 986 align: "center"
987 }, 987 },
988 { 988 {
989 text: "Mobile No", 989 text: "Mobile No",
990 value: "mobileNo", 990 value: "mobileNo",
991 sortable: false, 991 sortable: false,
992 align: "center" 992 align: "center"
993 }, 993 },
994 { text: "Action", value: "", sortable: false, align: "center" } 994 { text: "Action", value: "", sortable: false, align: "center" }
995 ], 995 ],
996 desserts: [], 996 desserts: [],
997 editedIndex: -1, 997 editedIndex: -1,
998 upload: "", 998 upload: "",
999 editedItem: { 999 editedItem: {
1000 role: "TEACHER", 1000 role: "TEACHER",
1001 name: "", 1001 name: "",
1002 email: "", 1002 email: "",
1003 date: null, 1003 date: null,
1004 city: "", 1004 city: "",
1005 pincode: "", 1005 pincode: "",
1006 country: "", 1006 country: "",
1007 permanentAddress: "", 1007 permanentAddress: "",
1008 presentAddress: "", 1008 presentAddress: "",
1009 mobileNo: "", 1009 mobileNo: "",
1010 state: "", 1010 state: "",
1011 joinDate: null 1011 joinDate: null
1012 }, 1012 },
1013 addTeachers: { 1013 addTeachers: {
1014 role: "TEACHER", 1014 role: "TEACHER",
1015 name: "", 1015 name: "",
1016 email: "", 1016 email: "",
1017 date: null, 1017 date: null,
1018 city: "", 1018 city: "",
1019 pincode: "", 1019 pincode: "",
1020 country: "", 1020 country: "",
1021 permanentAddress: "", 1021 permanentAddress: "",
1022 presentAddress: "", 1022 presentAddress: "",
1023 mobileNo: "", 1023 mobileNo: "",
1024 state: "", 1024 state: "",
1025 joinDate: null 1025 joinDate: null
1026 }, 1026 },
1027 defaultItem: { 1027 defaultItem: {
1028 role: "TEACHER", 1028 role: "TEACHER",
1029 name: "", 1029 name: "",
1030 email: "" 1030 email: ""
1031 } 1031 }
1032 }), 1032 }),
1033 watch: { 1033 watch: {
1034 menu(val) { 1034 menu(val) {
1035 val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR")); 1035 val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
1036 }, 1036 },
1037 menu1(val) { 1037 menu1(val) {
1038 val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR")); 1038 val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
1039 } 1039 }
1040 }, 1040 },
1041 methods: { 1041 methods: {
1042 save(date) { 1042 save(date) {
1043 this.$refs.menu.save(date); 1043 this.$refs.menu.save(date);
1044 }, 1044 },
1045 save(date) { 1045 save(date) {
1046 this.$refs.menu1.save(date); 1046 this.$refs.menu1.save(date);
1047 }, 1047 },
1048 pickFile() { 1048 pickFile() {
1049 this.$refs.image.click(); 1049 this.$refs.image.click();
1050 }, 1050 },
1051 onFilePicked(e) { 1051 onFilePicked(e) {
1052 // console.log(e) 1052 // console.log(e)
1053 const files = e.target.files; 1053 const files = e.target.files;
1054 this.upload = e.target.files[0]; 1054 this.upload = e.target.files[0];
1055 console.log("imageData-upload========>", this.upload); 1055 console.log("imageData-upload========>", this.upload);
1056 if (files[0] !== undefined) { 1056 if (files[0] !== undefined) {
1057 this.imageName = files[0].name; 1057 this.imageName = files[0].name;
1058 if (this.imageName.lastIndexOf(".") <= 0) { 1058 if (this.imageName.lastIndexOf(".") <= 0) {
1059 return; 1059 return;
1060 } 1060 }
1061 const fr = new FileReader(); 1061 const fr = new FileReader();
1062 fr.readAsDataURL(files[0]); 1062 fr.readAsDataURL(files[0]);
1063 fr.addEventListener("load", () => { 1063 fr.addEventListener("load", () => {
1064 this.imageUrl = fr.result; 1064 this.imageUrl = fr.result;
1065 this.imageFile = files[0]; // this is an image file that can be sent to server... 1065 this.imageFile = files[0]; // this is an image file that can be sent to server...
1066 // this.imageData.imageUrl = URL.createObjectURL(this.imageFile); 1066 // this.imageData.imageUrl = URL.createObjectURL(this.imageFile);
1067 // console.log("upload=======>", this.imageData.imageUrl); 1067 // console.log("upload=======>", this.imageData.imageUrl);
1068 console.log("imageFile", this.imageUrl); 1068 console.log("imageFile", this.imageUrl);
1069 }); 1069 });
1070 } else { 1070 } else {
1071 this.imageName = ""; 1071 this.imageName = "";
1072 this.imageFile = ""; 1072 this.imageFile = "";
1073 this.imageUrl = ""; 1073 this.imageUrl = "";
1074 } 1074 }
1075 }, 1075 },
1076 dates: function(date) { 1076 dates: function(date) {
1077 return moment(date).format("MMMM DD, YYYY"); 1077 return moment(date).format("MMMM DD, YYYY");
1078 }, 1078 },
1079 getTeacherList() { 1079 getTeacherList() {
1080 this.showLoader = true; 1080 this.showLoader = true;
1081 var token = this.$store.state.token; 1081 var token = this.$store.state.token;
1082 http() 1082 http()
1083 .get("/getTeachersList", { 1083 .get("/getTeachersList", {
1084 headers: { Authorization: "Bearer " + token } 1084 headers: { Authorization: "Bearer " + token }
1085 }) 1085 })
1086 .then(response => { 1086 .then(response => {
1087 this.desserts = response.data.data; 1087 this.desserts = response.data.data;
1088 this.showLoader = false; 1088 this.showLoader = false;
1089 // console.log("getTeacherList=====>",this.desserts) 1089 // console.log("getTeacherList=====>",this.desserts)
1090 }) 1090 })
1091 .catch(error => { 1091 .catch(error => {
1092 this.showLoader = false; 1092 this.showLoader = false;
1093 if (error.response.status === 401) { 1093 if (error.response.status === 401) {
1094 this.$router.replace({ path: "/" }); 1094 this.$router.replace({ path: "/" });
1095 this.$store.dispatch("setToken", null); 1095 this.$store.dispatch("setToken", null);
1096 this.$store.dispatch("Id", null); 1096 this.$store.dispatch("Id", null);
1097 } 1097 }
1098 }); 1098 });
1099 }, 1099 },
1100 editItem(item) { 1100 editItem(item) {
1101 this.editedIndex = this.desserts.indexOf(item); 1101 this.editedIndex = this.desserts.indexOf(item);
1102 this.editedItem = Object.assign({}, item); 1102 this.editedItem = Object.assign({}, item);
1103 this.editedItem.dob = 1103 this.editedItem.dob =
1104 this.editedItem.dob != undefined 1104 this.editedItem.dob != undefined
1105 ? (this.editedItem.dob = this.editedItem.dob.substring(0, 10)) 1105 ? (this.editedItem.dob = this.editedItem.dob.substring(0, 10))
1106 : (this.editedItem.dob = ""); 1106 : (this.editedItem.dob = "");
1107 this.editedItem.joinDate = 1107 this.editedItem.joinDate =
1108 this.editedItem.joinDate != undefined 1108 this.editedItem.joinDate != undefined
1109 ? (this.editedItem.joinDate = this.editedItem.joinDate.substring( 1109 ? (this.editedItem.joinDate = this.editedItem.joinDate.substring(
1110 0, 1110 0,
1111 10 1111 10
1112 )) 1112 ))
1113 : (this.editedItem.joinDate = ""); 1113 : (this.editedItem.joinDate = "");
1114 1114
1115 this.dialog = true; 1115 this.dialog = true;
1116 }, 1116 },
1117 profile(item) { 1117 profile(item) {
1118 this.editedIndex = this.desserts.indexOf(item); 1118 this.editedIndex = this.desserts.indexOf(item);
1119 this.editedItem = Object.assign({}, item); 1119 this.editedItem = Object.assign({}, item);
1120 this.dialog1 = true; 1120 this.dialog1 = true;
1121 }, 1121 },
1122 deleteItem(item) { 1122 deleteItem(item) {
1123 let deleteTeachers = { 1123 let deleteTeachers = {
1124 teacherId: item._id 1124 teacherId: item._id
1125 }; 1125 };
1126 // console.log("deleteUers",deleteTeachers) 1126 // console.log("deleteUers",deleteTeachers)
1127 http() 1127 http()
1128 .delete( 1128 .delete(
1129 "/deleteTeacher", 1129 "/deleteTeacher",
1130 confirm("Are you sure you want to delete this?") && { 1130 confirm("Are you sure you want to delete this?") && {
1131 params: deleteTeachers 1131 params: deleteTeachers
1132 } 1132 }
1133 ) 1133 )
1134 .then(response => { 1134 .then(response => {
1135 // console.log("deleteUers",deleteTeachers) 1135 // console.log("deleteUers",deleteTeachers)
1136 if ((this.snackbar = true)) { 1136 if ((this.snackbar = true)) {
1137 this.text = "Successfully delete Existing Teacher"; 1137 this.text = "Successfully delete Existing Teacher";
1138 } 1138 }
1139 this.getTeacherList(); 1139 this.getTeacherList();
1140 }) 1140 })
1141 .catch(error => { 1141 .catch(error => {
1142 console.log(error); 1142 console.log(error);
1143 }); 1143 });
1144 }, 1144 },
1145 activeTab(type) { 1145 activeTab(type) {
1146 switch (type) { 1146 switch (type) {
1147 case "existing": 1147 case "existing":
1148 this.newActive = false; 1148 this.newActive = false;
1149 this.isActive = true; 1149 this.isActive = true;
1150 break; 1150 break;
1151 1151
1152 default: 1152 default:
1153 this.newActive = true; 1153 this.newActive = true;
1154 this.isActive = false; 1154 this.isActive = false;
1155 break; 1155 break;
1156 } 1156 }
1157 }, 1157 },
1158 close() { 1158 close() {
1159 this.dialog = false; 1159 this.dialog = false;
1160 setTimeout(() => { 1160 setTimeout(() => {
1161 this.editedItem = Object.assign({}, this.defaultItem); 1161 this.editedItem = Object.assign({}, this.defaultItem);
1162 this.editedIndex = -1; 1162 this.editedIndex = -1;
1163 }, 300); 1163 }, 300);
1164 }, 1164 },
1165 close1() { 1165 close1() {
1166 this.dialog1 = false; 1166 this.dialog1 = false;
1167 }, 1167 },
1168 submit() { 1168 submit() {
1169 if (this.$refs.form.validate()) { 1169 if (this.$refs.form.validate()) {
1170 let addTeacher = { 1170 let addTeacher = {
1171 name: this.addTeachers.name, 1171 name: this.addTeachers.name,
1172 email: this.addTeachers.email, 1172 email: this.addTeachers.email,
1173 role: this.addTeachers.role, 1173 role: this.addTeachers.role,
1174 dob: this.addTeachers.date, 1174 dob: this.addTeachers.date,
1175 city: this.addTeachers.city, 1175 city: this.addTeachers.city,
1176 pincode: this.addTeachers.pincode, 1176 pincode: this.addTeachers.pincode,
1177 country: this.addTeachers.country, 1177 country: this.addTeachers.country,
1178 permanentAddress: this.addTeachers.permanentAddress, 1178 permanentAddress: this.addTeachers.permanentAddress,
1179 presentAddress: this.addTeachers.presentAddress, 1179 presentAddress: this.addTeachers.presentAddress,
1180 mobileNo: this.addTeachers.mobileNo, 1180 mobileNo: this.addTeachers.mobileNo,
1181 state: this.addTeachers.state, 1181 state: this.addTeachers.state,
1182 joinDate: this.addTeachers.joinDate 1182 joinDate: this.addTeachers.joinDate
1183 }; 1183 };
1184 if (this.imageUrl) { 1184 if (this.imageUrl) {
1185 var str = this.imageUrl; 1185 var str = this.imageUrl;
1186 const [baseUrl, imageUrl] = str.split(/,/); 1186 const [baseUrl, imageUrl] = str.split(/,/);
1187 addTeacher.upload = imageUrl; 1187 addTeacher.upload = imageUrl;
1188 } 1188 }
1189 this.loading = true; 1189 this.loading = true;
1190 http() 1190 http()
1191 .post("/createTeacher", addTeacher) 1191 .post("/createTeacher", addTeacher)
1192 .then(response => { 1192 .then(response => {
1193 this.imageUrl = ""; 1193 this.imageUrl = "";
1194 this.getTeacherList(); 1194 this.getTeacherList();
1195 this.snackbar = true; 1195 this.snackbar = true;
1196 this.text = "New Teacher added successfully"; 1196 this.text = "New Teacher added successfully";
1197 this.clear(); 1197 this.clear();
1198 this.loading = false; 1198 this.loading = false;
1199 }) 1199 })
1200 .catch(error => { 1200 .catch(error => {
1201 // console.log(error); 1201 // console.log(error);
1202 if ((this.snackbar = true)) { 1202 if ((this.snackbar = true)) {
1203 this.text = error.response.data.message; 1203 this.text = error.response.data.message;
1204 } 1204 }
1205 this.loading = false; 1205 this.loading = false;
1206 }); 1206 });
1207 } 1207 }
1208 }, 1208 },
1209 clear() { 1209 clear() {
1210 this.$refs.form.reset(); 1210 this.$refs.form.reset();
1211 this.imageUrl = ""; 1211 this.imageUrl = "";
1212 }, 1212 },
1213 save() { 1213 save() {
1214 this.loading = true; 1214 this.loading = true;
1215 let editTeacher = { 1215 let editTeacher = {
1216 teacherId: this.editedItem._id, 1216 teacherId: this.editedItem._id,
1217 name: this.editedItem.name, 1217 name: this.editedItem.name,
1218 email: this.editedItem.email, 1218 email: this.editedItem.email,
1219 role: this.editedItem.role, 1219 role: this.editedItem.role,
1220 dob: this.editedItem.date, 1220 dob: this.editedItem.dob,
1221 city: this.editedItem.city, 1221 city: this.editedItem.city,
1222 pincode: this.editedItem.pincode, 1222 pincode: this.editedItem.pincode,
1223 country: this.editedItem.country, 1223 country: this.editedItem.country,
1224 permanentAddress: this.editedItem.permanentAddress, 1224 permanentAddress: this.editedItem.permanentAddress,
1225 presentAddress: this.editedItem.presentAddress, 1225 presentAddress: this.editedItem.presentAddress,
1226 mobileNo: this.editedItem.mobileNo, 1226 mobileNo: this.editedItem.mobileNo,
1227 state: this.editedItem.state, 1227 state: this.editedItem.state,
1228 joinDate: this.editedItem.joinDate 1228 joinDate: this.editedItem.joinDate
1229 }; 1229 };
1230 if (this.imageUrl) { 1230 if (this.imageUrl) {
1231 var str = this.imageUrl; 1231 var str = this.imageUrl;
1232 const [baseUrl, imageUrl] = str.split(/,/); 1232 const [baseUrl, imageUrl] = str.split(/,/);
1233 editTeacher.upload = imageUrl; 1233 editTeacher.upload = imageUrl;
1234 } 1234 }
1235 http() 1235 http()
1236 .put("/updateTeacher", editTeacher) 1236 .put("/updateTeacher", editTeacher)
1237 .then(response => { 1237 .then(response => {
1238 console.log("editTeacher", editTeacher); 1238 console.log("editTeacher", editTeacher);
1239 this.snackbar = true; 1239 this.snackbar = true;
1240 this.text = "Successfully Edit Existing Teacher"; 1240 this.text = "Successfully Edit Existing Teacher";
1241 this.loading = false; 1241 this.loading = false;
1242 this.getTeacherList(); 1242 this.getTeacherList();
1243 this.close(); 1243 this.close();
1244 }) 1244 })
1245 .catch(error => { 1245 .catch(error => {
1246 console.log(error); 1246 console.log(error);
1247 this.loading = false; 1247 this.loading = false;
1248 }); 1248 });
1249 } 1249 }
1250 }, 1250 },
1251 mounted() { 1251 mounted() {
1252 const getCountryList = countryList(); 1252 const getCountryList = countryList();
1253 this.countries = getCountryList; 1253 this.countries = getCountryList;
1254 this.getTeacherList(); 1254 this.getTeacherList();
1255 }, 1255 },
1256 created() { 1256 created() {
1257 this.$root.$on("app:search", search => { 1257 this.$root.$on("app:search", search => {
1258 this.search = search; 1258 this.search = search;
1259 }); 1259 });
1260 }, 1260 },
1261 beforeDestroy() { 1261 beforeDestroy() {
1262 // dont forget to remove the listener 1262 // dont forget to remove the listener
1263 this.$root.$off("app:search"); 1263 this.$root.$off("app:search");
1264 } 1264 }
1265 }; 1265 };
1266 </script> 1266 </script>
1267 <style scoped> 1267 <style scoped>
1268 .active { 1268 .active {
1269 background-color: gray; 1269 background-color: gray;
1270 color: white !important; 1270 color: white !important;
1271 } 1271 }
1272 .activebtn { 1272 .activebtn {
1273 color: black !important; 1273 color: black !important;
1274 } 1274 }
1275 </style> 1275 </style>
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: '/500', 24 path: '/500',
25 meta: { 25 meta: {
26 public: true, 26 public: true,
27 }, 27 },
28 name: 'ServerError', 28 name: 'ServerError',
29 component: () => 29 component: () =>
30 import ( 30 import (
31 /* webpackChunkName: "routes" */ 31 /* webpackChunkName: "routes" */
32 /* webpackMode: "lazy-once" */ 32 /* webpackMode: "lazy-once" */
33 `@/pages/NotFound/Error.vue` 33 `@/pages/NotFound/Error.vue`
34 ) 34 )
35 }, 35 },
36 { 36 {
37 path: '/changepassword', 37 path: '/changepassword',
38 meta: {}, 38 meta: {},
39 name: 'changepassword', 39 name: 'changepassword',
40 props: (route) => ({ type: route.query.type }), 40 props: (route) => ({ type: route.query.type }),
41 component: () => 41 component: () =>
42 import ( 42 import (
43 /* webpackChunkName: "routes" */ 43 /* webpackChunkName: "routes" */
44 /* webpackMode: "lazy-once" */ 44 /* webpackMode: "lazy-once" */
45 `@/pages/Authentication/changepassword.vue` 45 `@/pages/Authentication/changepassword.vue`
46 ) 46 )
47 }, 47 },
48 { 48 {
49 path: '/teachers', 49 path: '/teachers',
50 meta: { breadcrumb: false }, 50 meta: { breadcrumb: false },
51 name: 'teachers', 51 name: 'teachers',
52 component: () => 52 component: () =>
53 import ( 53 import (
54 /* webpackChunkName: "routes" */ 54 /* webpackChunkName: "routes" */
55 /* webpackMode: "lazy-once" */ 55 /* webpackMode: "lazy-once" */
56 `@/pages/Teachers/teachers.vue` 56 `@/pages/Teachers/teachers.vue`
57 ) 57 )
58 }, 58 },
59 { 59 {
60 path: '/', 60 path: '/',
61 meta: { 61 meta: {
62 public: true, 62 public: true,
63 }, 63 },
64 name: 'Login', 64 name: 'Login',
65 component: () => 65 component: () =>
66 import ( 66 import (
67 /* webpackChunkName: "routes" */ 67 /* webpackChunkName: "routes" */
68 /* webpackMode: "lazy-once" */ 68 /* webpackMode: "lazy-once" */
69 `@/pages/Authentication/Login.vue` 69 `@/pages/Authentication/Login.vue`
70 ) 70 )
71 }, 71 },
72 { 72 {
73 path: '/forgetpassword', 73 path: '/forgetpassword',
74 meta: { 74 meta: {
75 public: true, 75 public: true,
76 }, 76 },
77 name: 'forgetpassword', 77 name: 'forgetpassword',
78 component: () => 78 component: () =>
79 import ( 79 import (
80 /* webpackChunkName: "routes" */ 80 /* webpackChunkName: "routes" */
81 /* webpackMode: "lazy-once" */ 81 /* webpackMode: "lazy-once" */
82 `@/pages/Authentication/forgetpassword.vue` 82 `@/pages/Authentication/forgetpassword.vue`
83 ) 83 )
84 }, 84 },
85 { 85 {
86 path: '/students', 86 path: '/students',
87 meta: {}, 87 meta: {},
88 name: 'Students', 88 name: 'Students',
89 props: (route) => ({ type: route.query.type }), 89 props: (route) => ({ type: route.query.type }),
90 component: () => 90 component: () =>
91 import ( 91 import (
92 /* webpackChunkName: "routes" */ 92 /* webpackChunkName: "routes" */
93 /* webpackMode: "lazy-once" */ 93 /* webpackMode: "lazy-once" */
94 `@/pages/Students/students.vue` 94 `@/pages/Students/students.vue`
95 ) 95 )
96 }, 96 },
97 { 97 {
98 path: '/addclass', 98 path: '/addclass',
99 meta: {}, 99 meta: {},
100 name: 'addclass', 100 name: 'addclass',
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/Class/addclass.vue` 106 `@/pages/Class/addclass.vue`
107 ) 107 )
108 }, 108 },
109 { 109 {
110 path: '/section', 110 path: '/section',
111 meta: {}, 111 meta: {},
112 name: 'section', 112 name: 'section',
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/Section/section.vue` 118 `@/pages/Section/section.vue`
119 ) 119 )
120 }, 120 },
121 { 121 {
122 path: '/noticeBoard', 122 path: '/noticeBoard',
123 meta: {}, 123 meta: {},
124 name: 'NoticeBoard', 124 name: 'NoticeBoard',
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/NoticeBoard/noticeBoard.vue` 130 `@/pages/NoticeBoard/noticeBoard.vue`
131 ) 131 )
132 }, 132 },
133 { 133 {
134 path: '/news', 134 path: '/news',
135 meta: {}, 135 meta: {},
136 name: 'news', 136 name: 'news',
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/News/news.vue` 142 `@/pages/News/news.vue`
143 ) 143 )
144 }, 144 },
145 // { 145 // {
146 // path: '/reminder', 146 // path: '/reminder',
147 // meta: { }, 147 // meta: { },
148 // name: 'reminder', 148 // name: 'reminder',
149 // props: (route) => ({ type: route.query.type }), 149 // props: (route) => ({ type: route.query.type }),
150 // component: () => import( 150 // component: () => import(
151 // /* webpackChunkName: "routes" */ 151 // /* webpackChunkName: "routes" */
152 // /* webpackMode: "lazy-once" */ 152 // /* webpackMode: "lazy-once" */
153 // `@/pages/Reminder/reminder.vue` 153 // `@/pages/Reminder/reminder.vue`
154 // ) 154 // )
155 // }, 155 // },
156 { 156 {
157 path: '/timeTable', 157 path: '/timeTable',
158 meta: {}, 158 meta: {},
159 name: 'timeTable', 159 name: 'timeTable',
160 props: (route) => ({ type: route.query.type }), 160 props: (route) => ({ type: route.query.type }),
161 component: () => 161 component: () =>
162 import ( 162 import (
163 /* webpackChunkName: "routes" */ 163 /* webpackChunkName: "routes" */
164 /* webpackMode: "lazy-once" */ 164 /* webpackMode: "lazy-once" */
165 `@/pages/TimeTable/timeTable.vue` 165 `@/pages/TimeTable/timeTable.vue`
166 ) 166 )
167 }, 167 },
168 { 168 {
169 path: '/notification', 169 path: '/notification',
170 meta: {}, 170 meta: {},
171 name: 'notification', 171 name: 'notification',
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/Notification/notification.vue` 177 `@/pages/Notification/notification.vue`
178 ) 178 )
179 }, 179 },
180 { 180 {
181 path: '/parents', 181 path: '/parents',
182 meta: {}, 182 meta: {},
183 name: 'parents', 183 name: 'parents',
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/Parent/parents.vue` 189 `@/pages/Parent/parents.vue`
190 ) 190 )
191 }, 191 },
192 { 192 {
193 path: '/subject', 193 path: '/subject',
194 meta: {}, 194 meta: {},
195 name: 'subject', 195 name: 'subject',
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/Subjects/subjects.vue` 201 `@/pages/Subjects/subjects.vue`
202 ) 202 )
203 }, 203 },
204 { 204 {
205 path: '/dashboard', 205 path: '/dashboard',
206 meta: {}, 206 meta: {},
207 name: 'Dashboard', 207 name: 'Dashboard',
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/Dashboard/dashboard.vue` 213 `@/pages/Dashboard/dashboard.vue`
214 ) 214 )
215 }, 215 },
216 { 216 {
217 path: '/socialMedia', 217 path: '/socialMedia',
218 meta: {}, 218 meta: {},
219 name: 'SocialMedia', 219 name: 'SocialMedia',
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/socialMedia/socialMedia.vue` 225 `@/pages/socialMedia/socialMedia.vue`
226 ) 226 )
227 }, 227 },
228 { 228 {
229 path: '/gallery', 229 path: '/gallery',
230 meta: {}, 230 meta: {},
231 name: 'Gallery', 231 name: 'Gallery',
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/Gallery/gallery.vue` 237 `@/pages/Gallery/gallery.vue`
238 ) 238 )
239 }, 239 },
240 { 240 {
241 path: '/event', 241 path: '/event',
242 meta: {}, 242 meta: {},
243 name: 'Event', 243 name: 'Event',
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/Event/event.vue` 249 `@/pages/Event/event.vue`
250 ) 250 )
251 }, 251 },
252 { 252 {
253 path: '/holiday', 253 path: '/holiday',
254 meta: {}, 254 meta: {},
255 name: 'Holiday', 255 name: 'Holiday',
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/Holiday/holiday.vue` 261 `@/pages/Holiday/holiday.vue`
262 ) 262 )
263 }, 263 },
264 { 264 {
265 path: '/user', 265 path: '/user',
266 meta: {}, 266 meta: {},
267 name: 'User', 267 name: 'User',
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/User/user.vue` 273 `@/pages/User/user.vue`
274 ) 274 )
275 }, 275 },
276 { 276 {
277 path: '/AttendenceStudent', 277 path: '/AttendenceStudent',
278 meta: {}, 278 meta: {},
279 name: 'studentAttendence', 279 name: 'studentAttendence',
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/Attendence/studentAttendence.vue` 285 `@/pages/Attendence/studentAttendence.vue`
286 ) 286 )
287 }, 287 },
288 { 288 {
289 path: '/AttendenceTeacher', 289 path: '/AttendenceTeacher',
290 meta: {}, 290 meta: {},
291 name: 'teacherAttendence', 291 name: 'teacherAttendence',
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/teacherAttendence.vue` 297 `@/pages/Attendence/teacherAttendence.vue`
298 ) 298 )
299 }, 299 },
300 { 300 // {
301 path: '/AttendenceUser', 301 // path: '/AttendenceUser',
302 meta: {}, 302 // meta: {},
303 name: 'userAttendence', 303 // name: 'userAttendence',
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/userAttendence.vue` 309 // `@/pages/Attendence/userAttendence.vue`
310 ) 310 // )
311 }, 311 // },
312 { 312 {
313 path: '/feeTypes', 313 path: '/feeTypes',
314 meta: {}, 314 meta: {},
315 name: 'feeTypes', 315 name: 'feeTypes',
316 props: (route) => ({ type: route.query.type }), 316 props: (route) => ({ type: route.query.type }),
317 component: () => 317 component: () =>
318 import ( 318 import (
319 /* webpackChunkName: "routes" */ 319 /* webpackChunkName: "routes" */
320 /* webpackMode: "lazy-once" */ 320 /* webpackMode: "lazy-once" */
321 `@/pages/Account/feeTypes.vue` 321 `@/pages/Account/feeTypes.vue`
322 ) 322 )
323 }, 323 },
324 { 324 {
325 path: '/invoice', 325 path: '/invoice',
326 meta: {}, 326 meta: {},
327 name: 'Invoice', 327 name: 'Invoice',
328 props: (route) => ({ type: route.query.type }), 328 props: (route) => ({ type: route.query.type }),
329 component: () => 329 component: () =>
330 import ( 330 import (
331 /* webpackChunkName: "routes" */ 331 /* webpackChunkName: "routes" */
332 /* webpackMode: "lazy-once" */ 332 /* webpackMode: "lazy-once" */
333 `@/pages/Account/invoice.vue` 333 `@/pages/Account/invoice.vue`
334 ) 334 )
335 }, 335 },
336 { 336 {
337 path: '/paymentHistory', 337 path: '/paymentHistory',
338 meta: {}, 338 meta: {},
339 name: 'paymentHistory', 339 name: 'paymentHistory',
340 props: (route) => ({ type: route.query.type }), 340 props: (route) => ({ type: route.query.type }),
341 component: () => 341 component: () =>
342 import ( 342 import (
343 /* webpackChunkName: "routes" */ 343 /* webpackChunkName: "routes" */
344 /* webpackMode: "lazy-once" */ 344 /* webpackMode: "lazy-once" */
345 `@/pages/Account/paymentHistory.vue` 345 `@/pages/Account/paymentHistory.vue`
346 ) 346 )
347 }, 347 },
348 { 348 {
349 path: '/expense', 349 path: '/expense',
350 meta: {}, 350 meta: {},
351 name: 'Expense', 351 name: 'Expense',
352 props: (route) => ({ type: route.query.type }), 352 props: (route) => ({ type: route.query.type }),
353 component: () => 353 component: () =>
354 import ( 354 import (
355 /* webpackChunkName: "routes" */ 355 /* webpackChunkName: "routes" */
356 /* webpackMode: "lazy-once" */ 356 /* webpackMode: "lazy-once" */
357 `@/pages/Account/expense.vue` 357 `@/pages/Account/expense.vue`
358 ) 358 )
359 }, 359 },
360 { 360 {
361 path: '/income', 361 path: '/income',
362 meta: {}, 362 meta: {},
363 name: 'Income', 363 name: 'Income',
364 props: (route) => ({ type: route.query.type }), 364 props: (route) => ({ type: route.query.type }),
365 component: () => 365 component: () =>
366 import ( 366 import (
367 /* webpackChunkName: "routes" */ 367 /* webpackChunkName: "routes" */
368 /* webpackMode: "lazy-once" */ 368 /* webpackMode: "lazy-once" */
369 `@/pages/Account/income.vue` 369 `@/pages/Account/income.vue`
370 ) 370 )
371 }, 371 },
372 { 372 {
373 path: '/libraryMember', 373 path: '/libraryMember',
374 meta: {}, 374 meta: {},
375 name: 'libraryMember', 375 name: 'libraryMember',
376 props: (route) => ({ type: route.query.type }), 376 props: (route) => ({ type: route.query.type }),
377 component: () => 377 component: () =>
378 import ( 378 import (
379 /* webpackChunkName: "routes" */ 379 /* webpackChunkName: "routes" */
380 /* webpackMode: "lazy-once" */ 380 /* webpackMode: "lazy-once" */
381 `@/pages/Library/member.vue` 381 `@/pages/Library/member.vue`
382 ) 382 )
383 }, 383 },
384 { 384 {
385 path: '/books', 385 path: '/books',
386 meta: {}, 386 meta: {},
387 name: 'Books', 387 name: 'Books',
388 props: (route) => ({ type: route.query.type }), 388 props: (route) => ({ type: route.query.type }),
389 component: () => 389 component: () =>
390 import ( 390 import (
391 /* webpackChunkName: "routes" */ 391 /* webpackChunkName: "routes" */
392 /* webpackMode: "lazy-once" */ 392 /* webpackMode: "lazy-once" */
393 `@/pages/Library/books.vue` 393 `@/pages/Library/books.vue`
394 ) 394 )
395 }, 395 },
396 { 396 {
397 path: '/issue', 397 path: '/issue',
398 meta: {}, 398 meta: {},
399 name: 'Issue', 399 name: 'Issue',
400 props: (route) => ({ type: route.query.type }), 400 props: (route) => ({ type: route.query.type }),
401 component: () => 401 component: () =>
402 import ( 402 import (
403 /* webpackChunkName: "routes" */ 403 /* webpackChunkName: "routes" */
404 /* webpackMode: "lazy-once" */ 404 /* webpackMode: "lazy-once" */
405 `@/pages/Library/issue.vue` 405 `@/pages/Library/issue.vue`
406 ) 406 )
407 }, 407 },
408 { 408 {
409 path: '/e-books', 409 path: '/e-books',
410 meta: {}, 410 meta: {},
411 name: 'eBooks', 411 name: 'eBooks',
412 props: (route) => ({ type: route.query.type }), 412 props: (route) => ({ type: route.query.type }),
413 component: () => 413 component: () =>
414 import ( 414 import (
415 /* webpackChunkName: "routes" */ 415 /* webpackChunkName: "routes" */
416 /* webpackMode: "lazy-once" */ 416 /* webpackMode: "lazy-once" */
417 `@/pages/Library/eBook.vue` 417 `@/pages/Library/eBook.vue`
418 ) 418 )
419 }, 419 },
420 { 420 {
421 path: '/invoiceId/:invoiceid', 421 path: '/invoiceId/:invoiceid',
422 meta: {}, 422 meta: {},
423 name: 'EditInvoice', 423 name: 'EditInvoice',
424 // props: (route) => ({ type: route.query.type }), 424 // props: (route) => ({ type: route.query.type }),
425 component: () => 425 component: () =>
426 import ( 426 import (
427 /* webpackChunkName: "routes" */ 427 /* webpackChunkName: "routes" */
428 /* webpackMode: "lazy-once" */ 428 /* webpackMode: "lazy-once" */
429 `@/pages/Account/editInvoice.vue` 429 `@/pages/Account/editInvoice.vue`
430 ) 430 )
431 }, 431 },
432 { 432 {
433 path: '/StudentsAttendence/:id', 433 path: '/StudentsAttendence/:id',
434 meta: {}, 434 meta: {},
435 name: 'ViewStudentsAttendence', 435 name: 'ViewStudentsAttendence',
436 props: (route) => ({ type: route.query.type }), 436 props: (route) => ({ type: route.query.type }),
437 component: () => 437 component: () =>
438 import ( 438 import (
439 /* webpackChunkName: "routes" */ 439 /* webpackChunkName: "routes" */
440 /* webpackMode: "lazy-once" */ 440 /* webpackMode: "lazy-once" */
441 `@/pages/Attendence/viewStudentsAttendence.vue` 441 `@/pages/Attendence/viewStudentsAttendence.vue`
442 ) 442 )
443 }, 443 },
444 { 444 {
445 path: '/TeacherAttendence/:teacherId',
446 meta: {},
447 name: 'ViewTeacherAttendence',
448 props: (route) => ({ type: route.query.type }),
449 component: () =>
450 import (
451 /* webpackChunkName: "routes" */
452 /* webpackMode: "lazy-once" */
453 `@/pages/Attendence/viewTeacherAttendence.vue`
454 )
455 },
456 {
445 path: '/viewInvoice/:viewInvoiceId', 457 path: '/viewInvoice/:viewInvoiceId',
446 meta: {}, 458 meta: {},
447 name: 'ViewInvoice', 459 name: 'ViewInvoice',
448 props: (route) => ({ type: route.query.type }), 460 props: (route) => ({ type: route.query.type }),
449 component: () => 461 component: () =>
450 import ( 462 import (
451 /* webpackChunkName: "routes" */ 463 /* webpackChunkName: "routes" */
452 /* webpackMode: "lazy-once" */ 464 /* webpackMode: "lazy-once" */
453 `@/pages/Account/viewInvoice.vue` 465 `@/pages/Account/viewInvoice.vue`
454 ) 466 )
455 }, 467 },
456 { 468 {
457 path: '/exam', 469 path: '/exam',
458 meta: {}, 470 meta: {},
459 name: 'Exam', 471 name: 'Exam',
460 props: (route) => ({ type: route.query.type }), 472 props: (route) => ({ type: route.query.type }),
461 component: () => 473 component: () =>
462 import ( 474 import (
463 /* webpackChunkName: "routes" */ 475 /* webpackChunkName: "routes" */
464 /* webpackMode: "lazy-once" */ 476 /* webpackMode: "lazy-once" */
465 `@/pages/Exam/exam.vue` 477 `@/pages/Exam/exam.vue`
466 ) 478 )
467 }, 479 },
468 { 480 {
469 path: '/grade', 481 path: '/grade',
470 meta: {}, 482 meta: {},
471 name: 'Grade', 483 name: 'Grade',
472 props: (route) => ({ type: route.query.type }), 484 props: (route) => ({ type: route.query.type }),
473 component: () => 485 component: () =>
474 import ( 486 import (
475 /* webpackChunkName: "routes" */ 487 /* webpackChunkName: "routes" */
476 /* webpackMode: "lazy-once" */ 488 /* webpackMode: "lazy-once" */
477 `@/pages/Exam/grade.vue` 489 `@/pages/Exam/grade.vue`
478 ) 490 )
479 }, 491 },
480 { 492 {
481 path: '/examSchedule', 493 path: '/examSchedule',
482 meta: {}, 494 meta: {},
483 name: 'ExamSchedule', 495 name: 'ExamSchedule',
484 props: (route) => ({ type: route.query.type }), 496 props: (route) => ({ type: route.query.type }),
485 component: () => 497 component: () =>
486 import ( 498 import (
487 /* webpackChunkName: "routes" */ 499 /* webpackChunkName: "routes" */
488 /* webpackMode: "lazy-once" */ 500 /* webpackMode: "lazy-once" */
489 `@/pages/Exam/examSchedule.vue` 501 `@/pages/Exam/examSchedule.vue`
490 ) 502 )
491 }, 503 },
492 { 504 {
493 path: '/mark', 505 path: '/mark',
494 meta: {}, 506 meta: {},
495 name: 'Mark', 507 name: 'Mark',
496 props: (route) => ({ type: route.query.type }), 508 props: (route) => ({ type: route.query.type }),
497 component: () => 509 component: () =>
498 import ( 510 import (
499 /* webpackChunkName: "routes" */ 511 /* webpackChunkName: "routes" */
500 /* webpackMode: "lazy-once" */ 512 /* webpackMode: "lazy-once" */
501 `@/pages/Mark/mark.vue` 513 `@/pages/Mark/mark.vue`
502 ) 514 )
503 }, 515 },
504 { 516 {
505 path: '/viewMark/:markId', 517 path: '/viewMark/:markId',
506 meta: {}, 518 meta: {},
507 name: 'viewMark', 519 name: 'viewMark',
508 props: (route) => ({ type: route.query.type }), 520 props: (route) => ({ type: route.query.type }),
509 component: () => 521 component: () =>
510 import ( 522 import (
511 /* webpackChunkName: "routes" */ 523 /* webpackChunkName: "routes" */
512 /* webpackMode: "lazy-once" */ 524 /* webpackMode: "lazy-once" */
513 `@/pages/Mark/viewMark.vue` 525 `@/pages/Mark/viewMark.vue`
514 ) 526 )
515 }, 527 },
516 { 528 {
517 path: '/markDistribution', 529 path: '/markDistribution',
518 meta: {}, 530 meta: {},
519 name: 'markDistribution', 531 name: 'markDistribution',
520 props: (route) => ({ type: route.query.type }), 532 props: (route) => ({ type: route.query.type }),
521 component: () => 533 component: () =>
522 import ( 534 import (
523 /* webpackChunkName: "routes" */ 535 /* webpackChunkName: "routes" */
524 /* webpackMode: "lazy-once" */ 536 /* webpackMode: "lazy-once" */
525 `@/pages/Mark/markDistribution.vue` 537 `@/pages/Mark/markDistribution.vue`
526 ) 538 )
527 }, 539 },
528 { 540 {
529 path: '/promotion', 541 path: '/promotion',
530 meta: {}, 542 meta: {},
531 name: 'Promotion', 543 name: 'Promotion',
532 props: (route) => ({ type: route.query.type }), 544 props: (route) => ({ type: route.query.type }),
533 component: () => 545 component: () =>
534 import ( 546 import (
535 /* webpackChunkName: "routes" */ 547 /* webpackChunkName: "routes" */
536 /* webpackMode: "lazy-once" */ 548 /* webpackMode: "lazy-once" */
537 `@/pages/Mark/promotion.vue` 549 `@/pages/Mark/promotion.vue`
538 ) 550 )
539 }, 551 },
540 { 552 {
541 path: '/academicYear', 553 path: '/academicYear',
542 meta: {}, 554 meta: {},
543 name: 'academicYear', 555 name: 'academicYear',
544 props: (route) => ({ type: route.query.type }), 556 props: (route) => ({ type: route.query.type }),
545 component: () => 557 component: () =>
546 import ( 558 import (
547 /* webpackChunkName: "routes" */ 559 /* webpackChunkName: "routes" */
548 /* webpackMode: "lazy-once" */ 560 /* webpackMode: "lazy-once" */
549 `@/pages/Administrator/academicYear.vue` 561 `@/pages/Administrator/academicYear.vue`
550 ) 562 )
551 }, 563 },
552 { 564 {
553 path: '/systemAdmin', 565 path: '/systemAdmin',
554 meta: {}, 566 meta: {},
555 name: 'systemAdmin', 567 name: 'systemAdmin',
556 props: (route) => ({ type: route.query.type }), 568 props: (route) => ({ type: route.query.type }),
557 component: () => 569 component: () =>
558 import ( 570 import (
559 /* webpackChunkName: "routes" */ 571 /* webpackChunkName: "routes" */
560 /* webpackMode: "lazy-once" */ 572 /* webpackMode: "lazy-once" */
561 `@/pages/Administrator/systemAdmin.vue` 573 `@/pages/Administrator/systemAdmin.vue`
562 ) 574 )
563 }, 575 },
564 { 576 {
565 path: '/resetPassword', 577 path: '/resetPassword',
566 meta: {}, 578 meta: {},
567 name: 'resetPassword', 579 name: 'resetPassword',
568 props: (route) => ({ type: route.query.type }), 580 props: (route) => ({ type: route.query.type }),
569 component: () => 581 component: () =>
570 import ( 582 import (
571 /* webpackChunkName: "routes" */ 583 /* webpackChunkName: "routes" */
572 /* webpackMode: "lazy-once" */ 584 /* webpackMode: "lazy-once" */
573 `@/pages/Administrator/resetPassword.vue` 585 `@/pages/Administrator/resetPassword.vue`
574 ) 586 )
575 }, 587 },
576 { 588 {
577 path: '/role', 589 path: '/role',
578 meta: {}, 590 meta: {},
579 name: 'Role', 591 name: 'Role',
580 props: (route) => ({ type: route.query.type }), 592 props: (route) => ({ type: route.query.type }),
581 component: () => 593 component: () =>
582 import ( 594 import (
583 /* webpackChunkName: "routes" */ 595 /* webpackChunkName: "routes" */
584 /* webpackMode: "lazy-once" */ 596 /* webpackMode: "lazy-once" */
585 `@/pages/Administrator/role.vue` 597 `@/pages/Administrator/role.vue`
586 ) 598 )
587 }, 599 },
588 { 600 {
589 path: '/bulkImport', 601 path: '/bulkImport',
590 meta: {}, 602 meta: {},
591 name: 'bulkImport', 603 name: 'bulkImport',
592 props: (route) => ({ type: route.query.type }), 604 props: (route) => ({ type: route.query.type }),
593 component: () => 605 component: () =>
594 import ( 606 import (
595 /* webpackChunkName: "routes" */ 607 /* webpackChunkName: "routes" */
596 /* webpackMode: "lazy-once" */ 608 /* webpackMode: "lazy-once" */
597 `@/pages/Administrator/bulkImport.vue` 609 `@/pages/Administrator/bulkImport.vue`
598 ) 610 )
599 }, 611 },
600 { 612 {
601 path: '/studentReport', 613 path: '/studentReport',
602 meta: {}, 614 meta: {},
603 name: 'studentReport', 615 name: 'studentReport',
604 props: (route) => ({ type: route.query.type }), 616 props: (route) => ({ type: route.query.type }),
605 component: () => 617 component: () =>
606 import ( 618 import (
607 /* webpackChunkName: "routes" */ 619 /* webpackChunkName: "routes" */
608 /* webpackMode: "lazy-once" */ 620 /* webpackMode: "lazy-once" */
609 `@/pages/Report/studentReport.vue` 621 `@/pages/Report/studentReport.vue`
610 ) 622 )
611 }, 623 },
612 { 624 {
613 path: '/progressCardReport', 625 path: '/progressCardReport',
614 meta: {}, 626 meta: {},
615 name: 'progressCardReport', 627 name: 'progressCardReport',
616 props: (route) => ({ type: route.query.type }), 628 props: (route) => ({ type: route.query.type }),
617 component: () => 629 component: () =>
618 import ( 630 import (
619 /* webpackChunkName: "routes" */ 631 /* webpackChunkName: "routes" */
620 /* webpackMode: "lazy-once" */ 632 /* webpackMode: "lazy-once" */
621 `@/pages/Report/progressCardReport.vue` 633 `@/pages/Report/progressCardReport.vue`
622 ) 634 )
623 }, 635 },
624 { 636 {
625 path: '/generalSetting', 637 path: '/generalSetting',
626 meta: {}, 638 meta: {},
627 name: 'generalSetting', 639 name: 'generalSetting',
628 props: (route) => ({ type: route.query.type }), 640 props: (route) => ({ type: route.query.type }),
629 component: () => 641 component: () =>
630 import ( 642 import (
631 /* webpackChunkName: "routes" */ 643 /* webpackChunkName: "routes" */
632 /* webpackMode: "lazy-once" */ 644 /* webpackMode: "lazy-once" */
633 `@/pages/generalSetting/generalSetting.vue` 645 `@/pages/generalSetting/generalSetting.vue`
634 ) 646 )
635 }, 647 },
636 648
637 //////SCHOOL 649 //////SCHOOL
638 650
639 { 651 {
640 path: '/school', 652 path: '/school',
641 meta: {}, 653 meta: {},
642 name: 'School', 654 name: 'School',
643 props: (route) => ({ type: route.query.type }), 655 props: (route) => ({ type: route.query.type }),
644 component: () => 656 component: () =>
645 import ( 657 import (
646 /* webpackChunkName: "routes" */ 658 /* webpackChunkName: "routes" */
647 /* webpackMode: "lazy-once" */ 659 /* webpackMode: "lazy-once" */
648 `@/pages/School/school.vue` 660 `@/pages/School/school.vue`
649 ) 661 )
650 } 662 }
651 ]; 663 ];