Skip to content

Commit

Permalink
fix: tree 组件,解决 operations 示例中,节点插入引发死循环的问题 (#2212)
Browse files Browse the repository at this point in the history
* fix(tree): 解决 tree 组件指定 keys 属性后,next 版本可能导致 dom 无限刷新的问题

fix #445

* fix(tree): 解决 tree 组件指定 keys 属性后,next 版本可能导致 dom 无限刷新的问题

fix #445

* test(tree): 迁移 keys 校验脚本到组件目录内部

* docs(tree): 完善调试文档

* test(tree): tree组件属性变更示例,用随机时间戳作为属性变更例子

* test(tree): tree 组件单元测试文件命名规范化

* test(tree): 改进测试代码传参方式,完善代码注释

* test(tree): 完善组件单元测试,提供对公共 api 的单元测试代码

* test(tree): tree 组件,完善节点插入方法的单元测试

* refactor(tree): 提取 store, cache 相关方法到 composition api

* refactor(tree): tree 组件 composition api 重构,添加原先的公共方法

* refactor(tree): tree 组件重新实现空数据与类名的生成

* refactor(tree): tree组件提取节点创建方法到 composition api

* refactor(tree): tree 组件 composition api 实现节点呈现

* refactor(tree): tree 组件,迁移主要节点操作逻辑到 composition api

* refactor(tree): tree 组件,完善监听逻辑的重构

* refactor(tree): tree 组件,移除调试用的注释代码

* refactor(tree): tree 组件,完成基本 composition api 重构,细节还有待调试

* refactor(tree): tree 组件重构解决操作区域未渲染的问题

* refactor(tree): td-tree 组件 composition api 重构通过单元测试

* refactor(tree): tree-item 组件重构为 composition api , 实现基础渲染逻辑抽离

* refactor(tree): tree-item 组件初步实现列表形式渲染的 composition api 重构

* chore(tree): treeItem 组件完成 composition api 基本重构

* refactor(tree): 移除嵌套布局代码

* refactor(tree): 解决单元测试时代码类型报错的问题

* refactor(tree): tree 组件动画样式完善

* refactor(tree): 更新依赖的 common 组件

* refactor(tree): tree 组件更新 common 依赖

* test(tree): tree 组件适配 vitest

* test(tree): tree 组件单测改进,移除 done 方法,替换为 promise api

* chore(tree): merge upsteam

* refactor(tree): td-tree 合并 draggable 事件功能

* refactor(tree): 实现节点普通事件的抽离封装

* refactor(tree): 封装事件派发方法

* refactor(tree): tree 组件,进一步拆分逻辑到多个文件,onDrag mixin 变更为 composition api 代码

* refactor(tree): tree item 组件进一步抽离子组件

* refactor(tree): 实现拖动能力的 composition api 基本重构,有待调试

* refactor(tree): 实现取得节点 dom

* refactor(tree): 更新 _common 依赖

* refactor(tree): 实现对接拖动排序逻辑

* refactor(tree): 完善拖动,修复动画与图标偏移

* refactor(tree): 改进上层属性传递方式

* refactor(tree): tree 组件重构,解决过滤结果为空时空列表状态未呈现的问题

* refactor(tree): 更新 src/_common

* fix(tree): 解决依赖缺失的问题

* chore(tree): 更新 src/_common

* chore(tree): 更新 src/_common

* chore(tree): 更新 src/_common

* fix(tree): 修正动态改变 data 时,视图绑定丢失的问题

fix #1966

* test(tree): tree 组件,解决 data change 问题后,空列表测试需做相应改造

* refactor(tree): 初步添加虚拟滚动部分逻辑

* feat(tree): tree 组件添加虚拟滚动基本逻辑

* fix(tree): 完善 tree 组件示例样式,完善虚拟滚动配置

* fix(tree): tree 完善虚拟滚动逻辑

* fix(tree): tree组件,虚拟滚动应当只渲染可见节点

* fix(tree): tree 组件完善虚拟滚动,添加子节点通知组件更新高度的逻辑

* fix(tree): tree 组件梳理 hooks 公共依赖,整合到统一对象进行管理

* fix(tree): tree 组件解决虚拟滚动状态判断不准确的问题

* fix(tree): 解决虚拟滚动状态下,动画导致滚动异常的问题

* fix(tree): tree 组件,改进列表渲染,key 改为使用私有的独立 id,避免被业务数据干扰

* fix(tree): 改进 tree 组件渲染方式,使用私有 key 控制缓存

* test(tree): 完善虚拟滚动示例,添加更多视图操作

* fix(tree): tree 组件完善虚拟滚动样式注入时机

* fix(tree): 解决 tree 组件虚拟滚动并开启动画时卡顿的问题

* fix(tree): tree 组件解决属性 allowFoldNodeOnFilter 未生效的问题

* fix(tree): tree 组件,改进关闭动画时,判断不使用 transition-group 的时机

* fix(tree): tree 组件初步接入 虚拟滚动的 lazy 模式

* fix(tree): tree 组件虚拟滚动实现 lazy 模式

* fix(tree): tree 组件完善虚拟滚动属性传递

* test(tree): tree 组件,解决测试中出现用例告警的问题

* fix(tree): tree 组件,完善过滤示例,解决直接设置属性未生效的问题

* test(tree): tree 组件完善单元测试,直接设置expanded, actived, checked属性时,视图应当有相应变化

* test(tree): tree 组件,完善 api 方法的单元测试

* fix(tree): tree 组件更新对 common 的依赖

* fix(tree): tree 组件更新对 common 的依赖

* docs(tree): tree 组件添加虚拟滚动示例

* chore(tree): tree 组件更新 common 依赖

* fix(tree): tree 组件完善 vscroll 示例

* fix(tree): tree 组件,修正 common 依赖

* fix(tree): tree 组件,类型名称规范化

* fix(tree): tree 组件,修正虚拟滚动示例未能切换到普通模式的问题

* fix(tree): tree 组件,过滤且允许折叠时,完善呈现样式

* fix(tree): tree 组件,规范化属性类型

* chore(tree): tree 组件,更新 common 依赖

* chore(tree): tree 组件,更新 common 依赖

* fix(tree): tree 组件完善事件参数,提供 trigger 属性

* test(tree): tree 组件添加单元测试,完善对 activable 状态的检查

* test(tree): tree 组件完善 activable 能力的单元测试

* chore(tree): tree 组件,更新 common 依赖

* fix(tree-select): tree-select 修正代码中的传递类型错误

* fix(tree): tree 组件,解决 operations 示例,节点插入流程出现死循环的问题

* chore(tree): tree 组件,解决示例节点插入引发死循环的问题

fix #2017
  • Loading branch information
TabSpace committed Mar 6, 2023
1 parent c5fe4aa commit 374e52c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/_common
Submodule _common updated 1 files
+4 −0 js/tree/tree-node.ts
14 changes: 9 additions & 5 deletions src/tree/_example/operations.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<template>
<t-space :size="20" direction="vertical">
<t-space :size="20" direction="vertical" class="t-tree-demo-operations">
<t-space :size="10" direction="vertical" style="width: 100%">
<h3>Render:</h3>
<t-tree :data="items" hover expand-all :label="getLabel" :operations="renderOperations" />
Expand Down Expand Up @@ -223,6 +223,9 @@ export default {
}
this.setLabel(item.value);
}
if (this.useActived) {
this.activeId = '';
}
},
insertBefore(node) {
const { tree } = this.$refs;
Expand All @@ -240,9 +243,6 @@ export default {
this.setLabel(item.value);
}
},
setUseActived() {
this.useActived = !this.useActived;
},
getActiveParent() {
const { tree } = this.$refs;
const node = this.getActivedNode();
Expand Down Expand Up @@ -320,9 +320,13 @@ export default {
},
};
</script>
<style scoped>
<style>
.tips {
font-size: 10px;
color: gray;
}
.t-tree-demo-operations .t-is-active .t-tree__label,
.t-tree-demo-operations .t-is-active .t-checkbox__label {
background-color: rgba(255, 0, 0, 0.3);
}
</style>

0 comments on commit 374e52c

Please sign in to comment.