From 9e5ba2970c2ebe484d8b1e5f43ddd23201c451e5 Mon Sep 17 00:00:00 2001
From: Mila <Mila@pollex.com.tw>
Date: 星期二, 16 十一月 2021 14:23:28 +0800
Subject: [PATCH] update 我的顧問清單: 登入後若localStorage內有資料, 就呼叫加入顧問api

---
 PAMapp/pages/myConsultantList.vue |   49 +++++++++++++++++++++++++++++--------------------
 1 files changed, 29 insertions(+), 20 deletions(-)

diff --git a/PAMapp/pages/myConsultantList.vue b/PAMapp/pages/myConsultantList.vue
index 4924994..3b770b2 100644
--- a/PAMapp/pages/myConsultantList.vue
+++ b/PAMapp/pages/myConsultantList.vue
@@ -26,11 +26,10 @@
 </template>
 
 <script lang='ts'>
-import { Context } from '@nuxt/types';
 import { Vue, Component, Watch } from 'vue-property-decorator';
 import { Route } from 'vue-router/types/router.d'
 import { getFavoriteFromStorage, setFavoriteToStorage } from '~/assets/ts/storageConsultant';
-import { Consultants, deleteConsultant, getFavoriteConsultant } from '~/assets/ts/api/consultant';
+import { addFavoriteConsultant, Consultants, deleteConsultant, getFavoriteConsultant } from '~/assets/ts/api/consultant';
 import { isLogin } from '~/assets/ts/auth';
 
 @Component
@@ -45,29 +44,39 @@
         this.$router.push('/myConsultantList/' + this.activeTabName)
     }
 
-    async asyncData(context: Context) {
-        let agents: Consultants[] = [];
-        let contactedList: Consultants[] = [];
-        let consultantList: Consultants[] = [];
-
+    mounted() {
         if (isLogin()) {
-            await getFavoriteConsultant().then((response) => agents = response.data);
+            this.addFavoriteFromStorageToApi();
         } else {
-            agents = getFavoriteFromStorage();
+            this.agents = getFavoriteFromStorage();
+            this.filterContactedList()
         }
+    }
 
-        contactedList = agents
-            .filter(item => item.contactStatus === 'contacted')
-            .sort((a, b) => a.updateTime > b.updateTime ? -1 : 1);
-        consultantList = agents
-            .filter(item => item.contactStatus !== 'contacted')
-            .sort((a, b) => a.updateTime > b.updateTime ? -1 : 1);
-
-        return {
-            agents,
-            contactedList,
-            consultantList
+    addFavoriteFromStorageToApi() {
+        const agentNoList = getFavoriteFromStorage().map(i => i.agentNo)
+        if (agentNoList.length > 0) {
+            addFavoriteConsultant(agentNoList).then(res => this.getMyConsutant());
+            localStorage.removeItem('favoriteConsultant');
+            return;
         }
+        this.getMyConsutant();
+    }
+
+    getMyConsutant() {
+        getFavoriteConsultant().then((response) => {
+            this.agents = response.data;
+            this.filterContactedList();
+        });
+    }
+
+    filterContactedList() {
+        this.consultantList = this.agents
+                .filter(item => item.contactStatus !== 'contacted')
+                .sort((a, b) => a.updateTime > b.updateTime ? -1 : 1);
+        this.contactedList = this.agents
+                .filter(item => item.contactStatus === 'contacted')
+                .sort((a, b) => a.updateTime > b.updateTime ? -1 : 1);
     }
 
     removeAgent(agentNo: string) {

--
Gitblit v1.8.0