| | |
| | | <span>{{interviewRecord.lastModifiedDate | formatDate}} 更新</span> |
| | | </div> |
| | | <el-row class="mdTxt mb-10"> |
| | | <el-col :xs="16" :sm="20" class="required">約訪時間</el-col> |
| | | <el-col :xs="16" :sm="20"> |
| | | <span :class="{'required': !interviewId || isEdit}">約訪時間</span> |
| | | </el-col> |
| | | <el-col :xs="8" :sm="4" class="text--right" v-if="interviewId"> |
| | | <span |
| | | v-if="!isEdit" |
| | | class="mr-10 text--primary text--underline cursor--pointer" |
| | | class="mr-10 text--primary cursor--pointer" |
| | | @click="showCancelPopUp = true" |
| | | >刪除</span> |
| | | ><i class="icon-delet"></i></span> |
| | | <span |
| | | v-if="!isEdit" |
| | | class="text--primary text--underline cursor--pointer" |
| | | class="text--primary cursor--pointer" |
| | | @click="isEdit = !isEdit" |
| | | >編輯</span> |
| | | ><i class="icon-edit"></i></span> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <template v-if="!interviewId || isEdit"> |
| | | <DateTimePicker |
| | | :disabledBeforeSpecificDate="appointmentDetail.appointmentDate" |
| | | @changeDateTime="interviewTime = $event" |
| | | :defaultValue="defaultValue" |
| | | ></DateTimePicker> |
| | | </template> |
| | | <template v-else> |
| | | <div class="mdTxt lighter mt-20"> |
| | | <div class="fs-20 mt-20"> |
| | | {{formatInterviewDate}} |
| | | </div> |
| | | </template> |
| | | |
| | | <div class="mdTxt mb-10 mt-30">約訪紀錄</div> |
| | | <div class="mdTxt mb-10 mt-30" :class="{'required': !interviewId || isEdit}">約訪紀錄</div> |
| | | <template v-if="!interviewId || isEdit"> |
| | | <el-input |
| | | type="textarea" |
| | |
| | | </el-input> |
| | | </template> |
| | | <template v-else> |
| | | <div class="mdTxt lighter mt-20"> |
| | | <div class="fs-20 mt-20 text--break-all line-height"> |
| | | {{content}} |
| | | </div> |
| | | </template> |
| | |
| | | @closePopUp="closePopup"> |
| | | <div class="text--center mdTxt">{{confirmTxt}}!</div> |
| | | <div class="text--center mdTxt">立即發送約訪通知?</div> |
| | | <div class="text--center mt-30" style="display:flex"> |
| | | <div class="text--center mt-30 confirm-btn"> |
| | | <el-button @click="closePopup">先不發送</el-button> |
| | | <el-button @click="showInterviewMsgPopup = true" type="primary">傳送約訪通知</el-button> |
| | | </div> |
| | |
| | | <InterviewMsg |
| | | :isVisible.sync="showInterviewMsgPopup" |
| | | :client="appointmentDetail" |
| | | :defaultValue="interviewTime" |
| | | @closeDialog="closePopup" |
| | | ></InterviewMsg> |
| | | </div> |
| | |
| | | }); |
| | | } |
| | | |
| | | private updateRecord(updateInterviewRecord) { |
| | | appointmentService.updateInterviewRecord(updateInterviewRecord).then(res => { |
| | | this.showPopUp('編輯成功'); |
| | | }); |
| | | private async updateRecord(updateInterviewRecord) { |
| | | try { |
| | | const response = await appointmentService.updateInterviewRecord(updateInterviewRecord); |
| | | if (response !== null) { |
| | | this.showPopUp('編輯成功'); |
| | | } else { |
| | | throw new Error('appointmentService.updateInterviewRecord returned null-like value.'); |
| | | } |
| | | } catch (error) { |
| | | console.error('An error occurred while updating interview record:', error); |
| | | throw error; |
| | | } |
| | | } |
| | | |
| | | private showPopUp(confirmTxt) { |
| | | this.confirmTxt = confirmTxt; |
| | | this.updateAppointmentDetail(+this.appointmentId); |
| | | |
| | | if (new Date(this.interviewTime).getTime() >= new Date().getTime()) { |
| | | if (new Date(this.interviewTime).getTime() >= new Date().getTime() && (!this.appointmentDetail.appointmentClosedInfo)) { |
| | | this.showFutureDateConfirmPopup = true; |
| | | } else { |
| | | this.showConfirmPopup = true; |
| | |
| | | } |
| | | } |
| | | .required { |
| | | position: relative; |
| | | transform: translateX(10px); |
| | | position: relative; |
| | | |
| | | &::before { |
| | | content: '*'; |
| | | font-size: 15px; |
| | | font-weight: bold; |
| | | position: absolute; |
| | | color: #FF0000; |
| | | transform: translateX(-10px); |
| | | z-index: 5; |
| | | &::before { |
| | | content: '*'; |
| | | position: absolute; |
| | | color: #FF0000; |
| | | transform: translate(-12px, 0); |
| | | z-index: 5; |
| | | } |
| | | } |
| | | .confirm-btn{ |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | </style> |