Bỏ qua, đến nội dung

@digiforce-nc/plugin-data-visualization

Plugin BI charts — truy vấn dữ liệu từ collection, render thành biểu đồ (G2Plot, ECharts) trực tiếp trên trang.

Plugin này làm gì?

Hãy hình dung một bảng điều khiển dashboard trong phòng chỉ huy: dữ liệu thô từ các collection được chuyển thành biểu đồ trực quan — cột, đường, tròn, phễu — giúp ra quyết định nhanh mà không cần mở bảng tính.

Ba nhiệm vụ chính

#Nhiệm vụChi tiết
1Truy vấn dữ liệuXây query từ collection với measures, dimensions, filters — hỗ trợ nhiều DB dialect
2Render biểu đồChuyển kết quả thành chart qua G2Plot hoặc ECharts, tuỳ loại biểu đồ
3Nhúng vào trangChartBlock cho phép kéo-thả biểu đồ vào bất kỳ page nào, kết hợp filter block

Kiến trúc

Tổng quan 4 tầng

TầngVai tròThành phần
Client UICấu hình chart, render biểu đồChartBlock, ChartBlockDesigner, renderers
Server APIXử lý query, trả dữ liệucharts resource, query parsers
DatabaseNguồn dữ liệuĐọc từ các collection hiện có
CacheTối ưu hiệu suấtCache kết quả query

API endpoints

EndpointMethodMô tả
charts:queryDataPOSTTruy vấn dữ liệu cho biểu đồ

Payload mẫu:

json
{
  "dataSource": "main",
  "collection": "orders",
  "measures": [{ "field": "amount", "aggregation": "sum" }],
  "dimensions": [{ "field": "status" }],
  "filter": { "createdAt": { "$gte": "2024-01-01" } }
}

Query Parsers

Mỗi loại database có parser riêng để chuyển query options thành SQL/query tương ứng:

DB DialectParserGhi chú
PostgreSQLpostgresHỗ trợ đầy đủ aggregation, date functions
MySQLmysqlHỗ trợ đầy đủ
SQLitesqliteHạn chế một số date function
MariaDBmariadbTương tự MySQL

Database

Plugin này không tạo bảng riêng — nó đọc dữ liệu từ các collection có sẵn trong hệ thống. Cấu hình chart được lưu trong UI schema.

Thành phần client

Thành phầnMô tả
ChartBlockBlock hiển thị biểu đồ trên page
ChartBlockDesignerGiao diện thiết kế biểu đồ (chọn collection, measures, dimensions)
G2PlotRendererRender biểu đồ bằng G2Plot (bar, line, pie, area...)
EChartsRendererRender biểu đồ bằng ECharts (phức tạp hơn, tuỳ biến cao)
QueryBuilderForm xây dựng truy vấn trực quan
SQLEditorEditor SQL thủ công cho truy vấn nâng cao
Filter blocksBộ lọc liên kết với chart để lọc dữ liệu động

Dependencies

PackageVai trò
@digiforce-nc/cacheCache kết quả query (peer)
@digiforce-nc/databaseDatabase ORM (peer)
@digiforce-nc/plugin-data-source-mainData source chính
@digiforce-nc/plugin-aiHỗ trợ tạo chart bằng AI prompt
@digiforce-nc/clientClient framework (peer)

Mục lục chi tiết