joint events-setter

This commit is contained in:
kangwei 2020-03-16 16:24:45 +08:00
commit ab5bad582e
4 changed files with 24 additions and 15 deletions

View File

@ -116,7 +116,6 @@ export class OutlineSelecting extends Component {
render() {
const selecting = this.selecting;
console.info(selecting);
if (!selecting || selecting.length < 1) {
// DIRTY FIX, recore has a bug!
return <Fragment />;

View File

@ -68,7 +68,6 @@
&.dragging {
background: rgba(182, 178, 178, 0.8);
border: none;
pointer-events: all;
}
}
}

View File

@ -1,5 +1,6 @@
import { Component, isValidElement, ReactElement, ReactNode } from 'react';
import { Radio, Menu, Table, Icon, Dialog } from '@alifd/next';
import {SettingField} from './main';
import nativeEvents from './native-events';
import './style.less';
@ -19,7 +20,9 @@ const DEFINITION_EVENT_TYPE = {
LIFE_CYCLE_EVENT: 'lifeCycleEvent',
};
export default class EventsSetter extends Component<{}> {
export default class EventsSetter extends Component<{
field:SettingField
}> {
state = {
showEventList: false,
eventBtns: [],
@ -34,6 +37,7 @@ export default class EventsSetter extends Component<{}> {
};
componentWillMount() {
this.props.field.getValue()
this.initEventBtns();
this.initEventList();
}
@ -42,8 +46,7 @@ export default class EventsSetter extends Component<{}> {
*
*/
initEventBtns() {
const { prop } = this.props;
const { definition } = prop.extraProps;
const { definition } = this.props;
let isRoot = false;
definition.map(item => {
if (item.type === DEFINITION_EVENT_TYPE.LIFE_CYCLE_EVENT) {
@ -73,7 +76,7 @@ export default class EventsSetter extends Component<{}> {
}
initEventList() {
const { definition } = this.props.prop.extraProps;
const { definition } = this.props;
let nativeEventList = [];
definition.map(item => {
if (item.type === DEFINITION_EVENT_TYPE.EVENTS) {
@ -229,14 +232,19 @@ export default class EventsSetter extends Component<{}> {
};
submitDialog = (relatedEventName: String) => {
const { bindEventName } = this.state;
const { eventDataList } = this.state;
const { bindEventName,eventDataList} = this.state;
const {field} = this.props;
eventDataList.map(item => {
if (item.name === bindEventName) {
item.relatedEventName = relatedEventName;
}
});
debugger;
field.setValue(eventDataList);
this.closeDialog();
};
@ -270,7 +278,7 @@ export default class EventsSetter extends Component<{}> {
{selectType && selectType != EVENT_CONTENTS.NATIVE_EVENT && (
<Menu defaultOpenKeys="sub-menu" className="event-menu" onItemClick={this.onEventMenuClick}>
{showEventList.map((item, index) => (
<Item key={item.name} helper={item.title} disabled={item.disabled}>
<Item key={item.name} helper={item.description} disabled={item.disabled}>
{item.name}
</Item>
))}

View File

@ -309,7 +309,7 @@ registerMetadataTransducer(metadata => {
if (componentName === 'Page' || componentName === 'Component') {
isRoot = true;
// 平台配置的,一般只有根节点才会配置
eventsDefinition = {
eventsDefinition = [{
type: 'lifeCycleEvent',
title: '生命周期',
list: [
@ -330,9 +330,9 @@ registerMetadataTransducer(metadata => {
name: 'componentWillUnmount',
},
]
};
}];
} else {
eventsDefinition = {
eventsDefinition = [{
type: 'events',
title: '事件',
list: (events?.supportEvents || []).map((event: any) => {
@ -342,7 +342,7 @@ registerMetadataTransducer(metadata => {
}
: event;
}),
};
}];
}
// 通用设置
const propsGroup = props || [];
@ -419,9 +419,12 @@ registerMetadataTransducer(metadata => {
},
getValue(field: SettingField) {
return [];
let data = field.getPropValue('eventDataList');
return data;
},
setValue(field: SettingField) {},
setValue(field: SettingField, eventDataList: any[]) {
field.setPropValue('eventDataList', eventDataList);
}
},
],
});