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
|
deeb55cd0b
|
chore: release v1.2.0-beta.18
|
2022-11-24 21:04:33 +08:00 |
|
parisma
|
e497ab0008
|
fix(editor): itemsFunction中补全value
feat(form): export createValues方法
|
2022-11-24 12:25:26 +00:00 |
|
roymondchen
|
76a8eee6c5
|
chore: release v1.2.0-beta.17
|
2022-11-24 15:27:37 +08:00 |
|
roymondchen
|
fc50c87ad5
|
fix(editor): m-form不能加key,会导致vue示例销毁重建
|
2022-11-24 15:23:50 +08:00 |
|
roymondchen
|
f44500d21b
|
chore: release v1.2.0-beta.16
|
2022-11-23 18:52:24 +08:00 |
|
roymondchen
|
eacc4dc794
|
fix(editor): 切换选中组件后组件属性表单内存未释放
fix #123
|
2022-11-23 17:54:01 +08:00 |
|
parisma
|
5ae32f0792
|
fix: 在tree上增加tabindex来监听focus事件,完善组件树多选体验
|
2022-11-23 09:49:58 +00:00 |
|
parisma
|
db91b3e6c6
|
style(editor): 修复组件树无法滑动的问题
|
2022-11-23 09:49:58 +00:00 |
|
roymondchen
|
a4f9467d53
|
chore: release v1.2.0-beta.15
|
2022-11-22 16:41:50 +08:00 |
|
parisma
|
dc730cddc3
|
style(editor): 默认展开组件树节点
|
2022-11-22 04:28:54 +00:00 |
|
parisma
|
994cd4133a
|
style(editor): 修复代码块列表右侧工具栏遮挡代码块名称的样式问题
|
2022-11-22 04:28:54 +00:00 |
|
parisma
|
13dc3ca259
|
fix(editor): 修复setCodeDslById不传content引起的问题
|
2022-11-22 04:28:54 +00:00 |
|
parisma
|
8195a600f5
|
feat(editor): 修改代码块参数结构,以对象形式暴露app,params
|
2022-11-22 04:28:54 +00:00 |
|
roymondchen
|
f0d6624fc4
|
chore: release v1.2.0-beta.14
|
2022-11-18 18:12:58 +08:00 |
|
roymondchen
|
813ca55ef6
|
feat(editor): 添加右键菜单粘贴icon
|
2022-11-18 16:22:42 +08:00 |
|
roymondchen
|
bddfcee92b
|
fix(editor): 编辑器左中右列宽支持配置最小宽度
|
2022-11-17 20:03:00 +08:00 |
|
roymondchen
|
0fa44da0d4
|
chore(editor): 更新service plugin 使用方法注释
|
2022-11-17 17:19:24 +08:00 |
|
parisma
|
bc4b62a4c1
|
refactor(editor): 补全ts类型
|
2022-11-17 11:48:19 +08:00 |
|
parisma
|
8271a3b497
|
feat(editor): 代码编辑支持全屏
|
2022-11-16 12:38:01 +08:00 |
|
roymondchen
|
a575073387
|
chore: release v1.2.0-beta.13
|
2022-11-15 18:19:57 +08:00 |
|
roymondchen
|
52fc452823
|
chore: release v1.2.0-beta.12
|
2022-11-15 16:58:27 +08:00 |
|
parisma
|
16f671cd8f
|
feat(editor): 代码块支持传递参数 (merge request !9)
Squash merge branch 'feature/parisma_codeDraft' into 'master'
1、 table支持items为函数
2、代码块支持传递参数
|
2022-11-15 08:48:19 +00:00 |
|
roymondchen
|
8de58a2101
|
refactor(editor): 明确CodeEditor type的定义
|
2022-11-15 16:01:52 +08:00 |
|
parisma
|
b2702aaa9e
|
fix: 优化组件列表多选键盘快捷键监听体验
|
2022-11-10 19:53:35 +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
|
60c572ec30
|
refactor(editor): 修改变量的类型声明
|
2022-11-10 19:53:35 +08:00 |
|
parisma
|
0eab817a11
|
fix(editor): 区分直接关闭和保存后关闭
#440
|
2022-11-10 19:53:35 +08:00 |
|
parisma
|
0f0ec183a8
|
fix(editor): 修复自动保存提示不展示的问
#440
|
2022-11-10 19:53:35 +08:00 |
|
parisma
|
d98d3748d3
|
feat(editor): 拆分代码块编辑器便于以后扩展,支持草稿自动保存,修复代码块列表的样式问题
#440
|
2022-11-10 19:53:35 +08:00 |
|
parisma
|
3673d6016d
|
feat(editor): 代码编辑新增草稿功能
#440
|
2022-11-10 19:53:35 +08:00 |
|
roymondchen
|
3e78a0809b
|
fix(editor): 新增删除页面不应该添加历史
|
2022-11-10 16:19:17 +08:00 |
|
roymondchen
|
2bbca87e51
|
chore: release v1.2.0-beta.11
|
2022-11-08 16:23:29 +08:00 |
|
roymondchen
|
eae776990c
|
fix(editor): Layout 组件与Layout ts type 重名,将组件改为LayoutContainer
|
2022-11-08 16:21:47 +08:00 |
|
roymondchen
|
d8d6342505
|
chore: release v1.2.0-beta.10
|
2022-11-07 16:31:40 +08:00 |
|
roymondchen
|
6fdc28e121
|
chore(editor): export Layout
|
2022-11-07 14:32:16 +08:00 |
|
roymondchen
|
66e727838b
|
fix(editor): 多选后,再单选多选中的第一个元素,多选状态没有清除
|
2022-11-04 19:46:54 +08:00 |
|
roymondchen
|
8d8ef55b81
|
fix(editor): 画布滚动条出现的不准确
|
2022-11-04 19:39:47 +08:00 |
|
roymondchen
|
e8c53c2bd1
|
fix(editor): 单选水平居中
|
2022-11-04 19:20:30 +08:00 |
|
roymondchen
|
c2e8a1caae
|
fix(editor): content-menu没有响应式
|
2022-11-04 19:19:44 +08:00 |
|
roymondchen
|
131ae30bae
|
chore: 添加组件name
|
2022-11-03 14:14:54 +08:00 |
|
roymondchen
|
95be9e9390
|
chore: 更新element-plus, tabpane只能是tabs的子元素,不能对tabpane进行二次封装
|
2022-11-02 15:24:58 +08:00 |
|
roymondchen
|
bb01427a42
|
chore: release v1.2.0-beta.9
|
2022-10-28 19:20:04 +08:00 |
|
roymondchen
|
723da40bc7
|
fix(editor): content-menu隐藏时不销毁
|
2022-10-28 17:43:40 +08:00 |
|
parisma
|
0ca0abf2da
|
fix: 使用form.initValues解决代码块绑定关系更新不及时的问题
|
2022-10-28 14:58:30 +08:00 |
|
parisma
|
f8d7eaea5e
|
fix(editor): 优化代码逻辑
|
2022-10-28 14:21:57 +08:00 |
|
roymondchen
|
73ecdfff70
|
chore: release v1.2.0-beta.8
|
2022-10-25 17:41:35 +08:00 |
|
parisma
|
bc0f17c18f
|
fix(editor): 修复管理端和pg表现不一致的问题,删除冗余逻辑
|
2022-10-25 11:21:28 +08:00 |
|
roymondchen
|
11e0e04cbd
|
feat(editor,stage): 在画布中支持选择父组件
close #403
|
2022-10-20 19:52:53 +08:00 |
|