保誠-保戶業務員媒合平台
Mila
2022-01-19 e471f81737e1e113f913ac615a0a368ab3ca2cd1
PAMapp/pages/appointment/_appointmentId/index.vue
@@ -1,13 +1,13 @@
<template>
  <div class="appointment-client-detail-page">
    <div class="date-detail">
      <!-- TODO: 要依據不同 step 顯示不同 Date [Tomas, 2022/1/11] -->
      <div>{{ appointmentDetail.appointmentDate }}</div>
      <div>{{ appointmentDetail.consultantReadTime }}</div>
      <div>{{ appointmentDetail.appointmentDate | formatDate }}</div>
      <div>{{ appointmentDetail.consultantReadTime | formatDate }}</div>
    </div>
    <AppointmentProgress
      class="mt-10"
      :currentStep="appointmentDetail.communicateStatus"
      :currentStep="appointmentProgress"
    ></AppointmentProgress>
    <section class="client-detail">
@@ -22,7 +22,7 @@
          </div>
        </div>
        <div class="client-detail-info__information">
          <div>{{ appointmentDetail.age || '--' }}歲</div>
          <div>{{ appointmentDetail.age | toAgeLabel }}</div>
          <div>{{ appointmentDetail.phone }}</div>
          <div class="text--underline">
            {{ appointmentDetail.email }}
@@ -73,45 +73,45 @@
    </section>
    <InterviewMsg :isVisible.sync="isVisibleDialog"></InterviewMsg>
    <InterviewMsg
      :isVisible.sync="isVisibleDialog"
      :client="appointmentDetail">
    </InterviewMsg>
    <section class="mt-30">
      <AppointmentInterviewList />
      <AppointmentInterviewList :interviewList="appointmentDetail.interviewRecordDTOs" />
    </section>
    <section class="mt-30">
      <AppointmentRecordList />
      <AppointmentRecordList :noticeLogs="appointmentDetail.appointmentNoticeLogs" />
    </section>
  </div>
</template>
<script lang="ts">
import { Context } from '@nuxt/types';
import { Vue, Component } from 'vue-property-decorator';
import { namespace } from 'nuxt-property-decorator';
import appointmentService from '~/shared/services/appointment.service';
import { AppointmentDetail } from '~/shared/models/appointment.model';
import { Appointment } from '~/shared/models/appointment.model';
import { ContactStatus } from '~/shared/models/enum/contact-status';
const appointmentStore = namespace('appointment.store');
@Component
export default class AppointmentDetailComponent extends Vue {
  appointmentDetail!: AppointmentDetail;
  @appointmentStore.State('appointmentDetail')
  appointmentDetail!: Appointment;
  @appointmentStore.Getter('appointmentProgress')
  appointmentProgress!: ContactStatus;
  isVisibleDialog = false;
  interviewTxt = "";
  contactStatus = ContactStatus;
  //////////////////////////////////////////////////////////////////////
  async asyncData(context: Context) {
    const appointmentId = +context.route.params.appointmentId;
    return {
      appointmentDetail: await appointmentService.getAppointmentDetail(appointmentId).then((res) => res)
    }
  }
  //////////////////////////////////////////////////////////////////////