diff --git a/packages/ui-vue/components/data-grid/src/components/data/data-area.component.tsx b/packages/ui-vue/components/data-grid/src/components/data/data-area.component.tsx index fa1b5a1d28344692f610ec7139e305c51c801da5..fa748bc755855f2b4aedaba6ddcafca3b5bb8c8b 100644 --- a/packages/ui-vue/components/data-grid/src/components/data/data-area.component.tsx +++ b/packages/ui-vue/components/data-grid/src/components/data/data-area.component.tsx @@ -293,9 +293,10 @@ export default function ( >
{ - isCellTemplateValidVNode ? - context.slots.cellTemplate?.({ cell, row: visualDataRow }) : - renderDefaultCellContent(cell, visualDataRow) + cell.column!.columnTemplate ? cell.column!.columnTemplate(cell, visualDataRow) : + isCellTemplateValidVNode ? + context.slots.cellTemplate?.({ cell, row: visualDataRow }) : + renderDefaultCellContent(cell, visualDataRow) }
diff --git a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx index 7ee03d20df0bf6f3ef6c1a463e2049c6f4653429..a13989f836f838d85df559568cbe0b8a05cecbcb 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.component.tsx +++ b/packages/ui-vue/components/data-grid/src/data-grid.component.tsx @@ -207,7 +207,7 @@ export default defineComponent({ const { renderDisableMask } = getDisableMask(); - const { renderDataGridSummery } = getSummary(props as DataViewOptions, dataView, useColumnComposition); + const { renderDataGridSummary } = getSummary(props as DataViewOptions, dataView, useColumnComposition); const { renderHorizontalScrollbar } = getHorizontalScrollbar(props as DataViewOptions, gridContentRef, useVirtualScrollComposition); @@ -505,7 +505,7 @@ export default defineComponent({ {gridContentRef.value && renderHorizontalScrollbar()} {gridContentRef.value && renderVerticalScrollbar()} - {gridContentRef.value && renderDataGridSummery()} + {gridContentRef.value && renderDataGridSummary()} {shouldRenderPagination.value && renderDataGridPagination()} {renderGridColumnResizeOverlay()} {isDisabled.value && renderDisableMask()} diff --git a/packages/ui-vue/components/data-grid/src/data-grid.props.ts b/packages/ui-vue/components/data-grid/src/data-grid.props.ts index b3e59195b3a0d479865659a1698d56fe8c2a978b..deda7da70505040c194cf234ed10b5c489402bac 100644 --- a/packages/ui-vue/components/data-grid/src/data-grid.props.ts +++ b/packages/ui-vue/components/data-grid/src/data-grid.props.ts @@ -83,6 +83,8 @@ export interface DataGridColumn { filter?: string; showSetting?: boolean; showEllipsis?: boolean; + /** 列模板 */ + columnTemplate?: (cell: VisualDataCell, visualDataRow: VisualData) => VNode; /** inner boolean formatter */ formatter?: ((cell: VisualDataCell, visualDataRow: VisualData) => VNode | string) | object; diff --git a/packages/ui-vue/components/data-grid/src/designer/data-grid-column.design.component.tsx b/packages/ui-vue/components/data-grid/src/designer/data-grid-column.design.component.tsx index 92382d84ccd7b2158b3c61f98b365b874eb54a0e..be35bfb4daf2361f269eb0d16ebd44b2c2c2b74f 100644 --- a/packages/ui-vue/components/data-grid/src/designer/data-grid-column.design.component.tsx +++ b/packages/ui-vue/components/data-grid/src/designer/data-grid-column.design.component.tsx @@ -4,6 +4,7 @@ import { DesignerHostService, DesignerItemContext } from '../../../designer-canv import { useDesignerComponent } from '../../../designer-canvas/src/composition/function/use-designer-component'; import { useDesignerRulesForDataGridColumn } from './use-column-rules'; import { useFormBindingResolverDesign } from '../../../dynamic-form/src/composition/form-binding-resolver-design'; +import { DataGridDesignProps } from './data-grid-design.props'; export default defineComponent({ name: 'FDataGridColumnDesign', @@ -13,7 +14,9 @@ export default defineComponent({ const columnRef = ref(); const designerHostService = inject('designer-host-service') as DesignerHostService; const designItemContext = inject('design-item-context') as DesignerItemContext; - const designerRulesComposition = useDesignerRulesForDataGridColumn(designItemContext, designerHostService); + const dataGridContext: { dataGridProps: DataGridDesignProps } = inject('data-grid-context')!; + const designerRulesComposition = useDesignerRulesForDataGridColumn(designItemContext, designerHostService, + dataGridContext); const componentInstance = useDesignerComponent(columnRef, designItemContext, designerRulesComposition); onMounted(() => { columnRef.value.componentInstance = componentInstance; diff --git a/packages/ui-vue/components/data-grid/src/designer/data-grid.design.component.tsx b/packages/ui-vue/components/data-grid/src/designer/data-grid.design.component.tsx index bda59a8f1537390cf6daec9481b7f54e6df0827d..7dc168bdd721392ab5779744c832caff782b47ee 100644 --- a/packages/ui-vue/components/data-grid/src/designer/data-grid.design.component.tsx +++ b/packages/ui-vue/components/data-grid/src/designer/data-grid.design.component.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ import { DataGridDesignProps, dataGridDesignProps } from './data-grid-design.props'; -import { computed, defineComponent, onMounted, ref, nextTick, watch, SetupContext, inject } from 'vue'; +import { computed, defineComponent, onMounted, ref, nextTick, watch, SetupContext, inject, provide } from 'vue'; import { useResizeObserver } from '@vueuse/core'; import { useDesignerColumn, useDesignerFitColumn, useDesignerVisualData } from '../../../data-view/designer'; import { @@ -46,6 +46,7 @@ export default defineComponent({ dataGridRef.value.componentInstance = componentInstance; }); + provide('data-grid-context', {dataGridProps: props}); context.expose(componentInstance.value); const columns = ref(props.columns); const defaultVisibleCapacity = 20; diff --git a/packages/ui-vue/components/data-grid/src/designer/use-column-rules.ts b/packages/ui-vue/components/data-grid/src/designer/use-column-rules.ts index 02a3998a0a124384b4fc638d4711982fc10acb57..296daf7fd5922e04c5225185b99be0855a20acb1 100644 --- a/packages/ui-vue/components/data-grid/src/designer/use-column-rules.ts +++ b/packages/ui-vue/components/data-grid/src/designer/use-column-rules.ts @@ -5,8 +5,10 @@ import { DraggingResolveContext, UseDesignerRules } from "../../../designer-canv import { ComponentSchema, DesignerItemContext } from "../../../designer-canvas/src/types"; import { DataGriColumnProperty } from "../property-config/data-grid-column.property-config"; import { DgControl } from "../../../designer-canvas/src/composition/dg-control"; +import { DataGridDesignProps } from "./data-grid-design.props"; -export function useDesignerRulesForDataGridColumn(designItemContext: DesignerItemContext, designerHostService): UseDesignerRules { +export function useDesignerRulesForDataGridColumn(designItemContext: DesignerItemContext, + designerHostService, dataGridContext: { dataGridProps: DataGridDesignProps }): UseDesignerRules { const schema = designItemContext.schema as ComponentSchema; /** 组件在拖拽时需要将所属的Component一起拖拽 */ const triggerBelongedComponentToMoveWhenMoved = ref(true); @@ -42,7 +44,12 @@ export function useDesignerRulesForDataGridColumn(designItemContext: DesignerIte // 构造属性配置方法 function getPropsConfig(componentId: string) { const gridColumnProp = new DataGriColumnProperty(componentId, designerHostService); - + const parentSummary = designItemContext?.parent?.schema; + if(parentSummary?.groupFields) { + if(parentSummary?.groupFields.includes(schema.field)) { + schema.enableSummary = true; + } + } return gridColumnProp.getPropertyConfig(schema, designItemContext?.parent?.schema); } /** diff --git a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts index 4cab9bf52113d28122921a3556010ded243a29b8..6c8958a95f5233e0a7d7ca88673d9a7075ca2724 100644 --- a/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts +++ b/packages/ui-vue/components/data-grid/src/property-config/data-grid-column.property-config.ts @@ -1,5 +1,6 @@ import { FormSchemaEntityField$Type } from '@farris/ui-vue/components/common'; +import { FNotifyService as NotifyService } from "@farris/ui-vue/components/notify"; import { BaseControlProperty } from '../../../property-panel/src/composition/entity/base-property'; import { DgControl } from '../../../designer-canvas/src/composition/dg-control'; import { InputGroupProperty } from '../../../input-group/src/property-config/input-group.property-config'; @@ -16,16 +17,20 @@ import { RadioGroupProperty } from '../../../radio-group/src/property-config/rad import { SwitchProperty } from '../../../switch/src/property-config/switch.property-config'; import { TimePickerProperty } from '../../../time-picker/src/property-config/time-picker.property-config'; import { SchemaDOMMapping } from '../../../property-panel/src/composition/entity/schema-dom-mapping'; +import { DataGridDesignProps } from '../designer/data-grid-design.props'; export class DataGriColumnProperty extends BaseControlProperty { + private dataGridProps: DataGridDesignProps | null = null; + private notifyService = new NotifyService(); constructor(componentId: string, designerHostService: any) { super(componentId, designerHostService); } getPropertyConfig(propertyData: any, gridData: any) { + this.dataGridProps = gridData; // 基本信息 this.getBasicPropConfig(propertyData); // 外观 - this.getAppearanceProperties(propertyData); + this.getAppearanceProperties(propertyData, gridData); // 行为 this.propertyConfig.categories['behavior'] = this.getBehaviorConfig(propertyData, 'gridFieldEditor'); // 编辑器 @@ -34,7 +39,7 @@ export class DataGriColumnProperty extends BaseControlProperty { // this.propertyConfig.categories['formatter'] = this.getTemplateProperties(propertyData); // 列事件 - this.getEventPropConfig(propertyData); + // this.getEventPropConfig(propertyData); return this.propertyConfig; } @@ -49,7 +54,7 @@ export class DataGriColumnProperty extends BaseControlProperty { const self = this; const initialData = self.eventsEditorUtils['formProperties'](propertyData, self.viewModelId, events); const properties = self.createBaseEventProperty(initialData); - + this.propertyConfig.categories['eventsEditor'] = { title: '事件', hideTitle: true, @@ -68,15 +73,13 @@ export class DataGriColumnProperty extends BaseControlProperty { // 联动修改排序开关 propertyData.remoteSort = propertyData.columnSorted ? true : false; // 同步超链接模板 - if(data.formatter && typeof data.formatter === 'object') { - data.formatter.type = 'custom'; - // 替换自定义模板 - data.formatter.customFormat = `this.viewModel.${data.onClickLinkCommand}(ctx)}> {{rowData.${data.field}}} `; - // 刷新属性面板 - } + propertyData = { ...propertyData }; + // 刷新属性面板 } }; } @@ -130,7 +133,8 @@ export class DataGriColumnProperty extends BaseControlProperty { } }; } - getAppearanceProperties(propertyData: any) { + getAppearanceProperties(propertyData: any, gridData: any) { + const self = this; this.propertyConfig.categories['appearance'] = { description: '', title: '外观', @@ -190,6 +194,24 @@ export class DataGriColumnProperty extends BaseControlProperty { { id: 'bottom', name: '底对齐' } ] } + }, + columnTemplate: { + description: '列模板', + title: '列模板', + type: 'string', + + refreshPanelAfterChanged: true, + editor: { + type: "code-editor", + language: "html", + } + }, + enableSummary: { + description: '启用合计', + title: '启用合计', + visible: !!this.dataGridProps?.summary?.enable && propertyData.dataType === 'number', + type: 'boolean', + refreshPanelAfterChanged: true } }, setPropertyRelates(changeObject, prop, paramters: any) { @@ -201,6 +223,22 @@ export class DataGriColumnProperty extends BaseControlProperty { prop.actualWidth = changeObject.propertyValue; break; } + case 'enableSummary': { + // 更新合计行字段集合 + const { groupFields } = gridData.summary; + if (!groupFields.includes(prop.field) && changeObject.propertyValue) { + groupFields.push(prop.field); + } + if (groupFields.includes(prop.field) && !changeObject.propertyValue) { + groupFields.splice(groupFields.indexOf(prop.field), 1); + } + break; + } + case 'columnTemplate': { + // 提示以列模板为主 + self.notifyService.warning({ position: 'top-center', message: '注意:已设置列模板,列格式化将会失效' }); + break; + } } } }; @@ -212,8 +250,38 @@ export class DataGriColumnProperty extends BaseControlProperty { } private getTemplateProperties(propertyData: any) { + const self = this; + const formatterType = { + enum: [ + { id: 'enum', name: '枚举' }, + { id: 'custom', name: '自定义模板' }, + { id: 'none', name: '无' } + ], + boolean: [ + { id: 'boolean', name: '布尔' }, + { id: 'custom', name: '自定义模板' }, + { id: 'none', name: '无' } + ], + number: [ + { id: 'number', name: '数字' }, + { id: 'custom', name: '自定义模板' }, + { id: 'none', name: '无' } + ], + date: [ + { id: 'date', name: '日期' }, + { id: 'custom', name: '自定义模板' }, + { id: 'none', name: '无' } + ], + string: [ + { id: 'enum', name: '枚举' }, + { id: 'boolean', name: '布尔' }, + { id: 'date', name: '日期' }, + { id: 'custom', name: '自定义模板' }, + { id: 'none', name: '无' } + ] + }; return { - title: '列模板', + title: '列格式化', description: '', properties: { type: { @@ -223,14 +291,7 @@ export class DataGriColumnProperty extends BaseControlProperty { $converter: '/converter/change-formatter.converter', refreshPanelAfterChanged: true, editor: { - data: [ - { id: 'enum', name: '枚举' }, - { id: 'boolean', name: '布尔' }, - { id: 'number', name: '数字' }, - { id: 'date', name: '日期' }, - { id: 'custom', name: '自定义模板' }, - { id: 'none', name: '无' } - ] + data: formatterType[propertyData.dataType] } }, // data: { @@ -325,8 +386,12 @@ export class DataGriColumnProperty extends BaseControlProperty { } switch (changeObject && changeObject.propertyID) { case 'type': { - // 刷新实体树 - changeObject.needRefreshEntityTree = true; + // 清空列模板 + if (changeObject.propertyValue !== 'none' && prop.columnTemplate) { + prop.columnTemplate = ''; + // 提示以列格式化为主 + self.notifyService.warning({ position: 'top-center', message: '注意:已设置列格式化,列模板将被清空且不再生效' }); + } break; } } 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 2f095dbe09034524398ef85f62956b8463916e2f..28af87b50b0ad3c0834e73f2b079cdfacf4b0e5d 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,9 +17,11 @@ export class DataGridProperty extends BaseControlProperty { this.getAppearanceProperties(propertyData); // 操作列 this.propertyConfig.categories['command'] = this.getCommandColumnProperties(propertyData); - // 填充列宽 - // this.propertyConfig.categories['column'] = this.getColumnOptionProperties(propertyData); + // 填充列宽,仅支持平分列宽 + this.propertyConfig.categories['column'] = this.getColumnOptionProperties(propertyData); + // 合计行 + this.propertyConfig.categories['summary'] = this.getSummaryProperties(propertyData); // 事件 this.getEventPropConfig(propertyData); @@ -77,19 +79,19 @@ export class DataGridProperty extends BaseControlProperty { $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: '等比' } - ] - } - }, + // 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) { @@ -138,6 +140,22 @@ export class DataGridProperty extends BaseControlProperty { } }; } + + private getSummaryProperties(propertyData: any) { + return { + title: '合计行', + description: '', + properties: { + enable: { + title: '启用', + type: 'boolean', + description: '启用合计行', + $converter: '/converter/summary.converter', + refreshPanelAfterChanged: true + } + } + }; + } /** * 将schema实体表组装成树 */ diff --git a/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json b/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json index 267e6dbf14f3a7f50980266864bd3ac23b6b9bb1..3f080567b08b1023583ca28ec647bcd30785fc79 100644 --- a/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json +++ b/packages/ui-vue/components/data-grid/src/schema/data-grid-column.schema.json @@ -154,6 +154,16 @@ "falseText": "否", "dateFormat": "yyyy-MM-dd" } + }, + "columnTemplate": { + "description":"列模板", + "type": "string", + "default": "" + }, + "enableSummary": { + "description": "合计行", + "type": "boolean", + "default": false } }, "required": [ diff --git a/packages/ui-vue/components/data-view/components/column-format/column-format.component.tsx b/packages/ui-vue/components/data-view/components/column-format/column-format.component.tsx index ed330a1a039e53a5b1ca4aab93cbb458ec2675f5..760d3908e3230de7d5729c603f3661743289b44e 100644 --- a/packages/ui-vue/components/data-view/components/column-format/column-format.component.tsx +++ b/packages/ui-vue/components/data-view/components/column-format/column-format.component.tsx @@ -26,9 +26,10 @@ export default function () { } // format custom - function renderCustom(value: any, options: InnerFormatter) { + function renderCustom(value: any, options: InnerFormatter, row: VisualData) { return options.customFormat ? - new Function(`return ${options.customFormat}`)() : + // new Function(`return ${options.customFormat}`)() : + options.customFormat(value, row.raw): renderNone(value); } @@ -46,7 +47,7 @@ export default function () { } // custom formatter if (formatter.type === 'custom') { - return renderCustom(value, formatter); + return renderCustom(value, formatter,visualDataRow); } // formatter if (formatter.type === 'enum') { diff --git a/packages/ui-vue/components/data-view/components/summary/data-grid-summary.component.tsx b/packages/ui-vue/components/data-view/components/summary/data-grid-summary.component.tsx index 147da21fe26714d1c69976df70feb68f6fc84f58..917d606c7f4013914c61a676636d8bcbc4fea7fa 100644 --- a/packages/ui-vue/components/data-view/components/summary/data-grid-summary.component.tsx +++ b/packages/ui-vue/components/data-view/components/summary/data-grid-summary.component.tsx @@ -26,7 +26,7 @@ export default function (props: DataViewOptions, dataView: UseDataView, useColum return options && options.enable && options.groupFields && options.groupFields.length > 0; }); - function renderDataGridSummery() { + function renderDataGridSummary() { return ( shouldShowSummary.value && (
@@ -48,5 +48,5 @@ export default function (props: DataViewOptions, dataView: UseDataView, useColum ); } - return { renderDataGridSummery }; + return { renderDataGridSummary }; } diff --git a/packages/ui-vue/components/data-view/composition/data/use-data-view.ts b/packages/ui-vue/components/data-view/composition/data/use-data-view.ts index 47585442a83ee43fbcba3419262571a3f83f93b3..b598bac7ef44c1ebeb53ce5bb966adc78a939b80 100644 --- a/packages/ui-vue/components/data-view/composition/data/use-data-view.ts +++ b/packages/ui-vue/components/data-view/composition/data/use-data-view.ts @@ -496,6 +496,20 @@ export function useDataView( }); return selectionItems.filter((item: any) => item != null); } + + function updateSummary() { + const groupSummaryFields = props.summary.groupFields; + summaries = groupSummaryFields.reduce((sumaries: Map, summaryField: string) => { + sumaries.set(summaryField, 0); + return sumaries; + }, summaries); + for (const dataItem of totalData.value) { + groupSummaryFields.forEach((summaryField: string) => { + const summaryFieldValue = summaries.get(summaryField) || 0; + summaries.set(summaryField, summaryFieldValue + dataItem[summaryField]); + }); + } + } return { addFilter, addNewDataItem, @@ -532,6 +546,7 @@ export function useDataView( setSorters, sorters, summaries, + updateSummary, toggleChildrenVisibiltyByCollapseStatus, totalItems, unFold, diff --git a/packages/ui-vue/components/data-view/composition/types.ts b/packages/ui-vue/components/data-view/composition/types.ts index 5cf97199467695613d56cfdfd442a477a1dc4800..0e8004a52f1360fee3ea66d06bc85f7effbaa079 100644 --- a/packages/ui-vue/components/data-view/composition/types.ts +++ b/packages/ui-vue/components/data-view/composition/types.ts @@ -100,6 +100,7 @@ export interface DataColumn { binding?: any; draggable?: boolean; headerFormatter?: (context: { headerCell: HeaderCell, headerCells: HeaderCell[], columnIndex: number }) => VNode | string; + columnTemplate?: (cell: VisualDataCell, visualDataRow: VisualData) => VNode; } export interface DataFilter { @@ -612,6 +613,7 @@ export interface UseDataView { visibleDataItems: ComputedRef; shouldGroupingData: ComputedRef; + updateSummary: () => void; } export type DataViewType = UseDataView['dataView']; diff --git a/packages/ui-vue/components/data-view/composition/visualization/use-visual-data-row.ts b/packages/ui-vue/components/data-view/composition/visualization/use-visual-data-row.ts index 2fe09578118fe899dafce4127eb190bbcc1592ac..8d823891a6fb45190b6ed44d4031e6de34462b5a 100644 --- a/packages/ui-vue/components/data-view/composition/visualization/use-visual-data-row.ts +++ b/packages/ui-vue/components/data-view/composition/visualization/use-visual-data-row.ts @@ -73,6 +73,7 @@ export function useVisualDataRow( status: VisualDataStatus.initial, updateCell: (newDataItem: any, field: string) => { updateCellData(newDataItem, dataItem, currentRow, field); + dataView.updateSummary(); }, updateCells: (newDataItem: any, fields: string[]) => { fields.forEach(field => { diff --git a/packages/ui-vue/components/dynamic-resolver/src/converter/summary.converter.ts b/packages/ui-vue/components/dynamic-resolver/src/converter/summary.converter.ts new file mode 100644 index 0000000000000000000000000000000000000000..691ca95677415520e52cdf5324541d878c38ba36 --- /dev/null +++ b/packages/ui-vue/components/dynamic-resolver/src/converter/summary.converter.ts @@ -0,0 +1,42 @@ +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.summary) { + schema.summary[propertyKey] = propertyValue; + } else { + schema.summary = { + [propertyKey]: propertyValue + }; + } + if (propertyKey === 'enable' && propertyValue) { + // 启用合计行 + if (!schema.summary) { + schema.summary = { + enable: propertyValue, + groupFields: [] + }; + } else { + if(!schema.summary.groupFields) { + schema.summary.groupFields = []; + } + } + } + }, + convertFrom: (schema: ComponentSchema, propertyKey: string, schemaService: SchemaService) => { + if (schema.summary) { + if (propertyKey === 'enable') { + return schema.summary.enable; + } + } + if (schema.type === 'data-grid-column') { + if (schema.enableSummary === undefined) { + return false; + } + return schema.enableSummary; + } + 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 27379218b898a6aff3771d32958b3a274949503c..1621053df602a9816f55c783d3369c8e7a24c2e2 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 @@ -12,6 +12,7 @@ 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 SummaryConverter from './converter/summary.converter'; import fieldSelectorConverter from "./converter/field-selector.converter"; import paginationConverter from "./converter/pagination.converter"; import rowNumberConverter from "./converter/row-number.converter"; @@ -31,6 +32,7 @@ const propertyConverterMap = new Map([ ['/converter/change-formatter.converter', changeFormatterConverter], ['/converter/column-command.converter', columnCommandConverter], ['/converter/column-option.converter', columnOptionConverter], + ['/converter/summary.converter', SummaryConverter], ['/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 8a6f44a3632357c011511c487f8a59abd0ec220a..7c95df7f760294ba73c344159e4268e212a5ae1c 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 @@ -11,6 +11,7 @@ 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 SummaryConverter from '../../converter/summary.converter'; import fieldSelectorConverter from "../../converter/field-selector.converter"; import paginationConverter from "../../converter/pagination.converter"; import rowNumberConverter from "../../converter/row-number.converter"; @@ -32,6 +33,7 @@ export function usePropertyConfigResolver(propertyConfigSchemaMap: Record