| | |
| | | <PopUpFrame :isOpen.sync="sendReserve" @update:isOpen="closeReservePopUp"> |
| | | <div class="mdTxt mt-30 sendReserve-txt">預約成功!</div> |
| | | <div class="mdTxt sendReserve-txt mb-30">您預約的顧問會儘速與您聯絡!</div> |
| | | <!-- TODO: 未串接 api, 隱藏平台滿意度 --> |
| | | <!-- <div class="pam-app-review mb-10"> |
| | | <div class="pam-app-review mb-10"> |
| | | <div class="mdTxt mb-10">對於 |
| | | <span class="mdTxt text--primary text--bold ">服務媒合</span> |
| | | 平台的整體服務, |
| | | </div> |
| | | <div class="mdTxt">您給予幾顆星評價?</div> |
| | | </div> |
| | | <el-rate v-model="score" class="pam-satisfaction-rate fix-chrome-click--issue"></el-rate> --> |
| | | <el-rate v-model="score" class="pam-satisfaction-rate fix-chrome-click--issue"></el-rate> |
| | | <div class="text--center mdTxt"> |
| | | <!-- <el-button @click="closeReservePopUp">略過</el-button> |
| | | <el-button @click="closeReservePopUp">略過</el-button> |
| | | <el-button type="primary" |
| | | @click="closeReservePopUp"> |
| | | @click="reviewPlatform"> |
| | | 送出 |
| | | </el-button> --> |
| | | <el-button type="primary" |
| | | @click="closeReservePopUp"> |
| | | 我知道了 |
| | | </el-button> |
| | | </div> |
| | | </PopUpFrame> |
| | |
| | | import { getRequestsFromStorage, removeRequestQuestionFromStorage, setRequestsToStorage } from '~/shared/storageRequests'; |
| | | import _ from 'lodash'; |
| | | |
| | | import accountSettingService from '~/shared/services/account-setting.service'; |
| | | import appointmentService from '~/shared/services/appointment.service'; |
| | | import authService from '~/shared/services/auth.service'; |
| | | import queryConsultantService from '~/shared/services/query-consultant.service'; |
| | | import reviewsService from '~/shared/services/reviews.service'; |
| | | import { Consultant } from '~/shared/models/consultant.model'; |
| | | import { ContactType } from '~/shared/models/enum/ContactType'; |
| | | import { Gender } from '~/shared/models/enum/Gender'; |
| | | import { RegisterInfo } from '~/shared/models/registerInfo'; |
| | | import { AppointmentParams, AppointmentRequests } from '~/shared/models/appointment.model'; |
| | | import { UserSetting } from '~/shared/models/account.model'; |
| | | import { SatisfactionType } from '~/shared/models/enum/satisfaction-type'; |
| | | import { UserReviewParams } from '~/shared/models/reviews.model'; |
| | | |
| | | const roleStorage = namespace('localStorage'); |
| | | @Component |
| | |
| | | @roleStorage.State |
| | | recommendConsultantItem!:string; |
| | | |
| | | score ="" ; |
| | | @roleStorage.Mutation |
| | | storageUserInfo!: (params: RegisterInfo) => void; |
| | | |
| | | score = 0; |
| | | |
| | | genderOptions=[ |
| | | { |
| | |
| | | ]; |
| | | |
| | | myRequest: AppointmentRequests = { |
| | | phone : this.userInfo?.phone ? this.userInfo.phone : '', |
| | | email : this.userInfo?.email ? this.userInfo.email : '', |
| | | name : '', |
| | | phone : '', |
| | | email : '', |
| | | contactType : _.isEqual(this.userInfo?.contactType,ContactType.SMS) ? ContactType.PHONE: ContactType.EMAIL, |
| | | gender : '', |
| | | age : '', |
| | |
| | | private setMyRequest(): void { |
| | | const storageMyRequest = getRequestsFromStorage(); |
| | | const storageMyRequirement = this.recommendConsultantItem ? JSON.parse(this.recommendConsultantItem).requirements:[]; |
| | | const contactTypePromise = accountSettingService.getUserAccountSetting(); |
| | | |
| | | if (storageMyRequest) { |
| | | this.myRequest = { |
| | |
| | | } |
| | | removeRequestQuestionFromStorage(); |
| | | } |
| | | |
| | | contactTypePromise.then((contactTypeDetail) => { |
| | | this.myRequest = { |
| | | ...this.myRequest, |
| | | ...contactTypeDetail |
| | | } |
| | | }) |
| | | |
| | | } |
| | | |
| | | //////////////////////////////////////////////////////////////////////////// |
| | |
| | | if (this.isEditBtn) { |
| | | this.editAppointmentDemand(); |
| | | } else { |
| | | queryConsultantService.addFavoriteConsultant([this.$route.params.agentNo]).then(res => this.sentAppointmentDemand()); |
| | | queryConsultantService.addFavoriteConsultant([{ agentNo: this.$route.params.agentNo, createdTime: new Date().toString()}]).then(res => this.sentAppointmentDemand()); |
| | | } |
| | | const editSettingInfo: UserSetting = { |
| | | name: this.myRequest.name, |
| | | phone: this.myRequest.phone, |
| | | email: this.myRequest.email, |
| | | } |
| | | |
| | | accountSettingService.updateAccountSetting(editSettingInfo).then((_) => { |
| | | this.storageUserInfo(this.userInfo); |
| | | }); |
| | | } |
| | | |
| | | private editAppointmentDemand() { |
| | |
| | | queryConsultantService.appointmentDemand(data).then(res => { |
| | | this.sendReserve = true; |
| | | this.myRequest.hopeContactTime = []; |
| | | this.appointmentId = res['id']; |
| | | setRequestsToStorage(this.myRequest); |
| | | }); |
| | | } |
| | |
| | | ).toString(); |
| | | } |
| | | |
| | | reviewPlatform(): void { |
| | | const reviewPlatformParams: UserReviewParams = { |
| | | appointmentId: this.appointmentId, |
| | | score: this.score, |
| | | type: SatisfactionType.SYSTEM |
| | | }; |
| | | reviewsService.reviewPlatform(reviewPlatformParams).then((_) => { |
| | | this.closeReservePopUp(); |
| | | }); |
| | | } |
| | | |
| | | closeReservePopUp() { |
| | | this.sendReserve = false; |
| | | this.$router.push('/') |