Bỏ qua, đến nội dung

@digiforce-nc/plugin-action-import

Plugin cung cấp nhập dữ liệu từ file Excel (XLSX) - upload file Excel, validate, parse dữ liệu và tạo/cập nhật bản ghi trong collection, kèm template mẫu tải về.

Plugin này làm gì?

Hãy hình dung bạn nhận file Excel danh sách 500 khách hàng từ đối tác và cần nhập vào hệ thống. Plugin cung cấp quy trình hoàn chỉnh: tải template mẫu → điền dữ liệu → upload → validate → insert/update. Server xử lý file qua multer middleware, parse bằng exceljs rồi tạo/cập nhật bản ghi. Client cung cấp modal import nhiều bước.

Ba nhiệm vụ chính

#Nhiệm vụChi tiết
1Template mẫuHandler downloadXlsxTemplate tạo file Excel mẫu theo cấu hình field của collection
2Import dữ liệuHandler importXlsx nhận file upload (multipart), parse, validate rồi insert/update
3Error handlingCustom error classes ImportValidationError, ImportError báo cáo chi tiết dòng lỗi

Kiến trúc

Tổng quan

Plugin có cả server (handlers, multer middleware) và client (modal import, designer). Khi install, tự động thêm quyền importXlsx vào admin role strategy.

TầngVai tròThành phần
Client UIModal import + designer cấu hìnhImportModal, ImportDesigner
Upload MiddlewareXử lý multipart file upload@koa/multer
Import HandlerParse Excel, validate, insert/updateimportXlsx handler
Template HandlerTạo file template mẫudownloadXlsxTemplate handler
Error HandlerBáo cáo lỗi chi tiếtImportValidationError, ImportError

API endpoints

EndpointMethodMô tả
{collection}:importXlsxPOSTNhập dữ liệu từ file Excel (multipart/form-data)
{collection}:downloadXlsxTemplatePOSTTải file Excel mẫu theo cấu hình field

importXlsx - Request parameters

Tham sốKiểuMô tả
fileFileFile Excel (.xlsx) upload qua multipart
columnsJSONMapping cột Excel sang field collection
explainbooleanChế độ dry-run: chỉ validate, không insert

ACL - Phân quyền

QuyềnMô tả
importXlsxQuyền riêng biệt cho import, thêm vào admin role khi install
downloadXlsxTemplateCho phép tất cả user đã đăng nhập tải template

Luồng hoạt động

Error handling

Plugin định nghĩa hai custom error class:

Error classKhi nàoNội dung
ImportValidationErrorDữ liệu không hợp lệ (type, required, unique)Danh sách dòng + lý do lỗi
ImportErrorLỗi hệ thống (DB, parse)Mô tả lỗi kỹ thuật

Chế độ dry-run

Khi gửi explain: true, handler chỉ validate mà không insert/update - hữu ích để kiểm tra dữ liệu trước khi import thật.


Thành phần client

Thành phầnMô tả
ImportPluginProviderProvider đăng ký toàn bộ component vào plugin system
ImportModalModal nhiều bước: tải template → upload → mapping → kết quả
ImportDesignerCấu hình import action trong designer mode
ImportActionInitializerĐăng ký nút Import vào toolbar bảng
ImportActionWidgetWidget nút action trong uiCore

Dependencies

PackageVai trò
@digiforce-nc/actionsAction context types (peer)
@digiforce-nc/databaseDatabase ORM (peer)
@digiforce-nc/serverServer framework (peer)
@digiforce-nc/clientClient framework (peer)
exceljsParse và tạo file Excel (dev)
xlsxParser XLSX bổ trợ (dev)
@koa/multerMiddleware xử lý file upload (dev)
async-mutexSerialize import requests (dev)

Mục lục chi tiết