From 0614fa79602a89003be0fa425340d9cbc7f8d41d Mon Sep 17 00:00:00 2001 From: "zude.hzd" Date: Thu, 27 Aug 2020 18:00:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E5=85=A5=E5=8F=82=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/events-setter/index.tsx | 21 ++++++++-- .../src/transducers/addon-combine.ts | 3 +- .../plugin-event-bind-dialog/src/index.scss | 4 ++ .../plugin-event-bind-dialog/src/index.tsx | 41 +++++++++++++------ 4 files changed, 51 insertions(+), 18 deletions(-) diff --git a/packages/editor-setters/src/events-setter/index.tsx b/packages/editor-setters/src/events-setter/index.tsx index 775917a7f..cf6b78a9f 100644 --- a/packages/editor-setters/src/events-setter/index.tsx +++ b/packages/editor-setters/src/events-setter/index.tsx @@ -60,11 +60,14 @@ export default class EventsSetter extends Component<{ private bindEventName:String; componentDidMount() { + + console.log(this.state.eventDataList); + const {editor} = this.props.field; this.initEventBtns(); this.initEventList(); - editor.on(`${SETTER_NAME}.bindEvent`,(relatedEventName)=>{ - this.bindEvent(relatedEventName); + editor.on(`${SETTER_NAME}.bindEvent`,(relatedEventName,paramStr)=>{ + this.bindEvent(relatedEventName,paramStr); }) } @@ -329,16 +332,26 @@ export default class EventsSetter extends Component<{ openDialog = (bindEventName: String) => { const {editor} = this.props.field; + const {eventDataList} = this.state; + let paramStr; + eventDataList.map((item)=>{ + if (item.name == bindEventName){ + paramStr = item.paramStr; + } + }) this.bindEventName = bindEventName; - editor.emit('eventBindDialog.openDialog',bindEventName,SETTER_NAME); + editor.emit('eventBindDialog.openDialog',bindEventName,SETTER_NAME,paramStr); }; - bindEvent = (relatedEventName: String) => { + bindEvent = (relatedEventName: String,paramStr:String) => { const {eventDataList,eventList} = this.state; eventDataList.map(item => { if (item.name === this.bindEventName) { item.relatedEventName = relatedEventName; + if (paramStr){ + item.paramStr = paramStr + } } }); diff --git a/packages/editor-skeleton/src/transducers/addon-combine.ts b/packages/editor-skeleton/src/transducers/addon-combine.ts index 6909fe07a..234f3f8ee 100644 --- a/packages/editor-skeleton/src/transducers/addon-combine.ts +++ b/packages/editor-skeleton/src/transducers/addon-combine.ts @@ -207,6 +207,7 @@ export default function(metadata: TransformedComponentMetadata): TransformedComp }, setValue(field: SettingTarget, eventData) { + debugger; const { eventDataList, eventList } = eventData; eventList.map((item) => { field.parent.clearPropValue(item.name); @@ -215,7 +216,7 @@ export default function(metadata: TransformedComponentMetadata): TransformedComp eventDataList.map((item) => { field.parent.setPropValue(item.name, { type: 'JSFunction', - value: `function(){ this.${item.relatedEventName}() }`, + value: `function(){ this.${item.relatedEventName}(${item.paramStr?item.paramStr:''}) }`, }); return item; }); diff --git a/packages/plugin-event-bind-dialog/src/index.scss b/packages/plugin-event-bind-dialog/src/index.scss index 1ab0e5947..d84fdb51d 100644 --- a/packages/plugin-event-bind-dialog/src/index.scss +++ b/packages/plugin-event-bind-dialog/src/index.scss @@ -9,6 +9,10 @@ color: rgb(0, 0, 0); } + .editor-container{ + border: 1px solid rgba(31, 56, 88, 0.3); + } + .dialog-left-container { float: left; diff --git a/packages/plugin-event-bind-dialog/src/index.tsx b/packages/plugin-event-bind-dialog/src/index.tsx index 5822f802c..ed3655d38 100644 --- a/packages/plugin-event-bind-dialog/src/index.tsx +++ b/packages/plugin-event-bind-dialog/src/index.tsx @@ -53,6 +53,7 @@ export default class EventBindDialog extends Component { setterName:'event-setter', selectedEventName: '', eventName: '', + paramStr:'' }; openDialog = (bindEventName: String) => { @@ -73,10 +74,12 @@ export default class EventBindDialog extends Component { componentDidMount() { const { editor, config } = this.props; - editor.on(`${config.pluginKey}.openDialog`, (bindEventName: String,setterName:String) => { + editor.on(`${config.pluginKey}.openDialog`, (bindEventName: String,setterName:String,paramStr:String) => { + console.log('paramStr:'+paramStr); this.openDialog(bindEventName); this.setState({ - setterName + setterName, + paramStr }) let schema = editor.get('designer').project.getSchema(); @@ -131,10 +134,10 @@ export default class EventBindDialog extends Component { onSearchEvent = (searchEventName: String) => {}; onOk = () => { + console.log(this); const { editor } = this.props; - const {setterName,eventName} = this.state; - - editor.emit(`${setterName}.bindEvent`, eventName); + const {setterName,eventName,paramStr} = this.state; + editor.emit(`${setterName}.bindEvent`, eventName,paramStr); // 选中的是新建事件 if (this.state.selectedEventName == '') { @@ -153,15 +156,23 @@ export default class EventBindDialog extends Component { this.closeDialog(); }; + onChangeEditor = (paramStr) =>{ + this.setState({ + paramStr + }) + // console.log(newCode); + } + + render() { - const { selectedEventName, eventName, visiable } = this.state; + const { selectedEventName, eventName, visiable,paramStr } = this.state; return ( this.onOk()} >
@@ -206,12 +217,16 @@ export default class EventBindDialog extends Component {
参数设置
- this.updateCode(newCode)} - // editorDidMount={(editor, monaco) => this.editorDidMount.call(this, editor, monaco, TAB_KEY.JS_TAB)} - /> +
+ this.onChangeEditor(newCode)} + // editorDidMount={(editor, monaco) => this.editorDidMount.call(this, editor, monaco, TAB_KEY.JS_TAB)} + /> +
+