diff --git a/frontend/src/components/DashboardHeader.vue b/frontend/src/components/DashboardHeader.vue new file mode 100644 index 0000000..240faba --- /dev/null +++ b/frontend/src/components/DashboardHeader.vue @@ -0,0 +1,288 @@ + + + + + + + + + + + SERVICE + FINDER + + + + + + + + + + + + {{ t('menu.features') }} + + + + + + + + + + + + {{ t('menu.garage') }} ({{ t('menu.garage') }}) + + + + + + + + {{ t('menu.calendar') }} + + + + + + + + {{ t('menu.finance') }} + + + + + + + + {{ t('menu.diagnostic') }} + + + + + + + + + + + + + {{ t('menu.addVehicle') }} + + + + + + + + + + + + + + + {{ t('header.welcome') }}, {{ displayName }}! + + {{ subtitle }} + + + + + {{ initials }} + + + + + + + + {{ fullName }} + {{ email }} + + + + + + + + + + + {{ t('header.profile') }} + + + + + + + + + + + + + + {{ t('header.logout') }} + + + + + + + + + + diff --git a/frontend/src/i18n/en.ts b/frontend/src/i18n/en.ts new file mode 100644 index 0000000..004434c --- /dev/null +++ b/frontend/src/i18n/en.ts @@ -0,0 +1,29 @@ +export default { + menu: { + features: 'Features', + garage: 'Vehicles', + calendar: 'Service Calendar', + finance: 'Finance & Costs', + diagnostic: 'Live Diagnostics', + addVehicle: '+ Add New Vehicle', + }, + header: { + welcome: 'Welcome', + userMenu: 'User menu', + profile: 'Profile Settings', + logout: 'Logout', + subtitle: 'Your dashboard and vehicle overview', + }, + dashboard: { + loading: 'Loading...', + errorRetry: 'Retry', + statusActive: 'Active', + statusUnknown: 'Unknown', + condition: 'Condition', + mileage: 'km', + }, + zen: { + hide: 'Hide UI (Zen mode)', + show: 'Show UI', + }, +} diff --git a/frontend/src/i18n/hu.ts b/frontend/src/i18n/hu.ts new file mode 100644 index 0000000..b989614 --- /dev/null +++ b/frontend/src/i18n/hu.ts @@ -0,0 +1,29 @@ +export default { + menu: { + features: 'Funkciók', + garage: 'Járművek', + calendar: 'Szerviznaptár', + finance: 'Pénzügyek és Költségek', + diagnostic: 'Élő Diagnosztika', + addVehicle: '+ Új Jármű Hozzáadása', + }, + header: { + welcome: 'Üdvözlünk', + userMenu: 'Felhasználói menü', + profile: 'Profil beállítások', + logout: 'Kilépés', + subtitle: 'Irányítópultod és járműveid áttekintése', + }, + dashboard: { + loading: 'Betöltés...', + errorRetry: 'Újrapróbálkozás', + statusActive: 'Aktív', + statusUnknown: 'Ismeretlen', + condition: 'Állapot', + mileage: 'km', + }, + zen: { + hide: 'UI elrejtése (Zen mód)', + show: 'UI megjelenítése', + }, +} diff --git a/frontend/src/main.ts b/frontend/src/main.ts new file mode 100644 index 0000000..9deed38 --- /dev/null +++ b/frontend/src/main.ts @@ -0,0 +1,28 @@ +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import { createI18n } from 'vue-i18n' +import App from './App.vue' +import router from './router' +import hu from './i18n/hu' +import en from './i18n/en' +import './assets/main.css' + +const messages = { + hu, + en, +} + +const i18n = createI18n({ + legacy: false, + locale: 'hu', + fallbackLocale: 'en', + messages, +}) + +const app = createApp(App) + +app.use(createPinia()) +app.use(router) +app.use(i18n) + +app.mount('#app') diff --git a/frontend/src/views/DashboardView.vue b/frontend/src/views/DashboardView.vue new file mode 100644 index 0000000..d041aee --- /dev/null +++ b/frontend/src/views/DashboardView.vue @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Szerviznaptár + + Közelgő események + + + Olajcsere + 2 hét + + + Műszaki vizsga + 3 hónap + + + Gumi szezonális + 1 hónap + + + + + + + + + + + + + + + + + + + Felszerelés + + Alkatrészek és Skinek + + + Alkatrész katalógus + 42 tétel + + + Skin csomagok + 6 elérhető + + + Beállítások + → + + + + + + + + + + + + + + + + + + Élő Diagnosztika + + Rendszerállapot + + + Motor állapot + ● Optimális + + + Akkumulátor + ● 87% + + + Hibakódok + 0 találat + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SF + + + + + {{ vehicle.license_plate }} + + + + + + + {{ vehicle.brand || 'Ismeretlen' }} + {{ vehicle.model }} + + + + + {{ vehicle.year_of_manufacture }} + + + + + + + + + Állapot + {{ vehicle.condition_score }}% + + + + + + + + + + + + {{ vehicle.current_mileage?.toLocaleString() || 0 }} km + + + + + + + {{ vehicle.status === 'active' ? 'Aktív' : vehicle.status }} + + + + + + + + + + +
+ {{ t('header.welcome') }}, {{ displayName }}! +
{{ subtitle }}
{{ fullName }}
{{ email }}
Közelgő események
Alkatrészek és Skinek
Rendszerállapot
+ {{ vehicle.year_of_manufacture }} +