diff --git a/packages/plugin-settings/src/register-transducer.ts b/packages/plugin-settings/src/register-transducer.ts index ebd2de72c..864e6461e 100644 --- a/packages/plugin-settings/src/register-transducer.ts +++ b/packages/plugin-settings/src/register-transducer.ts @@ -178,7 +178,10 @@ registerMetadataTransducer(metadata => { metadata.props.forEach(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) { component.isContainer = true; return; @@ -221,7 +224,7 @@ registerMetadataTransducer(metadata => { }; }); -registerMetadataTransducer((metadata) => { +registerMetadataTransducer(metadata => { const { configure = {}, componentName } = metadata; const { component = {} } = configure as any; if (!component.nestingRule) { @@ -261,107 +264,135 @@ registerMetadataTransducer((metadata) => { }; }); -registerMetadataTransducer((metadata) => { +registerMetadataTransducer(metadata => { const { componentName, configure = {} } = metadata; if (componentName === 'Leaf') { return { ...metadata, configure: { ...configure, - combined: [{ - name: 'children', - title: '内容设置', - setter: { - componentName: 'MixinSetter', - props: { - setters: [{ - componentName: 'StringSetter', - props: { - // todo: - multiline: true, - }, - initialValue: '', - }, { - componentName: 'ExpressionSetter', - initialValue: { - type: 'JSExpression', - value: '', - }, - }], + combined: [ + { + name: 'children', + title: '内容设置', + setter: { + componentName: 'MixinSetter', + props: { + setters: [ + { + componentName: 'StringSetter', + props: { + // todo: + multiline: true, + }, + initialValue: '', + }, + { + componentName: 'ExpressionSetter', + initialValue: { + type: 'JSExpression', + value: '', + }, + }, + ], + }, }, }, - }], + ], }, }; } const { props, events, styles } = configure as any; - let supportEvents: any; + let eventsDefinition: any; let isRoot: boolean = false; if (componentName === 'Page' || componentName === 'Component') { isRoot = true; - supportEvents = [{ - description: '初始化时', - name: 'constructor' - }, { - description: '装载后', - name: 'componentDidMount' - }, { - description: '更新时', - name: 'componentDidMount' - }, { - description: '卸载时', - name: 'componentWillUnmount' - }] + // 平台配置的,一般只有根节点才会配置 + eventsDefinition = { + type: 'lifeCycleEvent', + title: '生命周期', + list: [ + { + description: '初始化时', + name: 'constructor', + }, + { + description: '装载后', + name: 'componentDidMount', + }, + { + description: '更新时', + name: 'componentDidMount', + }, + { + description: '卸载时', + name: 'componentWillUnmount', + }, + ] + }; } else { - supportEvents = (events?.supportEvents || []).map((event: any) => { - return typeof event === 'string' ? { - name: event, - } : event; - }); + eventsDefinition = { + type: 'events', + title: '事件', + list: (events?.supportEvents || []).map((event: any) => { + return typeof event === 'string' + ? { + name: event, + } + : event; + }), + }; } // 通用设置 const propsGroup = props || []; propsGroup.push({ name: '#generals', title: '通用', - items: [{ - name: 'id', - title: 'ID', - setter: 'StringSetter', - }, { - name: 'key', - title: 'Key', - // todo: use Mixin - setter: 'StringSetter', - }, { - name: 'ref', - title: 'Ref', - setter: 'StringSetter', - }, { - name: '!more', - title: '更多', - setter: 'PropertiesSetter' - }] + items: [ + { + name: 'id', + title: 'ID', + setter: 'StringSetter', + }, + { + name: 'key', + title: 'Key', + // todo: use Mixin + setter: 'StringSetter', + }, + { + name: 'ref', + title: 'Ref', + setter: 'StringSetter', + }, + { + name: '!more', + title: '更多', + setter: 'PropertiesSetter', + }, + ], }); - const combined = [{ - title: '属性', - name: '#props', - items: propsGroup, - }]; + const combined = [ + { + title: '属性', + name: '#props', + items: propsGroup, + }, + ]; const stylesGroup = []; if (styles?.supportClassName) { stylesGroup.push({ name: 'className', title: '类名绑定', - setter: 'ClassNameSetter' + setter: 'ClassNameSetter', }); } if (styles?.supportInlineStyle) { stylesGroup.push({ name: 'style', title: '行内样式', - setter: 'StyleSetter' + setter: 'StyleSetter', }); } if (stylesGroup.length > 0) { @@ -372,55 +403,27 @@ registerMetadataTransducer((metadata) => { }); } - if (supportEvents) { + if (eventsDefinition) { combined.push({ name: '#events', title: '事件', - items: [{ - name: '!events', - title: '事件设置', - setter: { - componentName: 'EventsSetter', - props: { - definition: [] - } + items: [ + { + name: '!events', + title: '事件设置', + setter: { + componentName: 'EventsSetter', + props: { + definition: eventsDefinition, + }, + }, + + getValue(field: SettingField) { + return []; + }, + setValue(field: SettingField) {}, }, - - // 先简单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) { - return []; - }, - setValue(field: SettingField) { - - } - }] + ], }); } @@ -429,60 +432,71 @@ registerMetadataTransducer((metadata) => { combined.push({ name: '#advanced', title: '高级', - items: [] + items: [], }); } else { combined.push({ name: '#advanced', title: '高级', - items: [{ - name: '__condition', - title: '条件显示', - setter: 'ExpressionSetter' - }, { - name: '#loop', - title: '循环', - items: [{ - name: '__loop', - title: '循环数据', - setter: { - componentName: 'MixinSetter', - props: { - setters: [{ - componentName: 'JSONSetter', - props: { - mode: 'popup', - placeholder: '编辑数据' - } - }, { - componentName: 'ExpressionSetter', - props: { - placeholder: '绑定数据' - } - }] - } - } - }, { - name: '__loopArgs.0', - title: '迭代变量名', - setter: { - componentName: 'StringSetter', - placeholder: '默认为 item' - } - }, { - name: '__loopArgs.1', - title: '索引变量名', - setter: { - componentName: 'StringSetter', - placeholder: '默认为 index' - } - }, { - name: 'key', - title: 'Key', + items: [ + { + name: '__condition', + title: '条件显示', setter: 'ExpressionSetter', - }] - }] - }) + }, + { + name: '#loop', + title: '循环', + items: [ + { + name: '__loop', + title: '循环数据', + setter: { + componentName: 'MixinSetter', + props: { + setters: [ + { + componentName: 'JSONSetter', + props: { + mode: 'popup', + placeholder: '编辑数据', + }, + }, + { + componentName: 'ExpressionSetter', + props: { + placeholder: '绑定数据', + }, + }, + ], + }, + }, + }, + { + name: '__loopArgs.0', + title: '迭代变量名', + setter: { + componentName: 'StringSetter', + placeholder: '默认为 item', + }, + }, + { + name: '__loopArgs.1', + title: '索引变量名', + setter: { + componentName: 'StringSetter', + placeholder: '默认为 index', + }, + }, + { + name: 'key', + title: 'Key', + setter: 'ExpressionSetter', + }, + ], + }, + ], + }); } return {