From 22ee840d8c9a79e56609351fa67e6c2ac9f620bb Mon Sep 17 00:00:00 2001 From: Tomas <tomasysh@gmail.com> Date: 星期三, 19 一月 2022 14:56:57 +0800 Subject: [PATCH] refactor: appointment store --- PAMapp/components/Interview/InterviewMsg.vue | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 50 insertions(+), 6 deletions(-) diff --git a/PAMapp/components/Interview/InterviewMsg.vue b/PAMapp/components/Interview/InterviewMsg.vue index d37ea38..7d671ce 100644 --- a/PAMapp/components/Interview/InterviewMsg.vue +++ b/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> -- Gitblit v1.8.0