feat: add SAC app icon to favicon, sidebar, and login page
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,6 +1,12 @@
|
||||
<template>
|
||||
<aside class="sac-sidebar">
|
||||
<div class="sac-sidebar-brand">{{ appTitle }}</div>
|
||||
<div class="sac-sidebar-brand">
|
||||
<img src="/sac-icon.png" alt="" class="sac-brand-logo" width="40" height="40" />
|
||||
<div class="sac-brand-text">
|
||||
<span class="sac-brand-name">{{ appName }}</span>
|
||||
<span class="sac-brand-version">v.{{ appVersion }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<nav class="sac-sidebar-nav" aria-label="Основная навигация">
|
||||
<RouterLink
|
||||
v-for="item in navItems"
|
||||
@@ -25,9 +31,10 @@
|
||||
<script setup lang="ts">
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { clearToken } from "../api";
|
||||
import { APP_VERSION_LABEL } from "../version";
|
||||
import { APP_NAME, APP_VERSION } from "../version";
|
||||
|
||||
const appTitle = APP_VERSION_LABEL;
|
||||
const appName = APP_NAME;
|
||||
const appVersion = APP_VERSION;
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
||||
@@ -70,16 +77,42 @@ function logout() {
|
||||
}
|
||||
|
||||
.sac-sidebar-brand {
|
||||
font-weight: 700;
|
||||
color: #fff;
|
||||
font-size: 0.82rem;
|
||||
line-height: 1.35;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.65rem;
|
||||
padding: 0.5rem 0.75rem 0.85rem;
|
||||
white-space: nowrap;
|
||||
border-bottom: 1px solid #2a3441;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.sac-brand-logo {
|
||||
flex-shrink: 0;
|
||||
border-radius: 8px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.sac-brand-text {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.1rem;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.sac-brand-name {
|
||||
font-weight: 700;
|
||||
color: #fff;
|
||||
font-size: 0.78rem;
|
||||
line-height: 1.25;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.sac-brand-version {
|
||||
color: #9aa4b2;
|
||||
font-size: 0.72rem;
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.sac-sidebar-nav {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
<template>
|
||||
<div class="card" style="max-width: 360px; margin: 4rem auto">
|
||||
<h1 style="margin-top: 0">Вход в SAC</h1>
|
||||
<div class="card login-card">
|
||||
<div class="login-brand">
|
||||
<img src="/sac-icon.png" alt="" class="login-brand-icon" width="64" height="64" />
|
||||
<h1 class="login-title">Вход в SAC</h1>
|
||||
<p class="login-subtitle">Security Alert Center</p>
|
||||
</div>
|
||||
<form @submit.prevent="submit">
|
||||
<p>
|
||||
<label>Логин<br />
|
||||
@@ -46,3 +50,34 @@ async function submit() {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.login-card {
|
||||
max-width: 360px;
|
||||
margin: 4rem auto;
|
||||
}
|
||||
|
||||
.login-brand {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.login-brand-icon {
|
||||
border-radius: 12px;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.login-title {
|
||||
margin: 0;
|
||||
font-size: 1.35rem;
|
||||
}
|
||||
|
||||
.login-subtitle {
|
||||
margin: 0.35rem 0 0;
|
||||
color: #9aa4b2;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user