| | |
| | | <Ui-Dialog |
| | | :isVisible.sync="isVisibleDialog" |
| | | :width="width" |
| | | class="pam-myDemand-dialog" |
| | | class="pam-myDemand-dialog pam-dialog-reserved" |
| | | > |
| | | <div v-if="appointmentDetail"> |
| | | <h5 class="subTitle text--center mb-30">預約成功</h5> |
| | | <p class="smTxt">{{appointmentDetail.appointmentDate | formatDate}}</p> |
| | | <div class="dialogInfo"> |
| | | <div class="reserved-info"> |
| | | <p>姓名:{{appointmentDetail.name}}</p> |
| | | <p>電話:{{appointmentDetail.phone}}</p> |
| | | <p>Email:{{appointmentDetail.email}}</p> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div v-if="notScoreAppointmentYet" class="dialogInfo-btn"> |
| | | <div v-if="notScoreAppointmentYet" class="reserved-btn"> |
| | | <el-button type="primary" |
| | | @click.native="reviewsBtn = true">給予滿意度評分</el-button> |
| | | </div> |
| | |
| | | </div> |
| | | </Ui-Dialog> |
| | | |
| | | <PopUpFrame :isOpen.sync="reviewsBtn"> |
| | | <div class="mdTxt"> |
| | | <PopUpFrame :isOpen.sync="reviewsBtn" class="reviewDialog-content"> |
| | | <div class="mdTxt pam-dialog-review"> |
| | | 保險顧問滿意度 |
| | | <span class="hint">選取星星</span> |
| | | <div class="mt-30 reviewDialog-content"> |
| | | <div class="mt-30 review-content"> |
| | | <UiAvatar :size="80" :agentNo="agentInfo.agentNo"></UiAvatar> |
| | | <div class="review-text">對於顧問 |
| | | <span class="text--primary">{{agentInfo.name}}</span> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="dialogInfo-score"> |
| | | <div class="review-score"> |
| | | <el-rate v-model="inputScore" class="pam-rate mt-30"></el-rate> |
| | | </div> |
| | | |
| | | <div class="dialogInfo-btn"> |
| | | <div class="review-btn"> |
| | | <el-button |
| | | type="primary" |
| | | :disabled="!inputScore" |
| | |
| | | get notScoreAppointmentYet(): boolean { |
| | | const isAppointment = !!this.agentInfo['appointmentStatus']; |
| | | if (!isAppointment) return false; |
| | | return !this.agentInfo['appointmentScore']; |
| | | return this.agentInfo['appointmentStatus'] !== 'contacted' ? !this.agentInfo['appointmentScore'] : false; |
| | | } |
| | | |
| | | get isAppointment(): boolean { |
| | |
| | | |
| | | get latestReservedAppointment(): Appointment { |
| | | return this.agentInfo.appointments! |
| | | .filter((appointment) => appointment.communicateStatus !== 'contacted') |
| | | .filter((appointment) => appointment.communicateStatus === 'reserved') |
| | | .map((reversedAppointment) => { |
| | | return { |
| | | ...reversedAppointment, |
| | |
| | | if (this.agentInfo['appointmentStatus'] === 'reserved') { |
| | | return '已預約'; |
| | | } |
| | | if (this.agentInfo['appointmentStatus'] === 'done') { |
| | | return '已成交'; |
| | | } |
| | | if (this.agentInfo['appointmentStatus'] === 'closed') { |
| | | return '未成交'; |
| | | } |
| | | } else { |
| | | if (this.agentInfo.contactStatus === 'contacted') { |
| | | return '已聯絡'; |
| | |
| | | } |
| | | if (this.agentInfo['appointmentStatus'] === 'reserved') { |
| | | return 'reservedBtn'; |
| | | } |
| | | if (this.agentInfo['appointmentStatus'] === 'done') { |
| | | return 'doneBtn'; |
| | | } |
| | | if (this.agentInfo['appointmentStatus'] === 'closed') { |
| | | return 'closedBtn'; |
| | | } |
| | | } else { |
| | | if (this.agentInfo.contactStatus === 'contacted') { |
| | |
| | | } |
| | | } |
| | | |
| | | .doneBtn { |
| | | color: $BEIGE; |
| | | border-color: $BEIGE; |
| | | |
| | | &:focus { |
| | | color: $PRIMARY_WHITE; |
| | | background-color: $BEIGE; |
| | | opacity: 0.5; |
| | | } |
| | | } |
| | | |
| | | .closedBtn { |
| | | color: $PRUDENTIAL_GREY; |
| | | border-color: $PRUDENTIAL_GREY; |
| | | |
| | | &:focus { |
| | | color: $PRIMARY_WHITE; |
| | | background-color: $PRUDENTIAL_GREY; |
| | | opacity: 0.5; |
| | | } |
| | | } |
| | | |
| | | .updateTime { |
| | | font-size: 12px; |
| | | font-weight: bold; |
| | |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .dialogInfo { |
| | | font-size: 20px; |
| | | overflow-y:scroll; |
| | | height: 400px; |
| | | } |
| | | .dialogInfo-btn{ |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .dialogInfo-score{ |
| | | display: flex; |
| | | justify-content: center; |
| | | margin-bottom: 30px; |
| | | } |
| | | .reviewDialog-content { |
| | | display: flex; |
| | | flex-direction: row; |
| | | justify-content: space-evenly; |
| | | |
| | | .review-text { |
| | | width: 60%; |
| | | line-height: 28px; |
| | | @extend .p; |
| | | @extend .text--lighter; |
| | | } |
| | | } |
| | | |
| | | </style> |