Перейти к основному содержимому

Filter

Отображает конструктор фильтров

Используется для создания фильтров на основе множества правил. Допустимые значения поля dataType свойства Columns: 'string', 'number', 'date', 'boolean', 'dictionary'. Допустимые значения поля allowedOperators свойства Columns для типа string: 'Contains', 'NotContain', 'Equals', 'NotEqual', 'BeginWith', 'EndsOn', 'Filled', 'NotFilled', 'Matches'. Допустимые значения поля allowedOperators свойства Columns для типа number: 'Equals', 'NotEqual', 'LessThan', "MoreThan", 'LessThanOrEqual', 'GreaterThanOrEqual', 'Between', 'Filled', 'NotFilled'. Допустимые значения поля allowedOperators свойства Columns для типа date: 'Between', 'LessThan', 'MoreThan', 'Filled', 'NotFilled'. Допустимые значения поля allowedOperators свойства Columns для типов boolean и dictionary: 'Equals', 'NotEqual', 'Filled', 'NotFilled'.

Свойства

ИмяОписаниеТипЗначение по умолчаниюВозможные значения
BadgeКоличественная информация в компонентах Menu, Accordion, Link, Text. В качестве значения может использоваться объект с полями: counter (число),
position ("post" или "pre"), color (цвет)
any
CSSМассив строк-классов CSS-стилей компонентаarray
ColumnsПоля данных для фильтрации. В качестве значения может использоваться массив объектов с полями: alias, title, allowedOperators, dataType, dateFormat. Допустимые значения dateFormat перечислены в библиотеке moment.js. Если dateFormat не указан, по умолчанию используется формат ISO 8601. Допустимые значения полей dataType и allowedOperators см. в описании компонентаarray
CombineConfigКонфигурация всех событий компонента. Служебное свойство для генерации фрагментов кода в визуальном режиме редактора форм.
Не рекомендуется указывать значение вручную
object
CustomFiltersМассив настраиваемых фильтровarray
EnabledFilterФильтр, используемый при отображении области с компонентом Filter на странице приложения;при отсутствии заданного значения открывается вкладка компонента Accordion с предустановленными фильтрамиobject
FieldsПоля данных для фильтрации. Устаревшее свойство, используется только для совместимости с версиями Платформы до 4.0array
HiddenПризнак состояния компонента СкрытbooleanFalse
HintВсплывающая подсказка над компонентом, чаще используемая для подробного пояснения краткого текстаany
IdИдентификатор компонента для навигации к нему на HTML-страницеstring
MaxCountOfFiltersМаксимальное количество правил фильтра в группе. Значение 0 используется для отключения этого ограничения.number0
MaxLevelOfGroupМаксимальный уровень вложенности правил фильтраnumber3
ModelПсевдоним свойств EnabledFilter и OutputEnabledFilterarray
OnChangeCustomFiltersОбработчик события об изменении customFilters, возвращающий объект со списком всех настраиваемых фильтров и последним измененным: { filters: IFilterItem[], lastFilter: IFilterItem}any
OnClickОбработчик события нажатия кнопки мышиundefined
OnFilterSetОбработчик события применения фильтров, возвращающий объект со списком всех фильтровany
OnKeyDownОбработчик события KeyDownundefined
OnKeyUpОбработчик события KeyUpundefined
OnMouseDownОбработчик события MouseDownundefined
OnMouseEnterОбработчик события MouseEnterundefined
OnMouseLeaveОбработчик события MouseLeaveundefined
OnMouseMoveОбработчик события MouseMoveundefined
OnMouseOutОбработчик события MouseOutundefined
OnMouseOverОбработчик события MouseOverundefined
OnMouseUpОбработчик события MouseUpundefined
OnUnmountОбработчик события Unmountundefined
OptionalOpenПризнак открытия фильтраbooleanFalse
OutputCustomFiltersПривязка свойства customFilters отрисованного компонента к моделиany
OutputEnabledFilterПривязка отрисованного включенного фильтра к модели (выходное значение)any
OutputPresetFiltersПривязка свойства presetFilters отрисованного компонента к моделиany
PresetFiltersПредустановленные фильтры, которые не доступны пользователю для редактированияarray
ShowButtonПризнак отображения кнопки открытия диалога настройки фильтраbooleanTrue
SlotМетка для динамического добавления другого компонента по его идентификаторуstring
TitleЗаголовок диалога настройки фильтраstringFilter title
TooltipВсплывающая подсказка над компонентом, чаще используемая для пояснения назначения значкаany
TraceId
Идентификатор для отслеживания состояния компонента исходя из хронологической последовательности:
создание, отрисовка, обновление, удаление; используется для выполнения фрагмента кода по изменению состояния компонента
string
VisibleПризнак инверсии состояния компонента СкрытbooleanTrue

Примеры

JSX:

<Group Mode={"Column"} >
<Group VerticalAlign="Center" Height="60px">
<Filter
MaxLevelOfGroup={7}
Columns={[
{alias: 'ProductName', title: 'Название продукта', allowedOperators : ['Contains'], dataType: 'string'},
{alias: 'ProductCompany', title: 'Компания', dataType: 'dictionary'},
{alias: 'Discounted', title: 'Со скидкой', dataType: 'boolean'},
{alias: 'UnitPrice', title: 'Цена', dataType: 'number'},
{alias: 'Date', title: 'Дата', dataType: 'date'},
]}
CustomFilters={(customFilters) => customFilters}
PresetFilters={[{
name: 'First system filter (example of system filter)',
id: '1',
enabled: false,
filterType: 'System',
filter: {
"logic": "And",
"name": "parent",
"filters": [
{
"logic": "And",
"fieldAlias": "Date",
"operator": "Equals",
"value": "2023-08-30T20:00:00.000Z",
"valid": true,
"valueEnd": ""
},
{
"logic": "And",
"name": "Группа 1",
"filters": [
{
"logic": "And",
"fieldAlias": "ProductCompany",
"operator": "Equals",
"value": "FriendsCo",
"valid": true,
"valueEnd": ""
},
{
"logic": "And",
"fieldAlias": "ProductCompany",
"operator": "Equals",
"value": "MyCompany",
"valid": true,
"valueEnd": ""
},
{
"logic": "And",
"name": "Группа 1.1",
"filters": [
{
"logic": "Or",
"fieldAlias": "UnitPrice",
"operator": "Equals",
"value": "5",
"valid": true,
"valueEnd": ""
},
{
"logic": "Or",
"fieldAlias": "UnitPrice",
"operator": "Equals",
"value": "10",
"valid": true,
"valueEnd": ""
}
],
"valid": true
},
{
"logic": "And",
"name": "Группа 1.2",
"filters": [
{
"logic": "Or",
"fieldAlias": "ProductName",
"operator": "Contains",
"value": "organic11",
"valid": true
},
{
"logic": "Or",
"fieldAlias": "ProductName",
"operator": "Contains",
"value": "cranberry22",
"valid": true
}
],
"valid": true
}
],
"valid": true
},
{
"logic": "And",
"fieldAlias": "Discounted",
"operator": "Equals",
"value": true,
"valueEnd": "",
"valid": true
}
]
}}]}
OutputCustomFilters-var="customFilters"
OnChangeCustomFilters={() => {
console.log(getEvent());
}}
Model-var="enabledFilter"
/>
<Text CSS={['pl-8']} Mode="Regular_14" Value="С предустановленными фильтрами" />
</Group>
<Group VerticalAlign="Center" Height="60px">
<Filter
Columns={[
{alias: 'ProductName', title: 'Название продукта', dataType: 'string'}
]}
/>
<Text CSS={['pl-8']} Mode="Regular_14" Value="Без предустановленных фильтров" />
</Group>
</Group>