From 66f726b6643e85cd6ec0041d01b31d38b3803c1a Mon Sep 17 00:00:00 2001 From: Tomas <tomasysh@gmail.com> Date: 星期三, 26 一月 2022 10:56:05 +0800 Subject: [PATCH] add#134789: [顧問] 過久未回應的預約單流程 --- PAMapp/components/Interview/InterviewMsg.vue | 70 +++++++++++++++++++++++++++------- 1 files changed, 55 insertions(+), 15 deletions(-) diff --git a/PAMapp/components/Interview/InterviewMsg.vue b/PAMapp/components/Interview/InterviewMsg.vue index 420a292..bc76c75 100644 --- a/PAMapp/components/Interview/InterviewMsg.vue +++ b/PAMapp/components/Interview/InterviewMsg.vue @@ -9,30 +9,34 @@ <div class="subTitle msg-dialog-title">蝝赤�</div> <div class="send-msg-nav"> <div class="mdTxt">��摰�</div> - <div class="mdTxt text--primary text--underline">蝺刻摩</div> </div> <el-input type="textarea" - autosize="true" + :autosize="true" placeholder="蝝赤�" resize="none" - v-model="isInterviewTxt"> + v-model="interviewTxt"> </el-input> - <div class="mdTxt mt-30 mb-10">����赤��挾</div> - <DateTimePicker - @changeDateTime="interviewTime = $event" - ></DateTimePicker> + <div v-if="client.phone"> + <div class="mdTxt mt-30 mb-10 required">����赤��挾</div> + <DateTimePicker + @changeDateTime="interviewTime = $event" + :isPastDateDisabled="true" + :defaultValue="defaultValue" + ></DateTimePicker> + </div> <div class="msg-dialog-btn"> - <el-button @click="addInterview" :disabled="!interviewTime">���</el-button> + <el-button @click="addInterview" :disabled="isBtnDisabled">���</el-button> </div> </el-dialog> <PopUpFrame - :isOpen.sync="isShowSuccessAlert"> + :isOpen.sync="isShowSuccessAlert" + @closePopUp="closeAllDialog"> <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> @@ -41,16 +45,23 @@ </div> </template> <script lang="ts"> -import { Vue, Component, Prop, PropSync, Emit, Action } 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 { AgentInfo } from '~/shared/models/agent-info.model'; + +const loginStore = namespace('login.store'); +const appointmentStore = namespace('appointment.store'); @Component export default class InterviewMsg extends Vue { - @Action - storeMyAppointmentList!: () => Promise<number>; + @appointmentStore.Action + updateAppointmentDetail!: (id: number) => Appointment; + + @appointmentStore.Action + getMyAppointmentList!: () => Promise<Appointment[]>; @PropSync('isVisible') dialogVisible!: boolean; @@ -61,16 +72,34 @@ @Prop() client!: Appointment; + @Prop() + defaultValue!: string; + @Emit('closeDialog') closeDialog() { return; } + + @loginStore.State + loginConsultant!: AgentInfo; isShowSuccessAlert = false; interviewTxt = ""; interviewTime = ''; ////////////////////////////////////////////////////////////////////// + + mounted() { + if(this.loginConsultant.phoneNumber && this.loginConsultant.email) + { + this.interviewTxt = "�憟踝��靽���像����憿批��" + this.loginConsultant.name + "嚗�����������銝膩������蝜�"+"\n"+"隞乩����閰梯�Ⅳ/Email嚗�"+"\n" + this.loginConsultant.phoneNumber + "\n" + this.loginConsultant.email + "\n"+"�甇斗���靘選����蝜恬�����"} + else if (!this.loginConsultant.phoneNumber && this.loginConsultant.email) + { + this.interviewTxt = "�憟踝��靽���像����憿批��" + this.loginConsultant.name + "嚗�����������銝膩������蝜�"+"\n"+"隞乩����mail嚗�"+"\n" + this.loginConsultant.email + "\n"+"�甇斗���靘選����蝜恬�����" + } + else + this.interviewTxt = "�憟踝��靽���像����憿批��" + this.loginConsultant.name + "嚗�����������銝膩������蝜�"+"\n"+"隞乩����閰梯�Ⅳ嚗�"+"\n" + this.loginConsultant.phoneNumber + "\n"+"�甇斗���靘選����蝜恬�����" + } addInterview() { const appointmentInformation: ToInformAppointment = { @@ -88,11 +117,13 @@ closeAllDialog() { this.isShowSuccessAlert = false ; this.dialogVisible = false; - this.storeMyAppointmentList(); + this.updateAppointmentDetail(this.client.id); + this.getMyAppointmentList(); } - get isInterviewTxt() : string{ - return this.interviewTxt = "�憟踝��靽���像����憿批��" + "agentName"+"嚗�����������銝膩������蝜�"+"\n"+"隞乩����閰梯�Ⅳ/Email嚗�"+"\n"+"agentPhone"+"\n"+"agentEmail"+"\n"+"�甇斗���靘選����蝜恬�����" + get isBtnDisabled() :Boolean { + const isFormValid = this.client.phone ? this.interviewTxt && this.interviewTime :this.interviewTxt + return !isFormValid } } @@ -101,6 +132,15 @@ <style lang="scss" > .interview-msg-component{ + .required { + position: relative; + &::before { + content: '*'; + position: absolute; + color: #FF0000; + transform: translate(-12px, 0); + } + } .msg-dialog-title{ display: flex; justify-content: center; -- Gitblit v1.8.0