保誠-保戶業務員媒合平台
Tomas
2024-04-30 b4d6944076f1df6eedaae35c4c2a7072fe988e8a
PAMapp/components/Interview/InterviewAdd.vue
@@ -5,33 +5,37 @@
          <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"
@@ -43,7 +47,7 @@
        </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>
@@ -77,7 +81,7 @@
        @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>
@@ -86,6 +90,7 @@
      <InterviewMsg
        :isVisible.sync="showInterviewMsgPopup"
        :client="appointmentDetail"
        :defaultValue="interviewTime"
        @closeDialog="closePopup"
      ></InterviewMsg>
  </div>
@@ -173,17 +178,25 @@
        });
    }
    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;
@@ -249,17 +262,18 @@
    }
}
.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>