| | |
| | | <p>性別:{{gender}}</p> |
| | | <p>年齡:{{appointmentDetail.age | toAgeLabel }}</p> |
| | | <p>職業:{{appointmentDetail.job}}</p> |
| | | <p>需求:{{appointmentDetail.requirement.split(',').join('、')}}</p> |
| | | <p>需求:{{ appointmentDetail.requirement ? appointmentDetail.requirement.split(',').join('、') : '--'}}</p> |
| | | <p |
| | | v-for="(item, index) in hopeContactTime" |
| | | :key="index" |
| | |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { Vue, Component, State, Action, Watch, namespace } from 'nuxt-property-decorator'; |
| | | import {Action, Component, Mutation, namespace, State, Vue, Watch} from 'nuxt-property-decorator'; |
| | | |
| | | import appointmentService from '~/shared/services/appointment.service'; |
| | | import reviewsService from '~/shared/services/reviews.service'; |
| | | import UtilsService from '~/shared/services/utils.service'; |
| | | import myConsultantService from '~/shared/services/my-consultant.service'; |
| | | import { Appointment, AppointmentClosedInfo } from '~/shared/models/appointment.model'; |
| | | import { Consultant } from '~/shared/models/consultant.model'; |
| | | import { UserReviewParams } from '~/shared/models/reviews.model'; |
| | | import { StrictQueryParams } from '~/shared/models/strict-query.model'; |
| | | import { AgentInfo } from '~/shared/models/agent-info.model'; |
| | | import { ContactStatus } from '~/shared/models/enum/contact-status'; |
| | | import { SatisfactionType } from '~/shared/models/enum/satisfaction-type'; |
| | | import appointmentService from '~/shared/services/appointment.service'; |
| | | import utilService, {AccessFroms} from '~/shared/services/utils.service'; |
| | | import reviewsService from '~/shared/services/reviews.service'; |
| | | import myConsultantService from '~/shared/services/my-consultant.service'; |
| | | import {Appointment, AppointmentClosedInfo} from '~/shared/models/appointment.model'; |
| | | import {Consultant} from '~/shared/models/consultant.model'; |
| | | import {UserReviewParams} from '~/shared/models/reviews.model'; |
| | | import {StrictQueryParams} from '~/shared/models/strict-query.model'; |
| | | import {AgentInfo} from '~/shared/models/agent-info.model'; |
| | | import {ContactStatus} from '~/shared/models/enum/contact-status'; |
| | | import {SatisfactionType} from '~/shared/models/enum/satisfaction-type'; |
| | | |
| | | const localStorage = namespace('localStorage'); |
| | | const localStorage = namespace('localStorage'); |
| | | const roleStorage = namespace('localStorage'); |
| | | |
| | | @Component({ |
| | |
| | | |
| | | @Action |
| | | storeConsultantList!: any; |
| | | |
| | | @Mutation |
| | | setAccessSource!: (accessSource: AccessFroms) => void; |
| | | |
| | | @localStorage.Mutation |
| | | storageClearQuickFilter!: () => void; |
| | |
| | | appointmentDate : '', |
| | | appointmentMemoList: [], |
| | | appointmentNoticeLogs: [], |
| | | communicateStatus : this.contactStatus.PICKED, |
| | | communicateStatus: this.contactStatus.PICKED, |
| | | consultantReadTime: '', |
| | | consultantViewTime: '', |
| | | contactTime : '', |
| | |
| | | ////////////////////////////////////////////////////////////////////// |
| | | |
| | | mounted() { |
| | | if (this.$route.query.from) { |
| | | const fromSource = this.$route.query.from as AccessFroms; |
| | | this.setAccessSource(fromSource); |
| | | utilService.insertAccessFrom(fromSource); |
| | | } |
| | | if (this.isAdminLogin) { |
| | | this.$router.push('/myAppointmentList/appointmentList'); |
| | | } else { |
| | |
| | | const appointmentInfo = values[1] as Appointment; |
| | | this.consultantName = agentInfo.name; |
| | | this.appointmentDetail = appointmentInfo; |
| | | this.appointmentDialogWidth = UtilsService.isMobileDevice() ? '80%' : ''; |
| | | this.appointmentDialogWidth = utilService.isMobileDevice() ? '80%' : ''; |
| | | this.isShowAppointmentDialog = true; |
| | | switch (reason) { |
| | | case 'inviteReviewConsultant': |
| | |
| | | |
| | | reAppointment(): void { |
| | | appointmentService.cancelAppointment(this.appointmentDetail.id).then(() => { |
| | | const requirements = this.appointmentDetail.requirement.split(','); |
| | | const requirements = this.appointmentDetail && this.appointmentDetail.requirement |
| | | ? this.appointmentDetail.requirement.split(',') |
| | | : []; |
| | | this.storeConsultantList(); |
| | | this.storageStrickQueryItem({ requirements: requirements }); |
| | | this.storageClearNotContactAppointmentIdFromMsg(); |