59 Commits

Author SHA1 Message Date
roymondchen
105de9d2c6 feat(utils): 添加设置删除获取url参数的方法 2025-04-24 14:38:57 +08:00
roymondchen
e7e9197ae3 style: 更新eslint版本,更新eslint配置 2025-04-21 20:35:54 +08:00
roymondchen
040b787e8f feat(editor): 优化依赖收集,数据源代码块分开收集 2025-01-14 16:27:04 +08:00
roymondchen
ab7df6c21e refactor(editor): 优化dsl更新后画布更新逻辑 2025-01-10 19:44:40 +08:00
roymondchen
a0f39d90d6 feat(core): 新增调试api 2024-12-09 20:21:34 +08:00
roymondchen
0d6420215c fix(editor): 修改未包含数据源的配置,画布中没有实时更新 2024-12-09 20:21:34 +08:00
roymondchen
12230c2f4e feat(utils): 新增getGlobalThis方法 2024-12-09 20:21:34 +08:00
roymondchen
7cd1bc7aec chore: 更新依赖 2024-12-09 20:21:34 +08:00
roymondchen
fc38fc3957 fix(editor): 修复修改页面配置后可能改造页面卡死问题 2024-12-09 20:21:34 +08:00
roymondchen
eb8126c32f refactor(editor,utils): 将traverseNode方法挪到utils中 2024-12-09 20:21:34 +08:00
roymondchen
34fc0a15b9 refactor: 将data-source,dep,schema,utils收敛到core,将form,table,stage,design,util收敛到editor 2024-12-09 20:21:34 +08:00
roymondchen
9494ed79a3 feat(uitls): 只是自定义dsl与dom el的关联关系函数 2024-12-09 20:21:34 +08:00
roymondchen
60d2b64aa5 fix: 迭代器内的组件配置了声明周期代码块无效 2024-12-09 20:21:34 +08:00
roymondchen
9e4da0a5c2 feat: dsl id渲染到dom上的data-tamgic-id,不再是id属性 2024-12-09 20:21:34 +08:00
roymondchen
de47514f69 feat: 完善迭代器嵌套使用问题,重构事件配置处理代码
* feat(editor,core,data-source,dep,schema,ui,utils,vue-runtime-help): 完善迭代器

* test: 完善测试用例

* chore: 构建

* feat: 迭代器嵌套事件传递数据

---------

Co-authored-by: roymondchen <roymondchen@tencent.com>
2024-12-09 20:21:34 +08:00
roymondchen
c8d6a4f4d1 refactor(ui): 通过解析dsl渲染的组件,渲染时往config中加入IS_DSL_NODE_KEY,用于识别是系统渲染的 2024-08-01 20:25:02 +08:00
roymondchen
654961b349 refactor(util): 完善datetimeFormatter方法ts定义 2024-06-21 16:26:23 +08:00
roymondchen
92e9d888e9 chore: 更新typescript依赖 2024-05-27 19:14:09 +08:00
roymondchen
2ea876a2a0 style(utils): 完善ts定义 2024-05-27 17:22:04 +08:00
qwertyyb
88c04c6dac
feat: 支持数据源事件 (#605)
* feat: 添加observedData

* feat: 修改错误

* fix: 修复单测报错问题

* feat: 完善数据源事件

* fix: 修复数据源事件调用组件方法时报错的异常

* fix: 修复多个相同类型的数据源数据变化的事件混淆的问题

* chore: 删除无用代码

* feat: 默认使用SimpleObservedData

* feat: 删除无用代码

---------

Co-authored-by: marchyang <marchyang@tencent.com>
2024-05-13 17:23:23 +08:00
Evan Wu
e39a7d140f
fix(editor,stage,utils): 修复在ipad等大屏场景下编辑画布中元素位置计算偏差问题 (#598) 2024-04-25 20:13:21 +08:00
roymondchen
0e0f50187e fix(data-source,dep,utils): 迭代器数据源配置编译 2024-03-29 12:20:30 +08:00
Evan Wu
0c746aa3d9
feat(runtime, utils): Fix issue #503, setPage实现跳转页面 (#581)
* fix: 修复moveable中custom able旋转中心错误问题

* feat(runtime): fix issue #503, 增加page-change回调

* feat(core, runtime): 增加页面不存在时调用报错

* fix(runtime, core, utils): 提取addParamsToUrl公共方法且更改'page-change'逻辑

* fix(utils): 优化addParamToUrl方法
2024-03-19 16:18:14 +08:00
roymondchen
e692e01c4f feat: 支持迭代器容器 2024-03-07 16:56:05 +08:00
roymondchen
33fcee66df fix(utils): 数据源条件解析空字符出错 2024-02-28 15:09:14 +08:00
roymondchen
acab44aaa4 fix(utils): <=条件编译出错 2024-01-04 17:00:58 +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
75dd89f2fe fix(data-source,utils): 显示条件编译对于undefined理解不正确 2023-12-04 20:35:03 +08:00
roymondchen
6299d286ba feat(editor): 数据源数据定义快速添加支持与已有数据合并 2023-11-28 19:32:12 +08:00
roymondchen
eb43deb9f5 feat(editor): 画布大小支持配置百分比 2023-11-27 16:55:23 +08:00
roymondchen
33c8f8bf5a fix(util): 条件编译对应is与not实现对应value为false的情况出错 2023-11-23 14:51:52 +08:00
roymondchen
808c82f193 fix(utils): 完善生成数据源默认值 2023-10-24 16:06:07 +08:00
roymondchen
1c516bb24b refactor(editor): 优化性能,组件树重写,不再使用el-tree 2023-10-20 19:32:11 +08:00
roymondchen
e4613ba053 feat(editor,data-source): 组件配置支持关联数据源字段 2023-10-17 20:21:18 +08:00
roymondchen
163f630959 refactor(data-source,utils): 生成默认值函数放到utils库中 2023-10-02 16:28:53 +08:00
roymondchen
7a617d4a17 fix(utils): 编译条件函数异常兼容 2023-09-14 20:28:05 +08:00
roymondchen
2bd86d2101 feat(editor): 新增数据源时先选类型 2023-08-29 18:24:15 +08:00
roymondchen
92df80e711 feat(core,data-source,ui,ui-react,ui-vue2,utils,runtime): 解析显示条件配置 2023-08-04 19:50:44 +08:00
roymondchen
46f6aeaaf7 feat(utils): 新增isObject 2023-08-04 15:59:18 +08:00
roymondchen
74c9deaa29 feat(editor, core): 支持直接绑定整个数据源对象 2023-06-28 16:39:47 +08:00
roymondchen
01d1dccbb6 feat(app,utils,runtime): 将resetcss.css移到utils,在runtime中引入 2023-06-08 17:44:06 +08:00
roymondchen
ed4b3c77ef fix(utils): 容器发生更新,需要编译子组建配置
fix #512
2023-06-08 15:36:55 +08:00
roymondchen
aac478eebc feat: 新增数据源 2023-05-29 11:33:44 +08:00
roymondchen
0295d6f4b5 feat(util): guid方法 2023-04-25 11:32:33 +08:00
roymondchen
b9d4e8c66c feat(util): 修改isPage函数定义 2023-02-06 19:27:57 +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
roymondchen
a7057d2568 fix(form): daterange不会自动更新 2022-08-08 21:09:58 +08:00
roymondchen
9ac3e12487 feat(utils): moment换成dayjs 2022-08-08 18:57:38 +08:00