From f90c94f20b5f11d3b3ce0164d619c0112d5158c9 Mon Sep 17 00:00:00 2001
From: Mila <Mila@pollex.com.tw>
Date: 星期四, 20 一月 2022 18:23:56 +0800
Subject: [PATCH] update: TODO#133100 顧問端:header增加顧問頭像圖示

---
 PAMapp/components/AddAndReservedBtns.vue |   73 +++++++++++++++++-------------------
 1 files changed, 35 insertions(+), 38 deletions(-)

diff --git a/PAMapp/components/AddAndReservedBtns.vue b/PAMapp/components/AddAndReservedBtns.vue
index 41c3e04..f2f3177 100644
--- a/PAMapp/components/AddAndReservedBtns.vue
+++ b/PAMapp/components/AddAndReservedBtns.vue
@@ -1,61 +1,58 @@
 <template>
     <el-row type="flex" justify="center" :class="cusClass">
-        <el-button @click="addConsultant(agentInfo)">
-            <span> + 憿批��</span>
+        <el-button @click="addConsultant(agentInfo)" :disabled="isAdded">
+            <span> {{ isAdded ? '撌脣�憿批��' : '+ 憿批��' }}</span>
         </el-button>
         <el-button
-            @click="reserveCommunication"
+            @click="navigateToReservationForm"
             type="primary"
         >�脰����</el-button>
     </el-row>
 </template>
 
 <script lang="ts">
-import { Vue, Component, Prop, Emit } from 'nuxt-property-decorator';
-import { addFavoriteConsultant, Consultants } from '~/assets/ts/api/consultant';
-import { isLogin } from '~/assets/ts/auth';
-import { getFavoriteFromStorage, setFavoriteToStorage } from '~/assets/ts/storageConsultant';
+import { Vue, Component, Prop, Emit, Action, State, namespace } from 'nuxt-property-decorator';
+import { Consultant } from '~/shared/models/consultant.model';
 
 @Component
 export default class AddAndReservedBtns extends Vue {
-    @Prop() agentInfo!: Consultants;
-    @Prop() cusClass!: string;
+
+    @Action
+    addToMyConsultantList!: (consultantToAdd: Consultant) => Promise<boolean>
+
+    @State('myConsultantList')
+    myConsultantList!: Consultant[];
+
+    @Prop()
+    agentInfo!: Consultant;
+
+    @Prop()
+    cusClass!: string;
+
     isVisiblePopUp = false;
-    addConsultant(item: Consultants) {
-        console.log('click')
-        if (isLogin()) {
-            addFavoriteConsultant([item.agentNo]).then(res => this.openPopUp())
-        } else {
-            this.addConsultantToStorage(item);
-        }
+
+    //////////////////////////////////////////////////////////////////////
+
+    @Emit('openPopUp')
+    openPopUp(popUpTxt: string = '����憿批��'): string {
+        return popUpTxt;
     }
 
-    addConsultantToStorage(item: Consultants) {
-        let agentList = [item];
-        const consultantList = getFavoriteFromStorage();
+    //////////////////////////////////////////////////////////////////////
 
-        if (consultantList) {
-            const isRepeat = consultantList.findIndex(i => i.agentNo === item.agentNo) === -1;
-            isRepeat
-                ? this.storageFavoriteAndPopUp(consultantList.concat(agentList))
-                : this.openPopUp('撌脩��憿批��');
-
-        } else {
-            this.storageFavoriteAndPopUp(agentList);
-        }
+    addConsultant(item: Consultant): void {
+        this.addToMyConsultantList(item).then(addOk => {
+            addOk && this.openPopUp();
+        });
     }
 
-    storageFavoriteAndPopUp(item: Consultants[]) {
-        setFavoriteToStorage(item);
-        this.openPopUp();
+    navigateToReservationForm(): void {
+        this.$router.push(`/questionnaire/${this.agentInfo.agentNo}`);
     }
 
-    reserveCommunication() {
-        isLogin() ? this.$router.push(`/questionnaire/${this.agentInfo.agentNo}`) : this.$router.push('/login');
-    }
-
-    @Emit('openPopUp') openPopUp(popUpTxt: string = '����憿批��') {
-        return popUpTxt
+    get isAdded() {
+        return this.myConsultantList.find(item => item.agentNo === this.agentInfo.agentNo)
+                ? true : false
     }
 }
-</script>
\ No newline at end of file
+</script>

--
Gitblit v1.8.0