保誠-保戶業務員媒合平台
Mila
2022-01-17 f41af9be6cf3a4edb8b222f6e351bfaa03362085
update: 新增約訪記錄 api 串接
修改3個檔案
68 ■■■■■ 已變更過的檔案
PAMapp/components/Interview/InterviewAdd.vue 40 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/shared/models/appointment.model.ts 11 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/shared/services/appointment.service.ts 17 ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程
PAMapp/components/Interview/InterviewAdd.vue
@@ -11,23 +11,40 @@
      ></DateTimePicker>
      <div class="mdTxt mb-10 mt-10">約訪紀錄</div>
      <el-input type="textarea" :rows="5" placeholder="約訪通知" resize="none">
      <el-input
        type="textarea"
        :rows="5"
        placeholder="請輸入約訪紀錄"
        resize="none"
        v-model="content"
      >
      </el-input>
      <div class="edit-appointment-record-btn">
          <el-button>取消</el-button>
          <el-button :disabled="!interviewTime">確定</el-button>
          <el-button :disabled="!interviewTime || !content" @click="createInterviewRecord">確定</el-button>
      </div>
      <PopUpFrame :isOpen.sync="isConfirmPopup"
        @closePopUp="closeConfirmPopup">
        <div class="text--center mdTxt">新增成功</div>
        <div class="text--center mt-30">
            <el-button @click="closeConfirmPopup" type="primary">確定</el-button>
        </div>
    </PopUpFrame>
  </div>
</template>
<script lang="ts">
import { AppointmentLog } from '~/shared/models/appointment.model';
import { AppointmentLog, InterviewRecordInfo } from '~/shared/models/appointment.model';
import { Vue, Component, Prop } from 'nuxt-property-decorator';
import authService from '~/shared/services/auth.service';
import appointmentService from '~/shared/services/appointment.service';
@Component
export default class InterviewAdd extends Vue {
    interviewTime = '';
    content = '';
    isConfirmPopup = false;
    // @Prop()
    // myAppointmentReviewLogList!: AppointmentLog[];
@@ -39,6 +56,23 @@
    //   this.isUserLogin = authService.isUserLogin();
    // }
    createInterviewRecord() {
        const interviewRecordInfo: InterviewRecordInfo = {
            content: this.content,
            interviewDate: this.interviewTime,
            appointmentId: +this.$route.params.appointmentId
        }
        appointmentService.createInterviewRecord(interviewRecordInfo).then(res => {
            this.isConfirmPopup = true;
        });
    }
    closeConfirmPopup() {
        this.isConfirmPopup = false;
        this.$router.go(-1);
    }
}
</script>
PAMapp/shared/models/appointment.model.ts
@@ -157,3 +157,14 @@
  message      : string;
  phone        : string;
}
export interface InterviewRecordInfo {
  content: string;
  interviewDate: string;
  appointmentId: number;
}
export interface UpdateInterviewRecordInfo {
  /** interviewRecord id */
  id: number;
}
PAMapp/shared/services/appointment.service.ts
@@ -1,6 +1,6 @@
import { http } from "./httpClient";
import { Appointment, AppointmentDetail, AppointmentMemoInfo, createdMemoInfo, EditAppointmentParams, ToCloseAppointment, ToDoneAppointment, ToInformAppointment, updatedMemoInfo } from "~/shared/models/appointment.model";
import { Appointment, AppointmentDetail, AppointmentMemoInfo, createdMemoInfo, EditAppointmentParams,  InterviewRecordInfo, ToCloseAppointment, ToDoneAppointment, ToInformAppointment, updatedMemoInfo, UpdateInterviewRecordInfo } from "~/shared/models/appointment.model";
class AppointmentService {
@@ -64,6 +64,21 @@
  async informAppointment(appointmentInformation: ToInformAppointment) {
    return http.post(`/notice/send`, appointmentInformation).then((res) => res.data);
  }
  // 新增約訪記錄
  async createInterviewRecord(interviewRecordInfo: InterviewRecordInfo) {
    return http.post('/interview_record/create', interviewRecordInfo).then(res => res.data);
  }
  // 修改約訪記錄
  async updateInterviewRecord(updateInterviewRecordInfo: UpdateInterviewRecordInfo) {
    return http.post('/interview_record/update', updateInterviewRecordInfo)
  }
  // 刪除約訪記錄
  async deleteInterviewRecord(interviewRecordId) {
    return http.delete(`/interview_record/'${interviewRecordId}`);
  }
}
export default new AppointmentService();