belépés jó, rgisztráción kicsit faragni kell még

This commit is contained in:
Roo
2026-06-05 14:45:02 +00:00
parent f03b5f3916
commit b84b1bab41
7 changed files with 570 additions and 42 deletions

View File

@@ -3,6 +3,12 @@ import { ref, computed } from 'vue'
import router from '../router'
import api from '../api/axios'
/**
* Backend now sends address fields directly on the person object
* with address_ prefix (e.g. address_city, address_zip, address_floor).
* This interface is kept for backward compatibility but the actual
* data comes as flat fields on PersonData.
*/
export interface AddressData {
zip: string | null
city: string | null
@@ -28,7 +34,20 @@ export interface PersonData {
identity_docs: Record<string, any> | null
ice_contact: Record<string, any> | null
is_active: boolean
/** @deprecated Backend now sends address_* fields flat on person */
address: AddressData | null
// Flat address fields (new backend format)
address_zip: string | null
address_city: string | null
address_street_name: string | null
address_street_type: string | null
address_house_number: string | null
address_stairwell: string | null
address_floor: string | null
address_door: string | null
address_hrsz: string | null
address_parcel_id: string | null
address_full_text: string | null
}
export interface UserProfile {

View File

@@ -403,13 +403,13 @@
<div v-else class="text-sm space-y-1">
<p class="text-white font-medium">
<template v-if="authStore.user?.person?.address?.zip || authStore.user?.person?.address?.city">
{{ authStore.user?.person?.address?.zip }} {{ authStore.user?.person?.address?.city }},
<template v-if="authStore.user?.person?.address?.address_zip || authStore.user?.person?.address?.address_city">
{{ authStore.user?.person?.address?.address_zip }} {{ authStore.user?.person?.address?.address_city }},
</template>
{{ authStore.user?.person?.address?.street_name }} {{ authStore.user?.person?.address?.street_type }} {{ authStore.user?.person?.address?.house_number }}
{{ authStore.user?.person?.address?.address_street_name }} {{ authStore.user?.person?.address?.address_street_type }} {{ authStore.user?.person?.address?.address_house_number }}
</p>
<p v-if="authStore.user?.person?.address?.stairwell || authStore.user?.person?.address?.floor || authStore.user?.person?.address?.door" class="text-white font-medium">
Lépcsőház: {{ authStore.user?.person?.address?.stairwell || '' }}, Emelet: {{ authStore.user?.person?.address?.floor || '' }}, Ajtó: {{ authStore.user?.person?.address?.door || '' }}
<p v-if="authStore.user?.person?.address?.address_stairwell || authStore.user?.person?.address?.address_floor || authStore.user?.person?.address?.address_door" class="text-white font-medium">
Lépcsőház: {{ authStore.user?.person?.address?.address_stairwell || '' }}, Emelet: {{ authStore.user?.person?.address?.address_floor || '' }}, Ajtó: {{ authStore.user?.person?.address?.address_door || '' }}
</p>
</div>
</div>
@@ -427,8 +427,8 @@
<!-- 🩻 DIAGNOSTIC JSON DUMP -->
<div class="rounded-2xl border border-white/10 bg-black/40 p-4 mt-6 backdrop-blur-xl shadow-xl shadow-black/20">
<details>
<summary class="text-xs font-semibold text-[#00E5A0] cursor-pointer select-none mb-2">🩻 RÖNTGEN: authStore.user?.person?.address</summary>
<pre class="text-xs text-green-400 bg-black p-4 mt-2 overflow-auto rounded-lg max-h-64">{{ JSON.stringify(authStore.user?.person?.address, null, 2) }}</pre>
<summary class="text-xs font-semibold text-[#00E5A0] cursor-pointer select-none mb-2">🩻 RÖNTGEN: person (address_* fields)</summary>
<pre class="text-xs text-green-400 bg-black p-4 mt-2 overflow-auto rounded-lg max-h-64">{{ JSON.stringify(authStore.user?.person, null, 2) }}</pre>
</details>
</div>
@@ -575,7 +575,6 @@ const isPageLoading = ref(true)
// ── Computed helpers ──────────────────────────────────────────────────
const person = computed(() => authStore.user?.person ?? null)
const address = computed(() => person.value?.address ?? null)
const identityDocs = computed(() => person.value?.identity_docs ?? null)
const isCityLoading = ref(false)
@@ -641,7 +640,6 @@ function formatDate(dateVal: string | null | undefined): string {
function startEditing() {
const p = person.value
const a = address.value
const docs = identityDocs.value
editForm.first_name = p?.first_name || ''
@@ -659,15 +657,16 @@ function startEditing() {
editForm.license_expiry = formatDate(docs?.LICENSE?.expiry_date) || ''
editForm.license_categories = docs?.LICENSE?.categories || ''
// Address
editForm.address_zip = a?.zip || ''
editForm.address_city = a?.city || ''
editForm.address_street_name = a?.street_name || ''
editForm.address_street_type = a?.street_type || ''
editForm.address_house_number = a?.house_number || ''
editForm.address_stairwell = a?.stairwell || ''
editForm.address_floor = a?.floor || ''
editForm.address_door = a?.door || ''
// Address — backend sends address_* fields nested inside person.address
const addr = p?.address
editForm.address_zip = addr?.address_zip || ''
editForm.address_city = addr?.address_city || ''
editForm.address_street_name = addr?.address_street_name || ''
editForm.address_street_type = addr?.address_street_type || ''
editForm.address_house_number = addr?.address_house_number || ''
editForm.address_stairwell = addr?.address_stairwell || ''
editForm.address_floor = addr?.address_floor || ''
editForm.address_door = addr?.address_door || ''
saveMessage.value = ''
isEditing.value = true