Вопрос

Как подсветить конкретную колонку в реестре раздела?

Столкнулся с задачей, как подсветить конкретную колонку в реестре от значения, например 3 записи, у нее есть поле сумма, мне надо если сумма больше 0 то зеленый, если меньше то красный?

можете хотя бы  скинуть в каком разделе это можно посмотреть, пока ничего похоже нет к сожалению(не freedom ui)

Нравится

4 комментария

Добрый день, Игорь.

 

Я когда-то реализовывала эту задачу через DOM. В гриде находите нужную ячейку и закрашиваете требуемым цветом.

 

Для того, чтобы понять в каком направлении двигаться посмотрите этот пост.

Alla Savelieva, 

Добрый день не подскажите в каком методе инициализровать изменение дом, у меня ячейки закрашиваются по условию, временно написал такую реализацию с таймаутом, но понятное дело что такой способ ужасен


 

onGridLoaded: function() {
				this.callParent(arguments);
				const context = this;
 
                this.colorize();
 
			},
			colorize: function(callback) {
                const context = this;
                const closeStatus = "8777b874-887c-48fd-89eb-0db0d3405eaa";
                const prepareStatus = "e1fcf8fd-3ebd-461d-8896-bda1b061a155";
                const processStatus = "b6209cf1-cdb1-4436-9b2a-d6ea50847e5d";
 
				const gridData = this.get('GridData');
				const items = gridData.getItems();
				const loadedObject = {};
                this.console.log(items);
				Terrasoft.each(items, function (item) {
 
					const sum = item.get('Sum');
                    const id = item.get("Id");
                    const status = item.get("Status")
 
					item.customStyle = {
						backgroundColor: sum > 0 ? "green" : "red"
					};
 
                    window.setTimeout(function () {
                        if(status) {
                            const colorStatusPath = `div[id*=item-${id}] > div[class=grid-cols-4]`
                            const selectorColStatus = document.querySelector(colorStatusPath);
                            context.console.log(colorStatusPath);
                            context.console.log(selectorColStatus);
                            if(selectorColStatus) {
                                if(status.value === closeStatus) {
                                    selectorColStatus.style["background"] = 'coral'
                                } else if(status.value === prepareStatus) {
                                    selectorColStatus.style["background"] = 'white'
                                } else if(status.value === processStatus) {
                                    selectorColStatus.style["background"] = 'blue'
                                }
                            }
                        } 
                    }, 1500)
				});
			}

 

Добрый день,

можно в базовом методе как в примере 

ttps://academy.terrasoft.ua/docs/developer/ehlementy_interfejsa/razdel/obzor#case-3239

Так же должно работать при инициализации из методов onGridDataLoaded и showSection

Игорь Дьяченко пишет:

не подскажите в каком методе инициализровать изменение дом

Попробуйте добавить функцию заливки цветом ячейки в методы loadGridData и reloadGridData.

Показать все комментарии