From f445ffe7970f8b5a5465658dd1fef7bc11e9b26c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=A5=E5=B8=8C?= Date: Thu, 16 Jul 2020 20:48:35 +0800 Subject: [PATCH 01/10] =?UTF-8?q?feat:=20demo=20=E6=9E=84=E9=80=A0=20compo?= =?UTF-8?q?nentsMap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/demo/src/editor/plugins/codeout.tsx | 48 +++++++++++--------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/packages/demo/src/editor/plugins/codeout.tsx b/packages/demo/src/editor/plugins/codeout.tsx index d537961fe..6fcaeee5b 100644 --- a/packages/demo/src/editor/plugins/codeout.tsx +++ b/packages/demo/src/editor/plugins/codeout.tsx @@ -14,6 +14,14 @@ const Codeout = ({ editor }: PluginProps) => { const handleClick = () => { const designer = editor.get(Designer); if (designer) { + const assets = editor.get('assets'); + console.log(assets.components); + + const componentsMap = assets.components.map((c) => ({ + componentName: c.componentName, + ...(c.npm || {}), + })); + const fullSchema = { ...designer.schema, config: { @@ -23,30 +31,28 @@ const Codeout = ({ editor }: PluginProps) => { meta: { name: 'demoproject', }, + componentsMap, }; console.info('codeout schema:', fullSchema); - // localStorage.setItem('lce-dev-store', JSON.stringify(designer.schema)); - fetch(`http://${CODEOUT_SERVICE_HOST}/api/generate/project`, { - method: 'POST', - body: JSON.stringify({ schema: JSON.stringify(fullSchema) }), - headers: new Headers({ - 'Content-Type': 'application/json', - }), - mode: 'cors', - }).then((res) => { - console.log(res); - - const fileStream = streamSaver.createWriteStream('demoProject.zip'); - res.body.pipeTo(fileStream).then( - () => { - console.log('success'); - }, - (err) => { - console.log(err); - }, - ); - }); + // fetch(`http://${CODEOUT_SERVICE_HOST}/api/generate/project`, { + // method: 'POST', + // body: JSON.stringify({ schema: JSON.stringify(fullSchema) }), + // headers: new Headers({ + // 'Content-Type': 'application/json', + // }), + // mode: 'cors', + // }).then((res) => { + // const fileStream = streamSaver.createWriteStream('demoProject.zip'); + // res.body.pipeTo(fileStream).then( + // () => { + // console.log('success'); + // }, + // (err) => { + // console.log(err); + // }, + // ); + // }); } }; From 9d6db96b052990071343cc53512567ae2b3e2d6f Mon Sep 17 00:00:00 2001 From: "zude.hzd" Date: Thu, 16 Jul 2020 21:21:27 +0800 Subject: [PATCH 02/10] event-dialog load schema --- .../plugin-event-bind-dialog/src/index.tsx | 43 ++++++++++++------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/packages/plugin-event-bind-dialog/src/index.tsx b/packages/plugin-event-bind-dialog/src/index.tsx index c90d16bb3..e2b5653cf 100644 --- a/packages/plugin-event-bind-dialog/src/index.tsx +++ b/packages/plugin-event-bind-dialog/src/index.tsx @@ -5,21 +5,21 @@ import './index.scss'; export default class EventBindDialog extends Component { private eventList: any[] = [ - { - name: 'getData', - }, - { - name: 'deleteData', - }, - { - name: 'initData', - }, - { - name: 'editData', - }, - { - name: 'submitData', - }, + // { + // name: 'getData', + // }, + // { + // name: 'deleteData', + // }, + // { + // name: 'initData', + // }, + // { + // name: 'editData', + // }, + // { + // name: 'submitData', + // }, ]; state: any = { @@ -41,10 +41,23 @@ export default class EventBindDialog extends Component { }); }; + + + componentDidMount() { const { editor, config } = this.props; editor.on(`${config.pluginKey}.openDialog`, (bindEventName: String) => { this.openDialog(bindEventName); + + let schema = editor.get('designer').project.getSchema(); + let pageNode = schema.componentsTree[0]; + if (pageNode.methods){ + for (let key in pageNode.methods){ + this.eventList.push({ + name:key + }) + } + } }); } From 439d4551b2545338c066999f7645c08491a2b712 Mon Sep 17 00:00:00 2001 From: "zude.hzd" Date: Thu, 16 Jul 2020 21:22:44 +0800 Subject: [PATCH 03/10] fix bug --- packages/plugin-event-bind-dialog/src/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/plugin-event-bind-dialog/src/index.tsx b/packages/plugin-event-bind-dialog/src/index.tsx index e2b5653cf..63d1a788d 100644 --- a/packages/plugin-event-bind-dialog/src/index.tsx +++ b/packages/plugin-event-bind-dialog/src/index.tsx @@ -52,6 +52,7 @@ export default class EventBindDialog extends Component { let schema = editor.get('designer').project.getSchema(); let pageNode = schema.componentsTree[0]; if (pageNode.methods){ + this.eventList = []; for (let key in pageNode.methods){ this.eventList.push({ name:key From fd7f6266a6a68812eb589ea268e3f53acafcf2ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E7=A6=85?= Date: Thu, 16 Jul 2020 21:39:08 +0800 Subject: [PATCH 04/10] update schema --- packages/demo/public/assets.json | 6 +++--- packages/demo/public/schema.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/demo/public/assets.json b/packages/demo/public/assets.json index beba9a198..5fa6a427d 100644 --- a/packages/demo/public/assets.json +++ b/packages/demo/public/assets.json @@ -4802,7 +4802,7 @@ ] }, { - "componentName": "From.Error", + "componentName": "Form.Error", "title": "@alifd/next", "docUrl": "", "screenshot": "", @@ -12479,7 +12479,7 @@ ] }, { - "componentName": "Field", + "componentName": "Form.Item", "title": "表单辅助工具", "icon": "", "package": "@alife/next", @@ -12489,7 +12489,7 @@ "title": "表单辅助工具", "screenshot": "", "schema": { - "componentName": "Field", + "componentName": "Form.Item", "props": {} } } diff --git a/packages/demo/public/schema.json b/packages/demo/public/schema.json index 94472e42a..4ede06f9d 100644 --- a/packages/demo/public/schema.json +++ b/packages/demo/public/schema.json @@ -49,7 +49,7 @@ "initValue": "李雷" }, "children": [{ - "componentName": "From.Input", + "componentName": "Input", "props": { "placeholder": "请输入", "size": "medium", From ce6e907a3dc5788d8738afc21b0ce875cc0667c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E7=A6=85?= Date: Thu, 16 Jul 2020 22:45:57 +0800 Subject: [PATCH 05/10] fix container issue of material --- packages/demo/public/assets.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/demo/public/assets.json b/packages/demo/public/assets.json index 5fa6a427d..2f8909c11 100644 --- a/packages/demo/public/assets.json +++ b/packages/demo/public/assets.json @@ -982,7 +982,12 @@ "value": "node" } } - ] + ], + "configure": { + "component": { + "isContainer": true + } + } }, { "componentName": "Calendar", @@ -4706,7 +4711,12 @@ "propType": "func", "description": "预览态模式下渲染的内容\n@param {any} value 根据包裹的组件的 value 类型而决定" } - ] + ], + "configure": { + "component": { + "isContainer": true + } + } }, { "componentName": "Form.Submit", @@ -11449,7 +11459,7 @@ }, { "componentName": "Box", - "title": "@alifd/next", + "title": "弹性布局", "docUrl": "", "screenshot": "", "npm": { From 0bcffe9c51085ddb7b93cb726c39e8241e4d7d96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E7=A6=85?= Date: Thu, 16 Jul 2020 23:32:41 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=9C=A8=E5=A4=A7=E7=BA=B2=E6=A0=91=E5=90=8D=E7=A7=B0=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E7=9A=84=E9=97=AE=E9=A2=98=E5=92=8C=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=20styleSetter=20=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/demo/public/assets.json | 483 ++++++++++++++++++++++++------- 1 file changed, 375 insertions(+), 108 deletions(-) diff --git a/packages/demo/public/assets.json b/packages/demo/public/assets.json index 2f8909c11..ed24df8f4 100644 --- a/packages/demo/public/assets.json +++ b/packages/demo/public/assets.json @@ -24,22 +24,27 @@ "components": [ { "componentName": "Page", - "title": "页面", + "title": "Page", "configure": { "events": { - "supportedLifecycles": [{ - "description": "初始化时", - "name": "constructor" - }, { - "description": "装载后", - "name": "componentDidMount" - }, { - "description": "更新时", - "name": "componentDidMount" - }, { - "description": "卸载时", - "name": "componentWillUnmount" - }] + "supportedLifecycles": [ + { + "description": "初始化时", + "name": "constructor" + }, + { + "description": "装载后", + "name": "componentDidMount" + }, + { + "description": "更新时", + "name": "componentDidMount" + }, + { + "description": "卸载时", + "name": "componentWillUnmount" + } + ] }, "component": { "isContainer": true @@ -48,7 +53,7 @@ }, { "componentName": "Div", - "title": "容器", + "title": "Div", "configure": { "component": { "isContainer": true @@ -57,7 +62,7 @@ }, { "componentName": "Badge", - "title": "@alifd/next", + "title": "Badge", "docUrl": "", "screenshot": "", "npm": { @@ -142,7 +147,7 @@ }, { "componentName": "Balloon", - "title": "@alifd/next", + "title": "Balloon", "docUrl": "", "screenshot": "", "npm": { @@ -389,7 +394,7 @@ }, { "componentName": "Tooltip", - "title": "@alifd/next", + "title": "Tooltip", "docUrl": "", "screenshot": "", "npm": { @@ -509,7 +514,7 @@ }, { "componentName": "BalloonInner", - "title": "@alifd/next", + "title": "BalloonInner", "docUrl": "", "screenshot": "", "npm": { @@ -583,7 +588,7 @@ }, { "componentName": "Breadcrumb", - "title": "@alifd/next", + "title": "Breadcrumb", "docUrl": "", "screenshot": "", "npm": { @@ -653,6 +658,10 @@ { "name": "className", "propType": "any" + }, + { + "name": "style", + "propType": "object" } ] }, @@ -734,12 +743,16 @@ { "name": "className", "propType": "any" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Breadcrumb.Item", - "title": "@alifd/next", + "title": "Breadcrumb.Item", "docUrl": "", "screenshot": "", "npm": { @@ -786,12 +799,16 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Button", - "title": "@alifd/next", + "title": "Button", "docUrl": "", "screenshot": "", "npm": { @@ -939,6 +956,11 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object", + "description": "自定义内联样式" } ] }, @@ -981,6 +1003,11 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object", + "description": "自定义内联样式" } ], "configure": { @@ -991,7 +1018,7 @@ }, { "componentName": "Calendar", - "title": "@alifd/next", + "title": "Calendar", "docUrl": "", "screenshot": "", "npm": { @@ -1113,12 +1140,16 @@ "name": "locale", "propType": "object", "description": "国际化配置" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "RangeCalendar", - "title": "@alifd/next", + "title": "RangeCalendar", "docUrl": "", "screenshot": "", "npm": { @@ -1230,12 +1261,16 @@ { "name": "className", "propType": "string" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Card", - "title": "@alifd/next", + "title": "Card", "docUrl": "", "screenshot": "", "npm": { @@ -1336,12 +1371,16 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "CardHeader", - "title": "@alifd/next", + "title": "CardHeader", "docUrl": "", "screenshot": "", "npm": { @@ -1394,12 +1433,16 @@ { "name": "className", "propType": "string" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "CardMedia", - "title": "@alifd/next", + "title": "CardMedia", "docUrl": "", "screenshot": "", "npm": { @@ -1447,7 +1490,7 @@ }, { "componentName": "CardDivider", - "title": "@alifd/next", + "title": "CardDivider", "docUrl": "", "screenshot": "", "npm": { @@ -1481,12 +1524,16 @@ { "name": "className", "propType": "string" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "CardContent", - "title": "@alifd/next", + "title": "CardContent", "docUrl": "", "screenshot": "", "npm": { @@ -1515,12 +1562,16 @@ { "name": "className", "propType": "string" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "CardActions", - "title": "@alifd/next", + "title": "CardActions", "docUrl": "", "screenshot": "", "npm": { @@ -1549,12 +1600,16 @@ { "name": "className", "propType": "string" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "CardBulletHeader", - "title": "@alifd/next", + "title": "CardBulletHeader", "docUrl": "", "screenshot": "", "npm": { @@ -1600,12 +1655,16 @@ "value": "node" }, "description": "标题区域的用户自定义内容" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "CardCollaspeContent", - "title": "@alifd/next", + "title": "CardCollaspeContent", "docUrl": "", "screenshot": "", "npm": { @@ -1644,12 +1703,16 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Cascader", - "title": "@alifd/next", + "title": "Cascader", "docUrl": "", "screenshot": "", "npm": { @@ -1778,12 +1841,16 @@ { "name": "resultRender", "propType": "func" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "CascaderSelect", - "title": "@alifd/next", + "title": "CascaderSelect", "docUrl": "", "screenshot": "", "npm": { @@ -2037,12 +2104,16 @@ "name": "renderPreview", "propType": "func", "description": "预览态模式下渲染的内容\n@param {Array} value 选择值 { label: , value:}" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Checkbox", - "title": "@alifd/next", + "title": "Checkbox", "docUrl": "", "screenshot": "", "npm": { @@ -2159,7 +2230,7 @@ }, { "componentName": "CheckboxGroup", - "title": "@alifd/next", + "title": "CheckboxGroup", "docUrl": "", "screenshot": "", "npm": { @@ -2257,7 +2328,7 @@ }, { "componentName": "Collapse", - "title": "@alifd/next", + "title": "Collapse", "docUrl": "", "screenshot": "", "npm": { @@ -2344,7 +2415,7 @@ }, { "componentName": "Panel", - "title": "@alifd/next", + "title": "Panel", "docUrl": "", "screenshot": "", "npm": { @@ -2406,7 +2477,7 @@ }, { "componentName": "ErrorBoundary", - "title": "@alifd/next", + "title": "ErrorBoundary", "docUrl": "", "screenshot": "", "npm": { @@ -2434,12 +2505,16 @@ "name": "fallbackUI", "propType": "func", "description": "捕获错误后的展现 自定义组件\n@param {Object} error 错误\n@param {Object} errorInfo 错误详细信息\n@returns {Element} 捕获错误后的处理" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "DatePicker", - "title": "@alifd/next", + "title": "DatePicker", "docUrl": "", "screenshot": "", "npm": { @@ -2706,12 +2781,16 @@ { "name": "disableChangeMode", "propType": "bool" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "RangePicker", - "title": "@alifd/next", + "title": "RangePicker", "docUrl": "", "screenshot": "", "npm": { @@ -3001,12 +3080,16 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "MonthPicker", - "title": "@alifd/next", + "title": "MonthPicker", "docUrl": "", "screenshot": "", "npm": { @@ -3231,12 +3314,16 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "YearPicker", - "title": "@alifd/next", + "title": "YearPicker", "docUrl": "", "screenshot": "", "npm": { @@ -3451,12 +3538,16 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "WeekPicker", - "title": "@alifd/next", + "title": "WeekPicker", "docUrl": "", "screenshot": "", "npm": { @@ -3686,12 +3777,16 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Dialog", - "title": "@alifd/next", + "title": "Dialog", "docUrl": "", "screenshot": "", "npm": { @@ -3895,12 +3990,16 @@ { "name": "popupContainer", "propType": "any" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Inner", - "title": "@alifd/next", + "title": "Inner", "docUrl": "", "screenshot": "", "npm": { @@ -4012,12 +4111,16 @@ { "name": "height", "propType": "string" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Dropdown", - "title": "@alifd/next", + "title": "Dropdown", "docUrl": "", "screenshot": "", "npm": { @@ -4151,12 +4254,16 @@ ] }, "description": "配置动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画\n@default { in: 'expandInDown', out: 'expandOutUp' }" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Table", - "title": "@alifd/next", + "title": "Table", "docUrl": "", "screenshot": "", "npm": { @@ -4168,6 +4275,10 @@ "subName": "" }, "props": [ + { + "name": "style", + "propType": "object" + } ] }, { @@ -4720,7 +4831,7 @@ }, { "componentName": "Form.Submit", - "title": "@alifd/next", + "title": "Form.Submit", "docUrl": "", "screenshot": "", "npm": { @@ -4762,12 +4873,16 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Form.Reset", - "title": "@alifd/next", + "title": "Form.Reset", "docUrl": "", "screenshot": "", "npm": { @@ -4808,12 +4923,16 @@ "type": "instanceOf", "value": "node" } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Form.Error", - "title": "@alifd/next", + "title": "Form.Error", "docUrl": "", "screenshot": "", "npm": { @@ -4875,7 +4994,7 @@ }, { "componentName": "Icon", - "title": "@alifd/next", + "title": "Icon", "docUrl": "", "screenshot": "", "npm": { @@ -4940,7 +5059,7 @@ }, { "componentName": "Input", - "title": "@alifd/next", + "title": "Input", "docUrl": "", "screenshot": "", "npm": { @@ -5108,12 +5227,16 @@ "name": "renderPreview", "propType": "func", "description": "预览态模式下渲染的内容\n@param {number} value 评分值" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Input.Password", - "title": "@alifd/next", + "title": "Input.Password", "docUrl": "", "screenshot": "", "npm": { @@ -5130,12 +5253,16 @@ "propType": "bool", "description": "是否展示切换按钮", "defaultValue": true + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Input.TextArea", - "title": "@alifd/next", + "title": "Input.TextArea", "docUrl": "", "screenshot": "", "npm": { @@ -5192,12 +5319,16 @@ "name": "renderPreview", "propType": "func", "description": "预览态模式下渲染的内容\n@param {number} value 评分值" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Input.Group", - "title": "@alifd/next", + "title": "Input.Group", "docUrl": "", "screenshot": "", "npm": { @@ -5265,7 +5396,7 @@ }, { "componentName": "Loading", - "title": "@alifd/next", + "title": "Loading", "docUrl": "", "screenshot": "", "npm": { @@ -5370,7 +5501,7 @@ }, { "componentName": "Menu", - "title": "@alifd/next", + "title": "Menu", "docUrl": "", "screenshot": "", "npm": { @@ -5705,12 +5836,16 @@ { "name": "itemClassName", "propType": "string" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "SubMenu", - "title": "@alifd/next", + "title": "SubMenu", "docUrl": "", "screenshot": "", "npm": { @@ -5822,12 +5957,16 @@ "popup" ] } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "SelectableItem", - "title": "@alifd/next", + "title": "SelectableItem", "docUrl": "", "screenshot": "", "npm": { @@ -5905,12 +6044,16 @@ { "name": "isSelectIconRight", "propType": "bool" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "CheckboxItem", - "title": "@alifd/next", + "title": "CheckboxItem", "docUrl": "", "screenshot": "", "npm": { @@ -5965,12 +6108,16 @@ "name": "checkboxDisabled", "propType": "bool", "defaultValue": false + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "RadioItem", - "title": "@alifd/next", + "title": "RadioItem", "docUrl": "", "screenshot": "", "npm": { @@ -6014,12 +6161,16 @@ "value": "node" }, "description": "标签内容" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "PopupItem", - "title": "@alifd/next", + "title": "PopupItem", "docUrl": "", "screenshot": "", "npm": { @@ -6104,12 +6255,16 @@ { "name": "autoWidth", "propType": "bool" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Group", - "title": "@alifd/next", + "title": "Group", "docUrl": "", "screenshot": "", "npm": { @@ -6154,12 +6309,16 @@ "popup" ] } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Divider", - "title": "@alifd/next", + "title": "Divider", "docUrl": "", "screenshot": "", "npm": { @@ -6178,12 +6337,16 @@ { "name": "className", "propType": "string" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "MenuButton", - "title": "@alifd/next", + "title": "MenuButton", "docUrl": "", "screenshot": "", "npm": { @@ -6325,7 +6488,7 @@ }, { "componentName": "Message", - "title": "@alifd/next", + "title": "Message", "docUrl": "", "screenshot": "", "npm": { @@ -6462,7 +6625,7 @@ }, { "componentName": "Nav", - "title": "@alifd/next", + "title": "Nav", "docUrl": "", "screenshot": "", "npm": { @@ -6702,7 +6865,7 @@ }, { "componentName": "Item", - "title": "@alifd/next", + "title": "Item", "docUrl": "", "screenshot": "", "npm": { @@ -6745,12 +6908,16 @@ "popup" ] } + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Group", - "title": "@alifd/next", + "title": "Group", "docUrl": "", "screenshot": "", "npm": { @@ -6782,12 +6949,16 @@ "value": "node" }, "description": "导航项和子导航" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "SubNav", - "title": "@alifd/next", + "title": "SubNav", "docUrl": "", "screenshot": "", "npm": { @@ -6839,12 +7010,16 @@ "value": "node" }, "description": "导航项和子导航" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "PopupItem", - "title": "@alifd/next", + "title": "PopupItem", "docUrl": "", "screenshot": "", "npm": { @@ -6890,12 +7065,16 @@ "value": "node" }, "description": "弹出内容" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "NumberPicker", - "title": "@alifd/next", + "title": "NumberPicker", "docUrl": "", "screenshot": "", "npm": { @@ -7102,7 +7281,7 @@ }, { "componentName": "Pagination", - "title": "@alifd/next", + "title": "Pagination", "docUrl": "", "screenshot": "", "npm": { @@ -7294,12 +7473,16 @@ "name": "popupProps", "propType": "object", "description": "弹层组件属性,透传给Popup" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Progress", - "title": "@alifd/next", + "title": "Progress", "docUrl": "", "screenshot": "", "npm": { @@ -7390,12 +7573,16 @@ { "name": "rtl", "propType": "bool" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Radio", - "title": "@alifd/next", + "title": "Radio", "docUrl": "", "screenshot": "", "npm": { @@ -7500,7 +7687,7 @@ }, { "componentName": "RadioGroup", - "title": "@alifd/next", + "title": "RadioGroup", "docUrl": "", "screenshot": "", "npm": { @@ -7629,7 +7816,7 @@ }, { "componentName": "Range", - "title": "@alifd/next", + "title": "Range", "docUrl": "", "screenshot": "", "npm": { @@ -7775,7 +7962,7 @@ }, { "componentName": "Rating", - "title": "@alifd/next", + "title": "Rating", "docUrl": "", "screenshot": "", "npm": { @@ -7897,12 +8084,16 @@ "propType": "bool", "description": "是否为只读态,效果上同 disabeld", "defaultValue": false + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Search", - "title": "@alifd/next", + "title": "Search", "docUrl": "", "screenshot": "", "npm": { @@ -8097,7 +8288,7 @@ }, { "componentName": "Select", - "title": "@alifd/next", + "title": "Select", "docUrl": "", "screenshot": "", "npm": { @@ -8274,7 +8465,7 @@ }, { "componentName": "Slider", - "title": "@alifd/next", + "title": "Slider", "docUrl": "", "screenshot": "", "npm": { @@ -8608,7 +8799,7 @@ }, { "componentName": "SplitButton", - "title": "@alifd/next", + "title": "SplitButton", "docUrl": "", "screenshot": "", "npm": { @@ -8810,7 +9001,7 @@ }, { "componentName": "Step", - "title": "@alifd/next", + "title": "Step", "docUrl": "", "screenshot": "", "npm": { @@ -8895,12 +9086,16 @@ "propType": "func", "description": "StepItem 的自定义渲染\n@param {Number} index 节点索引\n@param {String} status 节点状态\n@returns {Node} 节点的渲染结果", "defaultValue": null + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "StepItem", - "title": "@alifd/next", + "title": "StepItem", "docUrl": "", "screenshot": "", "npm": { @@ -9047,12 +9242,16 @@ { "name": "readOnly", "propType": "bool" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Switch", - "title": "@alifd/next", + "title": "Switch", "docUrl": "", "screenshot": "", "npm": { @@ -9165,7 +9364,7 @@ }, { "componentName": "Tab", - "title": "@alifd/next", + "title": "Tab", "docUrl": "", "screenshot": "", "npm": { @@ -9361,12 +9560,16 @@ { "name": "className", "propType": "string" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "TabItem", - "title": "@alifd/next", + "title": "TabItem", "docUrl": "", "screenshot": "", "npm": { @@ -9417,12 +9620,16 @@ { "name": "children", "propType": "any" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "TabItem", - "title": "@alifd/next", + "title": "TabItem", "docUrl": "", "screenshot": "", "npm": { @@ -9473,12 +9680,16 @@ { "name": "children", "propType": "any" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "TimePicker", - "title": "@alifd/next", + "title": "TimePicker", "docUrl": "", "screenshot": "", "npm": { @@ -9707,12 +9918,16 @@ }, { "name": "locale" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Timeline", - "title": "@alifd/next", + "title": "Timeline", "docUrl": "", "screenshot": "", "npm": { @@ -9761,12 +9976,16 @@ "name": "animation", "propType": "bool", "defaultValue": true + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "TimelineItem", - "title": "@alifd/next", + "title": "TimelineItem", "docUrl": "", "screenshot": "", "npm": { @@ -9875,12 +10094,16 @@ "propType": "bool", "description": "动画", "defaultValue": true + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Transfer", - "title": "@alifd/next", + "title": "Transfer", "docUrl": "", "screenshot": "", "npm": { @@ -10015,12 +10238,16 @@ "name": "children", "propType": "func", "description": "接收 children 自定义渲染列表" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Tree", - "title": "@alifd/next", + "title": "Tree", "docUrl": "", "screenshot": "", "npm": { @@ -10259,12 +10486,16 @@ { "name": "onItemKeyDown", "propType": "func" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "TreeNode", - "title": "@alifd/next", + "title": "TreeNode", "docUrl": "", "screenshot": "", "npm": { @@ -10400,12 +10631,16 @@ "name": "size", "propType": "number", "defaultValue": 1 + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "TreeSelect", - "title": "@alifd/next", + "title": "TreeSelect", "docUrl": "", "screenshot": "", "npm": { @@ -10626,12 +10861,16 @@ "name": "renderPreview", "propType": "func", "description": "预览态模式下渲染的内容\n@param {Array} value 选择值 { label: , value:}" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Typography", - "title": "@alifd/next", + "title": "Typography", "docUrl": "", "screenshot": "", "npm": { @@ -10651,12 +10890,16 @@ }, "description": "设置标签类型", "defaultValue": "article" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Paragraph", - "title": "@alifd/next", + "title": "Paragraph", "docUrl": "", "screenshot": "", "npm": { @@ -10689,12 +10932,16 @@ { "name": "size", "defaultValue": "medium" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Text", - "title": "@alifd/next", + "title": "Text", "docUrl": "", "screenshot": "", "npm": { @@ -10761,12 +11008,16 @@ "name": "rtl", "propType": "bool", "defaultValue": false + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Upload", - "title": "@alifd/next", + "title": "Upload", "docUrl": "", "screenshot": "", "npm": { @@ -10980,7 +11231,7 @@ }, { "componentName": "Selecter", - "title": "@alifd/next", + "title": "Selecter", "docUrl": "", "screenshot": "", "npm": { @@ -11061,7 +11312,7 @@ }, { "componentName": "Dragger", - "title": "@alifd/next", + "title": "Dragger", "docUrl": "", "screenshot": "", "npm": { @@ -11137,7 +11388,7 @@ }, { "componentName": "List", - "title": "@alifd/next", + "title": "List", "docUrl": "", "screenshot": "", "npm": { @@ -11239,12 +11490,16 @@ { "name": "isPreview", "propType": "bool" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Avatar", - "title": "@alifd/next", + "title": "Avatar", "docUrl": "", "screenshot": "", "npm": { @@ -11333,12 +11588,16 @@ "name": "srcSet", "propType": "string", "description": "图片类头像响应式资源地址" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "ResponsiveGrid", - "title": "@alifd/next", + "title": "ResponsiveGrid", "docUrl": "", "screenshot": "", "npm": { @@ -11401,12 +11660,16 @@ }, "description": "设置标签类型", "defaultValue": "div" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Cell", - "title": "@alifd/next", + "title": "Cell", "docUrl": "", "screenshot": "", "npm": { @@ -11454,12 +11717,16 @@ }, "description": "设置标签类型", "defaultValue": "div" + }, + { + "name": "style", + "propType": "object" } ] }, { "componentName": "Box", - "title": "弹性布局", + "title": "Box", "docUrl": "", "screenshot": "", "npm": { @@ -12089,7 +12356,7 @@ "size": "medium", "htmlType": "button", "component": "button", - "children": [ "123" ] + "children": [ ] } } }, From f2110d5f731039ceebc365ebb4e729612dc140a6 Mon Sep 17 00:00:00 2001 From: "mark.ck" Date: Fri, 17 Jul 2020 04:03:10 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=B8=B2=E6=9F=93=20bu?= =?UTF-8?q?tton=20=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/demo/public/assets.json | 16 +++++++++++----- packages/demo/public/schema.json | 10 +++++++++- packages/react-renderer/src/engine/base.jsx | 2 +- packages/react-renderer/src/utils/index.js | 2 ++ .../src/renderer-view.tsx | 3 +-- 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/packages/demo/public/assets.json b/packages/demo/public/assets.json index ed24df8f4..3a9ce284a 100644 --- a/packages/demo/public/assets.json +++ b/packages/demo/public/assets.json @@ -962,7 +962,12 @@ "propType": "object", "description": "自定义内联样式" } - ] + ], + "configure": { + "component": { + "isContainer": true + } + } }, { "componentName": "Button.Group", @@ -12355,9 +12360,9 @@ "type": "normal", "size": "medium", "htmlType": "button", - "component": "button", - "children": [ ] - } + "component": "button" + }, + "children": "取消" } }, { @@ -12370,7 +12375,8 @@ "size": "large", "htmlType": "button", "component": "button" - } + }, + "children": "提交" } } ] diff --git a/packages/demo/public/schema.json b/packages/demo/public/schema.json index 4ede06f9d..7fbf8aa9f 100644 --- a/packages/demo/public/schema.json +++ b/packages/demo/public/schema.json @@ -112,7 +112,15 @@ }, "htmlType": "submit" }, - "children": "提交" + "children": [ + { + "componentName": "Icon", + "props": { + "type": "success" + } + }, + "提交" + ] }, { "componentName": "Button", "props": { diff --git a/packages/react-renderer/src/engine/base.jsx b/packages/react-renderer/src/engine/base.jsx index 3f6f090c2..af8c6d4eb 100644 --- a/packages/react-renderer/src/engine/base.jsx +++ b/packages/react-renderer/src/engine/base.jsx @@ -310,7 +310,7 @@ export default class BaseEngine extends PureComponent { ...componentInfo, props: transformArrayToMap(componentInfo.props, 'name'), }, - }); + }) || {}; // 对于可以获取到ref的组件做特殊处理 if (acceptsRef(Comp)) { otherProps.ref = (ref) => { diff --git a/packages/react-renderer/src/utils/index.js b/packages/react-renderer/src/utils/index.js index cc5c5a256..19332fa96 100644 --- a/packages/react-renderer/src/utils/index.js +++ b/packages/react-renderer/src/utils/index.js @@ -63,6 +63,8 @@ const ENV = { */ export function isSchema(schema, ignoreArr) { if (isEmpty(schema)) return false; + // Leaf 组件也返回 true + if (schema.componentName === 'Leaf') return true; if (!ignoreArr && Array.isArray(schema)) return schema.every((item) => isSchema(item)); return !!(schema.componentName && schema.props && (typeof schema.props === 'object' || isJSExpression(schema.props))); } diff --git a/packages/react-simulator-renderer/src/renderer-view.tsx b/packages/react-simulator-renderer/src/renderer-view.tsx index c878cac76..720504e21 100644 --- a/packages/react-simulator-renderer/src/renderer-view.tsx +++ b/packages/react-simulator-renderer/src/renderer-view.tsx @@ -128,11 +128,10 @@ class Renderer extends Component<{ renderer: SimulatorRenderer }> { }); console.info('menuprops', viewProps); } - return createElement( getDeviceView(Component, device, designMode), viewProps, - leaf?.isContainer() ? (children == null ? [] : Array.isArray(children) ? children : [children]) : null, + leaf?.isContainer() ? (children == null ? [] : Array.isArray(children) ? children : [children]) : children, ); }} onCompGetRef={(schema: any, ref: ReactInstance | null) => { From bca9e2e0a8373de040dca1e5ee3eda3d0eb99f70 Mon Sep 17 00:00:00 2001 From: "mark.ck" Date: Fri, 17 Jul 2020 04:31:18 +0800 Subject: [PATCH 08/10] tweak --- packages/demo/public/schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/demo/public/schema.json b/packages/demo/public/schema.json index 7fbf8aa9f..e5a3b43e7 100644 --- a/packages/demo/public/schema.json +++ b/packages/demo/public/schema.json @@ -94,7 +94,7 @@ } }] }, { - "componentName": "Box", + "componentName": "Form.Item", "props": { "style": { "textAlign": "center" From c4f9505b1b7584fe0035d5868321216d59d6da13 Mon Sep 17 00:00:00 2001 From: "zude.hzd" Date: Sun, 19 Jul 2020 21:44:41 +0800 Subject: [PATCH 09/10] update event binding --- .../src/events-setter/index.tsx | 23 +++++++++++++------ .../src/transducers/addon-combine.ts | 19 ++++++++++++--- packages/plugin-source-editor/src/index.tsx | 2 +- 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/packages/editor-setters/src/events-setter/index.tsx b/packages/editor-setters/src/events-setter/index.tsx index 92f4eb319..6f364cdfe 100644 --- a/packages/editor-setters/src/events-setter/index.tsx +++ b/packages/editor-setters/src/events-setter/index.tsx @@ -33,15 +33,24 @@ export default class EventsSetter extends Component<{ relatedEventName: '', }; - + // constructor (){ + // super(); + // debugger; + // if (!this.props || !this.props.value){ + // this.setState({ + // eventDataList:[] + // }) + // } + // } static getDerivedStateFromProps(nextProps, prevState) { - const { value } = nextProps; - if (value !== prevState.eventDataList) { - return { - value, - }; - } + // const { value } = nextProps; + // debugger; + // if (value !== prevState.eventDataList) { + // return { + // value, + // }; + // } return null; } diff --git a/packages/editor-skeleton/src/transducers/addon-combine.ts b/packages/editor-skeleton/src/transducers/addon-combine.ts index 35844ab29..45eded24d 100644 --- a/packages/editor-skeleton/src/transducers/addon-combine.ts +++ b/packages/editor-skeleton/src/transducers/addon-combine.ts @@ -179,7 +179,7 @@ export default function(metadata: TransformedComponentMetadata): TransformedComp title: { type: 'i18n', 'zh-CN': '事件', 'en-US': 'Events' }, items: [ { - name: '!events', + name: 'events', title: { type: 'i18n', 'zh-CN': '事件设置', 'en-US': 'Events' }, setter: { componentName: 'EventsSetter', @@ -188,12 +188,25 @@ export default function(metadata: TransformedComponentMetadata): TransformedComp }, }, getValue(field: SettingTarget, val?: any[]) { - // todo: - return val; + let eventDataList = [] + for (let key in val){ + if (val[key].__eventData){ + eventDataList.push(val[key].__eventData) + } + } + return eventDataList; }, setValue(field: SettingTarget, eventDataList: any[]) { // todo: + eventDataList.map((item)=>{ + field.setPropValue(item.name,{ + type: 'JSFunction', + value: `function(){ this.${item.relatedEventName}() }`, + __eventData:item + }) + return item; + }) return; }, }, diff --git a/packages/plugin-source-editor/src/index.tsx b/packages/plugin-source-editor/src/index.tsx index 3becac7b7..245a3198a 100644 --- a/packages/plugin-source-editor/src/index.tsx +++ b/packages/plugin-source-editor/src/index.tsx @@ -258,7 +258,7 @@ export default class SourceEditor extends Component<{ this.updateCode(newCode)} editorDidMount={(editor, monaco) => this.editorDidMount.call(this, editor, monaco,TAB_KEY.JS_TAB)} /> From e65a038795f501a8b122de7ddb16621c9fb6f62a Mon Sep 17 00:00:00 2001 From: "zude.hzd" Date: Mon, 20 Jul 2020 15:00:43 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8D=A0=E4=BD=8D?= =?UTF-8?q?=E5=AE=B9=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react-simulator-renderer/src/renderer-view.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/react-simulator-renderer/src/renderer-view.tsx b/packages/react-simulator-renderer/src/renderer-view.tsx index 720504e21..c7848a05f 100644 --- a/packages/react-simulator-renderer/src/renderer-view.tsx +++ b/packages/react-simulator-renderer/src/renderer-view.tsx @@ -108,6 +108,17 @@ class Renderer extends Component<{ renderer: SimulatorRenderer }> { const leaf = host.document.getNode(__id); viewProps._leaf = leaf; viewProps._componentName = leaf?.componentName; + // 如果是容器 && 无children && 高宽为空 增加一个占位容器,方便拖动 + if (leaf.isContainer() && children == null && !viewProps.style){ + Object.assign(viewProps, { + style:{ + height:'100px', + backgroundColor:'#f0f0f0', + borderColor:'#666666', + border: '1px dotted' + } + }) + } if (viewProps._componentName === 'Menu') { Object.assign(viewProps, {