From 9bdb95c9e34cef640534e5e5a1e2225a80442000 Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期四, 09 六月 2022 15:48:15 +0800 Subject: [PATCH] TODO#139894 [ footer -最下方說明與保經代合作 ] 文案修改 --- PAMapp/pages/satisfactionList.vue | 137 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 110 insertions(+), 27 deletions(-) diff --git a/PAMapp/pages/satisfactionList.vue b/PAMapp/pages/satisfactionList.vue index e54717c..dbf2330 100644 --- a/PAMapp/pages/satisfactionList.vue +++ b/PAMapp/pages/satisfactionList.vue @@ -4,46 +4,116 @@ <div class="pam-container"> <div class="satisfaction-title"> <span class="mdTxt">皛踵�漲隤踵</span> - <span class="ml-10 text--prudential_grey smTxt_bold">� {{satisfactionList.length}} 蝑�</span> + <span class="ml-10 text--prudential_grey smTxt_bold">� {{mapUnReviewLogList.length}} 蝑�</span> </div> - <div class="satisfaction-card" v-for="(item, index) in satisfactionList" :key="index"> - <div class="satisfaction-card-content"> - <UiAvatar :size="80" :agentNo="''"></UiAvatar> - <div class="satisfaction-card-text">撠憿批�� - <span class="text--primary text--bold">{{item.agentName}}</span> - ��擃���蝯虫�嗾憿��嚗� + <template v-if="mapUnReviewLogList.length"> + <div class="satisfaction-card" v-for="(item, index) in mapUnReviewLogList" :key="index"> + <div class="satisfaction-card-content" v-if="item.agentName"> + <UiAvatar :size="80" :agentNo="item.agentNo"></UiAvatar> + <div class="satisfaction-card-text">撠憿批�� + <span class="text--primary text--bold">{{item.agentName}}</span> + ��擃���蝯虫�嗾憿��嚗� + </div> </div> + <div class="satisfaction-card-content" v-else> + <div class="pam-satisfaction-avatar"> + <span class="pam-satisfaction-avatar-txt">撟喳</span> + </div> + <div class="satisfaction-card-text" >撠 + <span class="text--primary text--bold">������</span> + 撟喳��擃���蝯虫�嗾憿��嚗� + </div> + </div> + <el-rate + v-model="item.satisfaction" + class="pam-satisfaction-rate mt-10 fix-chrome-click--issue" + @change="isBtnDisabled = false" + ></el-rate> </div> - <el-rate v-model="item.score" class="pam-satisfaction-rate mt-10"></el-rate> - </div> - <div class="text--center mt-30"> - <el-button type="primary" :disabled="isBtnDisabled">�</el-button> - </div> + <div class="text--center mt-30" v-if="mapUnReviewLogList.length"> + <el-button type="primary" :disabled="isBtnDisabled" @click="sent">�</el-button> + </div> + </template> + <template v-else> + <div class="satisfaction-card"> + <div class="satisfaction-card-content"> + ������閬憛怠神��遛��漲隤踵 + </div> + </div> + </template> </div> + + <PopUpFrame :isOpen.sync="showConfirmPopup" + @closePopUp="closePopup"> + <div class="text--center mdTxt">�����</div> + <div class="text--center mt-30"> + <el-button @click="closePopup" type="primary">蝣箏��</el-button> + </div> + </PopUpFrame> </div> </template> -<script> -import { Vue, Component } from 'nuxt-property-decorator'; +<script lang="ts"> +import { Vue, Component, Action, State, Watch } from 'nuxt-property-decorator'; + +import reviewsService from '~/shared/services/reviews.service'; +import { AppointmentLog } from '~/shared/models/appointment.model'; +import { UserReviewParams } from '~/shared/models/reviews.model'; @Component({ layout: 'home' }) export default class MySatisfactionList extends Vue { - satisfactionList = [ - { - agentName: '�蝢��', - score: 0 - }, - { - agentName: '�蝢��', - score: 0 - } - ] - get isBtnDisabled() { - return this.satisfactionList.findIndex(item => item.score > 0) === -1; + @State + unReviewLogList!: AppointmentLog[]; + + @Action + storeMyAppointmentReviewLog!: () => void; + + mapUnReviewLogList: AppointmentReviewLog[] = []; + showConfirmPopup = false; + isBtnDisabled = true; + + /////////////////////////////////////////////////////// + + @Watch('unReviewLogList') + onUnReviewLogListChange() { + this.mapUnReviewLogList = this.unReviewLogList.map(item => { + return { + ...item, + satisfaction: 0 + } + }) } + + /////////////////////////////////////////////////////// + + sent() { + const reviewParams: UserReviewParams[] = this.mapUnReviewLogList + .filter(item => item.satisfaction > 0) + .map(item => { + return { + appointmentId: item.appointmentId, + score: item.satisfaction, + type: item.type + } + }) + + reviewsService.allUserReviewsConsultants(reviewParams).then((res) => { + this.showConfirmPopup = true; + }); + } + + closePopup() { + this.showConfirmPopup = false; + this.storeMyAppointmentReviewLog(); + } + +} + +interface AppointmentReviewLog extends AppointmentLog { + satisfaction: number; } </script> @@ -88,6 +158,19 @@ font-size: 20px; padding-left: 10px; } + .pam-satisfaction-avatar{ + height: 80px; + width: 80px; + border-radius: 50%; + background-color:#F09491; + justify-content: center; + align-items: center; + display: flex; + .pam-satisfaction-avatar-txt{ + font-size: 18px; + color: #fff; + } + } @include desktop { justify-content: flex-start; @@ -99,4 +182,4 @@ } } -</style> \ No newline at end of file +</style> -- Gitblit v1.8.0