Blame view
src/pages/Provider.vue
12.3 KB
93a68cfa1
|
1 |
<template> |
eba96ec51
|
2 |
<v-flex xs12> |
f7979ec1a
|
3 |
<app-toolbar class="app--toolbar"></app-toolbar> |
eba96ec51
|
4 5 6 7 8 9 10 |
<v-card> <v-card-title> <v-flex xs12 lg2 md3 sm4> <h4 class="text-xs-center">Healthcare Providers</h4> </v-flex> <v-spacer></v-spacer> <!-- SEARCH ALL HEALTH PROVIDER --> |
659b42db7
|
11 |
<v-flex xs12 sm4 lg3 class="top"> |
eba96ec51
|
12 13 14 |
<v-text-field justify-right prepend-icon="search" |
d6b5a579c
|
15 |
v-model="term" |
eba96ec51
|
16 17 |
label="Find Yours Users" color="black" |
d6b5a579c
|
18 |
@change="getProviderList" |
eba96ec51
|
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
></v-text-field> </v-flex> </v-card-title> <!-- EDIT HEALTH PROVIDER --> <v-snackbar :timeout="timeout" :top="y === 'top'" :right="x === 'right'" :vertical="mode === 'vertical'" v-model="snackbar" color="success" >{{ text }}</v-snackbar> <v-dialog v-model="dialog" max-width="500px"> <v-toolbar color="white"> <v-spacer></v-spacer> <v-toolbar-title>Edit Profile</v-toolbar-title> <v-spacer></v-spacer> </v-toolbar> <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> </v-flex> |
93a68cfa1
|
43 |
<v-card-text> |
eba96ec51
|
44 |
<v-container grid-list-md> |
03dcbf0c1
|
45 |
<v-layout wrap justify-center> |
eba96ec51
|
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
<v-flex xs12 sm9> <v-form ref="form" v-model="valid" lazy-validation> <v-layout style="position:relative; top:15px; "> <v-flex xs4 class="pt-4 subheading"> <label>First Name:</label> </v-flex> <v-flex xs8> <v-text-field v-model="editedItem.name" :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> <v-text-field v-model="editedItem.lastname" 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" :rules="emailRules" data-vv-name="E-mail" required ></v-text-field> </v-flex> </v-layout> <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> </v-form> </v-flex> </v-layout> </v-container> </v-card-text> </v-card> </v-dialog> |
dd4ecae1d
|
89 |
<!-- VIEW PROFILE OF PRVIDE LIST --> |
eba96ec51
|
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
<v-dialog v-model="dialog1" max-width="700px"> <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> <v-avatar size="60px" style="position:absolute; top:10px;"> <img src="/static/icon/user.png"> </v-avatar> </v-flex> <v-card-text> <v-container grid-list-md> <v-layout wrap justify-center> <v-flex sm12 offset-sm3> <br> <br> <v-layout> <v-flex xs4> <h5 class="right">First Name:</h5> |
03dcbf0c1
|
112 113 |
</v-flex> <v-flex xs8> |
eba96ec51
|
114 115 116 |
<h5 class="left">{{ editedItem.name }}</h5> </v-flex> </v-layout> |
03dcbf0c1
|
117 |
<v-layout> |
eba96ec51
|
118 119 |
<v-flex xs4> <h5 class="right my-3">Last Name:</h5> |
03dcbf0c1
|
120 121 |
</v-flex> <v-flex xs8> |
eba96ec51
|
122 123 124 |
<h5 class="my-3 left">{{ editedItem.name }}</h5> </v-flex> </v-layout> |
03dcbf0c1
|
125 |
<v-layout> |
eba96ec51
|
126 127 |
<v-flex xs4> <h5 class="right">Email:</h5> |
03dcbf0c1
|
128 129 |
</v-flex> <v-flex xs8> |
eba96ec51
|
130 131 132 |
<h5 class="left">{{ editedItem.email }}</h5> </v-flex> </v-layout> |
03dcbf0c1
|
133 134 135 |
</v-flex> </v-layout> </v-container> |
eba96ec51
|
136 137 |
</v-card-text> </v-card> |
dd4ecae1d
|
138 |
<!-- PROVIDER DATA TABLE OF PROVIDER DEATILS --> |
eba96ec51
|
139 140 141 142 |
</v-dialog> <v-data-table :headers="headers" :items="desserts" |
eba96ec51
|
143 144 |
class="elevation-1" :pagination.sync="pagination" |
dd4ecae1d
|
145 |
:search="term" |
eba96ec51
|
146 147 148 149 150 151 152 153 154 155 |
> <template slot="items" slot-scope="props"> <v-snackbar :timeout="timeout" :top="y === 'top'" :right="x === 'right'" :vertical="mode === 'vertical'" v-model="statussnackbar" color="success" >{{ text }}</v-snackbar> |
03dcbf0c1
|
156 157 158 159 160 |
<td id="td" class="text-xs-center">{{ props.index }}</td> <td id="td" class="text-xs-center">{{ props.item.name}}</td> <td id="td" class="text-xs-center">{{ props.item.email }}</td> <td id="td" class="text-xs-center"> <v-flex xs12 sm12> |
eba96ec51
|
161 162 163 164 165 166 167 168 169 |
<v-select :items="statusList" @change="changeswitch(props.item)" v-model="props.item.e1" menu-props="auto" :label="props.item.verified" hide-details single-line ></v-select> |
c1fd43e24
|
170 |
</v-flex> |
eba96ec51
|
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
</td> <td class="text-xs-center"> <span> <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" > <img style="cursor:pointer; height:20px; " class="mr-5" @click="deleteItem(props.item)" src="/static/icon/delete1.png" > </span> </td> </template> <v-alert slot="no-results" :value="true" color="error" icon="warning" |
d6b5a579c
|
200 |
>Your search for "{{ term }}" found no results.</v-alert> |
eba96ec51
|
201 202 203 |
</v-data-table> </v-card> </v-flex> |
93a68cfa1
|
204 205 |
</template> <script> |
eba96ec51
|
206 |
import http from "@/Services/http.js"; |
f7979ec1a
|
207 |
import AppToolbar from '@/components/AppToolbar'; |
93a68cfa1
|
208 |
export default { |
f7979ec1a
|
209 210 211 |
components: { AppToolbar, }, |
93a68cfa1
|
212 |
data: () => ({ |
03dcbf0c1
|
213 |
snackbar: false, |
eba96ec51
|
214 |
statussnackbar: false, |
03dcbf0c1
|
215 216 217 218 219 |
y: "top", x: "right", mode: "", timeout: 3000, text: "", |
eba96ec51
|
220 221 |
valid: "", modaledit: false, |
93a68cfa1
|
222 223 |
dialog: false, dialog1: false, |
eba96ec51
|
224 |
statusList: ["APPROVED", "DECLINED"], |
d6b5a579c
|
225 |
term:'', |
eba96ec51
|
226 |
e1: "", |
c35a8dafd
|
227 |
rules: { |
eba96ec51
|
228 229 230 231 232 233 234 |
required: value => !!value || "This field is Required.", 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" |
c35a8dafd
|
235 |
}, |
eba96ec51
|
236 |
nameRules: [v => !!v || " First Name is required"], |
03dcbf0c1
|
237 |
// lnameRules: [v => !!v || ' Last Name is required'], |
e2e46164f
|
238 |
emailRules: [ |
eba96ec51
|
239 240 |
v => !!v || "E-mail is required", v => /.+@.+/.test(v) || "E-mail must be valid" |
e2e46164f
|
241 |
], |
5ac5570a9
|
242 |
pagination: { |
eba96ec51
|
243 |
rowsPerPage: 13 |
5ac5570a9
|
244 |
}, |
93a68cfa1
|
245 |
headers: [ |
eba96ec51
|
246 247 248 |
{ text: "No", align: "center", |
93a68cfa1
|
249 |
sortable: false, |
eba96ec51
|
250 |
value: "no" |
93a68cfa1
|
251 |
}, |
eba96ec51
|
252 253 254 255 |
{ text: "Name", value: "name", sortable: false, align: "center" }, { text: "Email", value: "email", sortable: false, align: "center" }, { text: "Status", value: "verified", sortable: false, align: "center" }, { text: "", value: "", sortable: false } |
93a68cfa1
|
256 257 258 259 |
], desserts: [], editedIndex: -1, editedItem: { |
eba96ec51
|
260 261 262 263 264 |
No: "", Name: "", lastname: "", Email: "", dob: "" |
93a68cfa1
|
265 266 |
}, defaultItem: { |
eba96ec51
|
267 268 269 270 271 272 |
No: "", Name: "", lastname: "", Email: "", dob: "" } |
93a68cfa1
|
273 |
}), |
93a68cfa1
|
274 |
watch: { |
eba96ec51
|
275 |
dialog(val) { |
93a68cfa1
|
276 277 278 |
val || this.close(); } }, |
eba96ec51
|
279 |
created() { |
93a68cfa1
|
280 281 |
this.initialize(); }, |
eba96ec51
|
282 |
mounted() { |
e173bab21
|
283 284 |
this.getProviderList(); }, |
93a68cfa1
|
285 |
methods: { |
eba96ec51
|
286 287 |
getProviderList() { var token = this.$store.state.token; |
d6b5a579c
|
288 289 290 291 292 293 294 295 296 297 298 |
// http() // .get("/provider-list", { // headers: { Authorization: "Bearer " + token } // }) // .then(response => { // this.desserts = response.data.data.providerList; // }) // .catch(err => { // console.log("err====>", err); // }); // var token = this.$store.state.token; |
eba96ec51
|
299 |
http() |
d6b5a579c
|
300 |
.get("/provider-list?term=" + this.term, { |
eba96ec51
|
301 302 |
headers: { Authorization: "Bearer " + token } }) |
e173bab21
|
303 |
.then(response => { |
03dcbf0c1
|
304 |
this.desserts = response.data.data.providerList; |
eba96ec51
|
305 306 307 308 |
}) .catch(err => { console.log("err====>", err); }); |
e173bab21
|
309 |
}, |
eba96ec51
|
310 |
initialize() { |
03dcbf0c1
|
311 |
this.desserts = []; |
93a68cfa1
|
312 |
}, |
eba96ec51
|
313 |
editItem(item) { |
93a68cfa1
|
314 315 316 317 |
this.editedIndex = this.desserts.indexOf(item); this.editedItem = Object.assign({}, item); this.dialog = true; }, |
eba96ec51
|
318 |
profile(item) { |
a259e694f
|
319 320 |
this.editedIndex = this.desserts.indexOf(item); this.editedItem = Object.assign({}, item); |
04e3fbc56
|
321 322 |
this.dialog1 = true; }, |
eba96ec51
|
323 |
changeswitch(item) { |
03dcbf0c1
|
324 |
let addStatus = { |
eba96ec51
|
325 326 |
userId: item.userId, status: item.e1 |
03dcbf0c1
|
327 |
}; |
eba96ec51
|
328 329 |
http() .post("/approve-decline", addStatus) |
03dcbf0c1
|
330 331 |
.then(response => { if ((this.statussnackbar = true)) { |
eba96ec51
|
332 |
this.text = "Successfully change your status is" + " " + item.e1; |
03dcbf0c1
|
333 334 335 336 337 338 339 |
} this.getProviderList(); }) .catch(error => { console.log(error); }); }, |
eba96ec51
|
340 |
deleteItem(item) { |
03dcbf0c1
|
341 |
let addUsers = { |
eba96ec51
|
342 |
userId: item.userId |
03dcbf0c1
|
343 |
}; |
eba96ec51
|
344 |
http() |
ac10393a4
|
345 |
.post("/deleteProvider", confirm('Are you sure you want to delete this?') && addUsers) |
03dcbf0c1
|
346 |
.then(response => { |
eba96ec51
|
347 |
if ((this.snackbar = true)) { |
03dcbf0c1
|
348 |
this.text = "Successfully delete Health Care Priovider"; |
eba96ec51
|
349 |
} |
03dcbf0c1
|
350 351 352 353 354 |
this.getProviderList(); }) .catch(error => { console.log(error); }); |
93a68cfa1
|
355 |
}, |
eba96ec51
|
356 |
close() { |
93a68cfa1
|
357 358 359 360 361 362 |
this.dialog = false; setTimeout(() => { this.editedItem = Object.assign({}, this.defaultItem); this.editedIndex = -1; }, 300); }, |
eba96ec51
|
363 |
close1() { |
04e3fbc56
|
364 365 |
this.dialog1 = false; }, |
93a68cfa1
|
366 |
|
eba96ec51
|
367 368 |
save() { let editUsers = { |
ac10393a4
|
369 |
name: this.editedItem.name + " " + this.editedItem.lastname, |
eba96ec51
|
370 |
dob: this.editedItem.dob, |
03dcbf0c1
|
371 372 |
email: this.editedItem.email, userId: this.editedItem.userId |
eba96ec51
|
373 374 375 |
}; http() .post("/provider-detail", editUsers) |
03dcbf0c1
|
376 |
.then(response => { |
eba96ec51
|
377 |
if ((this.snackbar = true)) { |
03dcbf0c1
|
378 379 380 381 382 383 384 |
this.text = "Successfully Edit Health Care Priovider"; } this.getProviderList(); }) .catch(error => { console.log(error); }); |
eba96ec51
|
385 |
this.close(); |
93a68cfa1
|
386 |
} |
eba96ec51
|
387 |
} |
93a68cfa1
|
388 |
}; |
04e3fbc56
|
389 390 391 |
</script> <style scoped> .v-card__actions .v-btn { |
eba96ec51
|
392 393 |
margin: 0px; min-width: 120px; |
04e3fbc56
|
394 |
} |
269061695
|
395 |
#td { |
eba96ec51
|
396 397 |
border: 1px solid #dddddd; padding: 8px; |
269061695
|
398 |
} |
eba96ec51
|
399 400 |
#flex { height: 300px; |
03dcbf0c1
|
401 |
} |
eba96ec51
|
402 |
.v-select_selctions.v-select_slot.v-select_selection { |
03dcbf0c1
|
403 404 |
color: black !important; } |
659b42db7
|
405 406 407 408 409 410 |
@media screen and (max-width: 769px){ .top{ margin-top:30px; } } |
eba96ec51
|
411 412 |
@media screen and (max-width: 476px) { .flex.xs4 { |
03dcbf0c1
|
413 414 |
flex-basis: 55.666667%; max-width: 71.666667%; |
eba96ec51
|
415 |
} |
03dcbf0c1
|
416 |
} |
eba96ec51
|
417 418 |
@media screen and (max-width: 402px) { h5 { |
03dcbf0c1
|
419 |
font-size: 13px; |
eba96ec51
|
420 421 |
} /* .right{ |
03dcbf0c1
|
422 423 |
float:none !important; } */ |
eba96ec51
|
424 425 426 |
.left { float: none !important; } |
03dcbf0c1
|
427 |
} |
03dcbf0c1
|
428 |
</style> |
789f8298f
|
429 |