Table Komponens
Táblázat
A Table komponens strukturált adatok megjelenítésére szolgál sorok és oszlopok formájában. A Nuxt UI Table komponenst használjuk alapként, BÜCHL márka színekkel és stílussal.
Alap táblázat
| Azonosito | Nev | Reszleg | |
|---|---|---|---|
| 1 | Kovács János | kovacs.janos@buchl.hu | Logisztika |
| 2 | Nagy Éva | nagy.eva@buchl.hu | Értékesítés |
| 3 | Szabó Péter | szabo.peter@buchl.hu | Műszaki |
| 4 | Kiss Anna | kiss.anna@buchl.hu | Pénzügy |
<UTable
:data="data"
:ui="{
td: 'text-gray-900',
th: 'text-gray-700 font-medium uppercase text-xs',
tr: 'hover:bg-gray-50'
}"
/>
<script setup>
const data = [
{ azonosito: 1, nev: 'Kovács János', email: 'kovacs.janos@buchl.hu', reszleg: 'Logisztika' },
{ azonosito: 2, nev: 'Nagy Éva', email: 'nagy.eva@buchl.hu', reszleg: 'Értékesítés' },
// ...
]
</script>
Kereshető táblázat
| OrderId | Customer | Service | Status | Amount |
|---|---|---|---|---|
| BU-2024-001 | BÜCHL Entsorgung GmbH | Konténer szolgáltatás | completed | 1250 |
| BU-2024-002 | Hungária Kft. | Hulladékszállítás | pending | 875.5 |
| BU-2024-003 | Green Solution Zrt. | Újrahasznosítás | completed | 2100 |
| BU-2024-004 | Eco Partner Bt. | Konténer bérlés | cancelled | 650 |
<template>
<div>
<UInput
v-model="searchQuery"
placeholder="Keresés..."
icon="i-heroicons-magnifying-glass-20-solid"
class="mb-4"
/>
<UTable
:data="filteredData"
>
<template #status-data="{ row }">
<div class="flex items-center gap-2">
<div class="w-2 h-2 rounded-full" :class="statusColors[row.status]"></div>
<span>{{ statusLabels[row.status] }}</span>
</div>
</template>
</UTable>
</div>
</template>
<script setup>
const searchQuery = ref('')
const filteredData = computed(() => {
if (!searchQuery.value) return data
return data.filter(row =>
Object.values(row).some(value =>
String(value).toLowerCase().includes(searchQuery.value.toLowerCase())
)
)
})
</script>
Betöltési állapot
| Azonosito | Nev | Reszleg | |
|---|---|---|---|
| 1 | Kovács János | kovacs.janos@buchl.hu | Logisztika |
| 2 | Nagy Éva | nagy.eva@buchl.hu | Értékesítés |
| 3 | Szabó Péter | szabo.peter@buchl.hu | Műszaki |
| 4 | Kiss Anna | kiss.anna@buchl.hu | Pénzügy |
<UTable
:loading="isLoading"
:data="data"
/>
Üres állapot
| No data |
<UTable
:data="[]"
>
<template #empty-state>
<div class="text-center py-8">
<UIcon name="i-heroicons-circle-stack-20-solid" class="mx-auto h-8 w-8 text-gray-400 mb-4" />
<h3 class="text-sm font-medium text-gray-900 mb-2">Nincsenek megrendelések</h3>
<p class="text-sm text-gray-500 mb-4">Kezdje el új megrendelés létrehozásával.</p>
<UButton color="primary" icon="i-heroicons-plus">
Új megrendelés
</UButton>
</div>
</template>
</UTable>
Interaktív táblázat műveleti gombokkal
| Id | Name | Position | Role | Actions | |
|---|---|---|---|---|---|
| 1 | Dr. Schmidt Thomas | Ügyvezető igazgató | admin | thomas.schmidt@buchl.hu | |
| 2 | Müller Anna | HR vezető | manager | anna.muller@buchl.hu | |
| 3 | Kovács László | Logisztikai munkatárs | employee | laszlo.kovacs@buchl.hu | |
| 4 | Wagner Julia | Marketing manager | manager | julia.wagner@buchl.hu |
<UTable
:data="employees"
>
<template #role-data="{ row }">
<UBadge :color="roleColors[row.role]" variant="subtle">
{{ roleLabels[row.role] }}
</UBadge>
</template>
<template #actions-data="{ row }">
<UDropdown :items="[[
{ label: 'Megtekintés', icon: 'i-heroicons-eye-20-solid', click: () => viewEmployee(row) },
{ label: 'Szerkesztés', icon: 'i-heroicons-pencil-20-solid', click: () => editEmployee(row) },
], [
{ label: 'Törlés', icon: 'i-heroicons-trash-20-solid', click: () => deleteEmployee(row) }
]]">
<UButton color="gray" variant="ghost" icon="i-heroicons-ellipsis-horizontal-20-solid" />
</UDropdown>
</template>
</UTable>
BÜCHL márka stílusú táblázat
Konténer megrendelések
| OrderId | Client | Contact | Service | Date | Status | Amount | Actions |
|---|---|---|---|---|---|---|---|
| BÜ-2024-0156 | METRO Áruház Kft. | Kapcsolat: Nagy Béla | Konténer bérlés (10m³) | 2024-03-15 | active | 125000 | |
| BÜ-2024-0157 | Építő-Mester Zrt. | Kapcsolat: Kiss Péter | Törmelék elszállítás | 2024-03-14 | completed | 87500 | |
| BÜ-2024-0158 | Green Park Hotel | Kapcsolat: Szabó Anna | Szelektív hulladékgyűjtés | 2024-03-13 | pending | 45000 |
<UTable
:data="orders"
:ui="{
wrapper: 'rounded-none',
base: 'min-w-full',
thead: 'bg-gray-50',
tbody: 'bg-white divide-y divide-gray-200',
tr: 'transition-colors hover:bg-gray-50',
th: 'text-left px-4 py-3 text-gray-700 font-medium uppercase tracking-wider text-xs',
td: 'whitespace-nowrap px-4 py-3 text-gray-900 text-sm'
}"
>
<template #client-data="{ row }">
<div>
<div class="font-medium">{{ row.client }}</div>
<div class="text-xs text-gray-500">{{ row.contact }}</div>
</div>
</template>
<template #status-data="{ row }">
<UBadge
:color="statusColors[row.status]"
variant="subtle"
class="rounded-none"
>
{{ statusLabels[row.status] }}
</UBadge>
</template>
</UTable>