From bb682522ce2e18f7c67f087620134d3aadba559d Mon Sep 17 00:00:00 2001
From: Mila <Mila@pollex.com.tw>
Date: 星期二, 16 十一月 2021 21:00:50 +0800
Subject: [PATCH] update 預約清單: 使用 store 存放 AppointmentList

---
 PAMapp/components/AddAndReservedBtns.vue |   43 ++++++++++++++-----------------------------
 1 files changed, 14 insertions(+), 29 deletions(-)

diff --git a/PAMapp/components/AddAndReservedBtns.vue b/PAMapp/components/AddAndReservedBtns.vue
index 3e57ce8..fe0f2e7 100644
--- a/PAMapp/components/AddAndReservedBtns.vue
+++ b/PAMapp/components/AddAndReservedBtns.vue
@@ -1,6 +1,6 @@
 <template>
     <el-row type="flex" justify="center" :class="cusClass">
-        <el-button @click="addConsultant(agentInfo)">
+        <el-button @click="addConsultant(agentInfo)" :disabled="isAdded">
             <span> + 憿批��</span>
         </el-button>
         <el-button
@@ -11,42 +11,22 @@
 </template>
 
 <script lang="ts">
-import { Vue, Component, Prop, Emit } from 'nuxt-property-decorator';
-import { addFavoriteConsultant, Consultants } from '~/assets/ts/api/consultant';
+import { Vue, Component, Prop, Emit, Action, State } from 'nuxt-property-decorator';
+import { Consultants } from '~/assets/ts/api/consultant';
 import { isLogin } from '~/assets/ts/auth';
-import { getFavoriteFromStorage, setFavoriteToStorage } from '~/assets/ts/storageConsultant';
 
 @Component
 export default class AddAndReservedBtns extends Vue {
+    @Action addToMyConsultantList!: (consultantToAdd: Consultants) => Promise<boolean>
+    @State('myConsultantList') myConsultantList!: Consultants[];
+
     @Prop() agentInfo!: Consultants;
     @Prop() cusClass!: string;
     isVisiblePopUp = false;
     addConsultant(item: Consultants) {
-        if (isLogin()) {
-            addFavoriteConsultant([item.agentNo]).then(res => this.openPopUp())
-        } else {
-            this.addConsultantToStorage(item);
-        }
-    }
-
-    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);
-        }
-    }
-
-    storageFavoriteAndPopUp(item: Consultants[]) {
-        setFavoriteToStorage(item);
-        this.openPopUp();
+        this.addToMyConsultantList(item).then(addOk => {
+            addOk && this.openPopUp();
+        });
     }
 
     reserveCommunication() {
@@ -56,5 +36,10 @@
     @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

--
Gitblit v1.8.0