diff --git a/packages/demo/src/editor/config.js b/packages/demo/src/editor/config.js index 7223c6031..6a3d83930 100644 --- a/packages/demo/src/editor/config.js +++ b/packages/demo/src/editor/config.js @@ -123,6 +123,9 @@ export default { const simulatorUrl = [ 'https://dev.g.alicdn.com/ali-lowcode/ali-lowcode-engine/0.9.50/react-simulator-renderer.css', 'https://dev.g.alicdn.com/ali-lowcode/ali-lowcode-engine/0.9.50/react-simulator-renderer.js', + // for debug simulator + // 'http://localhost:3333/js/react-simulator-renderer.js', + ]; editor.set('simulatorUrl', simulatorUrl); // editor.set('renderEnv', 'rax'); diff --git a/packages/designer/src/project/project.ts b/packages/designer/src/project/project.ts index 13cb65be0..b4148ebff 100644 --- a/packages/designer/src/project/project.ts +++ b/packages/designer/src/project/project.ts @@ -33,6 +33,15 @@ export class Project { }; } + /** + * 替换当前document的schema,并触发渲染器的render + * @param schema + */ + setSchema(schema?: ProjectSchema){ + let doc = this.documents.find((doc) => doc.actived); + doc && doc.import(schema?.componentsTree[0]); + } + /** * 整体设置项目 schema * diff --git a/packages/editor-skeleton/src/transducers/addon-combine.ts b/packages/editor-skeleton/src/transducers/addon-combine.ts index 234f3f8ee..b00547e42 100644 --- a/packages/editor-skeleton/src/transducers/addon-combine.ts +++ b/packages/editor-skeleton/src/transducers/addon-combine.ts @@ -207,7 +207,6 @@ export default function(metadata: TransformedComponentMetadata): TransformedComp }, setValue(field: SettingTarget, eventData) { - debugger; const { eventDataList, eventList } = eventData; eventList.map((item) => { field.parent.clearPropValue(item.name); diff --git a/packages/plugin-event-bind-dialog/src/index.tsx b/packages/plugin-event-bind-dialog/src/index.tsx index ed3655d38..3170aff73 100644 --- a/packages/plugin-event-bind-dialog/src/index.tsx +++ b/packages/plugin-event-bind-dialog/src/index.tsx @@ -48,18 +48,25 @@ export default class EventBindDialog extends Component { // }, ]; + private bindEventName :'' + state: any = { visiable: false, setterName:'event-setter', selectedEventName: '', eventName: '', + bindEventName:'', paramStr:'' }; openDialog = (bindEventName: String) => { + this.bindEventName = bindEventName; + + this.initEventName(); + this.setState({ visiable: true, - eventName: bindEventName, + selectedEventName:'' }); }; @@ -69,9 +76,6 @@ export default class EventBindDialog extends Component { }); }; - - - componentDidMount() { const { editor, config } = this.props; editor.on(`${config.pluginKey}.openDialog`, (bindEventName: String,setterName:String,paramStr:String) => { @@ -96,8 +100,7 @@ export default class EventBindDialog extends Component { } initEventName = () => { - const { bindEventName } = this.state; - let eventName = bindEventName; + let eventName = this.bindEventName; this.eventList.map((item) => { if (item.name === eventName) { eventName = `${eventName}_new`; diff --git a/packages/plugin-source-editor/src/index.scss b/packages/plugin-source-editor/src/index.scss index 020aad20f..9176056ca 100644 --- a/packages/plugin-source-editor/src/index.scss +++ b/packages/plugin-source-editor/src/index.scss @@ -17,7 +17,7 @@ height: 100%; width: 100%; position: absolute; - top: 35px; + top: 38px; } diff --git a/packages/plugin-source-editor/src/index.tsx b/packages/plugin-source-editor/src/index.tsx index dc384da98..b746179d8 100644 --- a/packages/plugin-source-editor/src/index.tsx +++ b/packages/plugin-source-editor/src/index.tsx @@ -108,6 +108,8 @@ export default class SourceEditor extends Component<{ }); } + this.showJsEditor(); + if (eventName === 'sourceEditor.addFunction') { setTimeout(() => { this.addFunction(params); @@ -218,14 +220,22 @@ export default class SourceEditor extends Component<{ }); if (key === TAB_KEY.JS_TAB) { - document.getElementById('cssEditorDom').setAttribute('style', 'display:none'); - document.getElementById('jsEditorDom').setAttribute('style', 'block'); + this.showJsEditor(); } else { - document.getElementById('jsEditorDom').setAttribute('style', 'display:none'); - document.getElementById('cssEditorDom').setAttribute('style', 'block'); + this.showCssEditor(); } }; + showJsEditor = () => { + document.getElementById('cssEditorDom').setAttribute('style', 'display:none'); + document.getElementById('jsEditorDom').setAttribute('style', 'block'); + } + + showCssEditor = () => { + document.getElementById('jsEditorDom').setAttribute('style', 'display:none'); + document.getElementById('cssEditorDom').setAttribute('style', 'block'); + } + updateCode = (newCode) => { const { selectTab } = this.state; const { editor } = this.props; @@ -258,7 +268,7 @@ export default class SourceEditor extends Component<{ let newSchema = transfrom.setFunction2Schema(functionMap, schema); if (newSchema!='' && JSON.stringify(newSchema) != oldSchemaStr){ - editor.get('designer').project.load(newSchema,true); + editor.get('designer').project.setSchema(newSchema); } } diff --git a/packages/react-renderer/src/renderer/page.jsx b/packages/react-renderer/src/renderer/page.jsx index fcfbaf708..9c796ba02 100644 --- a/packages/react-renderer/src/renderer/page.jsx +++ b/packages/react-renderer/src/renderer/page.jsx @@ -74,6 +74,13 @@ export default class PageRenderer extends BaseRenderer { return '页面schema结构异常!'; } debug(`page.render - ${__schema.fileName}`); + + this.state = this.__parseData(__schema.state || {}); + this.__bindCustomMethods(this.props); + this.__initDataSource(this.props); + + // this.__setLifeCycleMethods('constructor', arguments); + this.__generateCtx({ page: this, });