-
Создать таблицу статусов с колонками id (PK), name, color. Это статусы элементов, выводятся наверху канбан доски.
-
В GetItems SELECT 1 выбираем статусы (колонки), к которым в дальнейшем по полю id будут привязываться события.
CREATE TABLE dbo.#result (id int, name nvarchar(256), color nvarchar(64))
declare @filterName nvarchar(128)
select @filterName = Value from @filters where [Key] = 'name'
insert into #result
SELECT [id],
[name],
[color]
FROM [demo].[dbo].[as_en_statuses] -- забираем статусы
WHERE entityID in (select id from as_en_entities where code='order')
ORDER BY ord
- В SELECT 3 в GetItems указать:
- viewType='kanban' - задаем тип вывода Канбан
-
kanbanItemForm- код формы. Если указан, то при клике на карточку доски в модальном окне будет вызываться форма (форму с указанным кодом необходимо будет реализовать отдельно, ей передается itemID=id сущности из 4 запроса select).
Также этот параметр (kanbanItemForm- ) можно передавать и в 4 запросе для каждой карточки отдельно, чтобы выводить разные формы для разных карточек.
-
kanbanItemFormTitle - заголовок диалогового окна формы.
-
kanbanItemFormBig - если указано '1'. то будет большое модальное окно.
- kanbanOptions - задает настройки компонента Kanban в JSON (смотри ниже пример). ВАЖНО! Обязательно соблюдать регистр полей в JSON и названия параметров в двойные кавычки.
-
В четвертом select в GetItems (вместо данных футера) выводим данные карточек канбана (именно с такой моделью данных). По полю statusID идет привязка к соответствующему статусу (что указаны в SELECT 1). ВАЖНО соблюдать регистр названий полей.
SELECT ord_orders.id,
as_en_entityInstances.statusID,-- Статус элемента выводится в середине карточки
customerName name,
customerContact text, -- Если указан код формы, то
'Комментарий заказчика: ' + customerComment tooltip, -- будет ссылкой на мод.форму
convert(nvarchar, ord_orders.created, 120) bottomText,
'' customClass--css класс,
'' kanbanItemForm -- код модальной формы (при клике по элементу)
'' kanbanItemFormTitle -- заголовок модальной формы
'' kanbanItemFormBig -- если 1 то большая модальная форма
'' makeup -- можно задать свою разметку элемента канбан (в этом случае она будет выводиться вместо стандартной разметки).
FROM ord_orders
INNER JOIN as_en_entityInstances on as_en_entityInstances.id = ord_orders.instanceID
- Для смены статуса необходимо реализовать метод обновления updateField для таблицы. Передаваемое поле задано жестко - statusID.
{
"isUpdateBoardOnInit": true,
"dragscroll": {
"isEnabled": true,
"cardSelector": ".deal",
},
"multiselect": {
"isEnabled": true,
"cardSelector": ".deal",
"togglerSelector": ".kanban-multiselect-toggler",
"selectedClass": "selected"
},
"getUpdateParams": function () {
var res = {};
return res;
},
"isDragDrop": true,
"getDropPlaceholderHtml": function () {
return "
" + as.lang("crud.kanbanDropHere", "Место для вставки") + "
";
},
"updateBoardCallback": function (data) {
},
"afterMoveCallback": function ($el, from, to) {
},
"afterMoveResponseCallback": function ($el) {
},
"afterMoveInsideStatusCallback": function ($el) {
},
"changeMultiselectCallback": function ($el) {
},
"beforeMove": function (id, from, to, $status, el, moveCard) {
}
}