mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-13 01:21:58 +00:00
fix: 移除事件属性为 {ignored: true} 的情况
This commit is contained in:
parent
4c552124ae
commit
cb1016c715
@ -47,7 +47,7 @@ export interface InitialItem {
|
||||
}
|
||||
export interface FilterItem {
|
||||
name: string;
|
||||
filter: (target: SettingTarget, currentValue: any) => any;
|
||||
filter: (target: SettingTarget | null, currentValue: any) => any;
|
||||
}
|
||||
export interface AutorunItem {
|
||||
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';
|
||||
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 逻辑
|
||||
if (ctx.stage === TransformStage.Render && !engineConfig.get('visionSettings.enableFilterReducerInRenderStage', false)) {
|
||||
if (ctx?.stage === TransformStage.Render && !engineConfig.get('visionSettings.enableFilterReducerInRenderStage', false)) {
|
||||
return props;
|
||||
}
|
||||
const filters = node.componentMeta.getMetadata().experimental?.filters;
|
||||
|
||||
@ -7,3 +7,4 @@ export * from './style-reducer';
|
||||
export * from './upgrade-reducer';
|
||||
export * from './node-top-fixed-reducer';
|
||||
export * from './reset-loop-default-value-reducer';
|
||||
export * from './filter-empty-event';
|
||||
|
||||
@ -15,6 +15,7 @@ import {
|
||||
liveLifecycleReducer,
|
||||
nodeTopFixedReducer,
|
||||
resetLoopDefaultValueReducer,
|
||||
filterEmptyEventReducer,
|
||||
} from './props-reducers';
|
||||
|
||||
const { LiveEditing, TransformStage } = designerCabin;
|
||||
@ -41,6 +42,9 @@ designer.addPropsReducer(liveLifecycleReducer, TransformStage.Render);
|
||||
designer.addPropsReducer(filterReducer, TransformStage.Save);
|
||||
designer.addPropsReducer(filterReducer, TransformStage.Render);
|
||||
|
||||
designer.addPropsReducer(filterEmptyEventReducer, TransformStage.Save);
|
||||
designer.addPropsReducer(filterEmptyEventReducer, TransformStage.Render);
|
||||
|
||||
// FIXME: Dirty fix, will remove this reducer
|
||||
designer.addPropsReducer(compatibleReducer, TransformStage.Save);
|
||||
// 兼容历史版本的 Page 组件
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user