diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts index 2201f22349192d4227d606e4a401b7d447f21579..40adf67ab0ddc6e8f8369969d46bb8c416456b85 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid.property-config.ts @@ -17,6 +17,8 @@ export class DataGridProperty extends BaseControlProperty { this.getAppearanceProperties(propertyData); // 操作列 this.propertyConfig.categories['command'] = this.getCommandColumnProperties(propertyData); + // 填充列宽 + this.propertyConfig.categories['column'] = this.getColumnOptionProperties(propertyData); // 事件 this.getEventPropConfig(propertyData); @@ -63,6 +65,42 @@ export class DataGridProperty extends BaseControlProperty { }; } + private getColumnOptionProperties(propertyData: any) { + return { + title: '填充列宽', + description: '', + properties: { + fitColumns: { + title: '启用', + type: 'boolean', + description: '启用填充列宽', + $converter: '/converter/column-option.converter', + refreshPanelAfterChanged: true + }, + fitMode: { + description: '', + title: '填充模式', + type: 'enum', + visible: !!propertyData.column?.fitColumns, + $converter: '/converter/column-option.converter', + editor: { + data: [ + { id: 'average', name: '平分' }, + { id: 'expand', name: '等比' } + ] + } + }, + }, + setPropertyRelates(changeObject: PropertyChangeObject, data: any) { + switch (changeObject && changeObject.propertyID) { + case 'fitColumns': { + data.fit = changeObject.propertyValue; + break; + } + } + } + }; + } private getCommandColumnProperties(propertyData: any) { return { title: '操作列', diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/column-option.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/column-option.converter.ts new file mode 100644 index 0000000000000000000000000000000000000000..3345120b5b5c082d253c8bbf3cba4e72785a1b4a --- /dev/null +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/column-option.converter.ts @@ -0,0 +1,31 @@ +import { ComponentSchema } from "../../../designer-canvas/src/types"; +import { PropertyConverter, SchemaService } from "../types"; + +export default { + convertTo: (schema: ComponentSchema, propertyKey: string, propertyValue: any, schemaService: SchemaService) => { + // eslint-disable-next-line no-self-assign + if (schema.column) { + schema.column[propertyKey] = propertyValue; + } else { + schema.column = { + [propertyKey]: propertyValue + }; + } + if (propertyKey === 'fitColumns' && propertyValue) { + if (!schema.column.fitMode) { + schema.column.fitMode = 'average'; + } + } + }, + convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { + if (schema.column) { + if (propertyKey === 'fitColumns') { + return schema.column.fitColumns; + } + if(propertyKey === 'fitMode') { + return schema.column.fitMode; + } + } + return ''; + } +} as PropertyConverter; diff --git a/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts b/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts index a6c31cc14e0e8155c810beae4f20d632bd8557a4..27379218b898a6aff3771d32958b3a274949503c 100644 --- a/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts +++ b/packages/ui-vue/components/dynamic-resolver/src/property-config-resolver.ts @@ -11,6 +11,7 @@ import typeConverter from "./converter/type.converter"; import changeEditorConverter from "./converter/change-editor.converter"; import changeFormatterConverter from './converter/change-formatter.converter'; import columnCommandConverter from './converter/column-command.converter'; +import columnOptionConverter from './converter/column-option.converter'; import fieldSelectorConverter from "./converter/field-selector.converter"; import paginationConverter from "./converter/pagination.converter"; import rowNumberConverter from "./converter/row-number.converter"; @@ -29,6 +30,7 @@ const propertyConverterMap = new Map([ ['/converter/change-editor.converter', changeEditorConverter], ['/converter/change-formatter.converter', changeFormatterConverter], ['/converter/column-command.converter', columnCommandConverter], + ['/converter/column-option.converter', columnOptionConverter], ['/converter/form-group-label.converter', formGroupLabelConverter], ['/converter/field-selector.converter', fieldSelectorConverter], ['/converter/pagination.converter', paginationConverter], diff --git a/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts b/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts index 0862d8994e3f870e6550f447fca7e94937db4d81..8a6f44a3632357c011511c487f8a59abd0ec220a 100644 --- a/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts +++ b/packages/ui-vue/components/dynamic-resolver/src/resolver/property-config/use-property-config-resolver.ts @@ -10,6 +10,7 @@ import typeConverter from "../../converter/type.converter"; import changeEditorConverter from "../../converter/change-editor.converter"; import changeFormatterConverter from '../../converter/change-formatter.converter'; import columnCommandConverter from '../../converter/column-command.converter'; +import columnOptionConverter from '../../converter/column-option.converter'; import fieldSelectorConverter from "../../converter/field-selector.converter"; import paginationConverter from "../../converter/pagination.converter"; import rowNumberConverter from "../../converter/row-number.converter"; @@ -30,6 +31,7 @@ export function usePropertyConfigResolver(propertyConfigSchemaMap: Record