56 Commits

Author SHA1 Message Date
roymondchen
074d76456b feat(editor,core,schema): 组件高级配置支持配置数据源方法 2024-02-28 14:33:57 +08:00
roymondchen
d3777b236d feat(data-source,utils,runtime): 数据源setData支持指定路径 2024-01-02 20:57:37 +08:00
roymondchen
7b6dcedfad feat(core,editor,ui): 新增页面片 2023-12-19 06:39:03 +00:00
roymondchen
86bdb9f099 feat(data-source): 支持在指定js环境下不执行init的配置 2023-12-18 17:27:37 +08:00
roymondchen
ffd8130269 feat(data-source): 数据源支持ssr 2023-11-15 15:27:23 +08:00
roymondchen
436fb3f5aa feat(core): 将事件响应中的剩余事件参数传入到配置的代码块与数据源方法中
re #551
2023-11-13 14:34:10 +08:00
roymondchen
168ec281aa fix(core): 设置page时查找原page兼容数字id情况
fix #547
2023-11-06 11:35:44 +08:00
roymondchen
83ab94fcad feat(data-source,editor,schema): 数据源mock新增在编辑器中使用的配置 2023-10-17 17:05:36 +08:00
roymondchen
4c46a4e575 feat(core,data-source): 数据源支持mock 2023-10-02 17:10:15 +08:00
roymondchen
502e59cfd7 refactor(core,data-source,schema): 将AppCore定义移到schema中 2023-09-13 16:47:34 +08:00
roymondchen
a8eea1a73b fix(core): node销毁后重新渲染再销毁不会触发destroy事件 2023-08-31 15:47:04 +08:00
roymondchen
7f48b4d9f5 chore(core,data-source): 将app传入datasourceManager 2023-08-25 17:39:37 +08:00
roymondchen
92df80e711 feat(core,data-source,ui,ui-react,ui-vue2,utils,runtime): 解析显示条件配置 2023-08-04 19:50:44 +08:00
roymondchen
2a0680c707 feat(core,editor,data-source,form,schema): 新增数据源方法配置,支持事件联动数据源方法 2023-07-18 19:35:54 +08:00
roymondchen
47c26ed189 fix(core): 一个组件配置多个相同的事件销毁后没有能成功移除事件绑定 2023-06-30 19:40:47 +08:00
roymondchen
74c9deaa29 feat(editor, core): 支持直接绑定整个数据源对象 2023-06-28 16:39:47 +08:00
roymondchen
b952e6efd1 feat(editor,core): 数据源模板改成使用 ES 分隔符 2023-06-26 20:30:38 +08:00
roymondchen
01d1dccbb6 feat(app,utils,runtime): 将resetcss.css移到utils,在runtime中引入 2023-06-08 17:44:06 +08:00
roymondchen
aac478eebc feat: 新增数据源 2023-05-29 11:33:44 +08:00
roymondchen
abcac71826 fix(core): node events 为空时,应为空数组
fix #500
2023-04-10 16:50:13 +08:00
roymondchen
3d9f38781a feat(core): 重新设置designWidth时,应该重新计算root font size 2023-04-10 16:40:20 +08:00
roymondchen
fb026a134f fix(core): style兼容hippy 2023-03-30 14:19:04 +08:00
roymondchen
44290b65ba fix(core): 没有设置curPage,默认取第一个page 2023-03-30 12:14:52 +08:00
roymondchen
5eb3b0dcae chore(core): 页面变化时仅移除配置的事件 2023-03-29 16:34:20 +08:00
parisma
39468f3b95 feat(editor,form,core,schema): 事件支持触发代码块 2023-03-29 07:13:57 +00:00
roymondchen
cfd2a6eee3 feat(core,runtime): 删除App中pages,只留下当前page 2023-03-28 21:06:38 +08:00
roymondchen
36c4ffa02e fix(core): 非浏览器环境屏蔽相关代码 2023-03-22 19:28:53 +08:00
roymondchen
f1f100f952 feat(core): 新增节点操作方法 2023-03-15 15:06:58 +08:00
oceanzhu
23708e4644 chore: 更新版权年份 2023-01-04 16:11:51 +08:00
oceanzhu
3fb880d09b refactor(stage):重构魔方编辑器stage代码
Squash merge branch 'feature/oc_actionbox_879360293' into 'master'
    对魔方编辑器核心代码stage进行重构,这部分代码主要是负责编辑器中间画布区域的处理,包括渲染一个所见即所得的画布,支持组件的增删改查和拖拽、高亮操作。
    旧代码存在的问题以及解决方案:
    1、过多暴露属性和循环引用,导致stageCore、stageDragResize、StageMultiDragResize、StageRender、StageMask、StageHighlight之间形成复杂的网状依赖,非常不可控。StageCore负责创建后面5个类的实例,并把这些实例作为自己的公共属性,同时core把自己的this传给这些实例,这些实例就会通过core传进来的this,通过core间接的访问其它实例的方法和属性,比如在stageDragResize中可能存在这样的一个访问:this.core.stageRender.contentWindow.document
    解决方案:
    1)、属性尽量设置为私有,对外暴露方法,不暴露属性;
    2)、core避免向其它类传递this,改为传递接口,需要什么就传什么

    2、事件传递较多,跳来跳去,定位问题较为困难
    解决方案:
    重新梳理各个类的职责,尽量在类中闭环,减少事件传递。
    新增了actionManager类,core负责管理render、mask、actionManager三个类;
    actionManager负责管理单选、多选、高亮三个类,同时将mask中的事件监听,转移到actionManager监听,actionManager形成单选、多选、高亮行为后,直接调动单选、多选、高亮完成功能。

    3、存在一些重复代码
    主要是拖拽框的代码在单选、多选、高亮中各自维护,改为统一维护

    4、多选不支持辅助线对齐
    将单选中的moveableOption管理逻辑抽取出来成为单选和多选的父类,使多选支持辅助线对齐

    本次改动取消了一些对外暴露的属性,moveableOption回调函数签名也有变化,详细情况如下:
    删除stageCore公共属性:
    public selectedDom: HTMLElement | undefined;
    public selectedDomList: HTMLElement[] = [];
    public highlightedDom: Element | undefined;
    public dr: StageDragResize;
    public multiDr: StageMultiDragResize;
    public highlightLayer: StageHighlight;
    public config: StageCoreConfig;
    public zoom = DEFAULT_ZOOM;
    public containerHighlightClassName: string;
    public containerHighlightDuration: number;
    public containerHighlightType?: ContainerHighlightType;
    public isContainer: IsContainer;

    stageCore入参改动:
    这两个参数原本定义:
    moveableOptions?: ((core?: StageCore) => MoveableOptions) | MoveableOptions;
    multiMoveableOptions?: ((core?: StageCore) => MoveableOptions) | MoveableOptions;
    修改后定义:
    moveableOptions?: CustomizeMoveableOptions;
    multiMoveableOptions?: CustomizeMoveableOptions;
    CustomizeMoveableOptions =
      | ((config?: CustomizeMoveableOptionsCallbackConfig) => MoveableOptions)
      | MoveableOptions
      | undefined;
    export interface CustomizeMoveableOptionsCallbackConfig {
      targetElId?: string;
    }
2022-11-24 21:19:56 +08:00
parisma
8195a600f5 feat(editor): 修改代码块参数结构,以对象形式暴露app,params 2022-11-22 04:28:54 +00:00
parisma
a03ac7c78b feat: core代码执行兼容老的数据格式 2022-11-10 20:10:21 +08:00
parisma
c7a8552d9b fix: 代码块结构改造完成 2022-11-10 19:53:35 +08:00
parisma
c4293f17a6 feat: 修改code_block结构,组件代码关系绑定改为table,绑定关系更新未完成 2022-11-10 19:53:35 +08:00
parisma
040d679b7f chore(core): ts报错修改 2022-09-28 16:17:25 +08:00
parisma
3bb8ecc975 fix(editor): 修复初始dsl无codeBlocks字段时无法新增的问题 2022-09-28 15:52:41 +08:00
i33
b3bae36d94 fix(runtime): 切换设计窗体大小时,同时修改app 2022-09-27 14:38:30 +08:00
parisma
415ecad24c refactor(editor): 修改代码块描述内容在dsl中的键名为codeBlock字段 2022-09-22 16:46:11 +08:00
parisma
c3b502254b fix(core): 修复执行代码块的顺序问题 2022-09-22 16:46:11 +08:00
parisma
896f92b5a8 fix(editor): 代码块删除支持传参处理失败逻辑,ts类型修复 2022-09-22 16:46:11 +08:00
parisma
310ee32d75 feat(core): 修改core生命周期钩子处理逻辑,执行对应的代码块 2022-09-22 16:46:11 +08:00
i33
34b628cc07 fix(core): 修复emit 无node时的情况 2022-09-22 12:19:22 +08:00
i33
b0419cdbaf fix(core): 保证传参行为一致 2022-09-22 12:19:22 +08:00
i33
a96d547c20 fix(core): 修复多组件同一事件监听问题修改后导致的共通点击失效问题
统一自定义事件和共通事件行为。
2022-09-22 12:19:22 +08:00
roymondchen
b835bb2488 fix(core): 多个组件配置同一事件会导致此事件多次监听
fix #356
2022-09-20 15:21:38 +08:00
i33
8db7821032 fix(core): 解决固定元素失效问题
固定元素在父链存在非none的transform时无效,去除空值的transform样式。
2022-08-30 19:38:33 +08:00
roymondchen
b1bd7a870e feat(core): 旋转角度支持配置不带单位的数值
fix #260
2022-08-16 15:45:48 +08:00
roymondchen
5f78bbd7b7 feat(core): 新增store 2022-08-08 17:20:21 +08:00
roymondchen
14e9b6ec59 chore: 将vite/client配置到tsconfig中 2022-08-04 15:39:19 +08:00
Iain
923e8ea5ab feat(core): 添加设计稿宽度设置(px转rem相关),默认375,可设置为750 2022-07-22 16:10:50 +08:00