From 24abf2c8409565a76fbedbd333beddf50f527d8b Mon Sep 17 00:00:00 2001 From: Robonen Date: Thu, 16 Dec 2021 15:14:59 +0700 Subject: [PATCH] Fixed displaying steps in the player --- src/assets/css/graph.css | 10 ++-- src/components/Graph.vue | 19 ++++-- src/components/Guide.vue | 26 +++++--- src/views/View.vue | 126 ++++++++++++++++++++++----------------- 4 files changed, 108 insertions(+), 73 deletions(-) diff --git a/src/assets/css/graph.css b/src/assets/css/graph.css index 6604faf..51ec895 100644 --- a/src/assets/css/graph.css +++ b/src/assets/css/graph.css @@ -509,15 +509,15 @@ p { font-size: 14px; } -.fade-enter-active { - animation: fade-in 0.5s; +.fade-up-enter-active { + animation: fade-up 0.5s; } -.fade-leave-active { - animation: fade-in 0.5s reverse; +.fade-up-leave-active { + animation: fade-up 0.5s reverse; } -@keyframes fade-in { +@keyframes fade-up { from { transform: translateY(-40px); opacity: 0; diff --git a/src/components/Graph.vue b/src/components/Graph.vue index 1972d51..6273f55 100644 --- a/src/components/Graph.vue +++ b/src/components/Graph.vue @@ -131,6 +131,16 @@ export default { }); }; + const checkGraph = () => { + euler.loadLinks(Object.values(links.value)); + + if (links.value.length > 0 && euler.check()) { + emit("hasEuler", euler.find()); + } else { + emit("hasEuler", null); + } + }; + // Nodes const activateNodes = (ids) => ids.forEach((e) => (nodes.value[e].selected = true)); @@ -149,6 +159,7 @@ export default { if (hasntIntersections(newNode)) { nodes.value.push(newNode); + emit("hasVertices", nodes.value.length); } }; @@ -167,7 +178,8 @@ export default { nodes.value = nodes.value.filter((_, idx) => idx !== id); - emit("isEuler", []); + checkGraph(); + emit("hasVertices", nodes.value.length); }; const selectNode = (id) => { @@ -245,10 +257,7 @@ export default { target, }); - euler.loadLinks(Object.values(links.value)); - - if (euler.check()) emit("isEuler", euler.find()); - else emit("isEuler", []); + checkGraph(); }); const removeLink = (id) => { diff --git a/src/components/Guide.vue b/src/components/Guide.vue index b8ae51a..5f8a5dd 100644 --- a/src/components/Guide.vue +++ b/src/components/Guide.vue @@ -25,16 +25,25 @@ export default { components: { Popup, }, - props: { - steps: { - type: Array, - required: true, - }, - }, setup(props, { emit }) { + // Const + const steps = [ + { + name: "Создание вершин", + content: + "Для создания новой вершины необходимо дважды нажать левую кнопку мыши", + video: "/video/create.mp4", + }, + { + name: "Связывание вершин", + content: + "Чтобы связать вершины, необходимо кликнуть левой кнопкой мыши по вершине, которую необходимо связать. Далее выбираются вершины, с которыми необходимо связать", + video: "/video/linking.mp4", + }, + ]; + // Reactive const currentStep = ref(0); - // Methods const stepDown = () => { if (currentStep.value <= 0) return; @@ -43,7 +52,7 @@ export default { }; const stepUp = () => { - if (currentStep.value + 1 >= props.steps.length) { + if (currentStep.value + 1 >= steps.length) { close(); return; } @@ -57,6 +66,7 @@ export default { }; return { + steps, currentStep, stepDown, stepUp, diff --git a/src/views/View.vue b/src/views/View.vue index f7e8350..0666834 100644 --- a/src/views/View.vue +++ b/src/views/View.vue @@ -1,5 +1,5 @@