defineView() لتوفير عروض مُعدّة مسبقًا مع تطبيقك — عادةً عرض فهرس افتراضي لكل كائن مخصص تقوم بإنشائه.
src/views/example-view.ts
النقاط الرئيسية
objectUniversalIdentifierيحدّد الكائن الذي ينطبق عليه هذا العرض. يمكن أن يكون كائنًا مخصصًا قمتَ بتعريفه أو كائن Twenty قياسيًا.- يحدّد
keyنوع العرض — يمثّلViewKey.INDEXعرض القائمة الرئيسي للكائن. - يتحكّم
fieldsفي الأعمدة التي تظهر وترتيبها. يشير كل حقل إلىfieldMetadataUniversalIdentifier. - يمكنك أيضًا تعريف
filtersوfilterGroupsوgroupsوfieldGroupsلتكوينات أكثر تقدمًا. - يتحكّم
positionفي الترتيب عند وجود عدة عروض لنفس الكائن.
الفلاتر
يمكن أن تأتي طريقة العرض مع عوامل تصفية مُطبَّقة مسبقًا. لكل عامل تصفية ثلاثة مكونات: الحقل الذي تُطبَّق عليه التصفية، والمعامل (كيفية المقارنة)، والقيمة (ما تتم المقارنة به). يجب أن تتطابق العناصر الثلاثة جميعًا — حيث سيتم رفض استخدام معامل لا ينطبق على نوع الحقل في وقت المزامنة.المعاملات المدعومة حسب نوع الحقل
| نوع الحقل | العوامل المدعومة |
|---|---|
TEXT, EMAILS, FULL_NAME, ADDRESS, LINKS, PHONES, RAW_JSON, FILES, ACTOR, ARRAY | CONTAINS, DOES_NOT_CONTAIN, IS_EMPTY, IS_NOT_EMPTY |
ACTOR.source, ACTOR.workspaceMemberId | IS, IS_NOT, IS_EMPTY, IS_NOT_EMPTY |
SELECT | IS, IS_NOT, IS_EMPTY, IS_NOT_EMPTY |
MULTI_SELECT | CONTAINS, DOES_NOT_CONTAIN, IS_EMPTY, IS_NOT_EMPTY |
RELATION | IS, IS_NOT, IS_EMPTY, IS_NOT_EMPTY |
NUMBER | IS, IS_NOT, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, IS_EMPTY, IS_NOT_EMPTY |
RATING | IS, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, IS_EMPTY, IS_NOT_EMPTY |
CURRENCY, CURRENCY.amountMicros | GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, IS, IS_NOT, IS_EMPTY, IS_NOT_EMPTY |
CURRENCY.currencyCode | IS, IS_NOT, IS_EMPTY, IS_NOT_EMPTY |
DATE, DATE_TIME | IS, IS_RELATIVE, IS_IN_PAST, IS_IN_FUTURE, IS_TODAY, IS_BEFORE, IS_AFTER, IS_EMPTY, IS_NOT_EMPTY |
BOOLEAN | IS |
UUID | IS, IS_NOT, IS_EMPTY, IS_NOT_EMPTY |
TS_VECTOR | VECTOR_SEARCH |
يمكن لأنواع الحقول ذات الأسماء المتشابهة أن تستخدم عوامل مختلفة تمامًا — حيث يُعدSELECTوMULTI_SELECTحالة شائعة.
شكل القيمة لكل عامل
حقلvalue هو دائمًا قيمة قابلة للتسلسل إلى JSON، لكن شكله المتوقَّع يعتمد على العامل:
| عائلة العامل | شكل القيمة | مثال |
|---|---|---|
IS, IS_NOT على SELECT | مصفوفة من مفاتيح الخيارات (سلاسل نصية) | ['ACTIVE', 'PENDING'] |
CONTAINS, DOES_NOT_CONTAIN على MULTI_SELECT | مصفوفة من مفاتيح الخيارات (سلاسل نصية) | ['TAG_A'] |
IS, IS_NOT على RELATION | مصفوفة من معرّفات السجلات (uuids) | ['c5a1...'] |
CONTAINS, DOES_NOT_CONTAIN على الحقول المشابهة للنص | سلسلة نصية | 'acme' |
IS, IS_NOT على NUMBER | سلسلة نصية (القيمة) | '5' |
IS على RATING / UUID | سلسلة نصية (القيمة) | '5' |
GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL | سلسلة نصية (الحد) | '10' |
IS, IS_BEFORE, IS_AFTER على DATE / DATE_TIME | سلسلة نصية بتنسيق ISO 8601 | '2025-01-01T00:00:00Z' |
IS_EMPTY, IS_NOT_EMPTY | سلسلة فارغة | '' |
IS على BOOLEAN | 'true' أو 'false' | 'true' |
كيفية ظهور العروض في واجهة المستخدم
لا يمكن الوصول إلى العرض بمفرده من الشريط الجانبي. لجعله يظهر هناك، قم بربطه مع عنصر قائمة تنقّل من النوعVIEW يشير إلى قيمة universalIdentifier الخاصة بالعرض. هذا هو النمط القياسي: عادةً ما يوفّر كل كائن مخصص عرضًا افتراضيًا + إدخالًا في الشريط الجانبي يفتحه.