<template>
|
<el-row type="flex" justify="center" :class="cusClass">
|
<el-button @click="addConsultant(agentInfo)">
|
<span> + 顧問清單</span>
|
</el-button>
|
<el-button
|
@click="reserveCommunication"
|
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';
|
|
@Component
|
export default class AddAndReservedBtns extends Vue {
|
@Prop() agentInfo!: Consultants;
|
@Prop() cusClass!: string;
|
isVisiblePopUp = false;
|
addConsultant(item: Consultants) {
|
console.log('click')
|
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();
|
}
|
|
reserveCommunication() {
|
isLogin() ? this.$router.push('/questionnaire') : this.$router.push('/login');
|
}
|
|
@Emit('openPopUp') openPopUp(popUpTxt: string = '成功加入顧問清單') {
|
return popUpTxt
|
}
|
}
|
</script>
|