保誠-保戶業務員媒合平台
Mila
2022-01-24 1841c2480076b9d64071c032d42a2215bb3fbebb
PAMapp/pages/satisfactionList.vue
@@ -14,18 +14,32 @@
              的整體服務,您給予幾顆星評價?
          </div>
        </div>
        <el-rate v-model="item.score" class="pam-satisfaction-rate mt-10 fix-chrome-click--issue"></el-rate>
        <el-rate
          v-model="item.satisfaction"
          class="pam-satisfaction-rate mt-10 fix-chrome-click--issue"
          @change="isBtnDisabled = false"
        ></el-rate>
      </div>
      <div class="text--center mt-30">
        <el-button type="primary" :disabled="isBtnDisabled">送出</el-button>
      <div class="text--center mt-30" v-if="mapUnReviewLogList.length">
        <el-button type="primary" :disabled="isBtnDisabled" @click="sent">送出</el-button>
      </div>
    </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 lang="ts">
import { Vue, Component, Action, State, Watch } from 'nuxt-property-decorator';
import { AppointmentLog } from '~/shared/models/appointment.model';
import { UserReviewsConsultantsParams } from '~/shared/models/reviews.model';
import reviewsService from '~/shared/services/reviews.service';
@Component({
  layout: 'home'
@@ -35,7 +49,12 @@
  @State
  unReviewLogList!: AppointmentLog[];
  @Action
  storeMyAppointmentReviewLog!: () => void;
  mapUnReviewLogList: AppointmentReviewLog[] = [];
  showConfirmPopup = false;
  isBtnDisabled = true;
  ///////////////////////////////////////////////////////
@@ -53,12 +72,26 @@
  ///////////////////////////////////////////////////////
  get isBtnDisabled() {
    if (this.mapUnReviewLogList.length) {
      return this.mapUnReviewLogList.findIndex(item => item.satisfaction > 0) === -1;
    }
    return false;
  sent() {
    const reviewParams: UserReviewsConsultantsParams[] = this.mapUnReviewLogList
                .filter(item => item.satisfaction > 0)
                .map(item => {
                  return {
                    appointmentId: item.appointmentId,
                    score: item.satisfaction
                  }
                })
        reviewsService.allUserReviewsConsultants(reviewParams).then((res) => {
            this.showConfirmPopup = true;
        });
  }
  closePopup() {
    this.showConfirmPopup = false;
    this.storeMyAppointmentReviewLog();
  }
}
interface AppointmentReviewLog extends AppointmentLog {