Разрабатываю дашборд для мониторинга телекоммуникационных услуг. В паре таблиц есть столбец Outage, показывающий простои в днях. В большинстве случаев время простоя превышает 1 день, но бывает и меньше, например 0,2 дня. В этих случаях пользователи приборной панели попросили меня показать простои в часах.

В настоящее время сбой отображается по правому краю с точностью до 1 дробной цифры (например, 0,1, 0,7, 2,5, 23,4, 128,0 и т. д.). Заголовок таблицы содержит поле фильтра, поэтому, если кто-то хочет отобразить только отключения продолжительностью более недели, он вводит «> 7» в поле фильтра. На мой взгляд, это простое и полезное решение, поэтому я хотел бы хранить значения столбца в днях. Даже пользователи не хотят, чтобы я менял единицы измерения на часы во всех случаях, только если сбой <1 дня.

Компонент My table может отображать строки или даже элементы HTML в ячейках, созданных на основе значения поля. Поэтому сначала я изменил отображаемую строку, чтобы также отображать часы, если время простоя <1 дня, например: «0,2 (4,8 часа)». Но это портит приятное выравнивание чисел по правому краю, и это не очень нравится ни мне, ни пользователям. Чтобы сохранить выравнивание по правому краю, я мог бы изменить порядок следующим образом: «(4,8 часа) 0,2», но это выглядит забавно. Я попытался поместить часть «(4,8 часа)» в <span> и применить класс CSS, чтобы сделать ее серой, что делает ее немного лучше. Я также подумал о том, чтобы поместить «0,2» в <span> и добавить к нему всплывающую подсказку с текстом «4,8 часа».

Есть ли хорошее решение этой проблемы?


РЕДАКТИРОВАТЬ: в итоге я использовал диапазон, который показывает сбой в формате «часы: минуты». Я использую меньший серый шрифт, чтобы не «нарушать» значение, указанное в днях.

enter image description here

2
kol 22 Мар 2021 в 12:17
Я думаю, что быстрый набросок или макет поможет прояснить подход, который вы хотите использовать, и получить отзывы сообщества о проблеме дизайна. Вопрос, описанный в настоящее время, может не получить очень конкретного ответа.
 – 
Michael Lai
22 Мар 2021 в 02:12
1
Я добавил скриншот.
 – 
kol
22 Мар 2021 в 12:17

1 ответ

Лучший ответ

Всякий раз, когда пользователи просят что-то немного странное или немного сложное в дизайне или просто плохую идею с эвристической точки зрения юзабилити, вам нужно глубже понять, почему они этого хотят. Зачем им отключение в часах, если меньше суток?

Например, может быть, просто иногда пользователям нужны часы, а иногда дни. Возможно, плановое техническое обслуживание включает в себя бумажные формы отчетности, на которые уходят часы, в то время как для обновлений службы поддержки клиентов используются дни. Как правило, плановое техническое обслуживание длится менее одного дня, но есть и исключения. Решением было бы иметь два столбца, по одному для каждого модуля:

Column for outage in days to one decimal place, and hours to one decimal place

Пользователи могут выбирать, какой столбец использовать в зависимости от случая. Преимущество этого решения по сравнению с вашим решением заключается в том, что любые единицы одинаково легко увидеть (нет проблем 508), и пользователи могут фильтровать, используя любые единицы.

Если бы мне пришлось угадывать, я бы сказал, что пользователи просто не думают десятичными числами. Что для кого-то значит 0,4 дня? Но 10 часов имеют непосредственное интуитивное значение (например, «как долгий рабочий день»). Это означает, что 2,4 дня тоже проблематично, просто в меньшей степени, потому что часто пользователи могут сосредоточиться на целом числе и игнорировать дробь с относительно небольшим влиянием. В этом случае решение состоит в том, чтобы показать простои в формате дней часы:минуты:

Column in days hours-colon-minutes

Это обеспечивает вашим пользователям полную точность независимо от величины сбоя, что может быть полезно в некоторых случаях. Ваш фильтр должен будет разумно интерпретировать строки критериев, такие как «>=2», как «>=2 0:00» и «>=2:00» как «>= 0 2:00».

Возможно, пользователи просто думают только целыми числами для этой задачи. Им не нужна точность более одного часа, если меньше 24 часов, и одного дня, если больше. Может быть, 2.7 и 3.0 — это «3» с точки зрения пользователей, независимо от того, говорят ли они дни или часы, и мысленно приравнивать «2 дня 16:48 часов» к «3 дням 0 часов» — это просто бремя для них. Если это так, то решение выборочно округляется в днях или часах по величине простоя и показывает единицы измерения в ячейках, чтобы избежать двусмысленности:

Column with cells like 3 days and 2 hours, those in days are bold

Вам нужно какое-то условное форматирование, чтобы было легко определить и отличить простои в часах от простоев в днях, когда порядок сортировки не является простоем. Толщина шрифта и отступ, показанные выше, являются одним из способов, и отступ решает ваши проблемы с выравниванием. Ваш фильтр должен анализировать критерии для «дней» и «часов» (или «д» и «ч»), чтобы определить единицы измерения. Также фильтрация должна учитывать пользователей, мыслящих округленными числами. Если пользователь вводит «3 часа», фильтр должен включать все строки от 0 дней 2,5 часа до 0 дней 3,5 часа.

Вернитесь к своим пользователям и узнайте больше о том, как они используют простои. Из этого решение, вероятно, будет очевидным, и, возможно, оно не будет ни одним из вышеперечисленных.

2
Michael Zuschlag 22 Мар 2021 в 18:43
Это гениально! Мне особенно нравится формат «дни часы: минуты». Большое спасибо, я покажу ваши идеи пользователям.
 – 
kol
22 Мар 2021 в 22:34