Bỏ qua, đến nội dung

@digiforce-nc/plugin-block-grid-card

Plugin hiển thị dữ liệu collection dưới dạng lưới thẻ (Grid Card) - biến mỗi bản ghi thành một thẻ trực quan, sắp xếp theo lưới responsive tự động co giãn theo kích thước màn hình.

Plugin này làm gì?

Trong các ứng dụng quản lý dữ liệu, bảng (table) là cách hiển thị phổ biến nhưng không phải lúc nào cũng trực quan. Grid Card biến mỗi bản ghi thành một thẻ (card) với layout tùy chỉnh, sắp xếp trong lưới responsive - lý tưởng cho danh mục sản phẩm, thư viện ảnh, danh bạ nhân viên.

Ba nhiệm vụ chính

#Nhiệm vụChi tiết
1Hiển thị lưới thẻ responsiveTự động điều chỉnh số cột theo breakpoint (xs, sm, md, lg, xl, xxl)
2Phân trang thông minhHỗ trợ cả hai chế độ: biết tổng số (known count) và không biết tổng số (unknown count)
3Tích hợp drag & dropCho phép kéo thả để sắp xếp lại thứ tự thẻ thông qua DnD actions

Kiến trúc

Tổng quan

Plugin hoạt động hoàn toàn ở phía client - không có server component hay database riêng. Nó đọc dữ liệu từ collection API có sẵn và render dưới dạng grid card.

Widget hierarchy

WidgetKế thừa từVai trò
GridCardBlockWidgetCollectionBlockWidgetBlock chính, quản lý resource, pagination, toolbar
GridCardItemWidgetCollectionBlockWidgetĐại diện một thẻ, chứa layout fields bên trong

Cơ chế responsive

Plugin sử dụng hệ thống breakpoint của Ant Design Grid để tự động điều chỉnh số cột:

BreakpointKích thước màn hìnhSố cột mặc định
xs< 576px1
sm>= 576px2
md>= 768px3
lg>= 992px3
xl>= 1200px4
xxl>= 1600px4

Admin có thể tùy chỉnh số cột cho từng breakpoint qua Settings panel.

Tính năng

Tính năngMô tả
Responsive gridSố cột tự động thay đổi theo breakpoint, cấu hình được
PaginationPhân trang với hai chế độ known/unknown count
Card designerKéo thả field vào card template, tùy chỉnh layout
DnD reorderSắp xếp lại thứ tự thẻ bằng drag & drop
Toolbar actionsFilter, sort, bulk actions trên toolbar
Multi data sourceHoạt động với mọi data source đã đăng ký
Association supportHiển thị grid card trong popup association

Luồng hiển thị dữ liệu

Thành phần client

Thành phầnMô tả
GridCardBlockWidgetWidget chính, extends CollectionBlockWidget, quản lý grid layout
GridCardItemWidgetWidget thẻ con, render từng bản ghi theo card template
GridCardComponent React render lưới thẻ với Ant Design List.Grid
GridCardDesignerDesigner cho phép cấu hình columns, breakpoints
GridCardBlockInitializerInitializer đăng ký block vào menu "Add block"
gridCardActionInitializersNhóm action khả dụng: filter, sort, refresh, bulk
GridCardItemActionInitializersAction trên từng thẻ: view, edit, delete, custom

Dependencies

PackageVai trò
@digiforce-nc/clientClient framework, widget system (peer)
@digiforce-nc/serverServer framework - chỉ dùng khi build (peer)
antdAnt Design - Grid, List, Card components (peer)
@dnd-kit/coreDrag & drop framework cho reorder thẻ

Mục lục chi tiết