advent22/ui/src/components/DoorMapEditor.vue

61 lines
1.5 KiB
Vue
Raw Normal View History

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>