|
@@ -1,68 +1,71 @@
|
|
|
<ion-header [translucent]="true">
|
|
|
<ion-toolbar class="searchbar">
|
|
|
- <ion-button color="light" slot="start">
|
|
|
- <ion-back-button defaultHref="/" ></ion-back-button>
|
|
|
- </ion-button>
|
|
|
+ <ion-buttons slot="start">
|
|
|
+ <ion-back-button defaultHref="/" color="light"></ion-back-button>
|
|
|
+ </ion-buttons>
|
|
|
<ion-title>找医生</ion-title>
|
|
|
</ion-toolbar>
|
|
|
</ion-header>
|
|
|
|
|
|
<ion-content>
|
|
|
- <ion-segment [(ngModel)]="selectedSegment" (ionChange)="segmentChanged($event)">
|
|
|
+ <ion-segment [(ngModel)]="selectedSegment" (ionChange)="segmentChanged($event)" class="segment-control">
|
|
|
<ion-segment-button *ngFor="let segment of segments" [value]="segment">
|
|
|
{{segment}}
|
|
|
</ion-segment-button>
|
|
|
</ion-segment>
|
|
|
- <div >
|
|
|
- <ion-card class="ioncard" *ngFor="let doctor of doctors" (click)="openDetailModal(doctor)">
|
|
|
- <ion-item lines="none">
|
|
|
- <ion-avatar slot="start">
|
|
|
- <img [src]="doctor.get('avatar')" alt="医生头像">
|
|
|
- </ion-avatar>
|
|
|
-
|
|
|
- <ion-label>
|
|
|
- <div class="doctor-header">
|
|
|
- <h2>{{doctor.get('name')}}</h2>
|
|
|
- <span>{{doctor.get('title')}}</span>
|
|
|
- <span>{{doctor.data["specialty"]}}</span>
|
|
|
- <ion-badge color="primary">可开处方</ion-badge>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="hospital-info">
|
|
|
- <span>{{doctor.get('hospital')}}</span>
|
|
|
- <ion-badge color="success">{{doctor.get('hospitalLevel')}}</ion-badge>
|
|
|
- <ion-badge color="warning">{{doctor.get('hospitalType')}}</ion-badge>
|
|
|
- </div>
|
|
|
- </ion-label>
|
|
|
- </ion-item>
|
|
|
-
|
|
|
- <ion-item lines="none">
|
|
|
- <ion-text color="medium" class="expertise">
|
|
|
- {{doctor.get('expertise')}}
|
|
|
- </ion-text>
|
|
|
- </ion-item>
|
|
|
-
|
|
|
- <ion-item lines="none">
|
|
|
- <div class="stats">
|
|
|
- <div>
|
|
|
- <ion-text color="warning">{{doctor.get('rating')}}</ion-text>
|
|
|
- <ion-icon name="star" color="warning"></ion-icon>
|
|
|
- </div>
|
|
|
- <div>接诊量 {{doctor.get('consultations')}}</div>
|
|
|
- <div>同行认可 {{doctor.get('recommendations')}}</div>
|
|
|
- </div>
|
|
|
- </ion-item>
|
|
|
-
|
|
|
- <ion-item lines="none">
|
|
|
- <div class="consultation-types">
|
|
|
- <ion-button fill="outline">图文 ¥{{doctor.data["prices"]?.text}}</ion-button>
|
|
|
- <ion-button fill="outline">电话 ¥{{doctor.data["prices"]?.voice}}</ion-button>
|
|
|
- <ion-button fill="outline">视频 ¥{{doctor.data["prices"]?.video}}</ion-button>
|
|
|
- <ion-button color="success">年度好医生</ion-button>
|
|
|
- </div>
|
|
|
- </ion-item>
|
|
|
- </ion-card>
|
|
|
- </div>
|
|
|
+
|
|
|
+ <ion-grid>
|
|
|
+ <ion-row>
|
|
|
+ <ion-col size="12">
|
|
|
+ <ion-card class="doctor-card" *ngFor="let doctor of doctors" (click)="openDetailModal(doctor)">
|
|
|
+ <ion-item lines="none">
|
|
|
+ <ion-avatar slot="start">
|
|
|
+ <img [src]="doctor.get('avatar')" alt="医生头像">
|
|
|
+ </ion-avatar>
|
|
|
+ <ion-label>
|
|
|
+ <div class="doctor-header">
|
|
|
+ <h2>{{doctor.get('name')}}</h2>
|
|
|
+ <span class="title">{{doctor.get('title')}}</span>
|
|
|
+ <span class="specialty">{{doctor.data["specialty"]}}</span>
|
|
|
+ <ion-badge color="primary">可开处方</ion-badge>
|
|
|
+ </div>
|
|
|
+ <div class="hospital-info">
|
|
|
+ <span>{{doctor.get('hospital')}}</span>
|
|
|
+ <ion-badge color="success">{{doctor.get('hospitalLevel')}}</ion-badge>
|
|
|
+ <ion-badge color="warning">{{doctor.get('hospitalType')}}</ion-badge>
|
|
|
+ </div>
|
|
|
+ </ion-label>
|
|
|
+ </ion-item>
|
|
|
+
|
|
|
+ <ion-item lines="none">
|
|
|
+ <ion-text color="medium" class="expertise">
|
|
|
+ {{doctor.get('expertise')}}
|
|
|
+ </ion-text>
|
|
|
+ </ion-item>
|
|
|
+
|
|
|
+ <ion-item lines="none">
|
|
|
+ <div class="stats">
|
|
|
+ <div>
|
|
|
+ <ion-text color="warning">{{doctor.get('rating')}}</ion-text>
|
|
|
+ <ion-icon name="star" color="warning"></ion-icon>
|
|
|
+ </div>
|
|
|
+ <div>接诊量 {{doctor.get('consultations')}}</div>
|
|
|
+ <div>同行认可 {{doctor.get('recommendations')}}</div>
|
|
|
+ </div>
|
|
|
+ </ion-item>
|
|
|
+
|
|
|
+ <ion-item lines="none">
|
|
|
+ <div class="consultation-types">
|
|
|
+ <ion-button fill="outline">图文 ¥{{doctor.data["prices"]?.text}}</ion-button>
|
|
|
+ <ion-button fill="outline">电话 ¥{{doctor.data["prices"]?.voice}}</ion-button>
|
|
|
+ <ion-button fill="outline">视频 ¥{{doctor.data["prices"]?.video}}</ion-button>
|
|
|
+ <ion-button color="success">年度好医生</ion-button>
|
|
|
+ </div>
|
|
|
+ </ion-item>
|
|
|
+ </ion-card>
|
|
|
+ </ion-col>
|
|
|
+ </ion-row>
|
|
|
+ </ion-grid>
|
|
|
|
|
|
<!-- 医生详情模态框 -->
|
|
|
<ion-modal [isOpen]="isModalOpen" cssClass="bottom-modal">
|
|
@@ -79,72 +82,74 @@
|
|
|
</ion-header>
|
|
|
|
|
|
<ion-content class="ion-padding">
|
|
|
- <div>
|
|
|
- <ion-card class="first">
|
|
|
- <div class="doctor-header1" style="display: flex; background-color: rgb(213, 205, 144); border-radius: 5px;">
|
|
|
- <div class="verification-badge" *ngIf="doctor1.get('isVerified')">
|
|
|
- <ion-icon name="checkmark-circle"></ion-icon>
|
|
|
- 已通过实名认证
|
|
|
+ <ion-card class="doctor-detail-card">
|
|
|
+ <div class="doctor-header1">
|
|
|
+ <div class="verification-badge" *ngIf="doctor1.get('isVerified')">
|
|
|
+ <ion-icon name="checkmark-circle"></ion-icon>
|
|
|
+ 已通过实名认证
|
|
|
+ </div>
|
|
|
+ <div class="qualification-badge">
|
|
|
+ 执业资质已审核通过
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="doctor-info1">
|
|
|
+ <div class="left-section">
|
|
|
+ <div class="name-title">
|
|
|
+ <h2>{{doctor1.get('name')}}</h2>
|
|
|
+ <ion-badge *ngIf="doctor1.get('isExpert')" color="warning">知名专家</ion-badge>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="position">
|
|
|
+ <span>{{doctor1.get('specialty')}}</span>
|
|
|
+ <span>{{doctor1.get('title')}}</span>
|
|
|
</div>
|
|
|
- <div class="qualification-badge">
|
|
|
- 执业资质已审核通过
|
|
|
+
|
|
|
+ <div class="hospital">
|
|
|
+ <span>{{doctor1.get('hospital')}}</span>
|
|
|
+ <ion-badge color="success">{{doctor1.get('hospitalLevel')}}</ion-badge>
|
|
|
</div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="doctor-info1">
|
|
|
- <div class="left-section">
|
|
|
- <div class="name-title">
|
|
|
- <h2>{{doctor1.get('name')}}</h2>
|
|
|
- <ion-badge *ngIf="doctor1.get('isExpert')" color="warning">知名专家</ion-badge>
|
|
|
+
|
|
|
+ <div class="stats">
|
|
|
+ <div class="rating">
|
|
|
+ <span class="number">{{doctor1.get('rating')}}</span>
|
|
|
+ <ion-icon name="star" color="warning"></ion-icon>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="position">
|
|
|
- <span>{{doctor1.get('specialty')}}</span>
|
|
|
- <span>{{doctor1.get('title')}}</span>
|
|
|
+ <div class="consult">
|
|
|
+ <span>接诊量 {{doctor1.get('recommendation')}}</span>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="hospital">
|
|
|
- <span>{{doctor1.get('hospital')}}</span>
|
|
|
- <ion-badge color="success">{{doctor1.get('hospitalLevel')}}</ion-badge>
|
|
|
+ <div class="service">
|
|
|
+ <span>服务态度好</span>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="stats">
|
|
|
- <div class="rating">
|
|
|
- <span class="number">{{doctor1.get('rating')}}</span>
|
|
|
- <ion-icon name="star" color="warning"></ion-icon>
|
|
|
- </div>
|
|
|
- <div class="consult">
|
|
|
- <span>接诊量 {{doctor1.get('recommendation')}}</span>
|
|
|
- </div>
|
|
|
- <div class="service">
|
|
|
- <span>服务态度好</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="right-section">
|
|
|
- <ion-avatar>
|
|
|
- <img [src]="doctor1.get('avatar')" alt="医生头像">
|
|
|
- </ion-avatar>
|
|
|
- <ion-button style="color: rgb(0, 255, 0);" fill="outline" size="small">
|
|
|
- + 关注
|
|
|
- </ion-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <div class="tags">
|
|
|
- <ion-chip style="color: blue; border-radius: 10px; background-color: rgba(230, 230, 243, 0.671);" *ngFor="let tag of doctor1.data['tags']" outline>
|
|
|
- {{tag}}
|
|
|
- </ion-chip>
|
|
|
- </div>
|
|
|
+
|
|
|
+ <div class="right-section">
|
|
|
+ <ion-avatar>
|
|
|
+ <img [src]="doctor1.get('avatar')" alt="医生头像">
|
|
|
+ </ion-avatar>
|
|
|
+ <ion-button fill="outline" size="small" color="success">
|
|
|
+ + 关注
|
|
|
+ </ion-button>
|
|
|
</div>
|
|
|
- </ion-card>
|
|
|
- </div>
|
|
|
- <div class="aa" style="display: flex;">
|
|
|
- <p class="aaa">保证医生真实</p>
|
|
|
- <p class="aaa">未使用随时退</p>
|
|
|
- <p class="aaa">不满意可申诉</p>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="tags">
|
|
|
+ <ion-chip *ngFor="let tag of doctor1.data['tags']" outline>
|
|
|
+ {{tag}}
|
|
|
+ </ion-chip>
|
|
|
+ </div>
|
|
|
+ </ion-card>
|
|
|
+
|
|
|
+ <div class="info-section">
|
|
|
+ <div class="info-header">
|
|
|
+ <h1>擅长与简介</h1>
|
|
|
+ </div>
|
|
|
+ <div class="info-content">
|
|
|
+ <p>{{doctor1?.get('expertise')}}</p>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+
|
|
|
<div class="consult-options">
|
|
|
<div class="option-grid">
|
|
|
<div class="option-item"
|
|
@@ -175,29 +180,39 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="info" style="margin:0 20px;box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.163), -1px -1px 1px 0px rgba(0, 0, 0, 0.148);">
|
|
|
- <div style="margin: 5px 10px;">
|
|
|
- <h1>擅长与简介</h1>
|
|
|
+
|
|
|
+ <div class="info">
|
|
|
+ <div class="info-header">
|
|
|
+ <h1>保证服务</h1>
|
|
|
</div>
|
|
|
- <div style="margin: 5px 10px;">
|
|
|
- <p style="color: grey;">{{doctor1?.get('expertise')}}</p>
|
|
|
+ <div class="info-content guarantee">
|
|
|
+ <p>保证医生真实</p>
|
|
|
+ <p>未使用随时退</p>
|
|
|
+ <p>不满意可申诉</p>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <ion-buttons>
|
|
|
- <ion-button color="primary" expand="block" (click)="appoint()">立即预约</ion-button>
|
|
|
- </ion-buttons>
|
|
|
- </div>
|
|
|
+
|
|
|
+ <ion-buttons>
|
|
|
+ <ion-button color="primary" expand="block" (click)="appoint()">立即预约</ion-button>
|
|
|
+ </ion-buttons>
|
|
|
</ion-content>
|
|
|
<ion-footer>
|
|
|
- <ion-button style="border-radius: 10px;" expand="block" color="success" (click)="openConsult()">立即咨询(¥120/次)</ion-button>
|
|
|
+ <ion-button class="consult-button" expand="block" color="success" (click)="openConsult()">立即咨询(点击付款)</ion-button>
|
|
|
</ion-footer>
|
|
|
</ng-template>
|
|
|
</ion-modal>
|
|
|
|
|
|
- <!-- 新增收款码模态框 -->
|
|
|
+ <!-- 收款码模态框 -->
|
|
|
<ion-modal [isOpen]="isPaymentModalOpen" cssClass="payment-modal" (ionBackdropTap)="closePaymentModal()">
|
|
|
<ng-template>
|
|
|
+ <ion-header>
|
|
|
+ <ion-toolbar>
|
|
|
+ <ion-title>支付方式</ion-title>
|
|
|
+ <ion-buttons slot="end">
|
|
|
+ <ion-button (click)="closePaymentModal()">关闭</ion-button>
|
|
|
+ </ion-buttons>
|
|
|
+ </ion-toolbar>
|
|
|
+ </ion-header>
|
|
|
<ion-content class="ion-padding payment-content">
|
|
|
<div class="payment-codes">
|
|
|
<img src="../../../assets/image/paya.png" alt="收款码A" class="payment-image">
|