| | |
| | | import { StrictQueryParams } from '~/shared/models/strict-query.model'; |
| | | import { Module, VuexModule, Mutation, Action } from 'vuex-module-decorators' |
| | | |
| | | import { getMyReviewLog } from '~/shared/api/appointment'; |
| | | import { getFavoriteFromStorage, setFavoriteToStorage } from '~/shared/storageConsultant'; |
| | | |
| | | import myConsultantService from '~/shared/services/my-consultant.service'; |
| | | import queryConsultantService from '~/shared/services/query-consultant.service'; |
| | | import appointmentService from '~/shared/services/appointment.service'; |
| | | import reviewsService from '~/shared/services/reviews.service'; |
| | | |
| | | import { Consultant } from '~/shared/models/consultant.model'; |
| | | import { AppointmentLog } from '~/shared/models/appointment.model'; |
| | | import { ClientInfo } from '~/shared/models/client.model'; |
| | | import { Appointment, AppointmentLog, InterviewRecord } from '~/shared/models/appointment.model'; |
| | | import { AgentOfStrictQuery } from '~/shared/models/strict-query.model'; |
| | | import { AgentInfo } from '~/shared/models/agent-info.model'; |
| | | import { agentCommunicationStyleList } from '~/shared/const/agent-communication-style-list'; |
| | | @Module |
| | | export default class Store extends VuexModule { |
| | | recommendList: Consultant[] = []; |
| | | strictQueryList: AgentOfStrictQuery[] = []; |
| | | myConsultantList: Consultant[] = []; |
| | | |
| | | myAppointmentList: ClientInfo[] = []; |
| | | myAppointmentList: Appointment[] = []; |
| | | myNewAppointmentSum: number = 0; |
| | | |
| | | myAppointmentReviewLogList: AppointmentLog[] = []; |
| | | interviewRecord: InterviewRecord = { |
| | | appointmentId : 0, |
| | | content : '', |
| | | createdBy : '', |
| | | createdDate : '', |
| | | id : 0, |
| | | interviewDate : '', |
| | | lastModifiedBy : '', |
| | | lastModifiedDate: '' |
| | | } |
| | | |
| | | get isUserLogin() { |
| | | return this.context.getters['localStorage/isUserLogin']; |
| | |
| | | } |
| | | |
| | | @Mutation |
| | | updateMyAppointmentList(data: ClientInfo[]) { |
| | | updateMyAppointmentList(data: Appointment[]) { |
| | | this.myAppointmentList = data; |
| | | } |
| | | |
| | |
| | | @Mutation |
| | | updateMyAppointmentReviewLog(data: AppointmentLog[]) { |
| | | this.myAppointmentReviewLogList = data; |
| | | } |
| | | |
| | | @Mutation |
| | | updateInterviewRecord(data: InterviewRecord) { |
| | | this.interviewRecord = data; |
| | | } |
| | | |
| | | @Mutation |
| | | clearInterviewRecord() { |
| | | this.interviewRecord = { |
| | | appointmentId : 0, |
| | | content : '', |
| | | createdBy : '', |
| | | createdDate : '', |
| | | id : 0, |
| | | interviewDate : '', |
| | | lastModifiedBy : '', |
| | | lastModifiedDate: '' |
| | | } |
| | | } |
| | | |
| | | @Action |
| | |
| | | |
| | | @Action |
| | | storeMyAppointmentReviewLog() { |
| | | getMyReviewLog().then((data) => { |
| | | reviewsService.getMyReviewLog().then((data) => { |
| | | const dataWithLatestDate = data.map((item) => { |
| | | return { |
| | | ...item, |
| | |
| | | } |
| | | |
| | | @Action |
| | | updateMyAppointment(myAppointment: ClientInfo) { |
| | | updateMyAppointment(myAppointment: Appointment) { |
| | | const data = this.myAppointmentList.filter(item => item.id !== myAppointment.id); |
| | | data.unshift(myAppointment); |
| | | this.context.commit('updateMyAppointmentList', data) |