保誠-保戶業務員媒合平台
Tomas
2022-01-19 22ee840d8c9a79e56609351fa67e6c2ac9f620bb
PAMapp/components/Interview/InterviewMsg.vue
@@ -30,16 +30,41 @@
      </div>
        </el-dialog>
        <PopUpFrame
        :isOpen.sync="isShowSuccessAlert">
        <div class="text--middle invite-review">
            <div class="mb-30 mt-10">已發送約訪通知</div>
            <div class="text--primary text--middle cursor--pointer text--underline" @click="closeAllDialog " :size="'250px'">我知道了</div>
          </div>
        </PopUpFrame>
  </div>
</template>
<script lang="ts">
import { Vue, Component, Prop, PropSync, Emit } from 'nuxt-property-decorator';
import { Vue, Component, Prop, PropSync, Emit, namespace } from 'nuxt-property-decorator';
import appointmentService from '~/shared/services/appointment.service';
import { Appointment, ToInformAppointment } from '~/shared/models/appointment.model';
import { ContactStatus } from '~/shared/models/enum/contact-status';
const appointmentStore = namespace('appointment.store');
@Component
export default class InterviewMsg extends Vue {
    @appointmentStore.Action
    getMyAppointmentList!: () => Promise<Appointment[]>;
    @appointmentStore.Action
    updateMyAppointmentList!:(appointment: Appointment) => Appointment[];
    @appointmentStore.Action
    updateAppointmentDetail!: (appointmentId: number) => Promise<Appointment>;
    @appointmentStore.State
    appointmentDetail!: Appointment;
    @PropSync('isVisible')
    dialogVisible!: boolean;
@@ -54,8 +79,11 @@
        return;
    }
    interviewTxt = "";
    interviewTime = '';
    interviewTime      = '';
    interviewTxt       = '';
    isShowSuccessAlert = false;
    contactStatus = ContactStatus;
    //////////////////////////////////////////////////////////////////////
@@ -67,10 +95,22 @@
        message      : this.interviewTxt,
        phone        : this.client?.phone,
      };
      appointmentService.informAppointment(appointmentInformation).then((_) => {
        // TODO: close dialog after confirm success msg drawer (assign to Helen)[Tomas, 2022/1/17 11:21];
        this.dialogVisible = false;
        this.isShowSuccessAlert = true ;
        const updatedAppointment = {
          ...this.appointmentDetail,
          communicateStatus: this.contactStatus.CONTACTED,
        };
        this.updateMyAppointmentList(updatedAppointment);
        this.updateAppointmentDetail(updatedAppointment.id);
      });
    }
    closeAllDialog() {
      this.isShowSuccessAlert = false ;
      this.dialogVisible = false;
      this.getMyAppointmentList();
    }
}
@@ -103,5 +143,9 @@
  display: flex;
  justify-content: center;
}
.invite-review{
    display: flex;
    flex-direction: column;
    align-items: center;
  }
</style>