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

AzonositoNevEmailReszleg
1Kovács Jánoskovacs.janos@buchl.huLogisztika
2Nagy Évanagy.eva@buchl.huÉrtékesítés
3Szabó Péterszabo.peter@buchl.huMűszaki
4Kiss Annakiss.anna@buchl.huPé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

OrderIdCustomerServiceStatusAmount
BU-2024-001BÜCHL Entsorgung GmbHKonténer szolgáltatáscompleted1250
BU-2024-002Hungária Kft.Hulladékszállításpending875.5
BU-2024-003Green Solution Zrt.Újrahasznosításcompleted2100
BU-2024-004Eco Partner Bt.Konténer bérléscancelled650
      <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

AzonositoNevEmailReszleg
1Kovács Jánoskovacs.janos@buchl.huLogisztika
2Nagy Évanagy.eva@buchl.huÉrtékesítés
3Szabó Péterszabo.peter@buchl.huMűszaki
4Kiss Annakiss.anna@buchl.huPé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

IdNamePositionRoleEmailActions
1Dr. Schmidt ThomasÜgyvezető igazgatóadminthomas.schmidt@buchl.hu
2Müller AnnaHR vezetőmanageranna.muller@buchl.hu
3Kovács LászlóLogisztikai munkatársemployeelaszlo.kovacs@buchl.hu
4Wagner JuliaMarketing managermanagerjulia.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

OrderIdClientContactServiceDateStatusAmountActions
BÜ-2024-0156METRO Áruház Kft.Kapcsolat: Nagy BélaKonténer bérlés (10m³)2024-03-15active125000
BÜ-2024-0157Építő-Mester Zrt.Kapcsolat: Kiss PéterTörmelék elszállítás2024-03-14completed87500
BÜ-2024-0158Green Park HotelKapcsolat: Szabó AnnaSzelektív hulladékgyűjtés2024-03-13pending45000
      <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>