타이틀, favicon 설정
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" href="/favicon.ico">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Vite App</title>
|
||||
<title>LaneBow - 볼링 클럽 매니저</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 9.5 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 43 KiB |
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"name": "LaneBow - 볼링 클럽 매니저",
|
||||
"short_name": "LaneBow",
|
||||
"display": "standalone",
|
||||
"background_color": "#1976d2",
|
||||
"theme_color": "#1976d2",
|
||||
"icons": [
|
||||
{
|
||||
"src": "\/android-icon-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image\/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image\/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image\/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image\/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image\/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image\/png",
|
||||
"density": "4.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 116 KiB |
@@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<header class="app-header">
|
||||
<div class="logo">
|
||||
<h1>볼링 클럽 매니저</h1>
|
||||
<img src="@/assets/LaneBowLogo.png" alt="LaneBow Logo" class="logo-img" />
|
||||
<div class="app-title">볼링 클럽 매니저</div>
|
||||
</div>
|
||||
|
||||
<div v-if="isLoggedIn" class="header-actions">
|
||||
@@ -346,10 +347,24 @@ onBeforeUnmount(() => {
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.logo h1 {
|
||||
margin: 0;
|
||||
.logo {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
.logo-img {
|
||||
height: 70px;
|
||||
width: auto;
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
.app-title {
|
||||
font-size: 1.5rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
letter-spacing: 1px;
|
||||
text-shadow: 0 2px 4px rgba(0,0,0,1);
|
||||
margin-bottom: 0;
|
||||
margin-top: -30px;
|
||||
}
|
||||
|
||||
.header-actions {
|
||||
|
||||
@@ -40,7 +40,7 @@ const routes = [
|
||||
path: '/public/:publicHash',
|
||||
name: 'EventPublicPage',
|
||||
component: EventPublicPage,
|
||||
meta: { requiresAuth: false, layout: 'public' }
|
||||
meta: { title: 'LaneBow - 볼링 클럽 매니저', requiresAuth: false, layout: 'public' }
|
||||
},
|
||||
{
|
||||
path: '/login',
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<label for="clubOwner">모임장 설정</label>
|
||||
<select id="clubOwner" v-model="selectedOwnerId" class="form-control">
|
||||
<option v-for="member in members" :key="member.id" :value="member.userId">
|
||||
{{ member.name }} ({{ member.memberType }}) [ID: {{ member.userId }}]
|
||||
{{ member.name }} ({{ getMemberTypeLabel(member.memberType) }}) [ID: {{ member.userId }}]
|
||||
</option>
|
||||
</select>
|
||||
<small class="form-text text-muted">모임장 권한을 이전할 회원을 선택합니다. 모임장은 클럽의 모든 관리 권한을 가집니다.</small>
|
||||
@@ -127,7 +127,7 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { AVERAGE_CALCULATION_PERIOD_OPTIONS } from '@/utils/enumMappings';
|
||||
import { AVERAGE_CALCULATION_PERIOD_OPTIONS, getMemberTypeLabel } from '@/utils/enumMappings';
|
||||
|
||||
import { ref, onMounted, computed, inject } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||