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