From e471f81737e1e113f913ac615a0a368ab3ca2cd1 Mon Sep 17 00:00:00 2001 From: Mila <Mila@pollex.com.tw> Date: 星期三, 19 一月 2022 18:09:41 +0800 Subject: [PATCH] update TODO#134465 約訪紀錄(查看更多) --- PAMapp/components/Interview/InterviewAdd.vue | 66 +++++++++++++++------------------ 1 files changed, 30 insertions(+), 36 deletions(-) diff --git a/PAMapp/components/Interview/InterviewAdd.vue b/PAMapp/components/Interview/InterviewAdd.vue index 3f867d8..7a47229 100644 --- a/PAMapp/components/Interview/InterviewAdd.vue +++ b/PAMapp/components/Interview/InterviewAdd.vue @@ -1,6 +1,6 @@ <template> <div class="edit-appointment-record"> - <div class="edit-appointment-record-date" v-if="interviewId"> + <div class="edit-appointment-record-date" v-if="interviewId && interviewRecord"> <span>{{interviewRecord.createdDate | formatDate}} 撱箇��</span> <span>{{interviewRecord.lastModifiedDate | formatDate}} ��</span> </div> @@ -85,25 +85,26 @@ <InterviewMsg :isVisible.sync="showInterviewMsgPopup" + :client="appointmentDetail" @closeDialog="closePopup" ></InterviewMsg> </div> </template> <script lang="ts"> -import { InterviewRecord, InterviewRecordInfo } from '~/shared/models/appointment.model'; -import { Vue, Component, Prop, State, Mutation, Watch, Action } from 'nuxt-property-decorator'; +import { Appointment, InterviewRecord, InterviewRecordInfo } from '~/shared/models/appointment.model'; +import { Vue, Component, Watch, namespace } from 'nuxt-property-decorator'; import appointmentService from '~/shared/services/appointment.service'; + +const appointmentStore = namespace('appointment.store'); @Component export default class InterviewAdd extends Vue { - @State - interviewRecord!: InterviewRecord; - @Mutation - updateInterviewRecord!: (data: InterviewRecord) => void; + @appointmentStore.State + appointmentDetail!: Appointment; - @Mutation - clearInterviewRecord!: () => void; + @appointmentStore.Action + updateAppointmentDetail!: (id: number) => Appointment; interviewTime = ''; content = ''; @@ -121,38 +122,29 @@ defaultValue = ''; + interviewRecord!: InterviewRecord; + //////////////////////////////////////////////////////////////////// mounted() { this.interviewId = this.$route.params.interviewId; this.appointmentId = this.$route.params.appointmentId; - const isEditPage = this.interviewId && this.interviewRecord; - if (isEditPage) { - this.checkInterviewRecord(); - } - } - private checkInterviewRecord() { - if (this.interviewRecord.appointmentId !== +this.appointmentId - || this.interviewRecord.id !== +this.interviewId) { - appointmentService.getAppointmentDetail(+this.appointmentId).then((data) => { - const currentInterviewRecord = data.interviewRecordDTOs.filter(item => item.id === +this.interviewId)[0]; - this.updateInterviewRecord(currentInterviewRecord); - }) - } - } - - destroyed() { - this.clearInterviewRecord(); + this.onAppointmentDetailChange(); } //////////////////////////////////////////////////////////////////// - @Watch('interviewRecord', {immediate: true}) - watchInterviewRecord() { - if (this.interviewRecord && this.interviewRecord.content) { - this.content = this.interviewRecord.content; - this.defaultValue = this.interviewRecord.interviewDate; + @Watch('appointmentDetail', {immediate: true}) + onAppointmentDetailChange() { + if (this.appointmentDetail && this.appointmentDetail.id === +this.appointmentId) { + this.interviewRecord = this.appointmentDetail.interviewRecordDTOs + .filter(item => item.id === +this.interviewId)[0]; + + if (this.interviewRecord && this.interviewId) { + this.content = this.interviewRecord.content; + this.defaultValue = this.interviewRecord.interviewDate; + } } } @@ -173,6 +165,7 @@ } this.updateRecord(updateInterviewRecord); } + this.updateAppointmentDetail(+this.appointmentId); } private createdRecord(interviewRecordInfo) { @@ -197,14 +190,11 @@ } } - closePopup() { - this.$router.push(`/appointment/${this.appointmentId}`); - } - deleteInterviewRecord() { appointmentService.deleteInterviewRecord(this.interviewId).then(res => { this.confirmTxt = '������'; this.showConfirmPopup = true; + this.updateAppointmentDetail(+this.appointmentId); }); } @@ -214,10 +204,14 @@ this.defaultValue = this.interviewRecord.interviewDate; this.isEdit = false; } else { - this.$router.push(`/appointment/${this.appointmentId}`); + this.$router.go(-1); } } + closePopup() { + this.$router.go(-1); + } + //////////////////////////////////////////////////////////////////// get formatInterviewDate() { -- Gitblit v1.8.0