Bỏ qua, đến nội dung

@digiforce-nc/plugin-action-print

Plugin cung cấp in bản ghi (browser print) - sử dụng react-to-print để in nội dung detail/calendar view trực tiếp từ trình duyệt, không cần server API.

Plugin này làm gì?

Hãy hình dung bạn đang xem chi tiết một đơn hàng và muốn in ra giấy hoặc lưu PDF. Plugin hoàn toàn client-only - khi nhấn nút Print, nó sử dụng react-to-print để chụp vùng .df-grid (chứa nội dung detail view) rồi mở native print dialog của trình duyệt. Không gửi request nào lên server.

Ba nhiệm vụ chính

#Nhiệm vụChi tiết
1Đăng ký actionGắn action print vào detail view và calendar form
2Chụp nội dungSử dụng react-to-print nhắm vào vùng .df-grid để chụp nội dung cần in
3Mở print dialogKích hoạt native print dialog của trình duyệt (hỗ trợ in giấy + Save as PDF)

Kiến trúc

Tổng quan

Plugin hoạt động 100% ở client - không có server API, không gửi request. Luồng xử lý đi từ nút Print → react-to-print → browser print dialog.

TầngVai tròThành phần
Plugin ProviderĐăng ký component + actionPrintActionPluginProvider
Action InitializerGắn nút Print vào schemaPrintActionInitializer
Action HookLogic xử lý in (tìm ref, gọi react-to-print)useDetailPrintActionProps
Thư việnChụp DOM → trigger printreact-to-print
BrowserNative print dialogChrome/Firefox/Safari print

Vị trí action

Plugin đăng ký action print tại hai nơi trong schema initializer:

Vị tríSchema InitializerMô tả
Detail viewdetails:configureActionsNút Print trong thanh action của detail view
Calendar formCalendarFormActionInitializersNút Print trong popup event của calendar

Vùng in .df-grid

Plugin nhắm vào CSS class .df-grid để xác định vùng nội dung cần in:

Thuộc tínhMô tả
Selector.df-grid
Bao gồmToàn bộ nội dung grid trong detail/calendar view
Không bao gồmToolbar, sidebar, navigation
CSS inreact-to-print tự inject print stylesheet

Luồng hoạt động

Lưu ý khi in

Lưu ýMô tả
CSS tương thíchreact-to-print inject stylesheet riêng cho print media
Ẩn elementToolbar, sidebar tự ẩn trong print mode
ẢnhHình ảnh trong grid được giữ nguyên
Table overflowBảng dài có thể bị cắt trang - trình duyệt tự xử lý pagination
Cross-browserHoạt động trên Chrome, Firefox, Safari, Edge

Thành phần client

Thành phầnMô tả
PrintActionPluginProviderProvider đăng ký toàn bộ component vào plugin system
PrintActionInitializerĐăng ký nút Print vào schema initializer (detail + calendar)
useDetailPrintActionPropsHook xử lý logic in: tìm ref .df-grid, gọi react-to-print
PrintActionWidgetWidget nút action kích hoạt in (uiCore)

Dependencies

PackageVai trò
@digiforce-nc/clientClient framework (peer)
react-to-printThư viện in từ React component (dev)

Mục lục chi tiết