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 |
|
roymondchen
|
5e36ca8e47
|
build: 构建时某些文件的.d文件丢失
|
2022-08-05 20:12:35 +08:00 |
|
roymondchen
|
14e9b6ec59
|
chore: 将vite/client配置到tsconfig中
|
2022-08-04 15:39:19 +08:00 |
|
khuntoriia
|
b702857aad
|
feat(editor): 多选菜单支持复制粘贴删除 (#217)
* feat(editor): 多选菜单支持复制粘贴删除
* fix(editor): 编辑器选中节点统一为nodes数组,保留原node对象为nodes数组的第一个元素,将复制粘贴删除行为封装到editorservice中,支持键盘快捷键
* test(editor): 修改editor相关测试用例
* fix(editor): cr问题修改
* feat(editor): 将复制粘贴操作进行拆分封装
* fix(editor): cr修改
Co-authored-by: parisma <parisma@tencent.com>
|
2022-08-03 14:03:36 +08:00 |
|
roymondchen
|
de0c6952c7
|
feat: 支持将组件拖动到指定容器
|
2022-07-14 19:02:29 +08:00 |
|
roymondchen
|
a7afe057fb
|
chore: import type
|
2022-07-01 20:07:28 +08:00 |
|
roymondchen
|
2647ace396
|
fix(utils): 判断是否为number不够严谨
|
2022-04-20 16:38:35 +08:00 |
|
roymondchen
|
9c83a540da
|
feat: 新增isPage,isNumber方法
|
2022-04-13 17:17:14 +08:00 |
|
roymondchen
|
71cfab8d4d
|
feat(util): asyncLoadCss支持指定document
|
2022-04-07 18:31:37 +08:00 |
|
roymondchen
|
bc8b9f5225
|
refactor: make it public
|
2022-02-17 14:47:39 +08:00 |
|