По умолчанию Query использует правила фильтрации в зависимости от типа поля, которым может быть "text", "date" или "number".
У каждого объекта поля есть следующие свойства:
view:"query", fields: [
{
id: "first_name",
value: "First Name",
type: "text",
},
// другие поля
]
Поскольку Query использует Filter под капотом, их правила фильтрации одинаковы.
Вы можете ограничить количество правил фильтрации для конкретного поля, определив массив правил для этого поля:
var fields = [
{
id: "first_name", value: "First Name", type: "text",
conditions: ["equal", "contains"] // только 2 условия
}
]
Кроме того, вы можете предоставить пользовательские правила фильтрации в массиве conditions. Для этого выполните следующие действия:
1) Создайте объект и задайте пользовательские правила внутри:
Создание пользовательского условия
var maxLength = {
id: "max-length",
value: "Max Length",
batch: "text",
handler: (a, v) => a.length <= v,
};
Объект содержит 4 свойства:
2) Добавьте свойство conditions (массив) и передайте туда созданное условие:
Определение пользовательского условия
var fields = [
{
id: "first_name",
value: "First Name",
type: "text",
conditions: ["equal", "contains", maxLength] // созданное условие "maxLength"
}
]
Related sample: Query: Custom Conditions
Результат должен быть следующим:
Вы также можете задать формат, в котором значение будет отображаться в виджете. Обратитесь к свойству format у необходимого поля и передайте форматирующую функцию в качестве значения:
view: "query",
fields: [
{
id: "birthdate",
value: "Date of birth",
type: "date",
// длинное представление даты
format: value => webix.i18n.longDateFormatStr(value),
}
]
Related sample: Query: Custom Format
Наверх