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/components/Consultant/ConsultantCard.vue | 26 +++++++++++++++++++------- 1 files changed, 19 insertions(+), 7 deletions(-) diff --git a/PAMapp/components/Consultant/ConsultantCard.vue b/PAMapp/components/Consultant/ConsultantCard.vue index 42cc58b..c5ac775 100644 --- a/PAMapp/components/Consultant/ConsultantCard.vue +++ b/PAMapp/components/Consultant/ConsultantCard.vue @@ -7,7 +7,7 @@ <el-col class="flex_column" :xs="5" :sm="3"> <UiAvatar :size="50" - :fileName="agentInfo.img" + :fileName="avatarFileName" @click.native="showAgentDetail(agentInfo.agentNo)" ></UiAvatar> <div class="satisfaction"> @@ -20,7 +20,7 @@ <div class="professionals"> <span class="professionalsTxt" - v-for="(expertise, index) in agentInfo.expertise" + v-for="(expertise, index) in expertises" :key="index" >#{{expertise}}</span> </div> @@ -69,8 +69,9 @@ </template> <script lang="ts"> -import { Vue, Component, Prop, Emit } from 'nuxt-property-decorator'; -import { AppointmentDetail, Consultants, getAppointmentDetail } from '~/assets/ts/api/consultant'; +import { Vue, Component, Prop, Emit, Action } from 'nuxt-property-decorator'; +import { Consultants, getAppointmentDetail } from '~/assets/ts/api/consultant'; +import { AppointmentDetail } from '~/assets/ts/models/AppointmentDetail'; import { isLogin } from '~/assets/ts/auth'; import { isMobileDevice } from '~/assets/ts/device'; @@ -85,6 +86,8 @@ } }) export default class ConsultantCard extends Vue { + @Action removeFromMyConsultantList!: (agentNo: string) => Promise<boolean>; + @Prop() agentInfo!: Consultants; isVisibleDialog = false; width: string = ''; @@ -106,6 +109,13 @@ name: '' }; + get avatarFileName() { + return this.agentInfo.img ? this.agentInfo.img : this.agentInfo.image; + } + + get expertises() { + return this.agentInfo.expertise ? this.agentInfo.expertise : this.agentInfo.expertises; + } get gender() { if (this.appointmentDetail.gender) { return this.appointmentDetail.gender === 'male' ? '���' : '憟單��'; @@ -128,7 +138,7 @@ get hopeContactTime() { const contactList = this.appointmentDetail.hopeContactTime - .split("'").map(item => item.slice(0, item.length - 1)); + .split("'").map(item => item.slice(0, item.length)); return contactList.filter(item => !!item) } reserveCommunication() { @@ -150,8 +160,10 @@ }); } - @Emit('removeAgent') removeAgent() { - return this.agentInfo.agentNo; + removeAgent() { + this.removeFromMyConsultantList(this.agentInfo.agentNo).then((removeOk) => { + console.log('removeOk?', removeOk); + }); } showAgentDetail(agentNo: string): void { -- Gitblit v1.8.0