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