Преглед на файлове

feat(tree): 增加展开收起方法

vian преди 4 години
родител
ревизия
d73a52dd8b
променени са 2 файла, в които са добавени 29 реда и са изтрити 1 реда
  1. 1 1
      tree/package.json
  2. 28 0
      tree/src/tree.ts

+ 1 - 1
tree/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@sc/tree",
-  "version": "1.0.17",
+  "version": "1.0.18",
   "description": "通用树",
   "main": "./dist/index.cjs.js",
   "module": "./dist/index.esm.js",

+ 28 - 0
tree/src/tree.ts

@@ -261,6 +261,34 @@ export class Tree<T extends TreeRaw = TreeRaw> {
     return nodes.filter(node => node.getCtx().depth() === depth);
   }
 
+  // 展开所有节点
+  expandAll(): void {
+    this.data.forEach(item => {
+      item.getCtx().expanded = true;
+    });
+  }
+
+  // 展开节点
+  expand(nodes: TreeNode<T>[]): void {
+    nodes.forEach(item => {
+      item.getCtx().expanded = true;
+    });
+  }
+
+  // 折叠所有节点
+  collapseAll(): void {
+    this.data.forEach(item => {
+      item.getCtx().expanded = false;
+    });
+  }
+
+  // 折叠节点
+  collapse(nodes: TreeNode<T>[]): void {
+    nodes.forEach(item => {
+      item.getCtx().expanded = false;
+    });
+  }
+
   // 准备插入节点,插入节点前,计算出需要更新的数据。(可能会直接覆盖插入数据的seq)
   // 可调用完此方法后,将需要更新、插入的数据提交至数据库,成功响应后调用插入节点更新缓存的方法
   prepareInsert(rawData: TreeRaw[]): UpdateData[] {