Bỏ qua, đến nội dung

@digiforce-nc/plugin-kanban ​

Plugin hiển thị dữ liệu collection dưới dạng bảng Kanban - phân nhóm bản ghi thành các cột theo field select/radio, hỗ trợ kéo thả card giữa các cột.

Plugin này làm gì? ​

Kanban board là công cụ quản lý trực quan: mỗi cột đại diện một trạng thái (To Do, In Progress, Done), mỗi thẻ là một bản ghi. Người dùng kéo thả thẻ giữa các cột để thay đổi trạng thái - lý tưởng cho quản lý task, pipeline bán hàng, theo dõi tiến độ.

Ba nhiệm vụ chính ​

#Nhiệm vụChi tiết
1Phân nhóm theo cộtNhóm bản ghi theo field select/radio thành các cột
2Drag & dropKéo thả card giữa các cột để cập nhật trạng thái
3Card designerTùy chỉnh nội dung hiển thị trên mỗi card

Kiến trúc ​

Tổng quan ​

Plugin hoạt động hoàn toàn ở client - nhóm dữ liệu client-side theo field giá trị, render bằng react-beautiful-dnd.

Cơ chế phân nhóm ​

Plugin yêu cầu chọn một group field - field kiểu select hoặc radioGroup - để chia bản ghi thành cột:

BướcMô tả
1Lấy danh sách options từ group field (ví dụ: To Do, In Progress, Done)
2Mỗi option tạo thành một cột trên board
3Bản ghi được phân vào cột tương ứng với giá trị field
4Khi kéo card sang cột khác → cập nhật field value

Drag & drop flow ​

Tính năng ​

Tính năngMô tả
Column groupingPhân cột theo field select/radio
Card DnDKéo thả card giữa các cột (react-beautiful-dnd)
Card designerTùy chỉnh layout card: fields, avatar, tags
Card viewerClick card mở popup chi tiết (edit/view)
Card adderNút "+" trên mỗi cột để tạo nhanh record
Association kanbanKanban cho association data trong popup
Custom groupĐăng ký group field interface tùy chỉnh
Lazy loadIntersection observer tải thêm card khi scroll
Column collapseThu gọn/mở rộng cột

registerGroupFieldInterface ​

Plugin cung cấp API cho plugin khác đăng ký field interface mới làm group field:

typescript
kanbanPlugin.registerGroupFieldInterface('customSelect', {
  getOptions: (field) => field.options,
  getValue: (record, field) => record[field.name],
});

Thành phần client ​

Thành phầnMô tả
KanbanBlockWidgetWidget chính đăng ký Kanban block
KanbanComponent board chính quản lý columns và DnD
Kanban.CardComponent card hiển thị bản ghi
CardAdderComponent tạo nhanh record trên mỗi cột
CardViewerPopup chi tiết khi click card
KanbanBlockInitializerĐăng ký vào menu "Add block"
KanbanDesignerDesigner: chọn group field, card template
KanbanCardDesignerDesigner cho nội dung card

Cấu hình block ​

SettingMô tảMặc định
Group fieldField select/radio để phân cộtBắt buộc chọn
Sort fieldField sắp xếp card trong cộtsort hoặc createdAt
Card templateLayout hiển thị trên cardMặc định: title + description
Show card adderHiển thị nút tạo nhanhtrue
Page sizeSố card mỗi lần tải20

Dependencies ​

PackageVai trò
@digiforce-nc/clientClient framework (peer)
@digiforce-nc/serverServer framework - chỉ dùng khi build (peer)
react-beautiful-dndThư viện drag & drop cho card và column
react-intersection-observerLazy load card khi scroll

Mục lục chi tiết ​