From b8b97d75dcfce3de0f33071ae554e055b371809b Mon Sep 17 00:00:00 2001 From: Mila <Mila@pollex.com.tw> Date: 星期五, 21 一月 2022 16:15:06 +0800 Subject: [PATCH] Merge branch 'Phase3' of https://192.168.0.10:8443/r/pcalife/PAM into Phase3 --- PAMapp/components/Consultant/ConsultantCard.vue | 95 ++++++++++++++++++++++++++++++----------------- 1 files changed, 61 insertions(+), 34 deletions(-) diff --git a/PAMapp/components/Consultant/ConsultantCard.vue b/PAMapp/components/Consultant/ConsultantCard.vue index e47a64d..f7198f6 100644 --- a/PAMapp/components/Consultant/ConsultantCard.vue +++ b/PAMapp/components/Consultant/ConsultantCard.vue @@ -33,17 +33,17 @@ v-if="showRemoveBtn" @click="removeAgent" >蝘駁</div> + <div + v-if="notScoreAppointmentYet" + class="text--primary text--underline cursor--pointer xsTxt text--bold" + @click="reviewsBtn = true">蝯虫�遛��漲閰��</div> </el-col> <el-col class="flex_column" :xs="9" :sm="6"> <el-button class="smTxt_bold outline_btn" - @click="reserveCommunication" + @click="reservedOrShowAppointmentInfo" :class="actionBtnStyle" >{{ actionBtnLabel }}</el-button> - <div - v-if="notScoreAppointmentYet" - class="text--primary mt-10 text--center text--underline cursor--pointer" - @click="reviewsBtn = true">蝯虫�遛��漲閰��</div> <div class="updateTime mt-10"> {{ agentInfo.updateTime | formatDate }} </div> @@ -53,12 +53,12 @@ <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> @@ -80,7 +80,7 @@ </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> @@ -91,14 +91,24 @@ </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="dialogInfo-score"> - <el-rate v-model="inputScore" class="pam-quickFilter-rate"></el-rate> + <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-btn"> + + <div class="review-score"> + <el-rate v-model="inputScore" class="pam-rate mt-30"></el-rate> + </div> + + <div class="review-btn"> <el-button type="primary" :disabled="!inputScore" @@ -172,7 +182,6 @@ hideReviews = hideReviews; isConfirmPopup = false; - appointmentDetail: any = { age : '', agentNo : '', @@ -199,16 +208,16 @@ 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 { - return !!this.agentInfo['appointmentStatus'];; + return !!this.agentInfo['appointmentStatus']; } get latestReservedAppointment(): Appointment { return this.agentInfo.appointments! - .filter((appointment) => appointment.communicateStatus !== 'contacted') + .filter((appointment) => appointment.communicateStatus === 'reserved') .map((reversedAppointment) => { return { ...reversedAppointment, @@ -246,6 +255,12 @@ 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 '撌脰蝯�'; @@ -265,6 +280,12 @@ } 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') { @@ -290,7 +311,7 @@ @Action storeConsultantList!: () => void; - reserveCommunication() { + reservedOrShowAppointmentInfo() { const isAppointment = !!this.agentInfo['appointmentStatus']; const contactStatus = this.agentInfo.contactStatus; if (!isAppointment && (!contactStatus || contactStatus === 'picked')) { @@ -429,6 +450,28 @@ } } + .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; @@ -442,20 +485,4 @@ 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: 50px; - } - </style> -- Gitblit v1.8.0