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