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,4 +1,4 @@
<div class="profile mt-5">
<!-- <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">
@ -41,4 +41,163 @@
</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>

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;
.padding-lt{
padding-left: 1.5rem;
}
.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);
.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;
// 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;
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;
.images{
border-radius: 100%;
width: 50%;
height: 40%;
margin-left: 5rem;
}
.img{
width: 30px;
margin-right: 10px;
}
.images{
float: right;
.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;
}
li {
list-style-type: none;
line-height: 45px;
font-size: 16px;
}
.social-icons{
display: inline;
a {
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;
}
}
.last-of-type {
border: 1px solid #e8eeef;
padding: 40px;
// border-top: 4px solid #217e69;
margin-bottom: 40px;
border: 0;
background-color: #217e69;;
}
.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;
}
}
}
.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;
.elementor-row {
display: initial!important;
}
.p-3 {
padding: 2rem !important;
.elementor-div{
width: 100%!important;
}
.header {
display: initial;
.doctor_info{
padding: 20px;
}
.media-prof{
margin-top: 18rem;
.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,6 +88,9 @@ export class ServiceListComponent implements OnInit {
console.log(result)
this.servicesList = result
// this.businessList = res.data;
} else{
}
});
//this._pd.getTabStatusPdDetails(this.tabStatus)

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;
}
});