dashboard
This commit is contained in:
parent
e0d7a76f98
commit
1f87885ba7
Binary file not shown.
@ -2,7 +2,7 @@
|
||||
<mat-card class="cardDesign2" >
|
||||
<form [formGroup]="form" (ngSubmit)="submit()">
|
||||
<div class="pad">
|
||||
<h6 class="new">+ New Customer <button mat-icon-button type="button" matTooltip="Close" class="button" matTooltipPosition="above" ><mat-icon>close</mat-icon></button></h6>
|
||||
<h6 class="new">+ New Customer <button mat-icon-button (click)="close()" type="button" matTooltip="Close" class="button" matTooltipPosition="above" ><mat-icon>close</mat-icon></button></h6>
|
||||
|
||||
<mat-form-field appearance="outline" class="card-mat-pane">
|
||||
<mat-label>Name</mat-label>
|
||||
|
||||
@ -27,7 +27,7 @@ export class AppointmentAddcustomerComponent implements OnInit {
|
||||
}
|
||||
|
||||
close(){
|
||||
|
||||
this.childButtonEvent.emit(0);
|
||||
}
|
||||
submit(){
|
||||
console.log(this.form.value)
|
||||
|
||||
@ -747,13 +747,16 @@ console.log(params)
|
||||
} );
|
||||
}
|
||||
|
||||
receivedMessageHandler(res) {
|
||||
|
||||
console.log(res)
|
||||
this.customersList.push(res.data)
|
||||
this.customerId = res.data.id
|
||||
this.form.controls['customer'].setValue( res.data.id);
|
||||
this.customerCard = 0
|
||||
receivedMessageHandler(res){
|
||||
if(res == 0){
|
||||
this.customerCard = 0
|
||||
}else{
|
||||
console.log(res)
|
||||
this.customersList.push(res.data)
|
||||
this.customerId = res.data.id
|
||||
this.form.controls['customer'].setValue( res.data.id);
|
||||
this.customerCard = 0
|
||||
}
|
||||
}
|
||||
|
||||
receiveAutoMsgHandler(p) {
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>Business Name</mat-label>
|
||||
<input placeholder="Business Name" matInput formControlName="busName">
|
||||
<input placeholder="Business Name" matInput class="text-capitalize" formControlName="busName">
|
||||
<mat-error *ngIf="myError('busName', 'required')">Name is required</mat-error>
|
||||
<mat-error *ngIf="myError('busName', 'maxlength')">Limit exceed</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
|
||||
<ng-container matColumnDef="name">
|
||||
<th mat-header-cell *matHeaderCellDef class="font-color th-mat"> Name </th>
|
||||
<td mat-cell *matCellDef="let row"> {{row.busName}} </td>
|
||||
<td mat-cell *matCellDef="let row" class="text-capitalize"> {{row.busName}} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="email">
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="consultant-profile text-center">
|
||||
<h5 class="text-primary">{{consultant.userName}}</h5>
|
||||
<h5 class="text-primary text-capitalize">{{consultant.userName}}</h5>
|
||||
<!-- <span class="silk-block mb-1 consultant-qualification">{{consultant.practitionerInfos[0].qualification || null}}</span><br> -->
|
||||
<!-- <span class="silk-block consultant-span">{{consultant.practitionerInfos[0].designtion
|
||||
|| "ENT" }}</span><br>
|
||||
@ -114,7 +114,7 @@
|
||||
</ng-template>
|
||||
<div class="staff">
|
||||
<span class="staff-title">
|
||||
Profile <span *ngIf="userRole == 'FRONTDESK'">- ({{usersList.userName}})</span>
|
||||
Profile <span *ngIf="userRole == 'FRONTDESK'" class="text-capitalize">- ({{usersList.userName}})</span>
|
||||
</span>
|
||||
<button mat-icon-button matTooltip="Edit" style="padding: 4px 20px;" *ngIf="isEditable == false" (click)="edit_table(isEditable)" fileName="customers"><mat-icon >edit</mat-icon></button>
|
||||
<!-- <button mat-icon-button *ngIf="table[0].statement == statement_item && table[0].statement != 'Cash Flow Statement'" color="accent" matTooltip="Edit" matTooltipPosition="right" (click)="editandcancel(true,table[0].section)" ><mat-icon>edit</mat-icon></button> -->
|
||||
@ -127,7 +127,7 @@
|
||||
<!-- <form [formGroup]="registerForm" (ngSubmit)="onSubmit()"> -->
|
||||
<div class="form-group label-container">
|
||||
<label>Name <span class="line">-</span></label>
|
||||
<a *ngIf="isEditable == false" style="padding: 10px;">{{usersList.userName}}</a>
|
||||
<a *ngIf="isEditable == false" style="padding: 10px;" class="text-capitalize">{{usersList.userName}}</a>
|
||||
<mat-form-field class="example-full-width" *ngIf="isEditable == true">
|
||||
<!-- <mat-label>Gender</mat-label> -->
|
||||
<input type="text" matInput placeholder="Name" [(ngModel)]="userName">
|
||||
@ -170,18 +170,18 @@
|
||||
</div> -->
|
||||
<div class="form-group label-container" *ngIf="userRole != 'BIZADMIN'">
|
||||
<label>Languages <span style="margin-left: 4rem;">-</span></label>
|
||||
<a style="padding: 10px;" *ngIf="isEditable == false">{{practitionerdetails.languages}}</a>
|
||||
<a style="padding: 10px;" *ngIf="isEditable == false" class="text-capitalize">{{practitionerdetails.languages}}</a>
|
||||
<mat-form-field class="example-full-width" *ngIf="isEditable == true">
|
||||
<mat-label>Languages</mat-label>
|
||||
<input type="text" matInput placeholder="Languages" [(ngModel)]="languages">
|
||||
<input type="text" matInput class="text-capitalize" placeholder="Languages" [(ngModel)]="languages">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div class="form-group label-container" *ngIf="userRole != 'BIZADMIN'">
|
||||
<label>Qualification <span style="margin-left: 4rem;">-</span></label>
|
||||
<a style="padding: 10px;" *ngIf="isEditable == false">{{practitionerdetails.qualification}}</a>
|
||||
<a style="padding: 10px;" *ngIf="isEditable == false" class="text-capitalize">{{practitionerdetails.qualification}}</a>
|
||||
<mat-form-field class="example-full-width" *ngIf="isEditable == true">
|
||||
<mat-label>Qualification</mat-label>
|
||||
<input type="text" matInput placeholder="Qualification" [(ngModel)]="qualification">
|
||||
<input type="text" matInput class="text-capitalize" placeholder="Qualification" [(ngModel)]="qualification">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<!-- <div class="form-group label-container" *ngIf="userRole != 'BIZADMIN'">
|
||||
@ -547,7 +547,7 @@
|
||||
</div>
|
||||
<div fxFlex.xs="70" fxFlex.sm="70" fxFlex.md="70" fxFlex.lg="70" fxFlex.xl="70">
|
||||
<div class="service-info">{{details.servicesName}}</div>
|
||||
<div class="service-info2">{{servicesList_data[i].duration.length>0 ? servicesList_data[i].duration[0].durationNew : details.duration}} Mins | <span class="indianSymbol">{{servicesList_data[i].duration.length>0 ? servicesList_data[i].duration[0].fees : details.fees}}</span></div>
|
||||
<div class="service-info2">{{servicesList_data[i].duration.length>0 ? servicesList_data[i].duration[0].durationNew : details.duration}} Mins | <span class="indianSymbol">{{(servicesList_data[i].duration.length>0 ? servicesList_data[i].duration[0].fees : details.fees) | currency: currencySymbol}}</span></div>
|
||||
<div class="info" (click)="asignService(details,i)">+ Customize the price and duration of a service.</div>
|
||||
</div>
|
||||
<div fxFlex.xs="15" fxFlex.sm="15" fxFlex.md="15" fxFlex.lg="15" fxFlex.xl="15" fxLayoutAlign="center center">
|
||||
@ -589,10 +589,10 @@
|
||||
<ng-scrollbar class="scrollHVBusiness">
|
||||
<div class="form-group label-container">
|
||||
<label *ngIf="isEditableBusiness == false">Business Name</label>
|
||||
<a style="padding: 10px;" *ngIf="isEditableBusiness == false"><span class="line">-</span> {{BusinessDetailsdata.busName}}</a>
|
||||
<a style="padding: 10px;" *ngIf="isEditableBusiness == false" class="text-capitalize"><span class="line">-</span> {{BusinessDetailsdata.busName}}</a>
|
||||
<mat-form-field class="mat-pane" *ngIf="isEditableBusiness == true">
|
||||
<mat-label>Business Name</mat-label>
|
||||
<input placeholder="Business Name" matInput formControlName="busName">
|
||||
<input placeholder="Business Name" class="text-capitalize" matInput formControlName="busName">
|
||||
<mat-error *ngIf="myErrorBusiness('busName', 'required')">Name is required</mat-error>
|
||||
<mat-error *ngIf="myErrorBusiness('busName', 'maxlength')">Limit exceed</mat-error>
|
||||
</mat-form-field>
|
||||
@ -743,7 +743,7 @@
|
||||
<div class="url-generate mb20">
|
||||
<div class="url-link dis-flex">
|
||||
<span class="url field-center boxsize">
|
||||
<input type="text" placeholder=" {{endUserURL}}" class="booking-url-input boxsize text-ellipsis cn ember-text-field ember-view">
|
||||
<input type="text" placeholder="{{endUserURL}}" value="{{endUserURL}}" class="booking-url-input boxsize text-ellipsis cn ember-text-field ember-view" readonly>
|
||||
</span>
|
||||
<!-- <span id="zb-mb-BookingPageUrlCustomize" class="customize-link field-center cp ml10 mt0 mr10" data-ember-action="" data-ember-action-813="813">Customize</span> -->
|
||||
<span class="url-button field-center boxsize pb1" *ngIf="copiedKey == 0"><button (click)="copyToClipBoard(endUserURL)" class="copy-button boxsize cp">Copy</button></span>
|
||||
|
||||
@ -108,8 +108,10 @@ export class ConsultantSettingComponent implements OnInit {
|
||||
frontDeskHidden: any = 0;
|
||||
frontDeskPractdetails: any = [];
|
||||
BusinessDetailsdata: any = [];
|
||||
currencySymbol: any;
|
||||
constructor(private http: HttpClient,private notifierService: NotifierService,private formBuilder: FormBuilder, public dialog: MatDialog, public _con:ConsultantService, private fb: FormBuilder, public _api:ConsultantService,private locationStrategy: LocationStrategy) {
|
||||
this.formData= new FormData();
|
||||
this.currencySymbol = localStorage.getItem('currency')
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
|
||||
<ng-container matColumnDef="name">
|
||||
<th mat-header-cell *matHeaderCellDef class="font-color"> Name </th>
|
||||
<td mat-cell *matCellDef="let row"> {{row.cusName}} </td>
|
||||
<td mat-cell *matCellDef="let row" class="text-capitalize"> {{row.cusName}} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="email">
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
|
||||
<ng-container matColumnDef="subject">
|
||||
<th mat-header-cell *matHeaderCellDef class="font-color mat-no"> Subject </th>
|
||||
<td mat-cell *matCellDef="let element" class="element-spc"> {{element.subject}} </td>
|
||||
<td mat-cell *matCellDef="let element" class="element-spc text-capitalize"> {{element.subject}} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="recipients">
|
||||
@ -29,12 +29,12 @@
|
||||
|
||||
<ng-container matColumnDef="contentPage">
|
||||
<th mat-header-cell *matHeaderCellDef class="font-color mat-no"> Content Page </th>
|
||||
<td mat-cell *matCellDef="let element" class="element-spc"> {{element.contentPage}} </td>
|
||||
<td mat-cell *matCellDef="let element" class="element-spc text-capitalize"> {{element.contentPage}} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="status">
|
||||
<th mat-header-cell *matHeaderCellDef class="font-color mat-no"> Status </th>
|
||||
<td mat-cell *matCellDef="let element" class="element-spc"> {{element.status}} </td>
|
||||
<td mat-cell *matCellDef="let element" class="element-spc text-capitalize"> {{element.status}} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="createdAt">
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<div mat-dialog-content class="my-table">
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>ServiceName</mat-label>
|
||||
<input placeholder="Service Name" matInput formControlName="servicesName">
|
||||
<input placeholder="Service Name" class="text-capitalize" matInput formControlName="servicesName">
|
||||
<mat-error *ngIf="myError('servicesName', 'required')">ServiceName is required</mat-error>
|
||||
<mat-error *ngIf="myError('servicesName', 'maxlength')">Limit exceed</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
@ -6,8 +6,8 @@
|
||||
<input matInput (keyup)="applyFilter($event.target.value)" placeholder="Type Here" #input>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="p-gap" fxLayoutAlign="end center" >
|
||||
<mat-form-field appearance="outline" style="width:40%;margin-left: 5%;" *ngIf="user_role == 'FRONTDESK'">
|
||||
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="p-gap" fxLayoutAlign="end center" *ngIf="user_role == 'FRONTDESK'">
|
||||
<mat-form-field appearance="outline" style="width:40%;margin-left: 5%;" >
|
||||
<mat-label>Practitioner</mat-label>
|
||||
<mat-select placeholder="Select Practitioner" [(ngModel)]="selectPractitioner" >
|
||||
<mat-option value="All" (click)="allPractitioner()">All</mat-option>
|
||||
@ -17,10 +17,13 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="p-gap" fxLayoutAlign="end center" *ngIf="user_role != 'FRONTDESK'">
|
||||
<button mat-button (click)="openDialog('Add',{})" class="button">Add Services</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<button mat-button *ngIf="user_role != 'FRONTDESK'" (click)="openDialog('Add',{})" class="button">Add Services</button>
|
||||
|
||||
<!-- <div class="example-container mat-elevation-z8 "> -->
|
||||
<mat-sidenav-container class="app-inner background-none shadow-none mail-db">
|
||||
<div class="main-content" fxLayout="row" fxLayoutAlign="center start">
|
||||
@ -40,7 +43,7 @@
|
||||
|
||||
<ng-container matColumnDef="servicesName">
|
||||
<th mat-header-cell *matHeaderCellDef class="font-color">Service Name </th>
|
||||
<td mat-cell *matCellDef="let row"> {{row.servicesName}} </td>
|
||||
<td mat-cell *matCellDef="let row" class="text-capitalize"> {{row.servicesName}} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="duration">
|
||||
@ -50,12 +53,12 @@
|
||||
|
||||
<ng-container matColumnDef="fees">
|
||||
<th mat-header-cell *matHeaderCellDef class="font-color th-mat"> Fees </th>
|
||||
<td mat-cell *matCellDef="let row" class="element-spc"> {{row.fees}} </td>
|
||||
<td mat-cell *matCellDef="let row" class="element-spc">{{row.fees | currency: currencySymbol}}</td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="description">
|
||||
<th mat-header-cell *matHeaderCellDef class="font-color"> Description </th>
|
||||
<td mat-cell *matCellDef="let row" class="element-spc"> {{row.description}} </td>
|
||||
<td mat-cell *matCellDef="let row" class="element-spc text-capitalize"> {{row.description}} </td>
|
||||
</ng-container>
|
||||
|
||||
<ng-container matColumnDef="action">
|
||||
|
||||
@ -37,8 +37,11 @@ export class ServiceListComponent implements OnInit {
|
||||
isLoading = true;
|
||||
user_role: any=[];
|
||||
consultants: any=[];
|
||||
currencySymbol: any;
|
||||
|
||||
constructor(private notifierService: NotifierService,public _api:ApiServiceService, public dialog: MatDialog) { }
|
||||
constructor(private notifierService: NotifierService,public _api:ApiServiceService, public dialog: MatDialog) {
|
||||
this.currencySymbol = localStorage.getItem('currency')
|
||||
}
|
||||
|
||||
|
||||
ngOnInit(): void {
|
||||
|
||||
@ -46,7 +46,7 @@
|
||||
|
||||
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
|
||||
<mat-label>Name</mat-label>
|
||||
<input placeholder="Name" matInput formControlName="userName">
|
||||
<input placeholder="Name" matInput class="text-capitalize" formControlName="userName">
|
||||
<mat-error *ngIf="myError('userName', 'required')">Username is required</mat-error>
|
||||
<mat-error *ngIf="myError('userName', 'maxlength')">Limit exceed</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
@ -76,7 +76,7 @@
|
||||
|
||||
<ng-container matColumnDef="Username">
|
||||
<th mat-header-cell *matHeaderCellDef class="font-color"> User Name </th>
|
||||
<td mat-cell *matCellDef="let element" class="element-spc"> {{element.userName}} </td>
|
||||
<td mat-cell *matCellDef="let element" class="element-spc text-capitalize"> {{element.userName}} </td>
|
||||
</ng-container>
|
||||
|
||||
<!-- <ng-container matColumnDef="Password">
|
||||
|
||||
@ -1,11 +1,99 @@
|
||||
<ng-scrollbar class="scrollHV">
|
||||
<div fxLayout="row wrap">
|
||||
<div fxLayout="row wrap">
|
||||
<div fxFlex.gt-sm="33.33%" fxFlex="100" class="m-gap p-gap">
|
||||
<mat-card>
|
||||
<div fxLayout="row wrap">
|
||||
<div fxFlex.gt-sm="50%" fxLayoutAlign="center center" fxFlex="100" class="m-gap p-gap mb-0 grad-blue icon-tp">
|
||||
<div class="text-center">
|
||||
<mat-icon>calendar_today</mat-icon>
|
||||
<div class="d-inline-block">
|
||||
<h5>Appointment</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div fxFlex.gt-sm="50%" fxFlex="100" fxLayoutAlign="center center" class="m-gap p-gap mb-0">
|
||||
<div class="card-block text-center">
|
||||
<div class="row">
|
||||
<div>
|
||||
<h2>{{count.total_appoinments_count}}</h2>
|
||||
<p class="text-muted">Total</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div>
|
||||
<h2>{{count.today_appoinments_count}}</h2>
|
||||
<p class="text-muted">Today</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card>
|
||||
</div>
|
||||
<div fxFlex.gt-sm="33.33%" fxFlex="100" class="m-gap p-gap">
|
||||
<mat-card>
|
||||
<div fxLayout="row wrap">
|
||||
<div fxFlex.gt-sm="50%" fxLayoutAlign="center center" fxFlex="100" class="m-gap p-gap mb-0 grad-green icon-tp">
|
||||
<div class="text-center">
|
||||
<i class="fa fa-twitter fa-3x"></i>
|
||||
<div class="d-inline-block">
|
||||
<h5>Twitter</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div fxFlex.gt-sm="50%" fxFlex="100" fxLayoutAlign="center center" class="m-gap p-gap mb-0">
|
||||
<div class="card-block text-center">
|
||||
<div class="row">
|
||||
<div>
|
||||
<h2>76</h2>
|
||||
<p class="text-muted">Online</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div>
|
||||
<h2>19</h2>
|
||||
<p class="text-muted">Comment</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card>
|
||||
</div>
|
||||
<div fxFlex.gt-sm="33.33%" fxFlex="100" class="m-gap p-gap">
|
||||
<mat-card>
|
||||
<div fxLayout="row wrap">
|
||||
<div fxFlex.gt-sm="50%" fxLayoutAlign="center center" fxFlex="100" class="m-gap p-gap mb-0 grad-red icon-tp">
|
||||
<div class="text-center">
|
||||
<i class="fa fa-linkedin fa-3x"></i>
|
||||
<div class="d-inline-block">
|
||||
<h5>Linkedin</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div fxFlex.gt-sm="50%" fxFlex="100" fxLayoutAlign="center center" class="m-gap p-gap mb-0">
|
||||
<div class="card-block text-center">
|
||||
<div class="row">
|
||||
<div>
|
||||
<h2>9</h2>
|
||||
<p class="text-muted">Online</p>
|
||||
</div>
|
||||
<hr>
|
||||
<div>
|
||||
<h2>21</h2>
|
||||
<p class="text-muted">Comment</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div fxLayout="row wrap">
|
||||
<div fxFlex.sm="100" fxFlex.xs="100" fxFlex.md="33.33" fxFlex.lg="33.33" fxFlex.xl="33.33" fxFlex="100" class="m-gap p-gap">
|
||||
<mat-card>
|
||||
<div class="card-wheather grad-blue">
|
||||
<div class="city">Practitioner</div>
|
||||
<!-- <div class="date">This Week</div> -->
|
||||
<div class="weather">
|
||||
<div class="weather">
|
||||
<div class="sun d-flex justify-content-between">
|
||||
<i class="fa fa fa-users fa-3x align-self-center"></i>
|
||||
<div class="temp align-self-center">{{count.user_count}}</div>
|
||||
@ -18,12 +106,10 @@
|
||||
<mat-card>
|
||||
<div class="card-wheather grad-green">
|
||||
<div class="city">Appointment</div>
|
||||
<!-- <div class="date">This Week</div> -->
|
||||
<div class="weather">
|
||||
<div class="weather">
|
||||
<div class="sun d-flex justify-content-between">
|
||||
<mat-icon>calendar_today</mat-icon>
|
||||
<!-- <i class="fa fa fa-users fa-3x align-self-center"></i> -->
|
||||
<div class="temp align-self-center">{{count.total_appoinments_count}}</div>
|
||||
<div class="temp align-self-center">{{count.total_appoinments_count}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -33,8 +119,7 @@
|
||||
<mat-card>
|
||||
<div class="card-wheather grad-blue">
|
||||
<div class="city">Appointment Earnings</div>
|
||||
<!-- <div class="date">This Week</div> -->
|
||||
<div class="weather">
|
||||
<div class="weather">
|
||||
<div class="sun d-flex justify-content-between">
|
||||
<i class="fa fa fa-money fa-3x align-self-center"></i>
|
||||
<div class="temp align-self-center">20000</div>
|
||||
@ -47,8 +132,7 @@
|
||||
<mat-card>
|
||||
<div class="card-wheather grad-green">
|
||||
<div class="city">Customer</div>
|
||||
<!-- <div class="date">This Week</div> -->
|
||||
<div class="weather">
|
||||
<div class="weather">
|
||||
<div class="sun d-flex justify-content-between">
|
||||
<i class="fa fa-file-text-o fa-3x align-self-center"></i>
|
||||
<div class="temp align-self-center">15</div>
|
||||
@ -61,12 +145,10 @@
|
||||
<mat-card>
|
||||
<div class="card-wheather grad-blue">
|
||||
<div class="city">Services</div>
|
||||
<!-- <div class="date">This Week</div> -->
|
||||
<div class="weather">
|
||||
<div class="weather">
|
||||
<div class="sun d-flex justify-content-between">
|
||||
<mat-icon class="svg" svgIcon="service"></mat-icon>
|
||||
<!-- <i class="fa fa-inbox fa-3x align-self-center"></i> -->
|
||||
<div class="temp align-self-center">{{count.service_count}}</div>
|
||||
<div class="temp align-self-center">{{count.service_count}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -76,8 +158,7 @@
|
||||
<mat-card>
|
||||
<div class="card-wheather grad-green">
|
||||
<div class="city">Service Earnings</div>
|
||||
<!-- <div class="date">This Week</div> -->
|
||||
<div class="weather">
|
||||
<div class="weather">
|
||||
<div class="sun d-flex justify-content-between">
|
||||
<i class="fa fa-inbox fa-3x align-self-center"></i>
|
||||
<div class="temp align-self-center">150</div>
|
||||
@ -86,7 +167,40 @@
|
||||
</div>
|
||||
</mat-card>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div fxLayout="row wrap">
|
||||
<div fxFlex.gt-sm="50" fxFlex.gt-xs="50" fxFlex="50" class="m-gap p-gap">
|
||||
<mat-card>
|
||||
<mat-card-title fxLayout="row" fxLayoutAlign="start center">
|
||||
Revenue
|
||||
<span fxFlex></span>
|
||||
</mat-card-title>
|
||||
<hr>
|
||||
<mat-card-content>
|
||||
<canvas height="200" baseChart class="chart"
|
||||
[data]="pieChartData"
|
||||
[options]="doughnutOptions"
|
||||
[colors]="doughnutChartColors"
|
||||
[labels]="pieChartLabels"
|
||||
[chartType]="pieChartType"></canvas>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</div>
|
||||
|
||||
<div fxFlex.gt-sm="50" fxFlex.gt-xs="50" fxFlex="50" class="m-gap p-gap">
|
||||
<mat-card>
|
||||
<mat-card-title fxLayout="row" fxLayoutAlign="start center">
|
||||
Yearly Sales
|
||||
<span fxFlex></span>
|
||||
</mat-card-title>
|
||||
|
||||
<hr>
|
||||
<mat-card-content>
|
||||
<canvas height="200" baseChart class="chart" [datasets]="ComboChartData" [labels]="comboChartLabels" [options]="ComboChartOptions" [colors]="chartColors" [legend]="comboChartLegend" [chartType]="barChartType"></canvas>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</div>
|
||||
</div>
|
||||
<div fxLayout="row wrap">
|
||||
<div fxFlex.gt-sm="100" fxFlex.gt-xs="100" fxFlex="100" class="m-gap p-gap">
|
||||
<mat-card>
|
||||
|
||||
@ -545,6 +545,7 @@ mat-icon{
|
||||
// width: 0px !important;
|
||||
align-self: center !important;
|
||||
font-size: 3em !important;
|
||||
width: unset !important;
|
||||
}
|
||||
|
||||
.svg{
|
||||
|
||||
@ -24,6 +24,187 @@ export class DashboardComponent {
|
||||
};
|
||||
public autoScale = true;
|
||||
count: any = [];
|
||||
|
||||
// Shared chart options
|
||||
globalChartOptions: any = {
|
||||
responsive: true,
|
||||
legend: {
|
||||
display: false,
|
||||
position: 'bottom'
|
||||
}
|
||||
};
|
||||
|
||||
pieChartData: number[] = [300, 500, 100];
|
||||
doughnutOptions: any = Object.assign({
|
||||
elements: {
|
||||
arc: {
|
||||
borderWidth: 5
|
||||
}
|
||||
}
|
||||
}, this.globalChartOptions);
|
||||
doughnutChartColors: any[] = [{
|
||||
backgroundColor: ['#673ab7', '#f44336', '#009688 ', '#2196f3']
|
||||
}];
|
||||
pieChartLabels: string[] = ['Download Sales', 'In-Store Sales', 'Mail Sales'];
|
||||
pieChartType = 'pie';
|
||||
|
||||
// Bar
|
||||
barChartLabels: string[] = ['1', '2', '3', '4', '5', '6', '7'];
|
||||
barChartType = 'bar';
|
||||
barChartLegend = true;
|
||||
barChartData: any[] = [{
|
||||
data: [6, 5, 8, 8, 5, 5, 4],
|
||||
label: 'Series A',
|
||||
borderWidth: 0
|
||||
}, {
|
||||
data: [5, 4, 4, 2, 6, 2, 5],
|
||||
label: 'Series B',
|
||||
borderWidth: 0
|
||||
}];
|
||||
barChartOptions: any = Object.assign({
|
||||
scaleShowVerticalLines: false,
|
||||
tooltips: {
|
||||
mode: 'index',
|
||||
intersect: false
|
||||
},
|
||||
responsive: true,
|
||||
scales: {
|
||||
xAxes: [{
|
||||
gridLines: {
|
||||
color: 'rgba(0,0,0,0.02)',
|
||||
defaultFontColor: 'rgba(0,0,0,0.02)',
|
||||
zeroLineColor: 'rgba(0,0,0,0.02)'
|
||||
},
|
||||
stacked: true,
|
||||
ticks: {
|
||||
beginAtZero: true
|
||||
}
|
||||
}],
|
||||
yAxes: [{
|
||||
gridLines: {
|
||||
color: 'rgba(0,0,0,0.02)',
|
||||
defaultFontColor: 'rgba(0,0,0,0.02)',
|
||||
zeroLineColor: 'rgba(0,0,0,0.02)'
|
||||
},
|
||||
stacked: true
|
||||
}]
|
||||
}
|
||||
}, this.globalChartOptions);
|
||||
|
||||
// Bubble Chart
|
||||
bubbleChartData: Array <any> = [{
|
||||
data: [{
|
||||
x: 6,
|
||||
y: 5,
|
||||
r: 15,
|
||||
}, {
|
||||
x: 5,
|
||||
y: 4,
|
||||
r: 10,
|
||||
}, {
|
||||
x: 8,
|
||||
y: 4,
|
||||
r: 6,
|
||||
}, {
|
||||
x: 8,
|
||||
y: 4,
|
||||
r: 6,
|
||||
}, {
|
||||
x: 5,
|
||||
y: 14,
|
||||
r: 14,
|
||||
}, {
|
||||
x: 5,
|
||||
y: 6,
|
||||
r: 8,
|
||||
}, {
|
||||
x: 4,
|
||||
y: 2,
|
||||
r: 10,
|
||||
}],
|
||||
label: 'Series A',
|
||||
borderWidth: 1
|
||||
}];
|
||||
bubbleChartType = 'bubble';
|
||||
|
||||
// combo chart
|
||||
comboChartLabels: Array <any> = ['1', '2', '3', '4', '5', '6', '7'];
|
||||
chartColors: Array <any> = [{ // red
|
||||
backgroundColor: '#f44336',
|
||||
borderColor: '#f44336',
|
||||
pointBackgroundColor: '#f44336',
|
||||
pointBorderColor: '#fff',
|
||||
pointHoverBackgroundColor: '#fff',
|
||||
pointHoverBorderColor: 'rgba(148,159,177,0.8)'
|
||||
}, { // blue
|
||||
backgroundColor: '#7986cb',
|
||||
borderColor: '#3f51b5',
|
||||
pointBackgroundColor: '#3f51b5',
|
||||
pointBorderColor: '#fff',
|
||||
pointHoverBackgroundColor: '#fff',
|
||||
pointHoverBorderColor: 'rgba(148,159,177,0.8)'
|
||||
}, { // grey
|
||||
backgroundColor: 'rgba(148,159,177,0.2)',
|
||||
borderColor: 'rgba(148,159,177,1)',
|
||||
pointBackgroundColor: 'rgba(148,159,177,1)',
|
||||
pointBorderColor: '#fff',
|
||||
pointHoverBackgroundColor: '#fff',
|
||||
pointHoverBorderColor: 'rgba(148,159,177,0.8)'
|
||||
}];
|
||||
comboChartLegend = true;
|
||||
ComboChartData: Array <any> = [{
|
||||
data: [6, 5, 8, 8, 5, 5, 4],
|
||||
label: 'Series A',
|
||||
borderWidth: 1,
|
||||
type: 'line',
|
||||
fill: false
|
||||
}, {
|
||||
data: [5, 4, 4, 2, 6, 2, 5],
|
||||
label: 'Series B',
|
||||
borderWidth: 1,
|
||||
type: 'bar',
|
||||
}];
|
||||
ComboChartOptions: any = Object.assign({
|
||||
animation: false,
|
||||
scales: {
|
||||
xAxes: [{
|
||||
gridLines: {
|
||||
color: 'rgba(0,0,0,0.02)',
|
||||
zeroLineColor: 'rgba(0,0,0,0.02)'
|
||||
}
|
||||
}],
|
||||
yAxes: [{
|
||||
gridLines: {
|
||||
color: 'rgba(0,0,0,0.02)',
|
||||
zeroLineColor: 'rgba(0,0,0,0.02)'
|
||||
},
|
||||
ticks: {
|
||||
beginAtZero: true,
|
||||
suggestedMax: 9,
|
||||
}
|
||||
}]
|
||||
}
|
||||
}, this.globalChartOptions);
|
||||
|
||||
// newsfeed
|
||||
messages: Object[] = [{
|
||||
from: 'Carolyn',
|
||||
message: 'Contrary to popular belief, Lorem Ipsum',
|
||||
photo: 'assets/images/face3.jpg',
|
||||
subject: 'Met, consectetur adipisic',
|
||||
}, {
|
||||
from: 'Chloe',
|
||||
message: 'It has roots in a piece of classica',
|
||||
photo: 'assets/images/face6.jpg',
|
||||
subject: 'Consectetur adipisic',
|
||||
}, {
|
||||
from: 'Diana',
|
||||
message: 'Professor at Hampden-Sydney College in Virginia',
|
||||
photo: 'assets/images/face4.jpg',
|
||||
subject: 'Onsectetur adipisic',
|
||||
}, ];
|
||||
|
||||
|
||||
constructor(public _dash:DashboardService,private matIconRegistry: MatIconRegistry,private domSanitizer: DomSanitizer) {
|
||||
// this.fetch((data) => { this.rows = data; });
|
||||
Object.assign(this, {single, multi})
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
|
||||
<div style=" text-align: center;">
|
||||
|
||||
<h3 >Your appointment has been successfully registered.</h3>
|
||||
<h3 >Your appointment has been successfully Booked On.</h3>
|
||||
|
||||
<p style="color:rgb(13, 218, 13)">
|
||||
Thank You..! Your order status is {{resPayment.response_message}}.
|
||||
@ -40,12 +40,12 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-2" style=" text-align: center;">
|
||||
<!-- <div class="mt-2" style=" text-align: center;">
|
||||
<small>
|
||||
Powered by
|
||||
<a href="https://venbainfotech.com/VenbaIT/">Venba Information Technology Pvt Ltd</a>
|
||||
</small>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
</mat-card>
|
||||
|
||||
@ -53,11 +53,11 @@
|
||||
|| "ENT" }}</span><br>
|
||||
<span class="silk-block mb-1 consultant-year">{{consultant.practitionerInfos[0].exp || null}}</span><br>
|
||||
<span class="silk-block mb-1 consultant-amount">Starts at <span class="consultant-pay">₹ {{consultant.practitionerInfos[0].fees || 100}}</span> </span><br> -->
|
||||
<span class="d-flex mb consultant-time">
|
||||
<!-- <span class="d-flex mb consultant-time">
|
||||
<mat-icon>access_time</mat-icon>
|
||||
<span class="consultant-language">10:00 Am</span>
|
||||
<!-- <span class="consultant-language pl-1">{{consultant.time}}</span> -->
|
||||
</span>
|
||||
<span class="consultant-language pl-1">{{consultant.time}}</span>
|
||||
</span> -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- <span class="d-flex mb">
|
||||
@ -68,11 +68,11 @@
|
||||
<mat-icon>location_on</mat-icon>
|
||||
<span class="consultant-language pl-1">{{consultant.city}}</span>
|
||||
</span> -->
|
||||
<div class="text-center mt-1">
|
||||
<!-- <div class="text-center mt-1">
|
||||
<a><img src="assets/images/facebook.svg" alt="Avatar" class="img"></a>
|
||||
<a><img src="assets/images/twitter.svg" alt="Avatar" class="img"></a>
|
||||
<a><img src="assets/images/instagram.svg" alt="Avatar" class="img"></a>
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- <p class="message text-center">Apollo Hospitals Cancer Centre Nandanam,Chennai</p> -->
|
||||
<div style="text-align: center;">
|
||||
<button class="button pill-shape text-center" routerLink="/booking/doctor-profile"> View Profile</button>
|
||||
|
||||
@ -39,6 +39,7 @@ h5{
|
||||
background: #EBF4FA;
|
||||
box-shadow: 0 2px 6px $black_10;
|
||||
transition: all 0.3s ease-in-out 0s;
|
||||
height: 260px;
|
||||
&:hover {
|
||||
box-shadow: 0 0 21px $black_30;
|
||||
cursor: pointer;
|
||||
|
||||
@ -225,10 +225,10 @@ export class ConsultantsListComponent implements OnInit {
|
||||
console.log(URL_AS_LIST);
|
||||
|
||||
if(URL_AS_LIST[2] == 'practitioner'){
|
||||
this.router.navigate(['customer/'+URL_AS_LIST[2]+'/'+URL_AS_LIST[3]])
|
||||
this.router.navigate(['booking/'+URL_AS_LIST[2]+'/'+URL_AS_LIST[3]])
|
||||
console.log('practitioner')
|
||||
}else{
|
||||
this.router.navigate(['customer/'+URL_AS_LIST[2]+'/'+URL_AS_LIST[3]])
|
||||
this.router.navigate(['booking/'+URL_AS_LIST[2]+'/'+URL_AS_LIST[3]])
|
||||
console.log('Business')
|
||||
}
|
||||
}
|
||||
|
||||
@ -272,13 +272,13 @@
|
||||
<p class="param"><img src="assets/images/Time-Icon.svg" alt="Avatar" class="img">Time </p>
|
||||
<span class="span-text">{{bookedDetails.time | date:'shortTime'}}</span>
|
||||
<p class="param"><img src="assets/images/Location.svg" alt="Avatar" class="img">Amount </p>
|
||||
<span class="span-text"><span class="ex" style="font-size: 12px;padding-bottom: 10px;line-height: 17px;">{{currency}}</span> {{bookedDetails.amount}}</span>
|
||||
<span class="span-text"><span class="ex" style="font-size: 12px;padding-bottom: 10px;line-height: 17px;"></span> {{bookedDetails.amount | currency: currency}}</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="text-align: end;" >
|
||||
<button class="mat-green" type="button" [disabled]="form.invalid" (click)="onclickfun()" mat-raised-button>Submit</button>
|
||||
<button class="mat-green" type="button" [disabled]="form.invalid" (click)="onclickfun()" mat-raised-button>Pay Now</button>
|
||||
</div>
|
||||
</form>
|
||||
</mat-card>
|
||||
|
||||
@ -316,20 +316,22 @@ export class CustomerInfoComponent implements OnInit {
|
||||
backClicked() {
|
||||
this._location.back();
|
||||
}
|
||||
// backRedireact(){
|
||||
// let URL = this.router.url;
|
||||
// console.log(URL)
|
||||
// let URL_AS_LIST = URL.split('/');
|
||||
// console.log(URL_AS_LIST);
|
||||
|
||||
|
||||
backRedireact(){
|
||||
let URL = this.router.url;
|
||||
console.log(URL)
|
||||
let URL_AS_LIST = URL.split('/');
|
||||
console.log(URL_AS_LIST);
|
||||
|
||||
// if(URL_AS_LIST[2] == 'practitioner'){
|
||||
// this.router.navigate(['customer/'+URL_AS_LIST[2]+'/'+URL_AS_LIST[3]+'/details'])
|
||||
// console.log('practitioner')
|
||||
// }else{
|
||||
// this.router.navigate(['customer/'+URL_AS_LIST[2]+'/'+URL_AS_LIST[3]])
|
||||
// console.log('Business')
|
||||
// }
|
||||
// }
|
||||
if(URL_AS_LIST[2] == 'practitioner'){
|
||||
this.router.navigate(['booking/'+URL_AS_LIST[2]+'/'+URL_AS_LIST[3]])
|
||||
console.log('practitioner')
|
||||
}else{
|
||||
this.router.navigate(['booking/'+URL_AS_LIST[2]+'/'+URL_AS_LIST[3]])
|
||||
console.log('Business')
|
||||
}
|
||||
}
|
||||
|
||||
// @HostListener('window:popstate', ['$event'])
|
||||
// onPopState(event) {
|
||||
@ -337,6 +339,13 @@ export class CustomerInfoComponent implements OnInit {
|
||||
// this.backRedireact()
|
||||
// }
|
||||
|
||||
@HostListener('window:beforeunload', ['$event'])
|
||||
beforeUnloadHandler(event: Event) {
|
||||
// Redirect to the desired route
|
||||
this.backRedireact()
|
||||
}
|
||||
|
||||
|
||||
image_view(image){
|
||||
return this.apiUrl+'imageViewer?img_name='+image;
|
||||
}
|
||||
|
||||
@ -214,7 +214,7 @@
|
||||
<p class="param"><img src="assets/images/Time-Icon.svg" alt="Avatar" class="img">Time : </p>
|
||||
<span class="span-text">{{slotTime | date:'shortTime'}}</span>
|
||||
<p class="param"><img src="assets/images/Location.svg" alt="Avatar" class="img">Amount : </p>
|
||||
<span class="span-text"><span class="ex" style="font-size: 12px;padding-bottom: 10px;line-height: 17px;">{{currency}}</span> {{ serviceMapdetails[0].duration.length>0 ? serviceMapdetails[0].duration[0].fees:serviceMapdetails[0].service[0].fees}}</span>
|
||||
<span class="span-text"><span class="ex" style="font-size: 12px;padding-bottom: 10px;line-height: 17px;"></span> {{(serviceMapdetails[0].duration.length>0 ? serviceMapdetails[0].duration[0].fees:serviceMapdetails[0].service[0].fees) | currency: currency}}</span>
|
||||
<div>
|
||||
<hr>
|
||||
<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>
|
||||
|
||||
@ -7,8 +7,8 @@ export const environment = {
|
||||
production: false,
|
||||
environmentName: 'Testing Environment',//Localhost Environment.
|
||||
// apiEndpoint:'http://venbainfotech.com:5000/api/',
|
||||
// apiEndpoint:'http://192.168.1.23:8080/api/',
|
||||
apiEndpoint:'https://api.venbait.in/api/',
|
||||
apiEndpoint:'http://192.168.1.11:8080/api/',
|
||||
// apiEndpoint:'https://api.venbait.in/api/',
|
||||
|
||||
//EndUser URL
|
||||
endUserUrl: window.location.origin+'/#/booking/',
|
||||
|
||||
Loading…
Reference in New Issue
Block a user