From f6a21bf37ef56ecab88652b1449da63f73b9648a Mon Sep 17 00:00:00 2001
From: Mila <Mila@pollex.com.tw>
Date: 星期二, 16 十一月 2021 20:59:28 +0800
Subject: [PATCH] update 我的顧問清單: 使用 store 存放 consultantList 以及新增顧問、移除顧問的狀態控制

---
 PAMapp/pages/index.vue |   58 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 34 insertions(+), 24 deletions(-)

diff --git a/PAMapp/pages/index.vue b/PAMapp/pages/index.vue
index bf84c89..9ec3c7c 100644
--- a/PAMapp/pages/index.vue
+++ b/PAMapp/pages/index.vue
@@ -20,59 +20,59 @@
                     <span class="mdTxt">���“���</span>
                     <span class="smTxt_bold amount">� {{consultantList.length}} 蝑�</span>
                 </el-col>
-                <el-col :span="8" class="mdTxt readMore"
+                <el-col
+                    :span="8"
+                    class="mdTxt readMore"
+                    v-if="consultantList.length > 3"
                     @click.native="routerPush('/myConsultantList/consultantList')">���憭�</el-col>
             </el-row>
             <ConsultantList
                 :agents="consultantList.slice(0, 3)"
-                @removeAgent="removeAgent"
             ></ConsultantList>
             <div class='pam-recommend pb-30 pt-30'>
                 <h5 class="mdTxt">��靽憿批��</h5>
                 <img class="absulate img" src="~/assets/images/index_recommend.svg" alt="">
             </div>
-            <ConsultantSwiper :agents="agents"></ConsultantSwiper>
+            <ConsultantSwiper :agents="recommendList"></ConsultantSwiper>
         </div>
     </div>
 </template>
 
 <script lang="ts">
-import { Vue, Component } from 'nuxt-property-decorator';
-import { Agents } from '~/plugins/api/home';
-import { Context } from '@nuxt/types/app';
+import { Vue, Component, State, Action, Watch } from 'nuxt-property-decorator';
+import { Consultants } from '~/assets/ts/api/consultant';
 
 @Component({
     layout: 'home'
 })
 export default class MainComponent extends Vue {
-    agents: Agents[] = [];
-    consultantList: Agents[] = [];
+    consultantList: Consultants[] = [];
+    agents: Consultants[] = [];
+    @State('recommendList') recommendList!: Consultants[];
+    @Action storeRecommendList!: any;
 
-    async asyncData(context: Context) {
-        let agents: Agents[] = [];
-        let consultantList: Agents[] = [];
-        await context.$service.home.recommendConsultantList().then((result: Agents[]) => {
-            agents = result;
-        })
+    @State('myConsultantList') myConsultantList!: Consultants[];
+    @Action storeConsultantList!: any;
 
-        consultantList = agents.filter(item => item.contactStatus !== 'contacted');
+    @Watch('myConsultantList')
+    onMyConsultantListChange() {
+        this.consultantList = (this.myConsultantList || [])
+                .filter(item => item.contactStatus !== 'contacted')
+                .sort((a, b) => a.updateTime > b.updateTime ? -1 : 1)
+    }
 
-        return {
-            agents,
-            consultantList
+    mounted() {
+        if (!this.recommendList?.length) {
+            this.storeRecommendList();
         }
+
+        this.storeConsultantList();
     }
 
     routerPush(path: string) {
         this.$router.push(path);
     }
 
-    removeAgent(agentNo: number) {
-        const findIndex = this.consultantList.findIndex((item, i) => {
-            return item.agentNo === agentNo;
-        })
-        this.consultantList.splice(findIndex, 1)
-    }
 }
 
 </script>
@@ -120,6 +120,16 @@
         background-image: url('~/assets/images/recommendConsultant/banner_mob.svg');
     }
 
+    @media (min-width: 576px) and (max-width: 768px) {
+        .quickFilter.el-button--default {
+            background-image: url('~/assets/images/quickFilter/banner_web.svg');
+        }
+
+        .recommendConsultant.el-button--default {
+            background-image: url('~/assets/images/recommendConsultant/banner_web.svg');
+        }
+    }
+
     .rowStyle {
         .amount {
             color: $PRUDENTIAL_GREY;

--
Gitblit v1.8.0