|
74 | 74 | </template> |
75 | 75 | <template #empty> No entries found. </template> |
76 | 76 |
|
77 | | - <Column v-if="showButtons" class="checkbox" selection-mode="multiple"></Column> |
| 77 | + <Column |
| 78 | + v-if="showButtons" |
| 79 | + class="checkbox" |
| 80 | + selection-mode="multiple" |
| 81 | + :style="{ minWidth: '3.5ch' }" |
| 82 | + ></Column> |
78 | 83 |
|
79 | 84 | <!-- <Column expander style="width: 5rem" /> --> |
80 | 85 | <Column |
|
83 | 88 | :field="column.field" |
84 | 89 | sortable |
85 | 90 | :class="{ 'filter-active': isFilterActive(column.field) }" |
| 91 | + :style="{ minWidth: getColumnMinWidth(column) }" |
86 | 92 | :filter-menu-class="column.field === 'type' || column.field === 'date' ? 'no-operator' : ''" |
87 | 93 | > |
88 | 94 | <template #header> |
@@ -431,6 +437,7 @@ export default { |
431 | 437 | ], |
432 | 438 | }; |
433 | 439 | }, |
| 440 | +
|
434 | 441 | computed: { |
435 | 442 | rows() { |
436 | 443 | return this.$store.state.datatablePaginationSettings[this.dataType].rows; |
@@ -619,6 +626,32 @@ export default { |
619 | 626 | }); |
620 | 627 | }, |
621 | 628 | methods: { |
| 629 | + getColumnMinWidth(column) { |
| 630 | + const COLUMN_BASE_PADDING = 2.5; |
| 631 | + const CHAR_WIDTH_ESTIMATE = 0.75; |
| 632 | + const SORT_ICON_SPACE = 2.5; |
| 633 | + const FILTER_BUTTON_WIDTH = 3.5; |
| 634 | + const HEADER_ICON_SPACE = 2.5; |
| 635 | + const MIN_COLUMN_WIDTH = 10; |
| 636 | +
|
| 637 | + let minWidth = COLUMN_BASE_PADDING; |
| 638 | +
|
| 639 | + if (column.header) { |
| 640 | + minWidth += column.header.length * CHAR_WIDTH_ESTIMATE; |
| 641 | + } |
| 642 | +
|
| 643 | + if (column.icon) { |
| 644 | + minWidth += HEADER_ICON_SPACE; |
| 645 | + } |
| 646 | +
|
| 647 | + minWidth += SORT_ICON_SPACE; |
| 648 | +
|
| 649 | + if (column.filter) { |
| 650 | + minWidth += FILTER_BUTTON_WIDTH; |
| 651 | + } |
| 652 | +
|
| 653 | + return Math.max(minWidth, MIN_COLUMN_WIDTH) + "ch"; |
| 654 | + }, |
622 | 655 | onSort(event) { |
623 | 656 | const sortedColumns = event.multiSortMeta || []; |
624 | 657 |
|
|
0 commit comments