| | |
| | | ></DateTimePicker> |
| | | </div> |
| | | |
| | | <div class="send-msg-nav mt-10" style="justify-content: flex-start; align-items: center"> |
| | | <div class="mdTxt">通知內容</div> |
| | | <div class="ml-10"> |
| | | <label for="addContactInfo" style="color: #ED1B2E; font-size: 18px; cursor: pointer"> |
| | | <input |
| | | style="display: none" |
| | | type="checkbox" |
| | | id="addContactInfo" |
| | | @click="interviewContent.addContactInfo = !interviewContent.addContactInfo" |
| | | value="addContactInfo"> |
| | | <i class="pr-5" :class="interviewContent.addContactInfo ?'icon-checkbox-1': 'icon-checkbox'"></i>一併傳送聯繫資訊 |
| | | </label> |
| | | </div> |
| | | <div class="send-msg-nav mt-10" style="justify-content: flex-start; align-items: center ;"> |
| | | <div class="mdTxt">其他通知內容</div> |
| | | </div> |
| | | |
| | | <el-input |
| | | type="textarea" |
| | | :autosize="true" |
| | | placeholder="約訪通知" |
| | | placeholder="請輸入內容" |
| | | resize="none" |
| | | rows="2" |
| | | v-model="interviewContent.customContent"> |
| | | </el-input> |
| | | |
| | |
| | | <div class="mdTxt">預覽通知內容</div> |
| | | </div> |
| | | |
| | | <el-input |
| | | <!-- <el-input |
| | | type="textarea" |
| | | :autosize="true" |
| | | placeholder="預覽約訪通知" |
| | | resize="none" |
| | | :disabled="true" |
| | | v-model="interviewTxt"> |
| | | </el-input> |
| | | v-model="interviewTxt"> --> |
| | | <!-- </el-input> --> |
| | | <div class="interviewContent"> |
| | | <div style="padding:10px;line-height:25px"> |
| | | <i class="content">您好!我是保誠媒合平台的保險顧問{{loginConsultant.name}},感謝您的預約!</i><br/> |
| | | <el-input type="textarea" :placeholder="'\{{ 如有額外補充資訊,將在這裡顯示 }}'" resize="none" v-model="interviewContent.customContent" readonly :autosize="true" ></el-input><br/> |
| | | <i class="content">{{client.phone ||defaultValue ? ("我預計會在下述的時間與您聯繫"+ "\n" + (this.interviewContent.formattedInterviewTime || "(尚未選擇約訪時段)")): ""}}</i><br/> |
| | | <i class="content">以下是我的電話號碼/Email:{{loginConsultant.phoneNumber || '尚未提供電話號碼'}} / {{loginConsultant.email || '尚未提供 Email'}}</i><br/> |
| | | <i class="content">若此時間不方便,請與我聯繫!謝謝!</i> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="msg-dialog-btn"> |
| | | <el-button @click="addInterview" :disabled="isBtnDisabled">傳送</el-button> |
| | |
| | | interviewTxt = ''; |
| | | |
| | | @Watch('interviewContent', { immediate: true, deep: true }) |
| | | onInterviewContentChange(): void { |
| | | onInterviewContentChange() { |
| | | if (this.interviewContent.addContactInfo) { |
| | | if (this.interviewContent.interviewTime) { |
| | | const targetDate = new Date(this.interviewContent.interviewTime); |
| | | this.interviewContent.formattedInterviewTime = `${targetDate.getFullYear()}年${targetDate.getMonth() + 1}月${targetDate.getDate()}日 ${targetDate.getHours()}時${targetDate.getMinutes()}分`; |
| | | } |
| | | this.interviewTxt = this.interviewContent.customContent + "\n" + ( this.client.phone || this.defaultValue ? ("我預計會在下述的時間與您聯繫"+ "\n" + (this.interviewContent.formattedInterviewTime || "(尚未選擇約訪時段)")): "") + "\n" +"以下是我的電話號碼/Email:"+"\n" + (this.loginConsultant.phoneNumber || '(尚未提供電話號碼)') + "\n" + (this.loginConsultant.email|| '尚未提供 Email') + "\n" +"若此時間不方便,請與我聯繫!謝謝!"; |
| | | if(this.loginConsultant.phoneNumber){ |
| | | let temp = ''; |
| | | for (var i=0;i<this.loginConsultant.phoneNumber.length;i++) { |
| | | let charCode = this.loginConsultant.phoneNumber.charCodeAt(i); |
| | | if(charCode <=126 && charCode>= 33) { |
| | | charCode += 65248; |
| | | } else if (charCode ===32) { |
| | | charCode =12288; |
| | | } |
| | | temp = temp + String.fromCharCode(charCode); |
| | | } |
| | | this.interviewTxt = "您好!我是保誠媒合平台的保險顧問"+this.loginConsultant.name+",感謝您的預約!"+"\n"+this.interviewContent.customContent+ "\n" + ( this.client.phone || this.defaultValue ? ("我預計會在下述的時間與您聯繫"+ "\n" + (this.interviewContent.formattedInterviewTime || "(尚未選擇約訪時段)")): "") + "\n" +"以下是我的電話號碼/Email:"+"\n" + ( temp || '(尚未提供電話號碼)') + "\n" + (this.loginConsultant.email|| '尚未提供 Email') + "\n" +"若此時間不方便,請與我聯繫!謝謝!"; |
| | | } |
| | | } else { |
| | | this.interviewTxt = this.interviewContent.customContent; |
| | | // this.interviewTxt = this.interviewContent.customContent; |
| | | this.interviewTxt = "您好!我是保誠媒合平台的保險顧問"+this.loginConsultant.name+",感謝您的預約!"+"\n"+this.interviewContent.customContent+ "\n" + ( this.client.phone || this.defaultValue ? ("我預計會在下述的時間與您聯繫"+ "\n" + (this.interviewContent.formattedInterviewTime || "(尚未選擇約訪時段)")): "") + "\n" +"以下是我的Email:"+"\n" + (this.loginConsultant.email|| '尚未提供 Email') + "\n" +"若此時間不方便,請與我聯繫!謝謝!"; |
| | | } |
| | | } |
| | | |
| | |
| | | ////////////////////////////////////////////////////////////////////// |
| | | |
| | | mounted() { |
| | | this.interviewContent.customContent = `您好!我是保誠媒合平台的保險顧問${this.loginConsultant.name},感謝您的預約!`; |
| | | this.interviewContent.customContent =''; |
| | | } |
| | | |
| | | addInterview() { |
| | | const appointmentInformation: ToInformAppointment = { |
| | | appointmentId: this.client.id, |
| | | email : this.client?.email, |
| | | interviewDate: this.defaultValue, |
| | | message : this.interviewTxt, |
| | | phone : this.client?.phone, |
| | | }; |
| | | appointmentService.informAppointment(appointmentInformation).then((_) => { |
| | | this.isShowSuccessAlert = true ; |
| | | }); |
| | | } |
| | | addInterview() { |
| | | const appointmentInformation: ToInformAppointment = { |
| | | appointmentId: this.client?.id || 0, |
| | | email: this.client?.email || '', |
| | | interviewDate: this.interviewContent.interviewTime, |
| | | message: this.interviewTxt, |
| | | phone: this.client?.phone || '', |
| | | }; |
| | | appointmentService.informAppointment(appointmentInformation).then((_) => { |
| | | this.isShowSuccessAlert = true; |
| | | }); |
| | | } |
| | | |
| | | |
| | | closeAllDialog() { |
| | | this.isShowSuccessAlert = false ; |
| | |
| | | padding:10px; |
| | | text-align: justify; |
| | | font-weight: 600; |
| | | |
| | | } |
| | | .msg-dialog-btn{ |
| | | margin-top: 30px; |
| | |
| | | flex-direction: column; |
| | | align-items: center; |
| | | } |
| | | |
| | | .interviewContent { |
| | | border: 1px solid #D0D0CE; |
| | | border-radius: 4px; |
| | | overflow-y: auto; |
| | | height: 180px; |
| | | background-color:#F8F9FA; |
| | | textarea { |
| | | outline:none !important; |
| | | border: none; |
| | | background-color:transparent; |
| | | color: red; |
| | | } |
| | | ::placeholder { |
| | | color: red; |
| | | } |
| | | } |
| | | .content{ |
| | | font-size: 18px; |
| | | font-weight: bold; |
| | | color: #CCCCCC; |
| | | } |
| | | |
| | | .el-input__inner { |
| | | border:1px solid #707070; |
| | | border-radius:4px; |
| | | } |
| | | .interview-other-msg { |
| | | max-height: 80px; |
| | | overflow-y: auto; |
| | | margin-bottom: 5px; |
| | | margin-top: 5px; |
| | | } |
| | | } |
| | | </style> |