資料展示元件,用於表格、看板等結構化資料呈現。
表格元件,用於展示結構化資料。
基本的表格結構,包含欄位標題與資料行。
|
名稱
|
Email
|
角色
|
狀態
|
|
|---|---|---|---|---|
|
JD
John Doe
|
john@example.com | 管理員 |
|
|
|
JS
Jane Smith
|
jane@example.com | 編輯者 |
|
|
|
BW
Bob Wilson
|
bob@example.com | 檢視者 |
|
<flux:table>
<flux:table.columns>
<flux:table.column>名稱</flux:table.column>
<flux:table.column>Email</flux:table.column>
<flux:table.column>角色</flux:table.column>
<flux:table.column>狀態</flux:table.column>
<flux:table.column></flux:table.column>
</flux:table.columns>
<flux:table.rows>
<flux:table.row>
<flux:table.cell>John Doe</flux:table.cell>
<flux:table.cell>john@example.com</flux:table.cell>
<flux:table.cell>管理員</flux:table.cell>
<flux:table.cell>
<flux:badge color="green">啟用</flux:badge>
</flux:table.cell>
<flux:table.cell>
<flux:dropdown>
<flux:button icon="ellipsis-horizontal" variant="ghost" size="sm" />
<flux:menu>
<flux:menu.item icon="pencil">編輯</flux:menu.item>
<flux:menu.item icon="trash" variant="danger">刪除</flux:menu.item>
</flux:menu>
</flux:dropdown>
</flux:table.cell>
</flux:table.row>
</flux:table.rows>
</flux:table>
允許使用者依照特定欄位排序資料。
|
客戶
|
|
|
|
|---|---|---|---|
|
LA
Lindsey Aminoff
|
2025年1月15日 10:45 | NT$ 1,490 | |
|
HL
Hanna Lubin
|
2025年1月14日 14:15 | NT$ 9,360 | |
|
KB
Kianna Bushevi
|
2025年1月16日 16:05 | NT$ 3,960 |
<flux:table>
<flux:table.columns>
<flux:table.column>客戶</flux:table.column>
<flux:table.column sortable sorted direction="desc">日期</flux:table.column>
<flux:table.column sortable>狀態</flux:table.column>
<flux:table.column sortable>金額</flux:table.column>
</flux:table.columns>
<!-- ... -->
</flux:table>
使用 align 屬性控制欄位內容的對齊方式。
|
產品名稱
|
分類
|
庫存
|
單價
|
|---|---|---|---|
| MacBook Pro 14" | 25 | NT$ 59,900 | |
| iPhone 15 Pro | 42 | NT$ 36,900 | |
| AirPods Pro | 128 | NT$ 7,990 |
<flux:table>
<flux:table.columns>
<flux:table.column align="start">產品名稱</flux:table.column>
<flux:table.column align="center">分類</flux:table.column>
<flux:table.column align="end">單價</flux:table.column>
</flux:table.columns>
<!-- ... -->
</flux:table>
使用 variant="strong" 強調重要資料。
|
訂單編號
|
項目
|
數量
|
小計
|
|---|---|---|---|
| #ORD-1001 | MacBook Pro | 2 | NT$ 119,800 |
| #ORD-1002 | iPhone 15 | 5 | NT$ 184,500 |
| #ORD-1003 | AirPods Pro | 10 | NT$ 79,900 |
<flux:table.cell variant="strong">NT$ 119,800</flux:table.cell>
搭配 Laravel 分頁功能顯示大量資料。
顯示 1 至 10 筆,共 100 筆
...
每頁 10 筆
<!-- 在 Livewire 元件中使用分頁 -->
<flux:table :paginate="$orders">
<!-- ... -->
</flux:table>
<!-- 元件類別中 -->
#[Computed]
public function orders()
{
return Order::query()
->orderBy('created_at', 'desc')
->paginate(10);
}
當表格無資料時顯示友善的訊息。
|
名稱
|
Email
|
狀態
|
|---|
開始新增您的第一筆資料
<flux:table>
<flux:table.columns>
<!-- ... -->
</flux:table.columns>
<flux:table.rows>
</flux:table.rows>
</flux:table>
<div class="p-12 text-center border-t">
<flux:icon.inbox-stack size="lg" class="text-zinc-400 mb-3" />
<flux:heading size="sm" class="mb-2">目前沒有任何資料</flux:heading>
<flux:text size="sm" class="text-zinc-500 mb-4">開始新增您的第一筆資料</flux:text>
<flux:button variant="primary" size="sm" icon="plus">新增資料</flux:button>
</div>
在小螢幕上使用橫向捲動來顯示完整表格。
|
訂單編號
|
客戶名稱
|
訂單日期
|
配送地址
|
金額
|
狀態
|
操作
|
|---|---|---|---|---|---|---|
| #ORD-2025-001 | 王小明 | 2025-01-15 | 台北市信義區信義路五段7號 | NT$ 5,990 |
<flux:table>
<!-- 使用 whitespace-nowrap 避免內容換行 -->
<flux:table.cell class="whitespace-nowrap">...</flux:table.cell>
</flux:table>
看板元件,用於任務管理和專案追蹤。
使用卡片與欄位組合建立任務看板。
設計首頁 UI
完成首頁的視覺設計稿
撰寫 API 文件
更新 REST API 說明文件
開發登入功能
實作 OAuth 2.0 登入流程
優化資料庫查詢
提升查詢效能 50%
建立專案架構
設定 CI/CD
<div class="flex gap-4 overflow-x-auto">
<div class="w-72 bg-zinc-100 dark:bg-zinc-800 rounded-lg p-4">
<div class="flex items-center justify-between mb-4">
<flux:heading size="sm">待處理</flux:heading>
<flux:badge size="sm" color="zinc">2</flux:badge>
</div>
<div class="space-y-3">
<flux:card class="p-3">
<flux:text size="sm" class="font-medium">任務標題</flux:text>
<flux:text size="xs" class="text-zinc-500 mt-1">任務描述</flux:text>
<div class="flex items-center justify-between mt-3">
<flux:badge size="sm" color="blue">標籤</flux:badge>
<flux:avatar size="xs" name="User" />
</div>
</flux:card>
</div>
<flux:button icon="plus" variant="ghost" size="sm" class="w-full mt-3">
新增任務
</flux:button>
</div>
</div>
使用顏色和圖示標示任務優先順序。
修復付款系統漏洞
立即處理安全性問題
期限: 今天
優化首頁載入速度
改善使用者體驗
期限: 本週
更新使用者文件
補充新功能說明
期限: 下週
清理舊程式碼
移除不再使用的程式碼
期限: 下個月
<flux:card class="p-3 border-l-4 border-l-red-500">
<div class="flex items-center justify-between mb-2">
<flux:text size="sm" class="font-medium">任務標題</flux:text>
<flux:badge size="sm" color="red" icon="exclamation-triangle">緊急</flux:badge>
</div>
<!-- ... -->
</flux:card>
在任務卡片中顯示完成進度。
開發會員系統
子任務進度
3/5 完成
UI/UX 改版
完成度
85%
<flux:card class="p-3">
<flux:text size="sm" class="font-medium mb-2">任務標題</flux:text>
<div class="space-y-2">
<div class="flex items-center justify-between text-xs">
<flux:text size="xs" class="text-zinc-500">子任務進度</flux:text>
<flux:text size="xs" class="text-zinc-500">3/5 完成</flux:text>
</div>
<div class="w-full bg-zinc-200 dark:bg-zinc-700 rounded-full h-2">
<div class="bg-blue-500 h-2 rounded-full" style="width: 60%"></div>
</div>
</div>
</flux:card>
使用多個標籤分類任務。
電商平台整合
串接第三方支付與物流系統
期限: 2025-02-01
效能監控儀表板
建立即時系統監控介面
期限: 2025-02-15
<flux:card class="p-3">
<flux:text size="sm" class="font-medium mb-2">任務標題</flux:text>
<div class="flex flex-wrap gap-1.5 mb-3">
<flux:badge size="sm" color="blue">Backend</flux:badge>
<flux:badge size="sm" color="purple">API</flux:badge>
<flux:badge size="sm" color="green">Payment</flux:badge>
</div>
</flux:card>
資料元件的屬性與使用方式參考。
| Prop | 值 | 說明 |
|---|---|---|
| paginate | Paginator | Laravel 分頁實例,啟用分頁功能 |
| Prop | 值 | 說明 |
|---|---|---|
| align | start | center | end | 欄位內容對齊方式 |
| sortable | boolean | 啟用欄位排序功能 |
| sorted | boolean | 標示此欄位目前正在排序 |
| direction | asc | desc | 排序方向(升冪或降冪) |
| Prop | 值 | 說明 |
|---|---|---|
| align | start | center | end | 儲存格內容對齊方式 |
| variant | default | strong | 儲存格視覺樣式,strong 用於強調重要資料 |
| Prop | 值 | 說明 |
|---|---|---|
| key | string | int | 資料行的唯一識別符(wire:key 的別名) |
結構組成
任務卡片設計
互動功能