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