From f36e617e9e534a4b05f2029724d678bbd6c655b3 Mon Sep 17 00:00:00 2001 From: Tomas <tomasysh@gmail.com> Date: 星期三, 22 十二月 2021 11:38:54 +0800 Subject: [PATCH] refactor: separate api/consultant.ts into serveral services --- PAMapp/pages/questionnaire/_agentNo.vue | 95 +++++++++++++++++++++++------------------------ 1 files changed, 47 insertions(+), 48 deletions(-) diff --git a/PAMapp/pages/questionnaire/_agentNo.vue b/PAMapp/pages/questionnaire/_agentNo.vue index f79843c..83f35e9 100644 --- a/PAMapp/pages/questionnaire/_agentNo.vue +++ b/PAMapp/pages/questionnaire/_agentNo.vue @@ -1,12 +1,12 @@ <template> - <div class="ques-page--reset" v-if="isLogin"> + <div class="ques-page--reset" v-if="isUserLogin"> <div class="ques-header"> <div class="ques-header__mob-banner"></div> <div class="ques-header__info" v-if="myRequest.contactType==='phone'"> <div class="text--middle"> - <div class="mdTxt">雿���蝜急撘�</div> + <div class="mdTxt">�����蝜急撘�</div> <div class="mt-10"> <span>�����</span> <span>{{myRequest.phone}}</span> @@ -31,7 +31,7 @@ </div> <div class="ques-header__info" v-else> <div class="text--middle"> - <div class="mdTxt">雿���蝜急撘�</div> + <div class="mdTxt">�����蝜急撘�</div> <div class="mt-10 ques-header__input-block"> <span>Email嚗�</span> <span>{{myRequest.email}}</span> @@ -80,7 +80,7 @@ :options="genderOptions" /> </div> <div class="pam-paragraph"> - <div class="mdTxt">撟湧翩</div> + <div class="mdTxt">���僑朣�</div> <SingleSelectBtn class="mt-10" :singleSelected.sync="myRequest.age" :options="ageRangeOptions" /> @@ -97,7 +97,7 @@ </div> </div> - <PopUpFrame :isOpen.sync="showDrawer" :drawerSize=" '95%' "> + <PopUpFrame :isOpen.sync="showDrawer"> <div class="qaTextTitle mdTxt"> <strong>�閬岷������</strong> </div> @@ -115,8 +115,8 @@ </PopUpFrame> <PopUpFrame :isOpen.sync="sendReserve" @update:isOpen="closeReservePopUp"> - <div class="text--middle mt-30 sendReserve-txt">�����������憿批���</div> - <div class="text--middle sendReserve-txt">�����蝯∴��</div> + <div class="text--middle mt-30 sendReserve-txt">�������</div> + <div class="text--middle sendReserve-txt">�����“�������蝯∴��</div> <div class="text--center mdTxt"> <el-button type="primary" @click="closeReservePopUp"> @@ -126,7 +126,10 @@ </PopUpFrame> <PopUpFrame :isOpen.sync="isEditPopup"> - <div class="text--middle mt-30 sendReserve-txt">��蝜潛�楊頛舫��嚗�</div> + <div class="text--middle text--center mb-10">撌脫 + <span class="bold">{{appointmentTime | formatDate}}</span> + �脰�����</div> + <div class="text--middle text--center mb-30">��蝜潛�楊頛荔��</div> <div class="text--center mdTxt"> <el-button @click="$router.go(-1)">餈��</el-button> <el-button @click="isEditPopup = false" type="primary">蝺刻摩</el-button> @@ -136,19 +139,25 @@ </template> <script lang="ts"> -import { Vue, Component, State, Action, Watch } from 'nuxt-property-decorator'; -import { addFavoriteConsultant, appointmentDemand, AppointmentParams, AppointmentRequests ,editAppointment,RegisterInfo } from '~/assets/ts/api/consultant'; -import { getRequestQuestionFromStorage, getRequestsFromStorage, removeRequestQuestionFromStorage, setRequestsToStorage } from '~/assets/ts/storageRequests'; +import { Vue, Component, State, Action, Watch, namespace } from 'nuxt-property-decorator'; +import { getRequestsFromStorage, removeRequestQuestionFromStorage, setRequestsToStorage } from '~/shared/storageRequests'; import _ from 'lodash'; -import { isLogin } from '~/assets/ts/auth'; -import { Consultant } from '~/assets/ts/models/consultant.model'; -import { ContactType } from '~/assets/ts/models/enum/ContactType'; -import { Gender } from '~/assets/ts/models/enum/Gender'; +import queryConsultantService from '~/shared/services/query-consultant.service'; +import appointmentService from '~/shared/services/appointment.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'; + + const roleStorage = namespace('localStorage'); @Component export default class Questionnaire extends Vue { @State('myConsultantList') myConsultantList!: Consultant[]; @Action storeConsultantList!: () => Promise<number>; + @roleStorage.Getter isUserLogin!:boolean; + @roleStorage.State recommendConsultantItem!:string; genderOptions=[ { @@ -206,10 +215,6 @@ label:'41-50' }, { - title:'46-55 甇�', - label:'46-55', - }, - { title:'51-60 甇�', label:'51-60', }, @@ -246,7 +251,7 @@ }, { title:'����', - content:'���� ���������憸券�����鈭怒�����嚗���摰帘摰漲嚗��隞亙��澈��ˊ�靽���嚗�' + content:'���������憸券�����鈭怒�����嚗���摰帘摰漲嚗��隞亙��澈��ˊ�靽���嚗�' } ]; @@ -271,22 +276,24 @@ isEditBtn = false; appointmentId = 0; + appointmentTime = ''; beforeRouteEnter(to: any, from: any, next: any) { next(vm => { - if (from.name === 'login' && !isLogin()) { + const isUserLogin = vm.$store.getters['localStorage/isUserLogin']; + if (from.name === 'login' && !isUserLogin) { vm.$router.go(-1); return; } - if (!isLogin()) { + if (!isUserLogin) { vm.$router.push('/login'); } }) } async fetch() { - if (isLogin()) { + if (this.isUserLogin) { await this.storeConsultantList(); }; } @@ -297,7 +304,7 @@ private setMyRequest(): void { const storageMyRequest = getRequestsFromStorage(); - const storageMyQuestion = getRequestQuestionFromStorage(); + const storageMyRequirement = this.recommendConsultantItem ? JSON.parse(this.recommendConsultantItem).requirements:[]; if (storageMyRequest) { this.myRequest = { @@ -311,10 +318,10 @@ }; } - if (storageMyQuestion) { + if (storageMyRequirement) { this.myRequest = { ...this.myRequest, - requirement: storageMyQuestion + requirement: storageMyRequirement } removeRequestQuestionFromStorage(); } @@ -338,10 +345,6 @@ : !this.phoneValid; } - get isLogin() { - return isLogin(); - } - private isHopeContactTimeDone():boolean{ return this.myRequest.hopeContactTime[0]?.selectWeekOptions.length >0 && this.myRequest.hopeContactTime[0]?.selectTimesOptions.length >0; } @@ -350,7 +353,7 @@ if (this.isEditBtn) { this.sentEditAppointmentDemand(); } else { - addFavoriteConsultant([this.$route.params.agentNo]).then(res => this.sentAppointmentDemand()); + queryConsultantService.addFavoriteConsultant([this.$route.params.agentNo]).then(res => this.sentAppointmentDemand()); } } @@ -363,7 +366,7 @@ agentNo: this.$route.params.agentNo }; - appointmentDemand(data).then(res => { + queryConsultantService.appointmentDemand(data).then(res => { this.sendReserve = true; this.myRequest.hopeContactTime = []; setRequestsToStorage(this.myRequest); @@ -378,7 +381,7 @@ id: this.appointmentId, otherRequirement: null } - editAppointment(info).then(res => { + appointmentService.editAppointment(info).then(res => { this.sendReserve = true; this.myRequest.hopeContactTime = []; setRequestsToStorage(this.myRequest); @@ -418,7 +421,7 @@ if (appointmentInfo) { const hopeContactTime = appointmentInfo!.hopeContactTime.split("'") .filter(item => item && item !== ','); - this.appointmentId = appointmentInfo.id; + this.getAppointmentId(appointmentInfo); return { age: appointmentInfo.age, agentNo: appointmentInfo.agentNo, @@ -437,25 +440,21 @@ requirement: appointmentInfo.requirement.split(',') } } else { - return { - age: '', - agentNo: '', - contactType: '', - email: '', - gender: '', - hopeContactTime: [], - job: '', - phone: '', - requirement: [] - } + return null; } } + private getAppointmentId(appointmentInfo) { + this.appointmentId = appointmentInfo.id; + this.appointmentTime = appointmentInfo.lastModifiedDate + ? appointmentInfo.lastModifiedDate + : appointmentInfo.appointmentDate; + } @Watch('myConsultantList') onMyConsultantListChange() { - if (this.isLogin && this.myConsultantList.length > 0) { + if (this.isUserLogin && this.myConsultantList.length > 0) { const editAppointment = this.getLatestReserved(this.$route.params.agentNo); - if (editAppointment.agentNo) { + if (editAppointment && editAppointment.agentNo) { this.myRequest = JSON.parse(JSON.stringify(editAppointment)); if (!this.$route.query || this.$route.query.edit !== 'true') { this.isEditPopup = true; @@ -521,7 +520,7 @@ //閰喟敦���rawer銝剝�摰寧征��之撠身蝵� .qa-dialog{ overflow-y:auto; - height: 500px; + height: 60vh; margin-top: 20px; } -- Gitblit v1.8.0