FEAT: Enhance berth color handling in dashboard components and improve authentication middleware with caching

This commit is contained in:
2025-06-17 18:05:22 +02:00
parent 8a4824e6fe
commit b585daddde
5 changed files with 202 additions and 32 deletions

View File

@@ -2,10 +2,10 @@
<v-dialog
v-model="isVisible"
:fullscreen="mobile"
:max-width="mobile ? undefined : 1000"
:max-width="mobile ? undefined : 1200"
scrollable
persistent
:transition="mobile ? 'dialog-bottom-transition' : 'dialog-transition'"
@click:outside="closeModal"
>
<v-card v-if="berth">
<v-card-title class="d-flex align-center justify-space-between">
@@ -688,48 +688,122 @@ onUnmounted(() => {
</script>
<style scoped>
.section {
border: 1px solid #e0e0e0;
border-radius: 8px;
padding: 16px;
background-color: #fafafa;
/* Modern card style with subtle shadow */
:deep(.v-dialog .v-card) {
box-shadow: 0 24px 48px -12px rgba(0, 0, 0, 0.18) !important;
}
/* Header styling */
:deep(.v-card-title) {
background-color: #fafafa;
border-bottom: 1px solid #e0e0e0;
padding: 24px !important;
}
/* Modern section styling with subtle shadows */
.section {
background: white;
border-radius: 12px;
padding: 24px;
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
transition: all 0.3s ease;
}
.section:hover {
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
/* Section titles with accent underline */
.section h4 {
position: relative;
padding-bottom: 12px;
margin-bottom: 24px !important;
}
.section h4::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 40px;
height: 3px;
background-color: var(--v-primary-base);
border-radius: 2px;
}
/* Field display improvements */
.field-display {
display: flex;
flex-direction: column;
gap: 4px;
padding: 8px 0;
gap: 6px;
padding: 12px 0;
transition: all 0.2s ease;
}
.field-display:hover {
transform: translateX(4px);
}
.field-label {
font-size: 0.875rem;
font-weight: 500;
color: #666;
font-size: 0.75rem;
font-weight: 600;
color: #64748b;
text-transform: uppercase;
letter-spacing: 0.5px;
letter-spacing: 0.05em;
}
.field-value {
font-size: 1rem;
font-weight: 400;
color: #333;
font-weight: 500;
color: #1e293b;
}
.clickable-row {
cursor: pointer;
transition: background-color 0.2s ease;
}
.clickable-row:hover {
background-color: #f5f5f5;
/* Interested parties table styling */
:deep(.v-table) {
border-radius: 8px;
overflow: hidden;
}
:deep(.v-table) th {
font-weight: 600;
color: #424242;
font-size: 0.875rem;
color: #475569;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.05em;
background-color: #f8fafc !important;
border-bottom: 2px solid #e2e8f0 !important;
}
.clickable-row {
cursor: pointer;
transition: all 0.2s ease;
}
.clickable-row:hover {
background-color: #f8fafc;
transform: scale(1.01);
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
}
/* Button styling */
:deep(.v-btn) {
font-weight: 500;
letter-spacing: 0.025em;
}
/* Smooth scrolling */
:deep(.v-card-text) {
scroll-behavior: smooth;
}
/* Responsive padding adjustments */
@media (max-width: 960px) {
.section {
padding: 16px;
}
:deep(.v-card-title) {
padding: 16px !important;
}
}
</style>