feat(spa): vue router + 7 stub views

This commit is contained in:
DumiFlex
2026-04-26 19:39:42 +03:00
parent 2917c04c38
commit d80fd24254
10 changed files with 88 additions and 4 deletions
+2 -4
View File
@@ -1,11 +1,9 @@
<script setup lang="ts">
import { RouterView } from "vue-router";
import Toast from "primevue/toast";
</script>
<template>
<div class="p-6 text-wp-text">
<h1 class="text-xl font-semibold">Wildcard Pipeline Manager</h1>
<p class="opacity-60 text-sm mt-2">Scaffold ready. Router + views ship in Task 2.</p>
</div>
<RouterView />
<Toast position="bottom-right" />
</template>
+2
View File
@@ -8,9 +8,11 @@ import "primeicons/primeicons.css";
import "./styles/theme.css";
import "./styles/tailwind.css";
import App from "./App.vue";
import router from "./router";
const app = createApp(App);
app.use(createPinia());
app.use(router);
app.use(PrimeVue, {
theme: {
preset: Aura,
+19
View File
@@ -0,0 +1,19 @@
import { createRouter, createWebHistory, type RouteRecordRaw } from "vue-router";
const routes: RouteRecordRaw[] = [
{ path: "/", redirect: "/modules" },
{ path: "/modules", name: "modules", component: () => import("../views/Modules.vue") },
{ path: "/modules/wildcard/new", name: "wildcard-new", component: () => import("../views/WildcardForm.vue") },
{ path: "/modules/wildcard/:id", name: "wildcard-edit", component: () => import("../views/WildcardForm.vue"), props: true },
{ path: "/modules/fixed-values/new", name: "fixed-values-new", component: () => import("../views/FixedValueForm.vue") },
{ path: "/modules/fixed-values/:id", name: "fixed-values-edit", component: () => import("../views/FixedValueForm.vue"), props: true },
{ path: "/categories", name: "categories", component: () => import("../views/Categories.vue") },
{ path: "/import-export", name: "import-export", component: () => import("../views/ImportExport.vue") },
{ path: "/test", name: "test", component: () => import("../views/TestRunner.vue") },
{ path: "/settings", name: "settings", component: () => import("../views/Settings.vue") },
];
export default createRouter({
history: createWebHistory("/wp/"),
routes,
});
+9
View File
@@ -0,0 +1,9 @@
<script setup lang="ts">
</script>
<template>
<div class="p-6 text-wp-text">
<h1 class="text-xl font-semibold m-0">Categories</h1>
<p class="text-sm text-wp-text2 m-0 mt-2">Stub — wired up in Task 8.</p>
</div>
</template>
+10
View File
@@ -0,0 +1,10 @@
<script setup lang="ts">
defineProps<{ id?: string }>();
</script>
<template>
<div class="p-6 text-wp-text">
<h1 class="text-xl font-semibold m-0">Fixed-values editor</h1>
<p class="text-sm text-wp-text2 m-0 mt-2">Stub — wired up in Task 7.</p>
</div>
</template>
+9
View File
@@ -0,0 +1,9 @@
<script setup lang="ts">
</script>
<template>
<div class="p-6 text-wp-text">
<h1 class="text-xl font-semibold m-0">Import / Export</h1>
<p class="text-sm text-wp-text2 m-0 mt-2">Stub — wired up in Task 8.</p>
</div>
</template>
+9
View File
@@ -0,0 +1,9 @@
<script setup lang="ts">
</script>
<template>
<div class="p-6 text-wp-text">
<h1 class="text-xl font-semibold m-0">Modules</h1>
<p class="text-sm text-wp-text2 m-0 mt-2">Stub — wired up in Task 6.</p>
</div>
</template>
+9
View File
@@ -0,0 +1,9 @@
<script setup lang="ts">
</script>
<template>
<div class="p-6 text-wp-text">
<h1 class="text-xl font-semibold m-0">Settings</h1>
<p class="text-sm text-wp-text2 m-0 mt-2">Stub — full impl deferred (post-Plan-2).</p>
</div>
</template>
+9
View File
@@ -0,0 +1,9 @@
<script setup lang="ts">
</script>
<template>
<div class="p-6 text-wp-text">
<h1 class="text-xl font-semibold m-0">Test runner</h1>
<p class="text-sm text-wp-text2 m-0 mt-2">Stub — wired up in Task 8.</p>
</div>
</template>
+10
View File
@@ -0,0 +1,10 @@
<script setup lang="ts">
defineProps<{ id?: string }>();
</script>
<template>
<div class="p-6 text-wp-text">
<h1 class="text-xl font-semibold m-0">Wildcard editor</h1>
<p class="text-sm text-wp-text2 m-0 mt-2">Stub — wired up in Task 7.</p>
</div>
</template>