Как в кастомном дэше правильно делать дрилл-даун? В том числе Дрилл-даун на несколько уровней и с возвратом обратно.
Как я понимаю, это возможно только через АПИ (через bixel нельзя).
Так же прошу пояснить реализацию на примере.
Здравствуйте. Можно и через bixel. Вам нужно будет сделать следующее:
- В конфигурации дешлета прописать ключ onClickDataPoint: “ShowDrillDownMenu”.
- В блоке конфигурации dataSource прописать ключ hierarchy, например как тут:
“dataSource”: {
“koob”: “clickhouse_bank_reviews.bank_year_aspect_object_evaluation”,
“xAxis”: “Object”,
“yAxis”: “measures;Bank”,
“filters”: {
“Bank”: true
},
“measures”: [
“sum(Positive):positivesum”,
“sum(Negative):negativesum”
],
“hierarchy”: [
“Evaluation=>Object”,
“Review_Year=>Object”
],
“dimensions”: [
“Review_Year”,
“Object”,
“Bank”
]
}
В данном случае мы задали уровни вложенности дрилдауна для дименшнов Evaluation, Review_year и Object. Стрелочка => указывает о наличии связи типа “Показать всех Object для значения Evaluation, по которому был клик”.
3. В самом коде html-шаблона дешлета на bixel вам нужно будет добавить обработчик клика по контейнеру или конкретному элементу, где например заранее хранить информацию о его текущем значении идентификаторов по оси X,Y,Z
и уже внутри такого обработчика разместить код подобный данному
bixel.invoke(‘CLICK_DATA_POINT’, {
x_id: xs[0].id, // в данном случае для примера берем идентификатор первого элемента массива значений осей, но это могут быть любые нужные идентификаторы оси
y_id: ys[0].id,
z_id: zs[0].id,
event: { pageX: event.pageX, pageY: event.pageY },
});
Не страшно, если для таргета у такого клика не будет информации для события выше. Оно просто не сработает. Но проверять наличие информации об идентификаторах не будет лишним.
4. Произнести заклинание “Lasciate ogne speranza, voi ch’entrate” (“Оставь надежду, всяк, сюда входящий”) и быть готовым ко всему)
5. Если не сработало - возможно у вас устаревшая версия bixel.js и ее мы можем выслать вам отдельно.