import { Component, isValidElement, ReactElement, ReactNode } from 'react'; import { Dialog, Search, Input } from '@alifd/next'; import Editor from '@ali/lowcode-editor-core'; import './index.scss'; export default class EventBindDialog extends Component<{ editor:Editor, }> { private eventList: any[] = [ { name: 'getData', }, { name: 'deleteData', }, { name: 'initData', }, { name: 'editData', }, { name: 'submitData', }, ]; state = { visiable:false, selectedEventName: '', eventName: '', }; openDialog = (bindEventName:String) => { this.setState({ visiable:true, eventName:bindEventName }) } closeDialog = () => { this.setState({ visiable:false }) } componentDidMount (){ const {editor,config} = this.props; editor.on(`${config.pluginKey}.openDialog`,(bindEventName:String)=>{ this.openDialog(bindEventName) }); } initEventName = () => { const { bindEventName } = this.state; let eventName = bindEventName; this.eventList.map((item) => { if (item.name === eventName) { eventName = `${eventName}_new`; } }); this.setState({ eventName, }); }; onInputChange = (eventName: String) => { this.setState({ eventName, }); }; onSelectItem = (eventName: String) => { this.setState({ selectedEventName: eventName, }); // 为空是新建事件 if (eventName === '') { this.initEventName(); } else { this.setState({ selectedEventName: eventName, eventName, }); } }; onSearchEvent = (searchEventName: String) => {}; onOk = () => { const {editor} = this.props; editor.emit('event-setter.bindEvent',this.state.eventName); this.closeDialog(); }; render() { const { selectedEventName, eventName,visiable} = this.state; return (
事件选择
  • 内置函数
  • 组件事件
  • this.onSelectItem('')} > 新建事件
  • {this.eventList.map((item, index) => (
  • this.onSelectItem(item.name)} > {item.name}
  • ))}
事件名称
参数设置
); } }