Blame view
src/pages/Dashboard.vue
15.1 KB
93a68cfa1
|
1 2 |
<template> <v-tabs |
ee83012b3
|
3 4 |
grow slider-color="black" |
93a68cfa1
|
5 |
> |
ee83012b3
|
6 7 |
<v-tab ripple @click="activeTab('existing')" v-bind:class="{ active: isActive }" id="tab"> |
93a68cfa1
|
8 9 |
Existing user </v-tab> |
ee83012b3
|
10 11 |
<v-tab ripple @click="activeTab('new')" v-bind:class="{ active: newActive }" id="tab1"> |
93a68cfa1
|
12 13 |
Add New Users </v-tab> |
ee83012b3
|
14 |
|
93a68cfa1
|
15 |
<v-tab-item> |
c35a8dafd
|
16 |
<v-dialog v-model="dialog" max-width="500px"> |
250d1e021
|
17 |
<v-toolbar color="white"> |
c35a8dafd
|
18 19 20 21 |
<v-spacer></v-spacer> <v-toolbar-title>Edit Profile</v-toolbar-title> <v-spacer></v-spacer> </v-toolbar> |
250d1e021
|
22 23 24 25 |
<v-card> <v-flex align-center justify-center layout text-xs-center> <v-avatar size="50px" style="position:absolute; top:10px; "> <img src="/static/icon/user.png"/></v-avatar> |
c35a8dafd
|
26 27 |
</v-flex> <v-card-text> |
e2e46164f
|
28 |
<v-container> |
c35a8dafd
|
29 |
<v-layout wrap justify-center> |
250d1e021
|
30 |
<v-flex xs12 sm9> |
09f34e0c8
|
31 |
<v-form ref="form" v-model="valid" lazy-validation> |
e2e46164f
|
32 |
|
250d1e021
|
33 |
<v-layout style="position:relative; top:15px;"> |
e2e46164f
|
34 35 36 37 38 39 |
<v-flex xs4 class="pt-4 subheading"> <label>First Name: </label> </v-flex> <v-flex xs8> <v-text-field v-model="editedItem.Name" |
269061695
|
40 |
v-validate="'required'" |
e2e46164f
|
41 |
:rules="nameRules" |
c35a8dafd
|
42 |
data-vv-name="Name" |
e2e46164f
|
43 44 |
required ></v-text-field></v-flex></v-layout> |
250d1e021
|
45 |
<v-layout> |
e2e46164f
|
46 47 48 49 |
<v-flex xs4 class="pt-4 subheading"> <label>Last Name: </label> </v-flex> <v-flex xs8> |
c35a8dafd
|
50 |
<v-text-field |
c35a8dafd
|
51 |
v-model="editedItem.LName" |
e2e46164f
|
52 53 54 55 56 57 58 59 60 61 62 63 64 |
v-validate="'required'" :rules="lnameRules" data-vv-name="Name" required ></v-text-field></v-flex></v-layout> <v-layout> <v-flex xs4 class="pt-4 subheading"> <label>Email ID: </label> </v-flex> <v-flex xs8> <v-text-field v-model="editedItem.Email" |
c35a8dafd
|
65 |
v-validate="'required|email'" |
e2e46164f
|
66 67 68 69 70 71 72 73 74 75 76 77 78 |
:rules="emailRules" data-vv-name="E-mail" required ></v-text-field></v-flex></v-layout> <v-layout> <v-flex xs4 class="pt-4 subheading"> <label>Date of Birth: </label> </v-flex> <v-flex xs8> <v-text-field v-model="editedItem.DOB" :rules="[rules.required, rules.min]" ></v-text-field></v-flex></v-layout> |
c35a8dafd
|
79 80 81 82 83 84 85 |
<v-card-actions> <v-btn round dark @click.native="close">Cancel</v-btn> <v-spacer></v-spacer> <v-btn round dark @click.native="save">Save</v-btn> </v-card-actions> |
250d1e021
|
86 87 |
</v-form> </v-flex> |
c35a8dafd
|
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
</v-layout> </v-container> </v-card-text> </v-card> </v-dialog> <v-dialog v-model="dialog1" max-width="500px"> <v-toolbar color="white"> <v-spacer></v-spacer> <v-toolbar-title>Profile</v-toolbar-title> <v-spacer></v-spacer> <v-icon @click="close1">close</v-icon> </v-toolbar> <v-card> <v-flex align-center justify-center layout text-xs-center> |
e2e46164f
|
105 |
<v-avatar size="50px" style="position:absolute; top:20px;"> |
269061695
|
106 |
<img src="/static/icon/user.png"/> </v-avatar> |
c35a8dafd
|
107 108 109 110 |
</v-flex> <v-card-text> <v-container grid-list-md> <v-layout wrap justify-center> |
e2e46164f
|
111 |
<v-flex offset-xs3 id="flex"> |
c35a8dafd
|
112 113 |
<br><br> |
e2e46164f
|
114 |
<table style="position:absolute; top:110px;"> |
c35a8dafd
|
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
<th> <tr><h5><b>First Name:</b></h5></tr><br> <tr><h5><b>Last Name:</b></h5></tr><br> <tr><h5><b>Email:</b></h5></tr><br> <tr><h5><b>Date Of Birth:</b></h5></tr> </th> <th> <tr><td><h5><b>{{ editedItem.Name }}</b></h5></td></tr><br> <tr> <td><h5><b>{{ editedItem.LName }}</b></h5></td></tr><br> <tr><td><h5><b>{{ editedItem.Email }}</b></h5></td></tr><br> <tr><td><h5><b>{{ editedItem.DOB }}</b></h5></td></tr> </th> </table> </v-flex> </v-layout> </v-container> </v-card-text> </v-card> </v-dialog> |
c35a8dafd
|
136 |
|
e173bab21
|
137 |
<v-dialog v-model="dialog2" width="700px"> |
269061695
|
138 139 140 141 142 |
<v-card> <div id="dialog"> <h4><b> Report </b> </h4> <h5 id="name"><b>Patient Name:</b> {{ editedItem.Name+' '+editedItem.LName }}</h5> <h5 id="m">Select Month:</h5> |
f84ff8f5a
|
143 |
<v-btn color="grey darken-3" id="G" v-on:click="component='report-generate'">Generate</v-btn> |
269061695
|
144 145 |
<v-spacer></v-spacer> <v-icon id="icon" @click="close2">close</v-icon> |
f84ff8f5a
|
146 |
|
269061695
|
147 |
<span id="bt"> |
f84ff8f5a
|
148 |
|
ab72cb628
|
149 150 151 152 |
<v-btn color="grey darken-2" v-on:click="component='one-month' , activebtn('existing')" v-bind:class="{ activebtn: isActivebtn }" flat>1 month</v-btn> <v-btn color="grey darken-2" v-on:click="component='three-month' , activebtn('new')" v-bind:class="{ activebtn: Activebtn1 }" flat>3 Month</v-btn> <v-btn color="grey darken-2" v-on:click="component='six-month' , activebtn('new1')" v-bind:class="{ activebtn: Activebtn2 }" flat>6 Month</v-btn> <v-btn color="grey darken-2" v-on:click="component='nine-month' , activebtn('new2')" v-bind:class="{ activebtn: Activebtn3 }" flat>9 Month</v-btn> |
789f8298f
|
153 |
<img id="e" @click="mail" src="/static/icon/email1.png"/> |
789f8298f
|
154 |
<img id="d" @click="download" src="/static/icon/download1.png"/> |
269061695
|
155 |
</span> |
f84ff8f5a
|
156 157 158 |
<component v-bind:is="component"></component> |
269061695
|
159 160 |
</div> </v-card> |
269061695
|
161 |
</v-dialog> |
93a68cfa1
|
162 |
<v-data-table |
c35a8dafd
|
163 164 |
:headers="headers" :items="desserts" |
5ac5570a9
|
165 |
:pagination.sync="pagination" |
c35a8dafd
|
166 167 |
> <template slot="items" slot-scope="props"> |
e2e46164f
|
168 169 170 |
<td id="td" class="text-xs-center">{{ props.item.No }}</td> <td id="td" class="text-xs-center">{{ props.item.Name+' '+props.item.LName }}</td> <td id="td" class="text-xs-center">{{ props.item.Email }}</td> |
269061695
|
171 172 |
|
4413a8d93
|
173 |
<td class="text-xs-center"> |
269061695
|
174 175 |
<span> |
4413a8d93
|
176 177 178 |
<img style="cursor:pointer; height:20px; " class="mr-5" @click="report(props.item)" src="/static/icon/List1.png"/> <img style="cursor:pointer; width:25px; height:18px; " class="mr-5" @click="profile(props.item)" src="/static/icon/eye1.png"/> <img style="cursor:pointer; width:20px; height:18px; " class="mr-5" @click="editItem(props.item)" src="/static/icon/edit1.png"/> |
269061695
|
179 180 |
<img style="cursor:pointer; height:20px; " class="mr-2" @click="deleteItem(props.item)" src="/static/icon/delete1.png"/> </span> |
c35a8dafd
|
181 |
</td> |
269061695
|
182 |
|
c35a8dafd
|
183 |
</template> |
4413a8d93
|
184 |
|
c35a8dafd
|
185 |
</v-data-table> |
93a68cfa1
|
186 187 188 189 190 |
</v-tab-item> <v-tab-item> <v-flex xs12 sm6 offset-sm3> |
04e3fbc56
|
191 |
<v-card flat> |
04e3fbc56
|
192 |
<v-container fluid fill-height> |
93a68cfa1
|
193 |
<v-layout align-center> |
04e3fbc56
|
194 195 |
<v-flex xs12 sm8 offset-sm2> <v-flex offset-sm5> |
269061695
|
196 197 |
<v-avatar size="55px"> <img src="/static/icon/user.png"/> </v-avatar> |
04e3fbc56
|
198 |
</v-flex> |
c35a8dafd
|
199 |
<v-form ref="form" v-model="valid" lazy-validation> |
4413a8d93
|
200 201 |
<v-layout> <v-flex xs4 class="pt-4 subheading"> |
e2e46164f
|
202 |
<label>First Name: </label> |
4413a8d93
|
203 204 205 |
</v-flex> <v-flex xs8> <v-text-field |
b34ed827a
|
206 |
v-model="AddUsercredentials.firstName" |
4413a8d93
|
207 208 209 210 211 212 213 214 215 216 |
:rules="nameRules" required ></v-text-field> </v-flex> </v-layout> <v-layout> <v-flex xs4 class="pt-4 subheading"> <label>Last Name: </label> </v-flex> <v-flex xs8> |
c35a8dafd
|
217 |
<v-text-field |
4413a8d93
|
218 |
:rules="lnameRules" |
b34ed827a
|
219 |
v-model="AddUsercredentials.lastName" |
c35a8dafd
|
220 221 |
required ></v-text-field> |
4413a8d93
|
222 223 224 225 |
</v-flex> </v-layout> <v-layout> <v-flex xs4 class="pt-4 subheading"> |
e2e46164f
|
226 |
<label>Email ID: </label> |
4413a8d93
|
227 228 |
</v-flex> <v-flex xs8> |
c35a8dafd
|
229 |
<v-text-field |
c35a8dafd
|
230 |
:rules="emailRules" |
b34ed827a
|
231 |
v-model="AddUsercredentials.email" |
c35a8dafd
|
232 |
required |
4413a8d93
|
233 234 235 236 237 238 239 240 241 |
></v-text-field> </v-flex> </v-layout> <v-layout> <v-flex xs4 class="pt-4 subheading"> <label>Date of Birth: </label> </v-flex> <v-flex xs8> |
93a68cfa1
|
242 |
<v-text-field |
04e3fbc56
|
243 |
:rules="[rules.required, rules.min]" |
b34ed827a
|
244 |
v-model="AddUsercredentials.dob" |
4413a8d93
|
245 246 247 248 249 |
required ></v-text-field> </v-flex> </v-layout> <v-card-actions> |
c35a8dafd
|
250 251 252 253 254 255 |
<v-btn @click="clear" round dark>clear</v-btn> <v-spacer></v-spacer> <v-btn @click="submit" round dark> Add </v-btn> </v-card-actions> </v-form> |
93a68cfa1
|
256 257 258 259 260 |
</v-flex> </v-layout> </v-container> </v-card> </v-flex> |
c35a8dafd
|
261 |
</v-tab-item> |
93a68cfa1
|
262 263 264 265 266 267 |
</v-tabs> </template> <script> |
f84ff8f5a
|
268 269 270 271 272 |
import onemonth from '@/components/report/onemonth.vue'; import threemonth from '@/components/report/threemonth.vue'; import sixmonth from '@/components/report/sixmonth.vue'; import ninemonth from '@/components/report/ninemonth.vue'; import generatereport from '@/components/report/generatereport.vue'; |
c35a8dafd
|
273 |
import axios from 'axios'; |
93a68cfa1
|
274 |
export default { |
f84ff8f5a
|
275 276 277 278 279 280 281 |
components: { 'one-month': onemonth, 'three-month': threemonth, 'six-month': sixmonth, 'nine-month': ninemonth, 'report-generate': generatereport, }, |
93a68cfa1
|
282 |
data: () => ({ |
f84ff8f5a
|
283 |
component: 'report-generate', |
c35a8dafd
|
284 285 |
No: '', Name: '', |
04e3fbc56
|
286 |
LName: '', |
c35a8dafd
|
287 |
Email: '', |
93a68cfa1
|
288 |
DOB: '', |
93a68cfa1
|
289 |
search: '', |
b34ed827a
|
290 291 292 293 |
firstName: '', lastName: '', email: '', dob: '', |
93a68cfa1
|
294 |
dialog: false, |
c35a8dafd
|
295 296 297 |
dialog1: false, dialog2: false, valid: true, |
ee83012b3
|
298 299 |
isActive: true, newActive: false, |
ab72cb628
|
300 301 302 303 |
isActivebtn: false, Activebtn1: false, Activebtn2: false, Activebtn3: false, |
defcc5da3
|
304 305 306 307 308 |
loader: null, loading: false, loading2: false, loading3: false, loading4: false, |
b34ed827a
|
309 |
AddUsercredentials: {}, |
5ac5570a9
|
310 311 312 |
pagination: { rowsPerPage: 10 }, |
04e3fbc56
|
313 |
rules: { |
5ac5570a9
|
314 |
required: value => !!value || 'Date of Birth is Required.', |
ee83012b3
|
315 316 317 318 319 320 |
min: v => (/^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/.test( v ) && v.length > 0) || 'Please enter a date in the format dd/mm/yyyy' |
04e3fbc56
|
321 |
}, |
4413a8d93
|
322 |
nameRules: [v => !!v || ' First Name is required'], |
c35a8dafd
|
323 324 325 326 |
emailRules: [ v => !!v || 'E-mail is required', v => /.+@.+/.test(v) || 'E-mail must be valid' ], |
4413a8d93
|
327 |
lnameRules: [v => !!v || ' Last Name is required'], |
93a68cfa1
|
328 329 330 |
headers: [ { text: 'No', |
e2e46164f
|
331 |
align: 'center', |
93a68cfa1
|
332 |
sortable: false, |
c35a8dafd
|
333 |
value: 'No' |
93a68cfa1
|
334 |
}, |
e2e46164f
|
335 336 337 |
{ text: 'Name', value: 'Name', sortable: false, align: 'center' }, { text: 'Email', value: 'Email', sortable: false, align: 'center' }, { text: '', value: '', sortable: false, align: 'center' } |
c35a8dafd
|
338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 |
], desserts: [ { No: 1, Name: 'Amit', LName: 'goyal', Email: 'jsi@gmail.com', DOB: '22/09/1996' }, { No: 2, Name: 'Sumit', LName: 'kumar', Email: 'aasi@gmail.com', DOB: '16/09/1997' |
e2e46164f
|
353 |
} |
93a68cfa1
|
354 |
], |
93a68cfa1
|
355 356 357 358 |
editedIndex: -1, editedItem: { No: '', Name: '', |
c35a8dafd
|
359 |
LName: '', |
ee83012b3
|
360 |
Email: '' |
93a68cfa1
|
361 362 363 364 |
}, defaultItem: { No: '', Name: '', |
c35a8dafd
|
365 |
LName: '', |
ee83012b3
|
366 |
Email: '' |
c35a8dafd
|
367 |
} |
93a68cfa1
|
368 |
}), |
4413a8d93
|
369 370 371 372 373 374 375 376 |
// computed: { // pages () { // if (this.pagination.rowsPerPage == null || // this.pagination.totalItems == null // ) return 0; // return Math.ceil(this.pagination.totalItems / this.pagination.rowsPerPage); // } // }, |
93a68cfa1
|
377 |
methods: { |
e173bab21
|
378 379 |
getPatientList(){ var token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjViZWQyYTRkMDRlZGE3ZTBiNzcwYjg5YiIsImVtYWlsIjoiYWRtaW5AZ21haWwuY29tIiwiaWF0IjoxNTQyMzQzNzg3LCJleHAiOjE1NDIzNDM5MDd9.diDjMkhRXvpdpXxibfsE9EmIb5G-39Bcy3qdzA0rREg" |
e9818ce3a
|
380 |
axios.get('http://18.208.28.55:3000/v1/patientList',{headers: {Authorization: 'Bearer '+token}}) |
e173bab21
|
381 382 383 384 385 386 |
.then(response => { console.log("response=====>",response.data); }).catch(err => { console.log("err====>",err); }) }, |
93a68cfa1
|
387 388 389 390 391 |
editItem (item) { this.editedIndex = this.desserts.indexOf(item); this.editedItem = Object.assign({}, item); this.dialog = true; }, |
c35a8dafd
|
392 393 394 395 396 397 398 399 400 |
profile (item) { this.editedIndex = this.desserts.indexOf(item); this.editedItem = Object.assign({}, item); this.dialog1 = true; }, report (item) { this.editedIndex = this.desserts.indexOf(item); this.editedItem = Object.assign({}, item); this.dialog2 = true; |
a259e694f
|
401 |
}, |
93a68cfa1
|
402 403 404 405 406 407 |
deleteItem (item) { const index = this.desserts.indexOf(item); confirm('Are you sure you want to delete this item?') && this.desserts.splice(index, 1); }, |
ee83012b3
|
408 409 410 411 412 413 414 415 416 417 418 419 420 |
activeTab (type) { switch (type) { case 'existing': this.newActive = false; this.isActive = true; break; default: this.newActive = true; this.isActive = false; break; } }, |
ab72cb628
|
421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 |
activebtn (type) { switch (type) { case 'existing': this.Activebtn3 = false; this.Activebtn2 = false; this.Activebtn1 = false; this.isActivebtn = true; break; case 'new': this.Activebtn3 = false; this.Activebtn2 = false; this.Activebtn1 = true; this.isActivebtn = false; break; case 'new1': this.Activebtn3 = false; this.Activebtn2 = true; this.Activebtn1 = false; this.isActivebtn = false; break; default: this.Activebtn3 = true; this.Activebtn2 = false; this.Activebtn1 = false; this.isActivebtn = false; break; } }, |
93a68cfa1
|
449 450 451 452 453 454 455 |
close () { this.dialog = false; setTimeout(() => { this.editedItem = Object.assign({}, this.defaultItem); this.editedIndex = -1; }, 300); }, |
c35a8dafd
|
456 457 458 459 460 461 462 463 |
close1 () { this.dialog1 = false; }, close2 () { this.dialog2 = false; }, submit () { if (this.$refs.form.validate()) { |
b34ed827a
|
464 |
console.log('=clicked==', this.AddUsercredentials); |
e9818ce3a
|
465 466 467 468 469 470 471 |
var token ="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjViZWQyYTRkMDRlZGE3ZTBiNzcwYjg5YiIsImVtYWlsIjoiamF0aW5kZXIuc2luZ2hAdmlpdGhpaXN5cy5jb20iLCJpYXQiOjE1NDIzNjE2NjAsImV4cCI6MTU0MjM2MTc4MH0.SLGvEfihgMLqI1It3r76I2aLaA15fIhCvF_OgQwjxTw" var userdata = { "name":this.AddUsercredentials.name, // "name":this.AddUsercredentials.userName, "email":this.AddUsercredentials.email, "dob":this.AddUsercredentials.dob } |
c35a8dafd
|
472 473 |
} }, |
789f8298f
|
474 |
mail () { |
4413a8d93
|
475 |
// this.editedIndex = this.desserts.indexOf(); |
789f8298f
|
476 477 |
}, download () { |
4413a8d93
|
478 479 |
// this.editedIndex = this.desserts.indexOf(); |
789f8298f
|
480 |
}, |
ee83012b3
|
481 482 483 |
clear () { this.$refs.form.reset(); }, |
93a68cfa1
|
484 |
save () { |
09f34e0c8
|
485 486 487 488 489 490 491 492 |
if (this.$refs.form.validate()) { console.log('editedItem', this.editedItem); if (this.editedIndex > -1) { Object.assign(this.desserts[this.editedIndex], this.editedItem); } else { this.desserts.push(this.editedItem); } this.close(); |
93a68cfa1
|
493 |
} |
93a68cfa1
|
494 |
} |
4413a8d93
|
495 |
}, |
e173bab21
|
496 497 498 |
mounted(){ this.getPatientList(); } |
93a68cfa1
|
499 |
}; |
93a68cfa1
|
500 |
</script> |
04e3fbc56
|
501 |
<style scoped> |
ee83012b3
|
502 |
.v-card__actions .v-btn { |
04e3fbc56
|
503 504 505 |
margin: 0 15px; min-width: 120px; } |
8fc85e8ec
|
506 |
|
ee83012b3
|
507 508 509 510 511 |
h4 { background-repeat: no-repeat; padding: 8px; margin: auto; font-size: 25px; |
269061695
|
512 |
} |
ee83012b3
|
513 514 515 516 |
#name { position: absolute; left: 100px; top: 17px; |
269061695
|
517 |
} |
ee83012b3
|
518 |
#icon { |
269061695
|
519 520 521 522 |
position: absolute; right: 8px; top: 8px; } |
ee83012b3
|
523 |
#m { |
269061695
|
524 525 |
position: relative; left: 135px; |
c1fd43e24
|
526 |
top: -15px; |
269061695
|
527 |
} |
ee83012b3
|
528 529 530 |
#G { position: absolute; top: 38px; |
f84ff8f5a
|
531 |
color: white; |
269061695
|
532 |
} |
ee83012b3
|
533 |
#bt { |
269061695
|
534 |
position: relative; |
ee83012b3
|
535 536 |
top: -20px; left: 115px; |
269061695
|
537 |
} |
ee83012b3
|
538 539 |
#e { position: relative; |
defcc5da3
|
540 541 |
top: 5px; right: -30px; |
269061695
|
542 543 544 |
height: 17px; cursor: pointer; } |
ee83012b3
|
545 546 |
#d { position: relative; |
defcc5da3
|
547 548 |
top: 5px; right: -70px; |
ee83012b3
|
549 550 |
height: 17px; cursor: pointer; |
269061695
|
551 552 |
} #td { |
ee83012b3
|
553 554 555 |
border: 1px solid #dddddd; text-align: left; padding: 8px; |
269061695
|
556 |
} |
ee83012b3
|
557 558 |
#dialog { height: 550px; |
e173bab21
|
559 |
|
ee83012b3
|
560 561 562 563 |
} .active { background-color: black; color: white !important; |
269061695
|
564 |
} |
ab72cb628
|
565 566 567 |
.activebtn { color: black !important; } |
e2e46164f
|
568 |
#flex{ |
250d1e021
|
569 |
height: 300px; |
e2e46164f
|
570 |
} |
04e3fbc56
|
571 |
</style> |