Skip to content

DataGrid

DataGrid هو مكوّن الجداول البياناتية في Doggy، ويعتمد على كيان DataGrid لتكوين البيانات + خدمة DataGridService من جهة الخادم، ويدعم مزايا متقدمة مثل الترقيم الصفحي والفرز والتصفية والتصدير.

نظرة عامة

يتكون نظام DataGrid من الأجزاء التالية (src/Component/Database/):

Component/Database/
├── Bridge/
│   ├── DataSetInterface.php   # 数据集接口
│   ├── DataSource.php         # 数据源抽象
│   ├── DoctrineDataSet.php    # Doctrine 数据集实现
│   ├── FilterCondition.php    # 筛选条件
│   └── FilterGroup.php        # 筛选条件组
└── View/
    └── DataGrid.php           # DataGrid 视图组件

التكوين

يتم حفظ تكوين DataGrid بشكل دائم عبر كيان App\Entity\Platform\DataGrid، بينما توفر DataGridService الدعم من جهة الخادم:

php
use App\Service\Platform\DataGridService;

class DataGridController
{
    public function index(DataGridService $service): Response
    {
        $dataGrid = $service->findDataGridByEntityClass(Department::class);
        $config = $dataGrid->getDefaultConfigData();

        return $this->render('admin/index.html.twig', [
            'gridConfig' => $config,
        ]);
    }
}

عوامل التصفية

يستخدم DataGrid FilterCondition وFilterGroup لبناء شروط التصفية، مع تكامل عميق مع وكيل الاستعلام باللغة الطبيعية المدعوم بالذكاء الاصطناعي:

  • تصفية النصوص (تقريبية/دقيقة)
  • تصفية النطاقات الرقمية
  • تصفية النطاقات الزمنية
  • تصفية القوائم المنسدلة
  • تصفية الكيانات المرتبطة (تدعم الصيغة النقطية dot notation)

مصادر البيانات

يتم تجريد مصادر البيانات عبر DataSetInterface، ويدعم حاليًا:

  • DoctrineDataSet: استنادًا إلى Doctrine QueryBuilder
  • DataSource: الفئة الأساسية لمصدر البيانات
  • دعم تنفيذ مجموعات بيانات مخصصة

المكوّنات الأمامية

يتم عرض الواجهة الأمامية عبر ماكرو Twig الخاص بـ sunui_datagrid:

twig
{% include 'components/datagrid.html.twig' with {
    columns: columns,
    data: paginator,
    config: gridConfig
} %}

المزايا

  • الترقيم الصفحي والفرز من جهة الخادم
  • تصفية متعددة الأعمدة (دمج AND/OR)
  • تصدير البيانات
  • التكامل مع وكيل الاستعلام باللغة الطبيعية الخاص بـ AI
  • حفظ التكوين في قاعدة البيانات بشكل دائم

مصدر مفتوح برخصة MIT | حقوق النشر © 2026 Doggy