Я создаю чат-бота в vue.js, и мне нужна ваша помощь. Я создал 2 компонента Vue:
ChatLoader.vue - первые компоненты, отображающие кнопку для открытия фактического окна веб-чата
Webchat.vue - асинхронный компонент, который загружается только тогда, когда я
Нажмите на кнопку, чтобы открыть окно чата.
Так что мой ChatLoader.vue выполняет настройку параметра chatInitialized = true при нажатии кнопки. Тогда окно чата открывается.
В моем Webchat.vue У меня есть кнопка закрытия, которая при щелчке скрывает только окно чата (не удаляется из DOM), устанавливая showWindow = false;
Теперь, когда окно чата скрыто, я снова вижу кнопку, чтобы открыть чат (который был там все время, только невидимым, потому что перекрывается chatwindow), но когда я нажимаю на кнопку сейчас, я хочу установить showWindow = trueв компоненте Webchat.vue вместо предыдущего поведения, поэтому окно веб-чата отображается снова.
ChatLoading.vue:
<template>
<div>
<span class="open-chat" v-on:click="showChat">
<i class="icon ficon-live-chat"></i>
Virtual assistant
</span>
<Webchat v-if="chatInitialized"></Webchat>
</div>
</template>
<script>
import ChatLoading from "./ChatLoading.vue";
const Webchat = () => ({
component: import('./Webchat.vue'),
loading: ChatLoading
});
export default {
data() {
return {
chatInitialized: false
}
},
components: {
Webchat
},
methods: {
showChat() {
this.chatInitialized = true;
}
}
}
</script>
Webchat.vue:
<template>
<div class="chat-window" v-show="showWindow">
<button type="button" class="cancel icon ficon-close" v-on:click="minimize"></button>
<WebchatPlugin
>
</<WebchatPlugin>
</div>
</template>
<script>
import <WebchatPlugin{
createDirectLine,
createStore
} from "botframework-webchat/lib/index";
import {DirectLine} from "botframework-directlinejs";
export default {
data() {
return {
showWindow : true
}
},
components: <WebchatPlugin
methods: {
minimize() {
this.showWindow = false
}
},
</script>
Как я могу это сделать? Спасибо