From 46da7429ca192bf6a947d79437e8076b94676a05 Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期四, 13 一月 2022 16:29:45 +0800
Subject: [PATCH] update: 刪除重複的 interface: clientInfo => appointment

---
 PAMapp/pages/myAppointmentList/contactedList.vue |   45 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 32 insertions(+), 13 deletions(-)

diff --git a/PAMapp/pages/myAppointmentList/contactedList.vue b/PAMapp/pages/myAppointmentList/contactedList.vue
index 79e7fbf..e4de5e7 100644
--- a/PAMapp/pages/myAppointmentList/contactedList.vue
+++ b/PAMapp/pages/myAppointmentList/contactedList.vue
@@ -21,21 +21,41 @@
 
         <UiPagination
             :totalList="filterList"
+            :currentPage="currentPage"
             @changePage="changePage"
         ></UiPagination>
     </div>
 </template>
 
 <script lang="ts">
-import { Vue, Component, Watch, State } from 'nuxt-property-decorator';
+import { Vue, Component, Watch, State, namespace } from 'nuxt-property-decorator';
 
-import { ClientInfo } from '~/shared/models/client.model';
+import { Appointment } from '~/shared/models/appointment.model';
 
+
+const localStorage = namespace('localStorage');
 @Component
 export default class ClientContactedList extends Vue {
 
     @State('myAppointmentList')
-    myAppointmentList!: ClientInfo[];
+    myAppointmentList!: Appointment[];
+
+    @localStorage.Getter
+    currentAppointmentIdFromMsg!: string;
+
+    contactedList: Appointment[] = [];
+    filterList   : Appointment[] = [];
+    keyWord      : string       = '';
+    pageList     : Appointment[] = [];
+    currentPage  : number = 1;
+
+    //////////////////////////////////////////////////////////////////////
+
+    mounted() {
+        this.onMyAppointmentListChange();
+    }
+
+    //////////////////////////////////////////////////////////////////////
 
     @Watch('myAppointmentList')
     onMyAppointmentListChange() {
@@ -44,17 +64,16 @@
             .map((item) => ({...item, sortTime: new Date(item.contactTime)}))
             .sort((prevItem, nextItem) => +nextItem.sortTime - +prevItem.sortTime);
         this.filterList = this.contactedList;
+
+        this.getCurrentPage();
     }
 
-    contactedList: ClientInfo[] = [];
-    filterList   : ClientInfo[] = [];
-    keyWord      : string       = '';
-    pageList     : ClientInfo[] = [];
-
-    //////////////////////////////////////////////////////////////////////
-
-    mounted() {
-        this.onMyAppointmentListChange();
+    private getCurrentPage() {
+        const currentIndex = this.filterList.findIndex(item => item.id === +this.currentAppointmentIdFromMsg);
+        const pageSize = 5;
+        if (currentIndex > -1) {
+            this.currentPage = Math.ceil((currentIndex + 1) / pageSize);
+        }
     }
 
     //////////////////////////////////////////////////////////////////////
@@ -65,7 +84,7 @@
         })
     }
 
-    changePage(pageList: ClientInfo[]): void {
+    changePage(pageList: Appointment[]): void {
         this.pageList = pageList;
     }
 

--
Gitblit v1.8.0