Blame view
src/pages/Provider.vue
11.8 KB
93a68cfa1
|
1 |
<template> |
eba96ec51
|
2 3 4 5 6 7 8 9 10 |
<!-- <v-container fluid> --> <v-flex xs12> <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 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<v-text-field justify-right prepend-icon="search" v-model="search" label="Find Yours Users" color="black" ></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
|
42 |
<v-card-text> |
eba96ec51
|
43 |
<v-container grid-list-md> |
03dcbf0c1
|
44 |
<v-layout wrap justify-center> |
eba96ec51
|
45 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 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
<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> <!-- VIEW PROFILE PRVIDE LIST --> <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
|
111 112 |
</v-flex> <v-flex xs8> |
eba96ec51
|
113 114 115 |
<h5 class="left">{{ editedItem.name }}</h5> </v-flex> </v-layout> |
03dcbf0c1
|
116 |
<v-layout> |
eba96ec51
|
117 118 |
<v-flex xs4> <h5 class="right my-3">Last Name:</h5> |
03dcbf0c1
|
119 120 |
</v-flex> <v-flex xs8> |
eba96ec51
|
121 122 123 |
<h5 class="my-3 left">{{ editedItem.name }}</h5> </v-flex> </v-layout> |
03dcbf0c1
|
124 |
<v-layout> |
eba96ec51
|
125 126 |
<v-flex xs4> <h5 class="right">Email:</h5> |
03dcbf0c1
|
127 128 |
</v-flex> <v-flex xs8> |
eba96ec51
|
129 130 131 |
<h5 class="left">{{ editedItem.email }}</h5> </v-flex> </v-layout> |
03dcbf0c1
|
132 133 134 |
</v-flex> </v-layout> </v-container> |
eba96ec51
|
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
</v-card-text> </v-card> <!-- PROVIDER DATA TABLE PROVIDER DEATILS --> </v-dialog> <v-data-table :headers="headers" :items="desserts" :search="search" class="elevation-1" :pagination.sync="pagination" > <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
|
155 156 157 158 159 |
<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
|
160 161 162 163 164 165 166 167 168 |
<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
|
169 |
</v-flex> |
eba96ec51
|
170 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 200 201 202 203 |
</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" >Your search for "{{ search }}" found no results.</v-alert> </v-data-table> </v-card> </v-flex> <!-- </v-container> --> |
93a68cfa1
|
204 205 |
</template> <script> |
eba96ec51
|
206 |
import http from "@/Services/http.js"; |
93a68cfa1
|
207 208 |
export default { data: () => ({ |
03dcbf0c1
|
209 |
snackbar: false, |
eba96ec51
|
210 |
statussnackbar: false, |
03dcbf0c1
|
211 212 213 214 215 |
y: "top", x: "right", mode: "", timeout: 3000, text: "", |
eba96ec51
|
216 217 |
valid: "", modaledit: false, |
93a68cfa1
|
218 219 |
dialog: false, dialog1: false, |
eba96ec51
|
220 221 222 |
statusList: ["APPROVED", "DECLINED"], search: "", e1: "", |
c35a8dafd
|
223 |
rules: { |
eba96ec51
|
224 225 226 227 228 229 230 |
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
|
231 |
}, |
eba96ec51
|
232 |
nameRules: [v => !!v || " First Name is required"], |
03dcbf0c1
|
233 |
// lnameRules: [v => !!v || ' Last Name is required'], |
e2e46164f
|
234 |
emailRules: [ |
eba96ec51
|
235 236 |
v => !!v || "E-mail is required", v => /.+@.+/.test(v) || "E-mail must be valid" |
e2e46164f
|
237 |
], |
5ac5570a9
|
238 |
pagination: { |
eba96ec51
|
239 |
rowsPerPage: 13 |
5ac5570a9
|
240 |
}, |
93a68cfa1
|
241 |
headers: [ |
eba96ec51
|
242 243 244 |
{ text: "No", align: "center", |
93a68cfa1
|
245 |
sortable: false, |
eba96ec51
|
246 |
value: "no" |
93a68cfa1
|
247 |
}, |
eba96ec51
|
248 249 250 251 |
{ 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
|
252 253 254 255 |
], desserts: [], editedIndex: -1, editedItem: { |
eba96ec51
|
256 257 258 259 260 |
No: "", Name: "", lastname: "", Email: "", dob: "" |
93a68cfa1
|
261 262 |
}, defaultItem: { |
eba96ec51
|
263 264 265 266 267 268 |
No: "", Name: "", lastname: "", Email: "", dob: "" } |
93a68cfa1
|
269 |
}), |
93a68cfa1
|
270 |
watch: { |
eba96ec51
|
271 |
dialog(val) { |
93a68cfa1
|
272 273 274 |
val || this.close(); } }, |
eba96ec51
|
275 |
created() { |
93a68cfa1
|
276 277 |
this.initialize(); }, |
eba96ec51
|
278 |
mounted() { |
e173bab21
|
279 280 |
this.getProviderList(); }, |
93a68cfa1
|
281 |
methods: { |
eba96ec51
|
282 283 284 285 286 287 |
getProviderList() { var token = this.$store.state.token; http() .get("/provider-list", { headers: { Authorization: "Bearer " + token } }) |
e173bab21
|
288 |
.then(response => { |
03dcbf0c1
|
289 |
this.desserts = response.data.data.providerList; |
eba96ec51
|
290 291 292 293 |
}) .catch(err => { console.log("err====>", err); }); |
e173bab21
|
294 |
}, |
eba96ec51
|
295 |
initialize() { |
03dcbf0c1
|
296 |
this.desserts = []; |
93a68cfa1
|
297 |
}, |
eba96ec51
|
298 |
editItem(item) { |
93a68cfa1
|
299 300 301 302 |
this.editedIndex = this.desserts.indexOf(item); this.editedItem = Object.assign({}, item); this.dialog = true; }, |
eba96ec51
|
303 |
profile(item) { |
a259e694f
|
304 305 |
this.editedIndex = this.desserts.indexOf(item); this.editedItem = Object.assign({}, item); |
04e3fbc56
|
306 307 |
this.dialog1 = true; }, |
eba96ec51
|
308 |
changeswitch(item) { |
03dcbf0c1
|
309 |
let addStatus = { |
eba96ec51
|
310 311 |
userId: item.userId, status: item.e1 |
03dcbf0c1
|
312 |
}; |
eba96ec51
|
313 314 |
http() .post("/approve-decline", addStatus) |
03dcbf0c1
|
315 316 |
.then(response => { if ((this.statussnackbar = true)) { |
eba96ec51
|
317 |
this.text = "Successfully change your status is" + " " + item.e1; |
03dcbf0c1
|
318 319 320 321 322 323 324 |
} this.getProviderList(); }) .catch(error => { console.log(error); }); }, |
eba96ec51
|
325 |
deleteItem(item) { |
03dcbf0c1
|
326 |
let addUsers = { |
eba96ec51
|
327 |
userId: item.userId |
03dcbf0c1
|
328 |
}; |
eba96ec51
|
329 330 |
http() .post("/deleteProvider", addUsers) |
03dcbf0c1
|
331 |
.then(response => { |
eba96ec51
|
332 |
if ((this.snackbar = true)) { |
03dcbf0c1
|
333 |
this.text = "Successfully delete Health Care Priovider"; |
eba96ec51
|
334 |
} |
03dcbf0c1
|
335 336 337 338 339 |
this.getProviderList(); }) .catch(error => { console.log(error); }); |
93a68cfa1
|
340 |
}, |
eba96ec51
|
341 |
close() { |
93a68cfa1
|
342 343 344 345 346 347 |
this.dialog = false; setTimeout(() => { this.editedItem = Object.assign({}, this.defaultItem); this.editedIndex = -1; }, 300); }, |
eba96ec51
|
348 |
close1() { |
04e3fbc56
|
349 350 |
this.dialog1 = false; }, |
93a68cfa1
|
351 |
|
eba96ec51
|
352 353 354 355 |
save() { let editUsers = { name: this.editedItem.name + this.editedItem.lastname, dob: this.editedItem.dob, |
03dcbf0c1
|
356 357 |
email: this.editedItem.email, userId: this.editedItem.userId |
eba96ec51
|
358 359 360 |
}; http() .post("/provider-detail", editUsers) |
03dcbf0c1
|
361 |
.then(response => { |
eba96ec51
|
362 |
if ((this.snackbar = true)) { |
03dcbf0c1
|
363 364 365 366 367 368 369 |
this.text = "Successfully Edit Health Care Priovider"; } this.getProviderList(); }) .catch(error => { console.log(error); }); |
eba96ec51
|
370 |
this.close(); |
93a68cfa1
|
371 |
} |
eba96ec51
|
372 |
} |
93a68cfa1
|
373 |
}; |
04e3fbc56
|
374 375 376 |
</script> <style scoped> .v-card__actions .v-btn { |
eba96ec51
|
377 378 |
margin: 0px; min-width: 120px; |
04e3fbc56
|
379 |
} |
269061695
|
380 |
#td { |
eba96ec51
|
381 382 |
border: 1px solid #dddddd; padding: 8px; |
269061695
|
383 |
} |
eba96ec51
|
384 385 |
#flex { height: 300px; |
03dcbf0c1
|
386 |
} |
eba96ec51
|
387 |
.v-select_selctions.v-select_slot.v-select_selection { |
03dcbf0c1
|
388 389 |
color: black !important; } |
659b42db7
|
390 391 392 393 394 395 |
@media screen and (max-width: 769px){ .top{ margin-top:30px; } } |
eba96ec51
|
396 397 |
@media screen and (max-width: 476px) { .flex.xs4 { |
03dcbf0c1
|
398 399 |
flex-basis: 55.666667%; max-width: 71.666667%; |
eba96ec51
|
400 |
} |
03dcbf0c1
|
401 |
} |
eba96ec51
|
402 403 |
@media screen and (max-width: 402px) { h5 { |
03dcbf0c1
|
404 |
font-size: 13px; |
eba96ec51
|
405 406 |
} /* .right{ |
03dcbf0c1
|
407 408 |
float:none !important; } */ |
eba96ec51
|
409 410 411 |
.left { float: none !important; } |
03dcbf0c1
|
412 |
} |
03dcbf0c1
|
413 |
</style> |
789f8298f
|
414 |