2023-01-17 18:25:56 +00:00
|
|
|
<template>
|
2023-01-19 00:22:01 +00:00
|
|
|
<div class="box">
|
|
|
|
<p class="title is-4">Türchen bearbeiten</p>
|
|
|
|
|
2023-01-19 19:35:20 +00:00
|
|
|
<nav class="breadcrumb has-succeeds-separator" aria-label="breadcrumbs">
|
2023-01-19 00:22:01 +00:00
|
|
|
<ul>
|
2023-01-19 17:54:46 +00:00
|
|
|
<li
|
|
|
|
v-for="(step, index) in steps"
|
2023-01-24 23:17:10 +00:00
|
|
|
:key="`step-${index}`"
|
2023-01-19 17:54:46 +00:00
|
|
|
:class="current_step === index ? 'is-active' : ''"
|
2023-01-20 00:51:11 +00:00
|
|
|
@click="change_step(index)"
|
2023-01-19 17:54:46 +00:00
|
|
|
>
|
2023-01-20 00:42:47 +00:00
|
|
|
<a>
|
|
|
|
<span class="icon is-small">
|
|
|
|
<font-awesome-icon :icon="step.icon" />
|
|
|
|
</span>
|
|
|
|
<span>{{ step.label }}</span>
|
|
|
|
</a>
|
2023-01-19 17:54:46 +00:00
|
|
|
</li>
|
2023-01-19 00:22:01 +00:00
|
|
|
</ul>
|
2023-01-19 19:35:20 +00:00
|
|
|
</nav>
|
2023-01-19 00:22:01 +00:00
|
|
|
|
2023-01-23 23:37:23 +00:00
|
|
|
<DoorPlacer v-if="current_step === 0" v-model:rectangles="rectangles" />
|
2023-01-24 00:14:50 +00:00
|
|
|
<DoorChooser v-if="current_step === 1" v-model:rectangles="rectangles" />
|
2023-01-20 00:42:47 +00:00
|
|
|
<p v-if="current_step === 2">Bar</p>
|
2023-01-17 18:25:56 +00:00
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
|
|
|
import { Vue, Options } from "vue-class-component";
|
2023-01-23 23:37:23 +00:00
|
|
|
import { Rectangle } from "./rects/rectangles";
|
2023-01-17 18:25:56 +00:00
|
|
|
|
2023-01-24 00:14:50 +00:00
|
|
|
import DoorPlacer from "./door_map/DoorPlacer.vue";
|
|
|
|
import DoorChooser from "./door_map/DoorChooser.vue";
|
|
|
|
|
2023-01-20 00:42:47 +00:00
|
|
|
type Step = {
|
|
|
|
label: string;
|
|
|
|
icon: string;
|
|
|
|
};
|
|
|
|
|
2023-01-17 18:25:56 +00:00
|
|
|
@Options({
|
|
|
|
components: {
|
2023-01-19 17:59:18 +00:00
|
|
|
DoorPlacer,
|
2023-01-24 00:14:50 +00:00
|
|
|
DoorChooser,
|
2023-01-17 18:25:56 +00:00
|
|
|
},
|
|
|
|
})
|
2023-01-19 17:59:18 +00:00
|
|
|
export default class DoorMapEditor extends Vue {
|
2023-01-20 00:42:47 +00:00
|
|
|
private readonly steps: Step[] = [
|
|
|
|
{ label: "Platzieren", icon: "fa-solid fa-crosshairs" },
|
|
|
|
{ label: "Ordnen", icon: "fa-solid fa-list-ol" },
|
|
|
|
{ label: "Überprüfen", icon: "fa-solid fa-check" },
|
|
|
|
];
|
2023-01-19 17:54:46 +00:00
|
|
|
private current_step = 0;
|
2023-01-23 23:37:23 +00:00
|
|
|
private rectangles: Rectangle[] = [];
|
2023-01-20 00:42:47 +00:00
|
|
|
|
|
|
|
private change_step(next_step: number) {
|
|
|
|
this.current_step = next_step;
|
|
|
|
}
|
2023-01-17 18:25:56 +00:00
|
|
|
}
|
|
|
|
</script>
|