From 6eb7a5d782155d9d90c73b6e0aa30283a29366aa Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期三, 09 三月 2022 13:51:01 +0800
Subject: [PATCH] fix#136534: 客戶預約顧問收到的簡訊中,未包含時間

---
 PAMapp/components/Interview/InterviewMsg.vue |   78 ++++++++++++++++++++++++++++++--------
 1 files changed, 61 insertions(+), 17 deletions(-)

diff --git a/PAMapp/components/Interview/InterviewMsg.vue b/PAMapp/components/Interview/InterviewMsg.vue
index eaffa87..61aaa8d 100644
--- a/PAMapp/components/Interview/InterviewMsg.vue
+++ b/PAMapp/components/Interview/InterviewMsg.vue
@@ -9,7 +9,6 @@
         <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
@@ -17,22 +16,27 @@
         :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,7 +45,7 @@
   </div>
 </template>
 <script lang="ts">
-import { Vue, Component, Prop, PropSync, Emit, Action, namespace } 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';
@@ -53,11 +57,11 @@
 @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;
@@ -67,6 +71,9 @@
 
     @Prop()
     client!: Appointment;
+
+    @Prop()
+    defaultValue!: string;
 
     @Emit('closeDialog')
     closeDialog() {
@@ -82,28 +89,56 @@
     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 message = this.getMessage();
       const appointmentInformation: ToInformAppointment = {
         appointmentId: this.client.id,
         email        : this.client?.email,
         interviewDate: this.interviewTime,
-        message      : this.interviewTxt,
+        message,
         phone        : this.client?.phone,
       };
       appointmentService.informAppointment(appointmentInformation).then((_) => {
         this.isShowSuccessAlert = true ;
-        this.updateAppointmentDetail(this.client.id);
       });
     }
 
     closeAllDialog() {
       this.isShowSuccessAlert = false ;
       this.dialogVisible = false;
-      this.storeMyAppointmentList();
+      this.updateAppointmentDetail(this.client.id);
+      this.getMyAppointmentList();
     }
 
-    get isInterviewTxt() : string{
-      return this.interviewTxt = "�憟踝��靽���像����憿批��" + this.loginConsultant?.name + "嚗�����������銝膩������蝜�"+"\n"+"隞乩����閰梯�Ⅳ/Email嚗�"+"\n" + this.loginConsultant?.phoneNumber + "\n" + this.loginConsultant?.email + "\n"+"�甇斗���靘選����蝜恬�����"
+    private getMessage(): string {
+      const targetDate = new Date(this.interviewTime);
+      const interviewTime = `${targetDate.getFullYear()}撟�${targetDate.getMonth() + 1}���${targetDate.getDate()}� ${targetDate.getHours()}���${targetDate.getMinutes()}��;
+      let result = '';
+      if(this.loginConsultant.phoneNumber && this.loginConsultant.email) {
+        result = "�憟踝��靽���像����憿批��" + this.loginConsultant.name + "嚗�����������銝膩������蝜�"+"\n" + interviewTime + "\n" +"隞乩����閰梯�Ⅳ/Email嚗�"+"\n" + this.loginConsultant.phoneNumber + "\n" + this.loginConsultant.email + "\n"+"�甇斗���靘選����蝜恬�����"}
+        else if (!this.loginConsultant.phoneNumber && this.loginConsultant.email) {
+            result = "�憟踝��靽���像����憿批��" + this.loginConsultant.name + "嚗�����������銝膩������蝜�"+"\n" + interviewTime + "\n" +"隞乩����mail嚗�"+"\n" + this.loginConsultant.email + "\n"+"�甇斗���靘選����蝜恬�����"
+        } else {
+          result = "�憟踝��靽���像����憿批��" + this.loginConsultant.name + "嚗�����������銝膩������蝜�"+"\n" + interviewTime + "\n" +"隞乩����閰梯�Ⅳ嚗�"+"\n" + this.loginConsultant.phoneNumber + "\n"+"�甇斗���靘選����蝜恬�����"
+        }
+        return result;
+    }
+
+    get isBtnDisabled() :Boolean {
+      const isFormValid = this.client.phone ? this.interviewTxt && this.interviewTime :this.interviewTxt
+      return !isFormValid
     }
 
 }
@@ -112,6 +147,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