Main Site Work

+ Updatet Router
+ "Hauptseite" mit Großem Bild
This commit is contained in:
2025-11-22 17:04:45 +01:00
parent 30eeaabc5a
commit a118026b04
13 changed files with 97 additions and 40 deletions

View File

@@ -24,18 +24,22 @@
"RelativeDocumentMoniker": "API\\Program.cs", "RelativeDocumentMoniker": "API\\Program.cs",
"ToolTip": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs", "ToolTip": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs",
"RelativeToolTip": "API\\Program.cs", "RelativeToolTip": "API\\Program.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAAAAAAAAAAAAA==", "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAXAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-05T16:26:39.39Z", "WhenOpened": "2025-10-05T16:26:39.39Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Bookmark", "$type": "Bookmark",
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}" "Name": "ST:0:0:{0174dea2-fdbe-4ef1-8f99-c0beae78880f}"
}, },
{ {
"$type": "Bookmark", "$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
} }
] ]
} }

View File

@@ -24,18 +24,22 @@
"RelativeDocumentMoniker": "API\\Program.cs", "RelativeDocumentMoniker": "API\\Program.cs",
"ToolTip": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs", "ToolTip": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs",
"RelativeToolTip": "API\\Program.cs", "RelativeToolTip": "API\\Program.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAAAAAAAAAAAAA==", "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAXAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-05T16:26:39.39Z", "WhenOpened": "2025-10-05T16:26:39.39Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Bookmark", "$type": "Bookmark",
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}" "Name": "ST:0:0:{0174dea2-fdbe-4ef1-8f99-c0beae78880f}"
}, },
{ {
"$type": "Bookmark", "$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}" "Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
} }
] ]
} }

View File

@@ -1,6 +1,6 @@
{ {
"$schema": "https://json.schemastore.org/prettierrc", "$schema": "https://json.schemastore.org/prettierrc",
"semi": false, "semi": true,
"singleQuote": true, "singleQuote": true,
"printWidth": 100 "printWidth": 100
} }

View File

Before

Width:  |  Height:  |  Size: 265 KiB

After

Width:  |  Height:  |  Size: 265 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 MiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

View File

@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import { useTheme } from 'vuetify'; import { useTheme } from 'vuetify';
import routesLayout from './plugins/routesLayout'; import { Visibility, routes } from './plugins/routesLayout';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
const theme = useTheme(); const theme = useTheme();
@@ -9,36 +9,38 @@ const route = useRoute();
const showDrawer = ref(true); const showDrawer = ref(true);
function changeTheme() { function changeTheme() {
theme.toggle(); theme.toggle();
localStorage.setItem("theme", theme.name.value); localStorage.setItem('theme', theme.name.value);
} }
function toggleDrawer() { function toggleDrawer() {
showDrawer.value = !showDrawer.value; showDrawer.value = !showDrawer.value;
localStorage.setItem("drawer", showDrawer.value ? "Y" : "N") localStorage.setItem('drawer', showDrawer.value ? 'Y' : 'N');
} }
onMounted(() => { onMounted(() => {
theme.change(localStorage.getItem("theme") || "light"); theme.change(localStorage.getItem('theme') || 'light');
showDrawer.value = localStorage.getItem("drawer")?.startsWith("Y") || false; showDrawer.value = localStorage.getItem('drawer')?.startsWith('Y') || false;
}); });
</script> </script>
<template> <template>
<v-app> <v-app>
<v-app-bar image="./appBarIcon.png"> <v-app-bar image="/static/images/appBarIcon.png">
<template v-slot:image> <template v-slot:image>
<v-img <v-img
:gradient="theme.name.value === 'dark' ? 'to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)' : 'to top, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)'" :gradient="
theme.name.value === 'dark'
? 'rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)'
: 'rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)'
"
/> />
</template> </template>
<template v-slot:prepend> <template v-slot:prepend>
<v-app-bar-nav-icon @click="toggleDrawer()"></v-app-bar-nav-icon> <v-app-bar-nav-icon @click="toggleDrawer()"></v-app-bar-nav-icon>
</template> </template>
<v-app-bar-title class="title"> <v-app-bar-title class="title"> Judoteam - Stadtlohn </v-app-bar-title>
Judoteam - Stadtlohn
</v-app-bar-title>
<v-tooltip> <v-tooltip>
<template #activator="{ props }"> <template #activator="{ props }">
@@ -54,7 +56,7 @@ onMounted(() => {
<v-icon>mdi-brightness-6</v-icon> <v-icon>mdi-brightness-6</v-icon>
</v-btn> </v-btn>
</template> </template>
{{ theme.name.value === 'dark' ? 'Dunklen Modus aktivieren' : 'Hellen Modus aktivieren' }} {{ theme.name.value === 'dark' ? 'Hellen Modus aktivieren' : 'Dunklen Modus aktivieren' }}
</v-tooltip> </v-tooltip>
</v-app-bar> </v-app-bar>
@@ -65,7 +67,7 @@ onMounted(() => {
> >
<v-list> <v-list>
<v-list-item <v-list-item
v-for="item in routesLayout" v-for="item in routes.filter((x) => x.visible === Visibility.Public)"
:key="item.path" :key="item.path"
:to="item.path" :to="item.path"
:active="route.path === item.path" :active="route.path === item.path"

View File

@@ -1,3 +1,11 @@
.title{ .title {
font-weight: 600; font-weight: 600;
}
.whiteTransp {
background-color: rgba(255, 255, 255, 0.5);
}
.blackTransp {
background-color: rgb(0, 0, 0, 0.5);
} }

View File

@@ -1,8 +1,42 @@
export default [ import Home from '@/routes/Home.vue'
import NotFound from '@/routes/404NotFound.vue'
import type { RouteRecordRaw } from 'vue-router'
export enum Visibility {
Hidden,
Authorized,
Public
}
export interface LayoutRoute {
path: string,
name: string,
description: string,
icon: string,
visible: Visibility,
meta: RouteRecordRaw
}
export const routes: LayoutRoute[] = [
{ {
path: "/", path: "/",
name: "Startseite", name: "Startseite",
description: "Übersicht der Anwendung", description: "Übersicht der Anwendung",
icon: "mdi-home", icon: "mdi-home",
visible: Visibility.Public,
meta: {
name: 'Home',
path: '/',
component: Home
}
},
{
path: "/notFound",
name: "Nicht Verfügbar",
description: "Diese Seite wurde nicht gefunden",
icon: "mdi-information-outline",
visible: Visibility.Hidden,
meta: { path: '/:pathMatch(.*)*', name: 'NotFound', component: NotFound },
} }
] ]

View File

@@ -1,17 +1,9 @@
import Home from '@/routes/Home.vue'
import NotFound from '@/routes/404NotFound.vue'
import { createRouter, createWebHistory } from 'vue-router' import { createRouter, createWebHistory } from 'vue-router'
import { routes } from '@/plugins/routesLayout'
const router = createRouter({ const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL), history: createWebHistory(import.meta.env.BASE_URL),
routes: [ routes: routes.map(x => x.meta)
{
name: 'Home',
path: '/',
component: Home,
},
{ path: '/:pathMatch(.*)*', name: 'NotFound', component: NotFound },
],
}) })
export default router export default router

View File

@@ -1,10 +1,23 @@
<script setup lang="ts"> <script setup lang="ts">
import { useTheme } from 'vuetify';
const theme = useTheme();
</script> </script>
<template> <template>
<h1>Home Vue</h1> <v-container fluid>
<h2>Willkommen bei JudoWeb</h2> <v-img
class="rounded-lg"
height="30vh"
src="/static/images/house/front.jpg"
cover
:gradient="
theme.name.value === 'dark'
? 'rgba(0,0,0,0.5), rgba(0,0,0,0.5)'
: 'rgba(255,255,255,0.5), rgba(255,255,255,0.5)'
"
/>
</v-container>
</template> </template>
<style scoped> <style scoped></style>
</style>