Bỏ qua, đến nội dung

@digiforce-nc/plugin-action-duplicate

Plugin cung cấp nhân bản bản ghi (duplicate) - tạo bản sao của một bản ghi với field mapping tùy chỉnh, hỗ trợ hai chế độ: nhân bản nhanh và copy vào form.

Plugin này làm gì?

Hãy hình dung bạn có một đơn hàng phức tạp với 20 field và muốn tạo đơn tương tự. Thay vì nhập lại từ đầu, plugin cho phép nhân bản bản ghi - sao chép toàn bộ (hoặc chọn lọc) field sang bản ghi mới. Plugin đăng ký table row action, đọc dữ liệu bản ghi gốc rồi gọi create API.

Ba nhiệm vụ chính

#Nhiệm vụChi tiết
1Đọc bản ghi gốcGọi resource.get() với isTemplate: true để lấy dữ liệu sạch (không có field hệ thống)
2Nhân bản bản ghiHai chế độ: Quick duplicate (tạo ngay) hoặc Copy into form (mở form để sửa trước khi tạo)
3Field mappingCho phép cấu hình field nào được sao chép, field nào bỏ qua

Kiến trúc

Tổng quan

Plugin hoạt động hoàn toàn ở client - server chỉ có stub. Logic nhân bản sử dụng core API resource.get()resource.create().

TầngVai tròThành phần
Action WidgetNút trên row menu, trigger duplicateDuplicateActionWidget
Action LogicXử lý đọc + tạo bản ghi mớiDuplicateAction
Plugin ProviderĐăng ký component vào systemDuplicatePluginProvider
Core APIAPI get/create bản ghiresource.get(), resource.create()

Hai chế độ nhân bản

Chế độMô tảKhi nào dùng
Quick duplicateGọi resource.get()resource.create() ngay lập tứcNhân bản nhanh, không cần sửa
Copy into formGọi resource.get() → mở form pre-filled → user sửa → submitCần điều chỉnh trước khi tạo

ACL - Phân quyền

QuyềnMô tả
createAction yêu cầu quyền create trên collection (vì tạo bản ghi mới)

Luồng hoạt động

Quick duplicate

Copy into form

Field mapping

Khi cấu hình duplicate action trong designer, admin chọn field nào được sao chép:

Loại fieldMặc địnhGhi chú
Field thường (text, number, ...)Sao chépCó thể bỏ qua
Field hệ thống (id, createdAt, updatedAt)Bỏ quaLuôn bị loại bỏ
Relation fieldTùy cấu hìnhSao chép FK hoặc bỏ qua
Auto-incrementBỏ quaHệ thống tự gán giá trị mới

Thành phần client

Thành phầnMô tả
DuplicateActionComponent xử lý logic nhân bản bản ghi
DuplicateActionWidgetWidget nút action trên row menu
DuplicateActionInitializerĐăng ký action vào schema initializer
DuplicatePluginProviderProvider đăng ký toàn bộ component vào plugin system
DuplicateFieldsConfigCấu hình field được sao chép trong designer

Dependencies

PackageVai trò
@digiforce-nc/clientClient framework (peer)
@digiforce-nc/serverServer framework - stub (peer)

Mục lục chi tiết