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 ​