From 936541fe8054c08fac161ba81f05a765fa0be793 Mon Sep 17 00:00:00 2001 From: Tomas <tomasysh@gmail.com> Date: 星期三, 01 十二月 2021 11:10:14 +0800 Subject: [PATCH] fixed#131386: 客戶登入後進行顧問(預約單填寫後,馬上進行另一個顧問的預約,此時預約到的顧問都會是第一個預約的顧問; fixed#131387: 填寫預約單自動帶入前一次預約單資料時,如果是填寫全天和全時段顯示會有問題 --- PAMapp/components/phoneContactTimePicker.vue | 37 +++++++++--------- PAMapp/pages/questionnaire/_agentNo.vue | 26 +++++++++--- PAMapp/store/localStorage.ts | 3 + 3 files changed, 40 insertions(+), 26 deletions(-) diff --git a/PAMapp/components/phoneContactTimePicker.vue b/PAMapp/components/phoneContactTimePicker.vue index 32a2991..973eacb 100644 --- a/PAMapp/components/phoneContactTimePicker.vue +++ b/PAMapp/components/phoneContactTimePicker.vue @@ -11,12 +11,12 @@ <p>{{optionsFormat(scheduleDto.selectTimesOptions,timesOfDayOptions)}}</p> </template> <template v-else> - 隢��� + 隢��� </template> </div> <div class="pam-contact-schedule__icon"> - <i v-if="checkFormHasDone(scheduleDto)" - class="icon-delet" + <i v-if="checkFormHasDone(scheduleDto)" + class="icon-delet" :class="{'disable':syncScheduleList.length===1}" @click.stop="deleteScheduleItem(index)"> </i> @@ -25,44 +25,44 @@ </div> </div> <div class="pam-add-schedule cursor--pointer" - :class="{'disable':!checkFormHasDone(syncScheduleList[syncScheduleList.length-1])|| syncScheduleList.length ===7}" + :class="{'disable':!checkFormHasDone(syncScheduleList[syncScheduleList && syncScheduleList.length && syncScheduleList.length - 1])|| syncScheduleList.length ===7}" @click="addNewSchedule"> <i class="icon-add"></i> �憓�挾 </div> - <PopUpFrame class="pam-popUpFrame" + <PopUpFrame class="pam-popUpFrame" :isOpen.sync="isOpenByStep_1" :drawerSize="drawerSize" :dialogWidth="dialogWidth"> <div class="pam-popUp-title">{{popUpTitle}}</div> - <MultiSelectBtn class="mt-30" - :mutiSelect.sync="initPickerControl.selectWeekOptions" - :options="weekOptions.options" + <MultiSelectBtn class="mt-30" + :mutiSelect.sync="initPickerControl.selectWeekOptions" + :options="weekOptions.options" :nameOfSelectAll="weekOptions.selectAll"> </MultiSelectBtn> <div class="pam-popUp-confirm-bolck pam-paragraph"> - <button class="pam-select-confirm" - :class="[initPickerControl.selectWeekOptions.length?'el-button--primary' :'is-disabled']" + <button class="pam-select-confirm" + :class="[initPickerControl.selectWeekOptions.length?'el-button--primary' :'is-disabled']" @click="confirmByStep_1"> 蝣箏�� </button> </div> </PopUpFrame> - <PopUpFrame class="pam-popUpFrame" + <PopUpFrame class="pam-popUpFrame" :isOpen.sync="isOpenByStep_2" :drawerSize="drawerSize" :dialogWidth="dialogWidth"> <div class="pam-popUp-title">{{popUpTitle}}</div> - <MultiSelectBtn class="mt-30" - :mutiSelect.sync="initPickerControl.selectTimesOptions" - :options="timesOfDayOptions.options" + <MultiSelectBtn class="mt-30" + :mutiSelect.sync="initPickerControl.selectTimesOptions" + :options="timesOfDayOptions.options" :nameOfSelectAll="timesOfDayOptions.selectAll"> </MultiSelectBtn> <div class="pam-popUp-confirm-bolck pam-paragraph"> - <button class="pam-select-confirm" - :class="[initPickerControl.selectTimesOptions.length ?'el-button--primary' :'is-disabled']" + <button class="pam-select-confirm" + :class="[initPickerControl.selectTimesOptions.length ?'el-button--primary' :'is-disabled']" @click="confirmByStep_2"> 蝣箏�� </button> @@ -163,7 +163,7 @@ } getOptionsBySort(options:OptionBtnDto[],selectedOptions:string[]):string[]{ return options.map( o => _.includes(selectedOptions,o.title) ? o.title :'').filter(String); - // return + // return } addNewSchedule():void{ const newScheduleDto={ @@ -178,7 +178,8 @@ } checkFormHasDone(item:scheduleDto):boolean{ - return item.selectWeekOptions.length>0 && item.selectTimesOptions.length>0; + if (!item) return false; + return item.selectWeekOptions?.length>0 && item.selectTimesOptions?.length>0; } titleFormatByIndex(index:number):string{ diff --git a/PAMapp/pages/questionnaire/_agentNo.vue b/PAMapp/pages/questionnaire/_agentNo.vue index 94298a4..08b426d 100644 --- a/PAMapp/pages/questionnaire/_agentNo.vue +++ b/PAMapp/pages/questionnaire/_agentNo.vue @@ -51,7 +51,7 @@ <span v-show="!phoneValid">����Ⅳ�撘�炊</span> </div> </div> - <div class="mt-30" v-if="phoneValid"> + <div class="mt-30" v-if="myRequest.phone && phoneValid"> <div class="datepicker"> <span class="mdTxt">�����蝯∠�靘踵���</span> <PhoneContactTimePicker @@ -249,7 +249,7 @@ selectWeekOptions: [], selectTimesOptions: [], }], - agentNo: this.$route.params.agentNo, + agentNo: '', }; showDrawer= false; @@ -258,13 +258,23 @@ mounted() { const storageMyRequest = getRequestsFromStorage(); if (storageMyRequest) { - this.myRequest = storageMyRequest; + this.myRequest = { + ...storageMyRequest, + hopeContactTime: storageMyRequest.hopeContactTime?.length + ? storageMyRequest.hopeContactTime + : [{ + selectWeekOptions: [], + selectTimesOptions: [], + }], + }; } } get phoneValid(): boolean { const rule = /^09[0-9]{8}$/; - return this.myRequest.phone ? rule.test(this.myRequest.phone) && _.isEqual(this.myRequest.phone.length,10) : true; + return this.myRequest.phone + ? rule.test(this.myRequest.phone) && _.isEqual(this.myRequest.phone.length,10) + : true; } get userInfo(): RegisterInfo { @@ -279,22 +289,24 @@ } private isHopeContactTimeDone():boolean{ - return this.myRequest.hopeContactTime[0].selectWeekOptions.length >0 && this.myRequest.hopeContactTime[0].selectTimesOptions.length >0; + return this.myRequest.hopeContactTime[0]?.selectWeekOptions.length >0 && this.myRequest.hopeContactTime[0]?.selectTimesOptions.length >0; } sentDemand() { - addFavoriteConsultant([this.myRequest.agentNo]).then(res => this.sentAppointmentDemand()); + addFavoriteConsultant([this.$route.params.agentNo]).then(res => this.sentAppointmentDemand()); } private sentAppointmentDemand() { const data: AppointmentParams = { ...this.myRequest, requirement: _.map(this.myRequest.requirement,o=>o).toString(), - hopeContactTime:this.phoneValid ? this.getHopeContactTime() :'', + hopeContactTime: this.myRequest.phone && this.phoneValid ? this.getHopeContactTime() :'', + agentNo: this.$route.params.agentNo }; appointmentDemand(data).then(res => { this.sendReserve = true; + this.myRequest.hopeContactTime = []; setRequestsToStorage(this.myRequest); }); } diff --git a/PAMapp/store/localStorage.ts b/PAMapp/store/localStorage.ts index b8db5d8..d820735 100644 --- a/PAMapp/store/localStorage.ts +++ b/PAMapp/store/localStorage.ts @@ -40,7 +40,8 @@ } @Mutation storageClear(): void { - localStorage.removeItem('userInfo') + localStorage.removeItem('myRequests'); + localStorage.removeItem('userInfo'); localStorage.removeItem('id_token'); localStorage.removeItem('current_role'); this.id_token = localStorage.getItem('id_token'); -- Gitblit v1.8.0