fix(helpdesk): unify resolution time layout with ranked list pattern
Replace the custom Ø/Min/Max column layout with the same ranked list component used for top customers and categories. All three columns now use identical markup and styling for visual consistency. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -328,28 +328,6 @@
|
||||
margin-bottom: calc(var(--app-spacing) * 0.3);
|
||||
}
|
||||
|
||||
.helpdesk-team-perf-times {
|
||||
display: flex;
|
||||
gap: calc(var(--app-spacing) * 0.75);
|
||||
}
|
||||
|
||||
.helpdesk-team-perf-time {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.helpdesk-team-perf-time-value {
|
||||
font-size: clamp(1rem, 0.9rem + 0.3vw, 1.2rem);
|
||||
font-weight: 600;
|
||||
font-variant-numeric: tabular-nums;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.helpdesk-team-perf-time-label {
|
||||
font-size: var(--text-xs, 0.75rem);
|
||||
color: var(--app-muted-color);
|
||||
}
|
||||
|
||||
.helpdesk-team-perf-ranked {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
@@ -374,6 +352,14 @@
|
||||
min-width: 1.5ch;
|
||||
}
|
||||
|
||||
.helpdesk-team-perf-ranked-plain {
|
||||
counter-reset: none;
|
||||
}
|
||||
|
||||
.helpdesk-team-perf-ranked-plain li::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.helpdesk-team-perf-ranked-name {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
|
||||
@@ -208,27 +208,23 @@ if (container) {
|
||||
// Stats grid
|
||||
const grid = h('div', 'helpdesk-team-perf-grid');
|
||||
|
||||
// Resolution time KPIs
|
||||
// Resolution time as ranked list (same pattern as top customers/categories)
|
||||
const timeStats = h('div', 'helpdesk-team-perf-stat');
|
||||
timeStats.appendChild(h('span', 'helpdesk-team-perf-stat-label', container.dataset.labelResolutionTime || 'Resolution time'));
|
||||
|
||||
const times = h('div', 'helpdesk-team-perf-times');
|
||||
const avgEl = h('div', 'helpdesk-team-perf-time');
|
||||
avgEl.appendChild(h('span', 'helpdesk-team-perf-time-value', formatResolution(perf.avg_resolution_hours)));
|
||||
avgEl.appendChild(h('span', 'helpdesk-team-perf-time-label', 'Ø'));
|
||||
times.appendChild(avgEl);
|
||||
|
||||
const minEl = h('div', 'helpdesk-team-perf-time');
|
||||
minEl.appendChild(h('span', 'helpdesk-team-perf-time-value', formatResolution(perf.min_resolution_hours)));
|
||||
minEl.appendChild(h('span', 'helpdesk-team-perf-time-label', 'Min'));
|
||||
times.appendChild(minEl);
|
||||
|
||||
const maxEl = h('div', 'helpdesk-team-perf-time');
|
||||
maxEl.appendChild(h('span', 'helpdesk-team-perf-time-value', formatResolution(perf.max_resolution_hours)));
|
||||
maxEl.appendChild(h('span', 'helpdesk-team-perf-time-label', 'Max'));
|
||||
times.appendChild(maxEl);
|
||||
|
||||
timeStats.appendChild(times);
|
||||
const timeList = h('ol', 'helpdesk-team-perf-ranked helpdesk-team-perf-ranked-plain');
|
||||
const timeItems = [
|
||||
['Ø', formatResolution(perf.avg_resolution_hours)],
|
||||
['Min', formatResolution(perf.min_resolution_hours)],
|
||||
['Max', formatResolution(perf.max_resolution_hours)],
|
||||
];
|
||||
for (const [label, value] of timeItems) {
|
||||
const li = h('li');
|
||||
li.appendChild(h('span', 'helpdesk-team-perf-ranked-name', label));
|
||||
li.appendChild(h('span', 'helpdesk-team-perf-ranked-count', value));
|
||||
timeList.appendChild(li);
|
||||
}
|
||||
timeStats.appendChild(timeList);
|
||||
grid.appendChild(timeStats);
|
||||
|
||||
// Top customers
|
||||
|
||||
Reference in New Issue
Block a user