mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-19 05:48:17 +00:00
fix: 移除事件属性为 {ignored: true} 的情况
This commit is contained in:
parent
4c552124ae
commit
cb1016c715
@ -47,7 +47,7 @@ export interface InitialItem {
|
|||||||
}
|
}
|
||||||
export interface FilterItem {
|
export interface FilterItem {
|
||||||
name: string;
|
name: string;
|
||||||
filter: (target: SettingTarget, currentValue: any) => any;
|
filter: (target: SettingTarget | null, currentValue: any) => any;
|
||||||
}
|
}
|
||||||
export interface AutorunItem {
|
export interface AutorunItem {
|
||||||
name: string;
|
name: string;
|
||||||
|
|||||||
@ -0,0 +1,20 @@
|
|||||||
|
import { Node } from '@ali/lowcode-engine';
|
||||||
|
import { hasOwnProperty, isPlainObject } from '@ali/lowcode-utils';
|
||||||
|
|
||||||
|
function isEmptyEvent(event: any) {
|
||||||
|
return event?.ignored === true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 在使用老版的 vu-events-property,会有空的事件描述,比如 onClick: { ignored: true } 的情况
|
||||||
|
*/
|
||||||
|
export function filterEmptyEventReducer(props: any, node: Node): any {
|
||||||
|
if (!props || !isPlainObject(props)) return props;
|
||||||
|
// 基于性能考虑,只过滤第一层
|
||||||
|
Object.keys(props).forEach(name => {
|
||||||
|
if (name.startsWith('on') && isEmptyEvent(props[name])) {
|
||||||
|
delete props[name];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return props;
|
||||||
|
}
|
||||||
@ -3,9 +3,9 @@ import { Node, PropsReducerContext, designerCabin, engineConfig } from '@ali/low
|
|||||||
import { hasOwnProperty } from '@ali/lowcode-utils';
|
import { hasOwnProperty } from '@ali/lowcode-utils';
|
||||||
const { TransformStage } = designerCabin;
|
const { TransformStage } = designerCabin;
|
||||||
|
|
||||||
export function filterReducer(props: any, node: Node, ctx: PropsReducerContext): any {
|
export function filterReducer(props: any, node: Node, ctx?: PropsReducerContext): any {
|
||||||
// 老的 vision 逻辑是 render 阶段不走 filter 逻辑
|
// 老的 vision 逻辑是 render 阶段不走 filter 逻辑
|
||||||
if (ctx.stage === TransformStage.Render && !engineConfig.get('visionSettings.enableFilterReducerInRenderStage', false)) {
|
if (ctx?.stage === TransformStage.Render && !engineConfig.get('visionSettings.enableFilterReducerInRenderStage', false)) {
|
||||||
return props;
|
return props;
|
||||||
}
|
}
|
||||||
const filters = node.componentMeta.getMetadata().experimental?.filters;
|
const filters = node.componentMeta.getMetadata().experimental?.filters;
|
||||||
|
|||||||
@ -7,3 +7,4 @@ export * from './style-reducer';
|
|||||||
export * from './upgrade-reducer';
|
export * from './upgrade-reducer';
|
||||||
export * from './node-top-fixed-reducer';
|
export * from './node-top-fixed-reducer';
|
||||||
export * from './reset-loop-default-value-reducer';
|
export * from './reset-loop-default-value-reducer';
|
||||||
|
export * from './filter-empty-event';
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import {
|
|||||||
liveLifecycleReducer,
|
liveLifecycleReducer,
|
||||||
nodeTopFixedReducer,
|
nodeTopFixedReducer,
|
||||||
resetLoopDefaultValueReducer,
|
resetLoopDefaultValueReducer,
|
||||||
|
filterEmptyEventReducer,
|
||||||
} from './props-reducers';
|
} from './props-reducers';
|
||||||
|
|
||||||
const { LiveEditing, TransformStage } = designerCabin;
|
const { LiveEditing, TransformStage } = designerCabin;
|
||||||
@ -41,6 +42,9 @@ designer.addPropsReducer(liveLifecycleReducer, TransformStage.Render);
|
|||||||
designer.addPropsReducer(filterReducer, TransformStage.Save);
|
designer.addPropsReducer(filterReducer, TransformStage.Save);
|
||||||
designer.addPropsReducer(filterReducer, TransformStage.Render);
|
designer.addPropsReducer(filterReducer, TransformStage.Render);
|
||||||
|
|
||||||
|
designer.addPropsReducer(filterEmptyEventReducer, TransformStage.Save);
|
||||||
|
designer.addPropsReducer(filterEmptyEventReducer, TransformStage.Render);
|
||||||
|
|
||||||
// FIXME: Dirty fix, will remove this reducer
|
// FIXME: Dirty fix, will remove this reducer
|
||||||
designer.addPropsReducer(compatibleReducer, TransformStage.Save);
|
designer.addPropsReducer(compatibleReducer, TransformStage.Save);
|
||||||
// 兼容历史版本的 Page 组件
|
// 兼容历史版本的 Page 组件
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user