logologo
البدء
الدليل
التطوير
الإضافات
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
البدء
الدليل
التطوير
الإضافات
API
logologo

مقدمة

ما هو FlowEngine؟
العلاقة بين FlowEngine والإضافات
بدء سريع
خارطة طريق التعلم

دليل

تسجيل FlowModel
إنشاء FlowModel
عرض FlowModel
تدفق أحداث FlowModel والإعداد
استمرارية FlowModel
دورة حياة FlowModel
نظام سياق FlowModel
آلية التفاعل: Observable
FlowModel مقابل React.Component

Definitions

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous Pageعرض FlowModel
Next Pageاستمرارية FlowModel
إشعار الترجمة بالذكاء الاصطناعي

تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.

#FlowModel: تدفق الأحداث والتهيئة

يقدم FlowModel نهجًا يعتمد على "تدفق الأحداث (Flow)" لتطبيق منطق تهيئة المكونات، مما يجعل سلوك المكونات وتهيئتها أكثر قابلية للتوسع والوضوح.

#نموذج مخصص

يمكنك إنشاء نموذج مكون مخصص عن طريق وراثة FlowModel. يجب أن يقوم النموذج بتطبيق التابع render() لتحديد منطق عرض المكون.

class MyModel extends FlowModel {
  render() {
    return <Button {...this.props} />;
  }
}

#تسجيل تدفق (Flow)

يمكن لكل نموذج تسجيل تدفق واحد أو أكثر (Flow) لوصف منطق تهيئة المكون وخطوات التفاعل.

MyModel.registerFlow({
  key: 'buttonSettings',
  title: 'إعدادات الزر',
  steps: {
    general: {
      title: 'التهيئة العامة',
      uiSchema: {
        title: {
          type: 'string',
          title: 'عنوان الزر',
          'x-decorator': 'FormItem',
          'x-component': 'Input',
        },
      },
      defaultParams: {
        type: 'primary',
      },
      handler(ctx, params) {
        ctx.model.setProps('children', params.title);
        ctx.model.setProps('type', params.type);
      },
    },
  },
});

الوصف

  • key: المعرف الفريد للتدفق (Flow).
  • title: اسم التدفق (Flow)، يُستخدم للعرض في واجهة المستخدم.
  • steps: يحدد خطوات التهيئة (Step). تتضمن كل خطوة:
    • title: عنوان الخطوة.
    • uiSchema: هيكل نموذج التهيئة (متوافق مع Formily Schema).
    • defaultParams: المعلمات الافتراضية.
    • handler(ctx, params): يتم تشغيله عند الحفظ لتحديث حالة النموذج.

#عرض النموذج

عند عرض نموذج مكون، يمكنك استخدام المعلمة showFlowSettings للتحكم فيما إذا كنت تريد تمكين ميزة التهيئة. إذا تم تمكين showFlowSettings، سيظهر مدخل التهيئة تلقائيًا في الزاوية العلوية اليمنى من المكون (مثل أيقونة الإعدادات أو زر).

<FlowModelRenderer model={model} showFlowSettings />

#فتح نموذج التهيئة يدويًا باستخدام openFlowSettings

بالإضافة إلى فتح نموذج التهيئة عبر مدخل التفاعل المدمج، يمكنك أيضًا استدعاء openFlowSettings() يدويًا في التعليمات البرمجية.

flowSettings.open(options: FlowSettingsOpenOptions): Promise<boolean>;
model.openFlowSettings(options?: Omit<FlowSettingsOpenOptions, 'model'>): Promise<boolean>;

#تعريف المعلمات

interface FlowSettingsOpenOptions {
  model: FlowModel;               // مطلوب، مثيل النموذج الذي ينتمي إليه
  preset?: boolean;               // يعرض فقط الخطوات التي تم وضع علامة preset=true عليها (الافتراضي false)
  flowKey?: string;               // يحدد تدفقًا واحدًا (Flow)
  flowKeys?: string[];            // يحدد عدة تدفقات (Flows) (يتم تجاهله إذا تم توفير flowKey أيضًا)
  stepKey?: string;               // يحدد خطوة واحدة (عادة ما يستخدم مع flowKey)
  uiMode?: 'dialog' | 'drawer';   // حاوية عرض النموذج، الافتراضي هو 'dialog'
  onCancel?: () => void;          // دالة استدعاء عند النقر على إلغاء
  onSaved?: () => void;           // دالة استدعاء بعد حفظ التهيئة بنجاح
}

#مثال: فتح نموذج تهيئة تدفق (Flow) معين في وضع الدرج (Drawer)

await model.openFlowSettings({
  flowKey: 'buttonSettings',
  uiMode: 'drawer',
  onSaved: () => {
    console.log('تم حفظ إعدادات الزر');
  },
});