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 |  163 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 160 insertions(+), 3 deletions(-)

diff --git a/PAMapp/pages/index.vue b/PAMapp/pages/index.vue
index ac0141f..9ec3c7c 100644
--- a/PAMapp/pages/index.vue
+++ b/PAMapp/pages/index.vue
@@ -1,12 +1,169 @@
 <template>
-<div>PAMapp</div>
+    <div>
+        <Ui-Carousel></Ui-Carousel>
+        <div class="page-container">
+            <h5 class="mdTxt mb-30">����憿批��</h5>
+            <el-button
+                class="reserveBtn recommendConsultant"
+                @click="routerPush('/recommendConsultant')"
+            >
+                <p>������</p>
+            </el-button>
+            <el-button
+                class="reserveBtn quickFilter"
+                @click="routerPush('/quickFilter')"
+            >
+                <p>敹恍�祟�</p>
+            </el-button>
+            <el-row class="mb-30 rowStyle">
+                <el-col :span="16">
+                    <span class="mdTxt">���“���</span>
+                    <span class="smTxt_bold amount">� {{consultantList.length}} 蝑�</span>
+                </el-col>
+                <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)"
+            ></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="recommendList"></ConsultantSwiper>
+        </div>
+    </div>
 </template>
 
 <script lang="ts">
-import { Vue, Component } from 'vue-property-decorator'
+import { Vue, Component, State, Action, Watch } from 'nuxt-property-decorator';
+import { Consultants } from '~/assets/ts/api/consultant';
 
-@Component
+@Component({
+    layout: 'home'
+})
 export default class MainComponent extends Vue {
+    consultantList: Consultants[] = [];
+    agents: Consultants[] = [];
+    @State('recommendList') recommendList!: Consultants[];
+    @Action storeRecommendList!: any;
+
+    @State('myConsultantList') myConsultantList!: Consultants[];
+    @Action storeConsultantList!: any;
+
+    @Watch('myConsultantList')
+    onMyConsultantListChange() {
+        this.consultantList = (this.myConsultantList || [])
+                .filter(item => item.contactStatus !== 'contacted')
+                .sort((a, b) => a.updateTime > b.updateTime ? -1 : 1)
+    }
+
+    mounted() {
+        if (!this.recommendList?.length) {
+            this.storeRecommendList();
+        }
+
+        this.storeConsultantList();
+    }
+
+    routerPush(path: string) {
+        this.$router.push(path);
+    }
 
 }
+
 </script>
+
+<style lang="scss" scoped>
+
+    .page-container {
+        padding: 0px 20px 30px 20px;
+    }
+
+    .reserveBtn.el-button--default {
+        width: 100%;
+        height: 110px;
+        border-radius: 10px;
+        margin: 0 auto 17px auto;
+        font-size: 32px;
+        font-weight: 700;
+        background-position: right;
+        background-size: cover;
+        color: #68737A;
+        text-align: left;
+        background-repeat: no-repeat;
+        box-shadow: 0px 0px 6px #a79b9b29;
+        border-width: 0;
+
+        p {
+            text-shadow: 1px 1px 5px $PRIMARY_WHITE;
+        }
+
+        &:nth-child(3) {
+            margin-bottom: 42px;
+        }
+
+    }
+
+    .reserveBtn+.reserveBtn {
+        margin-left: 0px;
+    }
+
+    .quickFilter {
+        background-image: url('~/assets/images/quickFilter/banner_mob.svg');
+    }
+
+    .recommendConsultant {
+        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;
+        }
+        .readMore {
+            color: $PRIMARY_RED;
+            cursor: pointer;
+            text-align: right;
+        }
+    }
+
+    @include desktop {
+        .page-container {
+            width: 700px;
+            margin: 0 auto;
+        }
+
+        .reserveBtn {
+            max-width: 340px;
+
+            &:nth-child(2) {
+                margin-right: 15px;
+            }
+        }
+    }
+
+    .pam-recommend {
+        position: relative;
+
+        .img {
+            position: absolute;
+            right: 20px;
+            bottom: 0px;
+        }
+    }
+
+</style>

--
Gitblit v1.8.0