style(table): optimize for 1920x1080 without horizontal scroll

- Switched to fixed table layout to ensure fit within viewport
- Implemented automatic ellipsis (...) for overflowing text in all cells
- Synchronized cell widths and alignment in ListFactory with column definitions
- Removed restrictive min-widths that caused horizontal scrolling
This commit is contained in:
2026-06-18 20:41:03 +09:00
parent aab1f91d3d
commit c0ef52deac
2 changed files with 9 additions and 7 deletions

View File

@@ -749,7 +749,9 @@ export function createListView(container: HTMLElement, config: ListViewConfig) {
tbody.innerHTML = filtered.length === 0 ? `<tr><td colspan="${config.columns.length}" class="text-center empty-cell">${UI_TEXT.MESSAGES.NO_DATA}</td></tr>`
: filtered.map(asset => `<tr class="asset-row clickable" data-id="${asset.id}">${config.columns.map(col => {
const isDateCol = col.header.includes('일') || col.header.includes('날짜') || col.header.includes('연월');
return `<td class="${isDateCol ? 'text-center' : ''}">${col.render(asset)}</td>`;
const alignmentClass = col.align ? `text-${col.align}` : (isDateCol ? 'text-center' : '');
const customClass = col.className || '';
return `<td class="${alignmentClass} ${customClass}" style="${col.width ? `width:${col.width};` : ''}">${col.render(asset)}</td>`;
}).join('')}</tr>`).join('');
tbody.querySelectorAll('.asset-row').forEach((tr, idx) => { tr.addEventListener('click', () => config.onRowClick && config.onRowClick(filtered[idx])); });