From 65bceeecd461806e360970d7035f23bacbcc58b7 Mon Sep 17 00:00:00 2001 From: Mila <Mila@pollex.com.tw> Date: 星期四, 20 一月 2022 16:08:45 +0800 Subject: [PATCH] Merge branch 'Phase3' of https://192.168.0.10:8443/r/pcalife/PAM into Phase3 --- PAMapp/pages/myAppointmentList/contactedList.vue | 49 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 40 insertions(+), 9 deletions(-) diff --git a/PAMapp/pages/myAppointmentList/contactedList.vue b/PAMapp/pages/myAppointmentList/contactedList.vue index f815994..5c4cd59 100644 --- a/PAMapp/pages/myAppointmentList/contactedList.vue +++ b/PAMapp/pages/myAppointmentList/contactedList.vue @@ -14,12 +14,17 @@ ></i> </el-input> + <div class="sort-indicator mb-10 text--primary text--underline cursor--pointer" @click="changeSortType"> + {{ this.sortType === 'DESC' ? '�->���' : '���->�' }} + </div> + <ClientList :clients="pageList" :title="'contactedList'" ></ClientList> <UiPagination + v-if="togglePagination" :totalList="filterList" :currentPage="currentPage" @changePage="changePage" @@ -28,7 +33,7 @@ </template> <script lang="ts"> -import { Vue, Component, Watch, State, namespace } from 'nuxt-property-decorator'; +import { Vue, Component, Watch, namespace } from 'nuxt-property-decorator'; import { Appointment } from '~/shared/models/appointment.model'; @@ -45,11 +50,13 @@ @localStorage.Getter currentAppointmentIdFromMsg!: string; - contactedList: Appointment[] = []; - filterList : Appointment[] = []; - keyWord : string = ''; - pageList : Appointment[] = []; - currentPage : number = 1; + contactedList : Appointment[] = []; + currentPage : number = 1; + filterList : Appointment[] = []; + keyWord : string = ''; + pageList : Appointment[] = []; + sortType : 'ASC' | 'DESC' = 'DESC'; + togglePagination: boolean = true; ////////////////////////////////////////////////////////////////////// @@ -61,16 +68,32 @@ @Watch('myAppointmentList') onMyAppointmentListChange() { + this.setContactedList(); + } + + @Watch('sortType') + onSortTypeChange() { + this.togglePagination = false; + setTimeout(() => { + this.togglePagination = true; + this.currentPage = 1; + this.setContactedList(); + }, 0) + } + + private setContactedList(): void { this.contactedList = (this.myAppointmentList || []) .filter(item => item.communicateStatus === 'contacted') - .map((item) => ({...item, sortTime: new Date(item.contactTime)})) - .sort((prevItem, nextItem) => +nextItem.sortTime - +prevItem.sortTime); + .map((item) => ({...item, sortTime: new Date(item.lastModifiedDate)})) + .sort((prevItem, nextItem) => { + return this.sortType === 'DESC' ? +nextItem.sortTime - +prevItem.sortTime : +prevItem.sortTime - +nextItem.sortTime + }); this.filterList = this.contactedList; this.getCurrentPage(); } - private getCurrentPage() { + private getCurrentPage(): void { const currentIndex = this.filterList.findIndex(item => item.id === +this.currentAppointmentIdFromMsg); const pageSize = 5; if (currentIndex > -1) { @@ -90,5 +113,13 @@ this.pageList = pageList; } + changeSortType(): void { + if (this.sortType === 'DESC') { + this.sortType = 'ASC'; + } else { + this.sortType = 'DESC'; + } + } + } </script> -- Gitblit v1.8.0