lowcode-engine icon indicating copy to clipboard operation
lowcode-engine copied to clipboard

低码组件资产的实现与协议规范中约定的不一致

Open Carrotzpc opened this issue 2 years ago • 1 comments

官方低码组件 demo 里低码组件资产的 schema 结构跟协议里约定的不一致

4f9625118a85cae58763ae31a7fbfd16 85d07f13e8385cdd8d3ba557c953360e 275c4039c4fa9251bcd84946ff910e8e

我按照协议里约定的格式添加低码组件资产不成功,必须按照 demo 中的格式才可以。如果按照 demo 中的格式,低码组件的 utils、constants、i18n 这些都是得拖拽添加低码组件后手动处理吗?


看官方 demo 及协议规范即可

  • demo: https://github.com/alibaba/lowcode-demo/blob/2db4b6ee3f/demo-lowcode-component/src/services/assets.json#L319
  • 协议:https://lowcode-engine.cn/site/docs/specs/assets-spec#22-packages-a

预期行为

期望低码组件资产的实现与协议规范中约定一致,这样更利于低码资产的 utils、constants、i18n 的处理


环境信息

  • AliLowCodeEngine version: v1.1.2 / 低代码引擎版本
  • AliLowCodeEngineExt version: v1.0.5 / 低代码引擎扩展包版本
  • Browser : chrome

Carrotzpc avatar Mar 16 '23 08:03 Carrotzpc

我们 review 了一下,这里引擎和资产包的实现确实有点问题,我们最近会做这个地方的修改,和协议对齐。

eternalsky avatar Mar 16 '23 08:03 eternalsky

用最新的 beta 版本尝试了下,目前已经可以支持完整的 ComponentSchema 了👍,不过有个小问题:

image

当引入的低码组件 schema 是一个完整的 ComponentSchema 时,将低码组件拖拽到画布中后,低码组件外层会包裹一个 div,这样会导致低码组件一直是一个块级元素。

目前使用的版本:

  • AliLowCodeEngine v1.1.5-beta
  • AliLowCodeExt v1.0.6-beta.19

补充一张截图:

image

Carrotzpc avatar Mar 31 '23 02:03 Carrotzpc

组件最外层是会有个容器的,但是可以通过配置样式设置器来改变这层的样式。

eternalsky avatar Mar 31 '23 05:03 eternalsky

这个容器的默认样式能改吗?用样式设置器的话设置的是组件的样式,应该影响不了外层容器的@eternalsky : image

Carrotzpc avatar Mar 31 '23 06:03 Carrotzpc

这里可能是因为没有 Component 这个组件,如果有 Component 这个组件,就没有 div 这一层了,可以试一下。

liujuping avatar Mar 31 '23 06:03 liujuping

资产里面引入了,还需要在哪里配置吗@liujuping ?

image


我自定义的 Component 组件有渲染出来的:

image

Carrotzpc avatar Mar 31 '23 06:03 Carrotzpc

这个外层容器如果在已经有 Component 组件的情况下,div 应该就是 Component 组件渲染出来的,那样式既然作用在 Component 组件上了不也就是达到效果了。

eternalsky avatar Mar 31 '23 07:03 eternalsky

问题是这一层不是 Component 渲染出来的,感觉是画布本身的逻辑@eternalsky: image

Carrotzpc avatar Mar 31 '23 07:03 Carrotzpc

应该是是我自定义了 lowcode-react-simulator-renderer 导致的,换成官方的可以了,感谢回复 @eternalsky @liujuping


确实是这样,我是本地启动的 lowcode-engine 项目,页面低码编辑器里 simulatorUrl 是从本地启动的 lowcode-engine 项目里引入的 http://localhost:5555/js/react-simulator-renderer.js ,组件及页面外面会多一层 <div device="default" locale="zh-CN" /> ,引入打包后的 react-simulator-renderer.js 就没问题了:

image

Carrotzpc avatar Mar 31 '23 09:03 Carrotzpc