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