mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-15 14:00:35 +00:00
joint events-setter
This commit is contained in:
parent
573f91507c
commit
c44481f9a4
@ -178,7 +178,10 @@ registerMetadataTransducer(metadata => {
|
|||||||
|
|
||||||
metadata.props.forEach(prop => {
|
metadata.props.forEach(prop => {
|
||||||
const { name, propType } = prop;
|
const { name, propType } = prop;
|
||||||
if (name === 'children' && (component.isContainer || (propType === 'node' || propType === 'element' || propType === 'any'))) {
|
if (
|
||||||
|
name === 'children' &&
|
||||||
|
(component.isContainer || propType === 'node' || propType === 'element' || propType === 'any')
|
||||||
|
) {
|
||||||
if (component.isContainer !== false) {
|
if (component.isContainer !== false) {
|
||||||
component.isContainer = true;
|
component.isContainer = true;
|
||||||
return;
|
return;
|
||||||
@ -221,7 +224,7 @@ registerMetadataTransducer(metadata => {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
registerMetadataTransducer((metadata) => {
|
registerMetadataTransducer(metadata => {
|
||||||
const { configure = {}, componentName } = metadata;
|
const { configure = {}, componentName } = metadata;
|
||||||
const { component = {} } = configure as any;
|
const { component = {} } = configure as any;
|
||||||
if (!component.nestingRule) {
|
if (!component.nestingRule) {
|
||||||
@ -261,107 +264,135 @@ registerMetadataTransducer((metadata) => {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
registerMetadataTransducer((metadata) => {
|
registerMetadataTransducer(metadata => {
|
||||||
const { componentName, configure = {} } = metadata;
|
const { componentName, configure = {} } = metadata;
|
||||||
if (componentName === 'Leaf') {
|
if (componentName === 'Leaf') {
|
||||||
return {
|
return {
|
||||||
...metadata,
|
...metadata,
|
||||||
configure: {
|
configure: {
|
||||||
...configure,
|
...configure,
|
||||||
combined: [{
|
combined: [
|
||||||
|
{
|
||||||
name: 'children',
|
name: 'children',
|
||||||
title: '内容设置',
|
title: '内容设置',
|
||||||
setter: {
|
setter: {
|
||||||
componentName: 'MixinSetter',
|
componentName: 'MixinSetter',
|
||||||
props: {
|
props: {
|
||||||
setters: [{
|
setters: [
|
||||||
|
{
|
||||||
componentName: 'StringSetter',
|
componentName: 'StringSetter',
|
||||||
props: {
|
props: {
|
||||||
// todo:
|
// todo:
|
||||||
multiline: true,
|
multiline: true,
|
||||||
},
|
},
|
||||||
initialValue: '',
|
initialValue: '',
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
componentName: 'ExpressionSetter',
|
componentName: 'ExpressionSetter',
|
||||||
initialValue: {
|
initialValue: {
|
||||||
type: 'JSExpression',
|
type: 'JSExpression',
|
||||||
value: '',
|
value: '',
|
||||||
},
|
},
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}],
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const { props, events, styles } = configure as any;
|
const { props, events, styles } = configure as any;
|
||||||
let supportEvents: any;
|
let eventsDefinition: any;
|
||||||
let isRoot: boolean = false;
|
let isRoot: boolean = false;
|
||||||
if (componentName === 'Page' || componentName === 'Component') {
|
if (componentName === 'Page' || componentName === 'Component') {
|
||||||
isRoot = true;
|
isRoot = true;
|
||||||
supportEvents = [{
|
// 平台配置的,一般只有根节点才会配置
|
||||||
|
eventsDefinition = {
|
||||||
|
type: 'lifeCycleEvent',
|
||||||
|
title: '生命周期',
|
||||||
|
list: [
|
||||||
|
{
|
||||||
description: '初始化时',
|
description: '初始化时',
|
||||||
name: 'constructor'
|
name: 'constructor',
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
description: '装载后',
|
description: '装载后',
|
||||||
name: 'componentDidMount'
|
name: 'componentDidMount',
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
description: '更新时',
|
description: '更新时',
|
||||||
name: 'componentDidMount'
|
name: 'componentDidMount',
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
description: '卸载时',
|
description: '卸载时',
|
||||||
name: 'componentWillUnmount'
|
name: 'componentWillUnmount',
|
||||||
}]
|
},
|
||||||
|
]
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
supportEvents = (events?.supportEvents || []).map((event: any) => {
|
eventsDefinition = {
|
||||||
return typeof event === 'string' ? {
|
type: 'events',
|
||||||
|
title: '事件',
|
||||||
|
list: (events?.supportEvents || []).map((event: any) => {
|
||||||
|
return typeof event === 'string'
|
||||||
|
? {
|
||||||
name: event,
|
name: event,
|
||||||
} : event;
|
}
|
||||||
});
|
: event;
|
||||||
|
}),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
// 通用设置
|
// 通用设置
|
||||||
const propsGroup = props || [];
|
const propsGroup = props || [];
|
||||||
propsGroup.push({
|
propsGroup.push({
|
||||||
name: '#generals',
|
name: '#generals',
|
||||||
title: '通用',
|
title: '通用',
|
||||||
items: [{
|
items: [
|
||||||
|
{
|
||||||
name: 'id',
|
name: 'id',
|
||||||
title: 'ID',
|
title: 'ID',
|
||||||
setter: 'StringSetter',
|
setter: 'StringSetter',
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
name: 'key',
|
name: 'key',
|
||||||
title: 'Key',
|
title: 'Key',
|
||||||
// todo: use Mixin
|
// todo: use Mixin
|
||||||
setter: 'StringSetter',
|
setter: 'StringSetter',
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
name: 'ref',
|
name: 'ref',
|
||||||
title: 'Ref',
|
title: 'Ref',
|
||||||
setter: 'StringSetter',
|
setter: 'StringSetter',
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
name: '!more',
|
name: '!more',
|
||||||
title: '更多',
|
title: '更多',
|
||||||
setter: 'PropertiesSetter'
|
setter: 'PropertiesSetter',
|
||||||
}]
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
const combined = [{
|
const combined = [
|
||||||
|
{
|
||||||
title: '属性',
|
title: '属性',
|
||||||
name: '#props',
|
name: '#props',
|
||||||
items: propsGroup,
|
items: propsGroup,
|
||||||
}];
|
},
|
||||||
|
];
|
||||||
const stylesGroup = [];
|
const stylesGroup = [];
|
||||||
if (styles?.supportClassName) {
|
if (styles?.supportClassName) {
|
||||||
stylesGroup.push({
|
stylesGroup.push({
|
||||||
name: 'className',
|
name: 'className',
|
||||||
title: '类名绑定',
|
title: '类名绑定',
|
||||||
setter: 'ClassNameSetter'
|
setter: 'ClassNameSetter',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (styles?.supportInlineStyle) {
|
if (styles?.supportInlineStyle) {
|
||||||
stylesGroup.push({
|
stylesGroup.push({
|
||||||
name: 'style',
|
name: 'style',
|
||||||
title: '行内样式',
|
title: '行内样式',
|
||||||
setter: 'StyleSetter'
|
setter: 'StyleSetter',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (stylesGroup.length > 0) {
|
if (stylesGroup.length > 0) {
|
||||||
@ -372,55 +403,27 @@ registerMetadataTransducer((metadata) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (supportEvents) {
|
if (eventsDefinition) {
|
||||||
combined.push({
|
combined.push({
|
||||||
name: '#events',
|
name: '#events',
|
||||||
title: '事件',
|
title: '事件',
|
||||||
items: [{
|
items: [
|
||||||
|
{
|
||||||
name: '!events',
|
name: '!events',
|
||||||
title: '事件设置',
|
title: '事件设置',
|
||||||
setter: {
|
setter: {
|
||||||
componentName: 'EventsSetter',
|
componentName: 'EventsSetter',
|
||||||
props: {
|
props: {
|
||||||
definition: []
|
definition: eventsDefinition,
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// 先简单mock一下
|
|
||||||
definition:[
|
|
||||||
// {
|
|
||||||
// type: 'lifeCycleEvent', // 平台配置的,一般只有根节点才会配置
|
|
||||||
// title: '生命周期',
|
|
||||||
// list: [{
|
|
||||||
// title: '装载时',
|
|
||||||
// name: 'componentDidMount'
|
|
||||||
// },{
|
|
||||||
// title: '卸载时',
|
|
||||||
// name: 'componentWillUnmount'
|
|
||||||
// }]
|
|
||||||
// },
|
|
||||||
{
|
|
||||||
type: 'events', // 组件自定义的
|
|
||||||
list: [{
|
|
||||||
name:'onClick',
|
|
||||||
title:'点击回调'
|
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name:'onChange',
|
|
||||||
title:'变更回调'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name:'onSubmit'
|
|
||||||
}]
|
|
||||||
}],
|
|
||||||
|
|
||||||
getValue(field: SettingField) {
|
getValue(field: SettingField) {
|
||||||
return [];
|
return [];
|
||||||
},
|
},
|
||||||
setValue(field: SettingField) {
|
setValue(field: SettingField) {},
|
||||||
|
},
|
||||||
}
|
],
|
||||||
}]
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,60 +432,71 @@ registerMetadataTransducer((metadata) => {
|
|||||||
combined.push({
|
combined.push({
|
||||||
name: '#advanced',
|
name: '#advanced',
|
||||||
title: '高级',
|
title: '高级',
|
||||||
items: []
|
items: [],
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
combined.push({
|
combined.push({
|
||||||
name: '#advanced',
|
name: '#advanced',
|
||||||
title: '高级',
|
title: '高级',
|
||||||
items: [{
|
items: [
|
||||||
|
{
|
||||||
name: '__condition',
|
name: '__condition',
|
||||||
title: '条件显示',
|
title: '条件显示',
|
||||||
setter: 'ExpressionSetter'
|
setter: 'ExpressionSetter',
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
name: '#loop',
|
name: '#loop',
|
||||||
title: '循环',
|
title: '循环',
|
||||||
items: [{
|
items: [
|
||||||
|
{
|
||||||
name: '__loop',
|
name: '__loop',
|
||||||
title: '循环数据',
|
title: '循环数据',
|
||||||
setter: {
|
setter: {
|
||||||
componentName: 'MixinSetter',
|
componentName: 'MixinSetter',
|
||||||
props: {
|
props: {
|
||||||
setters: [{
|
setters: [
|
||||||
|
{
|
||||||
componentName: 'JSONSetter',
|
componentName: 'JSONSetter',
|
||||||
props: {
|
props: {
|
||||||
mode: 'popup',
|
mode: 'popup',
|
||||||
placeholder: '编辑数据'
|
placeholder: '编辑数据',
|
||||||
}
|
},
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
componentName: 'ExpressionSetter',
|
componentName: 'ExpressionSetter',
|
||||||
props: {
|
props: {
|
||||||
placeholder: '绑定数据'
|
placeholder: '绑定数据',
|
||||||
}
|
},
|
||||||
}]
|
},
|
||||||
}
|
],
|
||||||
}
|
},
|
||||||
}, {
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
name: '__loopArgs.0',
|
name: '__loopArgs.0',
|
||||||
title: '迭代变量名',
|
title: '迭代变量名',
|
||||||
setter: {
|
setter: {
|
||||||
componentName: 'StringSetter',
|
componentName: 'StringSetter',
|
||||||
placeholder: '默认为 item'
|
placeholder: '默认为 item',
|
||||||
}
|
},
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
name: '__loopArgs.1',
|
name: '__loopArgs.1',
|
||||||
title: '索引变量名',
|
title: '索引变量名',
|
||||||
setter: {
|
setter: {
|
||||||
componentName: 'StringSetter',
|
componentName: 'StringSetter',
|
||||||
placeholder: '默认为 index'
|
placeholder: '默认为 index',
|
||||||
}
|
},
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
name: 'key',
|
name: 'key',
|
||||||
title: 'Key',
|
title: 'Key',
|
||||||
setter: 'ExpressionSetter',
|
setter: 'ExpressionSetter',
|
||||||
}]
|
},
|
||||||
}]
|
],
|
||||||
})
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user