This commit is contained in:
2026-08-11 20:02:38 +08:00
parent 41618847b7
commit 7ece30bffa
6 changed files with 81 additions and 9 deletions
+14
View File
@@ -163,4 +163,18 @@ describe('DataTable column preferences', () => {
expect(toolbarActions.find('.data-table__utility-actions').exists()).toBe(true)
expect(toolbarActions.find('button[aria-label="列设置"]').exists()).toBe(true)
})
it('can hide column settings for compact tables without leaving an empty toolbar', () => {
const wrapper = shallowMount(DataTable, {
props: { data: [], columns: configurableColumns, preferenceKey: 'summary-table', showColumnSettings: false },
global: {
provide: { [UI_PREFERENCE_SCOPE as symbol]: computed(() => 'user-1') },
stubs: { ElTable: TableStub, ElTableColumn: ColumnStub, ElButton: ButtonStub, ElPopover: PopoverStub },
directives: { loading: {} },
},
})
expect(wrapper.find('button[aria-label="列设置"]').exists()).toBe(false)
expect(wrapper.find('.data-table__toolbar').exists()).toBe(false)
})
})
+3 -1
View File
@@ -63,11 +63,13 @@ const props = withDefaults(defineProps<{
total?: number
pageSizes?: number[]
preferenceKey?: string
showColumnSettings?: boolean
}>(), {
loading: false,
emptyText: '暂无数据',
total: undefined,
pageSizes: () => [10, 20, 50, 100],
showColumnSettings: true,
})
const page = defineModel<number>('page', { default: 1 })
@@ -76,7 +78,7 @@ const slots = useSlots()
const preferenceScope = inject(UI_PREFERENCE_SCOPE, computed(() => 'anonymous'))
const preference = ref<LayoutPreferenceSnapshot>({ version: 1, order: [], hidden: [] })
const tableRef = ref<{ doLayout: () => void }>()
const preferenceEnabled = computed(() => Boolean(props.preferenceKey))
const preferenceEnabled = computed(() => Boolean(props.preferenceKey && props.showColumnSettings))
function columnId(column: DataTableColumn) {
const value = column.key ?? column.columnKey ?? column.prop ?? column.property