Browse Source

fix: grid tools in toolbar config not working as expected (#5190)

pull/5191/head
Netfan 1 year ago
committed by GitHub
parent
commit
a44ff73dd3
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 34
      packages/effects/plugins/src/vxe-table/use-vxe-grid.vue

34
packages/effects/plugins/src/vxe-table/use-vxe-grid.vue

@ -6,6 +6,7 @@ import type {
VxeGridListeners, VxeGridListeners,
VxeGridPropTypes, VxeGridPropTypes,
VxeGridProps as VxeTableGridProps, VxeGridProps as VxeTableGridProps,
VxeToolbarPropTypes,
} from 'vxe-table'; } from 'vxe-table';
import type { ExtendedVxeGridApi, VxeGridProps } from './types'; import type { ExtendedVxeGridApi, VxeGridProps } from './types';
@ -107,28 +108,28 @@ const showToolbar = computed(() => {
const toolbarOptions = computed(() => { const toolbarOptions = computed(() => {
const slotActions = slots[TOOLBAR_ACTIONS]?.(); const slotActions = slots[TOOLBAR_ACTIONS]?.();
const slotTools = slots[TOOLBAR_TOOLS]?.(); const slotTools = slots[TOOLBAR_TOOLS]?.();
const searchBtn: VxeToolbarPropTypes.ToolConfig = {
code: 'search',
icon: 'vxe-icon--search',
circle: true,
status: showSearchForm.value ? 'primary' : undefined,
title: $t('common.search'),
};
// toolbarConfig.tools
const toolbarConfig: VxeGridPropTypes.ToolbarConfig = { const toolbarConfig: VxeGridPropTypes.ToolbarConfig = {
tools: tools: (gridOptions.value?.toolbarConfig?.tools ??
gridOptions.value?.toolbarConfig?.search && !!formOptions.value []) as VxeToolbarPropTypes.ToolConfig[],
? [
{
code: 'search',
icon: 'vxe-icon--search',
circle: true,
status: showSearchForm.value ? 'primary' : undefined,
title: $t('common.search'),
},
]
: [],
}; };
if (gridOptions.value?.toolbarConfig?.search && !!formOptions.value) {
toolbarConfig.tools = Array.isArray(toolbarConfig.tools)
? [...toolbarConfig.tools, searchBtn]
: [searchBtn];
}
if (!showToolbar.value) { if (!showToolbar.value) {
return { toolbarConfig }; return { toolbarConfig };
} }
// if (gridOptions.value?.toolbarConfig?.search) {
// }
// 使toolbar // 使toolbar
// //
toolbarConfig.slots = { toolbarConfig.slots = {
@ -137,7 +138,6 @@ const toolbarOptions = computed(() => {
: {}), : {}),
...(slotTools ? { tools: TOOLBAR_TOOLS } : {}), ...(slotTools ? { tools: TOOLBAR_TOOLS } : {}),
}; };
return { toolbarConfig }; return { toolbarConfig };
}); });
@ -147,7 +147,7 @@ const options = computed(() => {
const mergedOptions: VxeTableGridProps = cloneDeep( const mergedOptions: VxeTableGridProps = cloneDeep(
mergeWithArrayOverride( mergeWithArrayOverride(
{}, {},
toolbarOptions.value, toRaw(toolbarOptions.value),
toRaw(gridOptions.value), toRaw(gridOptions.value),
globalGridConfig, globalGridConfig,
), ),

Loading…
Cancel
Save