Merge branch 'master' of bitbucket.org:venbainformationtechnology/appointments_frontend

This commit is contained in:
surendar.m@watermelon.us 2023-04-01 16:11:59 +05:30
commit 275f1391c2
9 changed files with 518 additions and 172 deletions

View File

@ -89,7 +89,8 @@ export class ConsultantsListComponent implements OnInit {
// console.log(JSON.parse(tmp))
this.end_user.appointmentBooked.next(filter)
// console.log(URL+"/"+data.randStr+"/practitioner")
this.router.navigate([URL+"/slot"])
// this.router.navigate([URL+"/slot"])
this.router.navigate([URL+"/details"])
}
}

View File

@ -1,44 +1,203 @@
<div class="profile mt-5">
<div class="row d-flex justify-content-center Centre-bacl">
<div class="col-md-7">
<div class="card p-3 py-4">
<div class="images">
<img src="assets/images/userpic2.jpg" width="100" class="rounded-circle">
</div>
<div class="media-prof">
<span class="bg-secondary p-1 px-4 rounded text-white">Pro</span>
<h5>Dr. Suganya</h5>
<p class="years">ENT | 8 YRS</p>
<!-- <div class="profile mt-5">
<div class="row d-flex justify-content-center Centre-bacl">
<div class="col-md-7">
<div class="card p-3 py-4">
<div class="images">
<img src="assets/images/userpic2.jpg" width="100" class="rounded-circle">
</div>
<div class="media-prof">
<span class="bg-secondary p-1 px-4 rounded text-white">Pro</span>
<h5>Dr. Suganya</h5>
<p class="years">ENT | 8 YRS</p>
<div class="header">
<div class="content">
<span class="title"><img src="assets/images/Education.svg" alt="Avatar" class="img">Education</span>
<p class="message">MBBS,MS ENT,DAA</p>
</div>
<div class="content">
<span class="title"> <img src="assets/images/Location.svg" alt="Avatar" class="img">Location</span>
<p class="message">Apollo Hospitals Cancer Centre Nandanam,Chennai</p>
</div>
</div>
<div class="header">
<div class="content">
<span class="title"><img src="assets/images/Education.svg" alt="Avatar" class="img">Education</span>
<p class="message">MBBS,MS ENT,DAA</p>
</div>
<div class="content">
<span class="title"> <img src="assets/images/Location.svg" alt="Avatar" class="img">Location</span>
<p class="message">Apollo Hospitals Cancer Centre Nandanam,Chennai</p>
</div>
</div>
<div class="header">
<div class="content">
<span class="title"><img src="assets/images/Registration.svg" alt="Avatar" class="img">Registration Number</span>
<p class="message">98391</p>
</div>
<div class="content">
<span class="title"> <img src="assets/images/Languages.svg" alt="Avatar" class="img">Languages</span>
<p class="message">English, Hindi, Tamil, Kannada, Malayalam</p>
</div>
</div>
<div class="px-4 mt-1 line">
<h6 class="title-dr">About Dr. Suganya</h6>
<p class="fonts">Dr Suganya is a well-known surgeon and one of the best ENT specialists in Chennai. She is trained to treat medical and surgical conditions affecting the ear, nose and throat. ENT specialists are also called otolaryngologists. </p>
<div class="content">
<span class="title"><img src="assets/images/Registration.svg" alt="Avatar" class="img">Registration Number</span>
<p class="message">98391</p>
</div>
<div class="content">
<span class="title"> <img src="assets/images/Languages.svg" alt="Avatar" class="img">Languages</span>
<p class="message">English, Hindi, Tamil, Kannada, Malayalam</p>
</div>
</div>
<div class="px-4 mt-1">
<h6 class="title-dr"> Clinic Address</h6>
<p class="fonts">No. 320, Padma Complex, Anna Salai,TeynampetChennai</p>
</div>
</div>
</div>
<div class="px-4 mt-1 line">
<h6 class="title-dr">About Dr. Suganya</h6>
<p class="fonts">Dr Suganya is a well-known surgeon and one of the best ENT specialists in Chennai. She is trained to treat medical and surgical conditions affecting the ear, nose and throat. ENT specialists are also called otolaryngologists. </p>
</div>
<div class="px-4 mt-1">
<h6 class="title-dr"> Clinic Address</h6>
<p class="fonts">No. 320, Padma Complex, Anna Salai,TeynampetChennai</p>
</div>
</div>
</div>
</div>
</div>
</div> -->
<div class="doctor-profile">
<div fxLayout="row wrap">
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="30" fxFlex.lg="30" fxFlex.xl="30" class="m-gap p-gap" >
<div class="doctor_info">
<div class="images">
<img src="assets/images/userpic2.jpg" width="100" class="rounded-circle">
</div>
<div class="heading">
<h3>{{bookedAppointment.userName}}</h3>
<a>{{bookedAppointment.practitionerInfos[0].designtion
}}</a><br />
<button mat-raised-button (click)="goToSlotBooking()" style=" background-color: #e7c953;">Appointment Booking</button>
</div>
</div>
<div class="doctor_info">
<h4>PERSONAL INFO</h4>
<ul>
<li>
<span class="pr-1">Phone :</span>
<span> {{bookedAppointment.contactNo}}</span>
</li>
<li>
<span class="pr-1">Office :</span>
<span> {{bookedAppointment.contactNo}}</span>
</li>
<li>
<span class="pr-1">Email:</span>
<span> {{bookedAppointment.email}} </span>
</li>
<li>
<span class="pr-1">Social :</span>
<div class="social-icons">
<a href="#" title="facebook"><i class="fa fa-facebook" aria-hidden="true"></i></a>
<a href="#" title="twitter"><i class="fa fa-twitter" aria-hidden="true"></i></a>
<a href="#" title="google"><i class="fa fa-google" aria-hidden="true"></i></a>
<a href="#" title="youtube"><i class="fa fa-skype" aria-hidden="true"></i></a>
<a href="#" title="linkedin"><i class="fa fa-linkedin" aria-hidden="true"></i></a>
<a href="#" title="printrest"><i class="fa fa-pinterest" aria-hidden="true"></i></a>
</div>
</li>
</ul>
</div>
<div class="last-of-type ">
<div class="emergency-case ">
<h2>EMERGENCY CASES</h2>
<div>(225) 679-9399</div>
</div>
</div>
</div>
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="70" fxFlex.lg="70" fxFlex.xl="70" class="m-gap p-gap" >
<div class="padding-lt">
<div class="elementor-container">
<p>“I highly appreciate your help for my family in our most difficult time. We owed everyone at @dr.changes a big thank you and our life.”</p>
</div>
<div class="elementor-container">
<p class="para">
More than 15 years ago, a small group of families, community activists, and civil servants in New York came together to form an organization called Dr.Changes. They provide services for those struggling to care for a loved one who did not “fit” into traditional health systems: stroke, Parkinsons, Alzheimers disease, traumatic brain injury, debilitating disorders, etc. The diagnoses were different, but the families shared common challenges: few community resources, isolation, lack of information, and drastic changes in family roles.
</p>
</div>
<div class="elementor-container">
<h3>SKILLS</h3>
<div class="elementor-row ">
<div class="elementor-div">
<ul>
<li>
<span>
<mat-icon > beenhere </mat-icon>
</span>
<span class="list-text"> Assisting with walking from bed to wheelchair</span>
</li>
<li>
<span>
<mat-icon > beenhere </mat-icon>
</span>
<span class="list-text">
Bathing, dressing and grooming assistance</span>
</li>
<li>
<span>
<mat-icon > beenhere </mat-icon>
</span>
<span class="list-text"> Medication reminders</span>
</li>
<li>
<span>
<mat-icon > beenhere </mat-icon>
</span>
<span class="list-text"> Safety and fall prevention</span>
</li>
<li>
<span>
<mat-icon > beenhere </mat-icon>
</span>
<span class="list-text"> Status reporting to family</span>
</li>
</ul>
</div>
<div class="elementor-div">
<ul>
<li>
<span>
<mat-icon > beenhere </mat-icon>
</span>
<span class="list-text"> Assisting with walking from bed to wheelchair</span>
</li>
<li>
<span>
<mat-icon > beenhere </mat-icon>
</span>
<span class="list-text">
Bathing, dressing and grooming assistance</span>
</li>
<li>
<span>
<mat-icon > beenhere </mat-icon>
</span>
<span class="list-text"> Medication reminders</span>
</li>
<li>
<span>
<mat-icon > beenhere </mat-icon>
</span>
<span class="list-text"> Safety and fall prevention</span>
</li>
<li>
<span>
<mat-icon > beenhere </mat-icon>
</span>
<span class="list-text"> Status reporting to family</span>
</li>
</ul>
</div>
</div>
</div>
<div class="elementor-container">
<h3 class="care">CARE COVERAGE</h3>
<p class="para">
The task forces early efforts had three lasting results: the formation of Dr.Changes caregiver center; the genesis of community social caregiver groups; and the beginnings of an evolutional movement to change the ideology of long-term health care and caregivers intended for the ill and elderly in our country.
</p>
</div>
<div class="elementor-container">
<div class="elementor-row ">
<div class="elementor-div">
<h3>LANGUAGE</h3>
<p class="language">English</p>
<p class="language">French</p>
</div>
<div class="elementor-div">
<h3>QUALIFICATIONS</h3>
<p>Master of Science</p>
<p>University Limerick</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -1,127 +1,273 @@
body{
background:#eee;
}
.profile{
// body{
// background:#eee;
// }
// .profile{
// padding: 2rem 2rem 2rem 2rem;
// border-radius: 5px;
// }
// .card{
// border:none;
// position:relative;
// overflow:hidden;
// // border-radius:8px;
// // cursor:pointer;
// }
// .card:before{
// content:"";
// position:absolute;
// left:0;
// top:0;
// width:4px;
// height:100%;
// background-color:#E1BEE7;
// transform:scaleY(1);
// transition:all 0.5s;
// transform-origin: bottom
// }
// .card:after{
// content:"";
// position:absolute;
// left:0;
// top:0;
// width:4px;
// height:100%;
// background-color: #217e69;
// transform:scaleY(0);
// transition:all 0.5s;
// transform-origin: bottom
// }
// .card:hover::after{
// transform:scaleY(1);
// }
// .fonts{
// font-size:13px;
// }
// .Centre-bacl{
// box-shadow: 0px 1px 35px 0px rgba(0, 0, 0, 0.3);
// }
// h5{
// color: #02475b;
// margin: 0;
// overflow: hidden;
// font-size: 20px;
// text-overflow: ellipsis;
// // padding-bottom: 10px;
// }
// .years{
// color: #217e69;
// font-weight: 600;
// font-size: 13px;
// text-transform: uppercase;
// // padding-bottom: 10px;
// }
// .header {
// padding: 0rem 0.5rem 0rem 0.5rem;
// display: flex;
// }
// .content {
// // margin-top: 0.75rem;
// margin-right: 2rem;
// }
// .title {
// color: #595b5f;
// font-size: 13px;
// font-weight: 600;
// line-height: 1.5rem;
// }
// .title-dr{
// color: #595b5f;
// font-size: 14px;
// font-weight: 600;
// line-height: 1.5rem;
// }
// .message {
// color: #217e69;
// font-size: 13px;
// line-height: 10px;
// word-break: break-word;
// padding-left: 40px;
// padding-right: 10px;
// }
// // .img{
// // width: 30px;
// // margin-right: 10px;
// // }
// // .images{
// // float: right;
// // }
// .line{
// border-bottom: 0.5px solid rgba(2,71,91,0.2);
// padding-bottom: 10px;
// }
// @media only screen and (max-width: 600px) {
// .message {
// padding-left: 48px;
// line-height: 20px;
// margin-top: 0px;
// }
// .p-3 {
// padding: 2rem !important;
// }
// .header {
// display: initial;
// }
// .media-prof{
// margin-top: 18rem;
// }
// }
// ::ng-deep body{
// background-color: #f7f8f5 !important;
// }
//01/04.23
.doctor-profile{
font-family: sans-serif;
padding: 2rem 2rem 2rem 2rem;
border-radius: 5px;
}
.card{
border:none;
position:relative;
overflow:hidden;
// border-radius:8px;
// cursor:pointer;
}
.card:before{
content:"";
position:absolute;
left:0;
top:0;
width:4px;
height:100%;
background-color:#E1BEE7;
transform:scaleY(1);
transition:all 0.5s;
transform-origin: bottom
}
.card:after{
content:"";
position:absolute;
left:0;
top:0;
width:4px;
height:100%;
background-color: #217e69;
transform:scaleY(0);
transition:all 0.5s;
transform-origin: bottom
}
.card:hover::after{
transform:scaleY(1);
}
.fonts{
font-size:13px;
}
.Centre-bacl{
box-shadow: 0px 1px 35px 0px rgba(0, 0, 0, 0.3);
}
.rounded-circle{
height: 230px;
max-width: 100%;
vertical-align: middle;
border-radius: 45px;
width: 100%;
}
h5{
color: #02475b;
margin: 0;
overflow: hidden;
font-size: 20px;
text-overflow: ellipsis;
// padding-bottom: 10px;
}
.years{
color: #217e69;
font-weight: 600;
font-size: 13px;
text-transform: uppercase;
// padding-bottom: 10px;
}
.header {
padding: 0rem 0.5rem 0rem 0.5rem;
display: flex;
}
.content {
// margin-top: 0.75rem;
margin-right: 2rem;
}
.title {
color: #595b5f;
font-size: 13px;
font-weight: 600;
line-height: 1.5rem;
}
.title-dr{
color: #595b5f;
.padding-lt{
padding-left: 1.5rem;
}
.doctor_info{
background-color: #e8eeef;
border: 1px solid #e8eeef;
padding: 40px;
border-top: 4px solid #217e69;
margin-bottom: 40px;
// height: 100%;
}
.rounded-circle{
// height: 230px;
max-width: 100%;
vertical-align: middle;
border-radius: 45px;
width: 100%;
}
.images{
border-radius: 100%;
width: 50%;
height: 40%;
margin-left: 5rem;
}
.img{
width: 30px;
margin-right: 10px;
}
.heading{
margin: 40px 0 0;
padding: 0;
text-align: center;
}
a{
color: #50aab2;
font-size: 14px;
}
h4{
font-size: 20px;
text-transform: uppercase;
margin-bottom: 9px;
text-align: center;
color: #7a7a7a;
font-weight: 600;
line-height: 1.5rem;
}
.message {
color: #217e69;
font-size: 13px;
line-height: 10px;
word-break: break-word;
padding-left: 40px;
padding-right: 10px;
li {
list-style-type: none;
line-height: 45px;
font-size: 16px;
}
.social-icons{
display: inline;
a {
margin-right: 10px;
}
}
.img{
width: 30px;
margin-right: 10px;
.emergency-case {
font-size: 18px;
font-size: 1.125rem;
color: #ffff;
position: relative;
padding-left: 60px;
:before {
position: absolute;
font-size: 45px;
left: 0;
line-height: 1;
}
}
.images{
float: right;
.last-of-type {
border: 1px solid #e8eeef;
padding: 40px;
// border-top: 4px solid #217e69;
margin-bottom: 40px;
border: 0;
background-color: #217e69;;
}
.line{
border-bottom: 0.5px solid rgba(2,71,91,0.2);
padding-bottom: 10px;
.elementor-container{
margin: 0px 0px 25px 0px;
p{
color: #062a4d;
font-weight: 400;
line-height: 30px;
font-size: 16px;
.language{
margin-bottom: 15px!important;
}
}
.para{
line-height: 30px;
color: #7a7a7a;
font-size: 16px;
font-weight: 400;
}
h3{
color: #6ec1e4;
line-height: 1.25;
font-weight: 700;
text-transform: uppercase;
font-size: 22px;
}
.care{
color: #062a4d;
font-weight: 700;
text-transform: uppercase;
}
.elementor-row {
width: 100%;
display: flex;
}
.mat-icon {
color: #217e69;
}
.elementor-div{
width: 50%;
ul{
padding-left: 1px;
li{
padding: 5px;
}
.list-text{
padding-left: 20px;
color: #062a4d;
font-size: 16px;
}
}
}
}
@media only screen and (max-width: 600px) {
.message {
padding-left: 48px;
line-height: 20px;
margin-top: 0px;
}
.p-3 {
padding: 2rem !important;
.elementor-row {
display: initial!important;
}
.header {
display: initial;
}
.media-prof{
margin-top: 18rem;
.elementor-div{
width: 100%!important;
}
.doctor_info{
padding: 20px;
}
.padding-lt{
padding-left: 0.5rem;
}
}
}
::ng-deep body{
background-color: #f7f8f5 !important;
}

View File

@ -1,4 +1,6 @@
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { EndUserService } from '../end-user.service';
@Component({
selector: 'app-doctor-profile',
@ -6,10 +8,38 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./doctor-profile.component.scss']
})
export class DoctorProfileComponent implements OnInit {
bookedAppointment: any=[];
constructor() { }
constructor(private router:Router,public end_user:EndUserService) { }
ngOnInit(): void {
let service = localStorage.getItem("servicedetails")
let serviceDetails = JSON.parse(service)
console.log(serviceDetails)
this.end_user.appointmentBooked_observable$.subscribe((res) => {
console.log('booked', res);
if(res.length>0){
this.bookedAppointment=res[0].user[0]
}else{
let URL = this.router.url;
console.log(URL)
let URL_AS_LIST = URL.split('/');
console.log(URL_AS_LIST);
// this.router.navigate(['customer/business/'+URL_AS_LIST[3]])
}
})
}
goToSlotBooking(){
let URL = this.router.url;
console.log(URL)
// this.router.navigate([URL+"/slot"])
this.router.navigate([URL+"/slot"])
}
}

View File

@ -49,23 +49,23 @@ const routes: Routes = [
component: ConsultantsListComponent
},
{
path: 'business/:randstr/:randstrs/practitioner/slot',
path: 'business/:randstr/:randstrs/practitioner/details/slot',
component: SlotBookingDetailsComponent
},
{
path: 'business/:randstr/:randstrs/practitioner/slot/cus',
path: 'business/:randstr/:randstrs/practitioner/details/slot/cus',
component: CustomerInfoComponent
},
{
path: 'business/:randstr/:randstrs/practitioner/slot/cus/:cusId/pt',
path: 'business/:randstr/:randstrs/practitioner/details/slot/cus/:cusId/pt',
component: PaymentComponent
},
{
path: 'business/:randstr/:randstrs/practitioner/slot/cus/:cusId/pt/bts',
path: 'business/:randstr/:randstrs/practitioner/details/slot/cus/:cusId/pt/bts',
component: BookingSummaryComponent
},
{
path: 'doctor-profile',
path: 'business/:randstr/:randstrs/practitioner/details',
component: DoctorProfileComponent
},

View File

@ -64,6 +64,7 @@ export class ServiceListComponent implements OnInit {
this.enduser.getcusServicesMapDetails(params).subscribe(res => {
if (res.status == 200) {
console.log(res)
this.full_data = res['data']
let tmp =[];
@ -87,7 +88,10 @@ export class ServiceListComponent implements OnInit {
console.log(result)
this.servicesList = result
// this.businessList = res.data;
}
} else{
}
});
//this._pd.getTabStatusPdDetails(this.tabStatus)
// this._api.getServicesListDetails().subscribe(res => {

View File

@ -30,9 +30,11 @@
</mat-form-field>
</div>
<div fxFlexAlign="center" fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="60" fxFlex.lg="60" fxFlex.xl="60" class="p-gap"> -->
<button *ngFor="let slot of slots;let i=index" mat-raised-button mat-button-sm class="mr-1 mt-1 hoverButton" [ngClass]="{'primary':slotIndex != i,'clickedSlot':slotIndex == i,'bookedSlot':checkBooked(slot.startTime | date:'shortTime')== '0' } " [disabled]="checkBooked(slot.startTime | date:'shortTime')== 0" (click)="toggleActive($event,slot.startTime,i)">{{slot.startTime | date:'shortTime'}}</button>
<!-- //<div *ngFor="let slot of slots;let i=index"> -->
<button *ngFor="let slot of slots;let i=index" mat-raised-button mat-button-sm class="mr-1 mt-1 hoverButton" [ngClass]="{'primary':slotIndex != i,'clickedSlot':slotIndex == i,'bookedSlot':checkBooked(slot.startTime | date:'shortTime') } " (click)="toggleActive($event,slot.startTime,i)" >{{slot.startTime | date:'shortTime'}}</button>
</div>
<button mat-raised-button mat-button-sm class="mr-1 mb-1 mt-1 btn-red" (click)="submit()">PROCEED</button>
<!-- //</div> -->
<button mat-raised-button mat-button-sm class="mr-1 mb-1 mt-1 btn-red" [ngStyle]="{'background':slot_array.length ==0 ? '#ccc':'#4caf50' }" [disabled]="slot_array.length ==0" (click)="submit()">PROCEED</button>
</div>
</mat-card>
</div>

View File

@ -46,7 +46,7 @@ margin-left: -3rem!important;
width: 50px;
}
.btn-red {
background-color: #4caf50 !important;
// background-color: #4caf50 !important;
color: $white;
// border: 1px solid $color_red_orange_approx;
float: right;

View File

@ -43,6 +43,7 @@ export class SlotBookingDetailsComponent implements OnInit {
public Currentdate: Date;
slotIndex: any;
bookedAppointment:any=[];
bookedAppointmentSlot: any=[];
constructor(private router:Router,private datepipe:DatePipe,public end_user:EndUserService) {
this.end_user.appointmentBooked_observable$.subscribe((res) => {
console.log('booked', res);
@ -195,14 +196,17 @@ export class SlotBookingDetailsComponent implements OnInit {
}
checkBooked(param){
// console.log(param, this.bookedAppointment)
this.bookedAppointmentSlot
this.bookedAppointment.forEach(element => {
// console.log(element.appoinmentSlots,param)
console.log( param, new DatePipe('en-US').transform(element.appoinmentSlots, 'shortTime'))
//new DatePipe('en-US').transform(element.appoinmentSlots, 'shortTime');
// this.bookedAppointmentSlot.push(new DatePipe('en-US').transform(element.appoinmentSlots, 'shortTime'))
param = param.toString()
if(element.appoinmentSlots.trim() == param.trim()){
// console.log("sksjfjdhkfhsdfcgdjsh")
return '0';
if(new DatePipe('en-US').transform(element.appoinmentSlots, 'shortTime').trim() == param.trim()){
console.log("sksjfjdhkfhsdfcgdjsh")
return true;
}else{
return 0
return false;
}
});