mirror of
https://github.com/Pandipipas/scoreko-dev.git
synced 2026-06-06 11:42:06 +00:00
Add routed dashboard layout with sidebar
### Motivation - Provide a multi-tab dashboard layout so users can navigate between logical sections (Dashboard, Players, Graphics, Settings, About) via a persistent sidebar. - Integrate `vue-router` to manage in-app navigation inside the Quasar layout for a cleaner, scalable dashboard structure. ### Description - Added `vue-router` as a dev dependency and created `src/dashboard/example/router.ts` with routes for the five views (`/`, `/players`, `/graphics`, `/settings`, `/about`). - Replaced the example dashboard UI with a Quasar `QLayout` in `src/dashboard/example/main.vue` that includes a left `QDrawer` sidebar and a `RouterView` outlet, and wired the app to the router in `src/dashboard/example/main.ts`. - Added simple stub views for each tab under `src/dashboard/example/views/` (`Dashboard.vue`, `Players.vue`, `Graphics.vue`, `Settings.vue`, `About.vue`). - Adjusted `src/dashboard/template.html` to remove the default NodeCG body margin (`margin: 0`) so the layout can occupy the full panel area. ### Testing - Ran `npm install` which completed and added the new package with audit warnings about vulnerabilities reported. (succeeded) - Started the dev server with `npx vite` which reported the inputs and served the bundle at `http://localhost:4173/bundles/scoreko-dev/` and `vue-tsc` reported `Found 0 errors` while watching. (succeeded) - Attempted a Playwright screenshot run to capture the dashboard UI, but the Chromium process crashed (`TargetClosedError` / SIGSEGV) so no screenshot was produced. (failed) ------ [Codex Task](https://chatgpt.com/codex/tasks/task_e_69876e97329c832a8af7179a9175d88b)
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
<script setup lang="ts">
|
||||
import { useHead } from '@unhead/vue';
|
||||
|
||||
useHead({ title: 'About' });
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<QPage class="q-pa-lg">
|
||||
<div class="text-h4 q-mb-md">About</div>
|
||||
<div class="text-body1">
|
||||
Información del bundle y enlaces relevantes.
|
||||
</div>
|
||||
</QPage>
|
||||
</template>
|
||||
@@ -0,0 +1,14 @@
|
||||
<script setup lang="ts">
|
||||
import { useHead } from '@unhead/vue';
|
||||
|
||||
useHead({ title: 'Dashboard' });
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<QPage class="q-pa-lg">
|
||||
<div class="text-h4 q-mb-md">Dashboard</div>
|
||||
<div class="text-body1">
|
||||
Panel principal del dashboard.
|
||||
</div>
|
||||
</QPage>
|
||||
</template>
|
||||
@@ -0,0 +1,14 @@
|
||||
<script setup lang="ts">
|
||||
import { useHead } from '@unhead/vue';
|
||||
|
||||
useHead({ title: 'Graphics' });
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<QPage class="q-pa-lg">
|
||||
<div class="text-h4 q-mb-md">Graphics</div>
|
||||
<div class="text-body1">
|
||||
Controles y estado de gráficos del bundle.
|
||||
</div>
|
||||
</QPage>
|
||||
</template>
|
||||
@@ -0,0 +1,14 @@
|
||||
<script setup lang="ts">
|
||||
import { useHead } from '@unhead/vue';
|
||||
|
||||
useHead({ title: 'Players' });
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<QPage class="q-pa-lg">
|
||||
<div class="text-h4 q-mb-md">Players</div>
|
||||
<div class="text-body1">
|
||||
Gestión de jugadores y datos relacionados.
|
||||
</div>
|
||||
</QPage>
|
||||
</template>
|
||||
@@ -0,0 +1,14 @@
|
||||
<script setup lang="ts">
|
||||
import { useHead } from '@unhead/vue';
|
||||
|
||||
useHead({ title: 'Settings' });
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<QPage class="q-pa-lg">
|
||||
<div class="text-h4 q-mb-md">Settings</div>
|
||||
<div class="text-body1">
|
||||
Configuración del dashboard y del bundle.
|
||||
</div>
|
||||
</QPage>
|
||||
</template>
|
||||
Reference in New Issue
Block a user