

封装代码：

```javascript
/**
 * 表格展开/收缩工具方法封装
 * 解决：重复调用、无判空、代码冗余、语义化差问题
 */
const EbdfListExpandUtil = (() => {
  // 常量配置：一键展开全部的最大层级（替换魔法数字100，易维护）
  const MAX_EXPAND_LEVEL = 100;
  // 全局SDK实例
  const sdk = window.ebdfListSdk;

  /**
   * 私有方法：获取有效的ListStore（做判空校验，防止报错）
   * @returns {Object|null} 有效Store/空
   */
  const getValidStore = () => {
    if (!sdk || typeof sdk.getListStore !== 'function') {
      console.warn('ebdfListSdk 未初始化或getListStore方法不存在');
      return null;
    }
    const store = sdk.getListStore();
    if (!store) {
      console.warn('ListStore 获取失败');
      return null;
    }
    return store;
  };

  /**
   * 私有方法：获取表格展示数据
   * @returns {Array|null} 展示数据/空
   */
  const getDisplayData = () => {
    if (!sdk || typeof sdk.getListDisplayData !== 'function') return null;
    return sdk.getListDisplayData() || null;
  };

  return {
    /**
     * 一键收缩所有行
     */
    collapseAll() {
      const store = getValidStore();
      if (!store) return;
      store.setState({ expandRowKeys: [] });
    },

    /**
     * 一键展开【默认层级】
     */
    expandDefaultLevel() {
      const store = getValidStore();
      const displayData = getDisplayData();
      if (!store || !displayData) return;
      store.updateOpenChildExpandDataIds(displayData);
    },

    /**
     * 一键展开【全部层级】
     */
    expandAllLevel() {
      const store = getValidStore();
      const displayData = getDisplayData();
      if (!store || !displayData) return;

      // 更新最大展开层级
      store.setState({
        listBaseInfo: {
          ...store.listBaseInfo,
          expandLevel: MAX_EXPAND_LEVEL
        }
      });
      // 执行展开
      store.updateOpenChildExpandDataIds(displayData);
    }
  };
})();
```

  
使用方式

```javascript
// 1. 一键收缩
EbdfListExpandUtil.collapseAll();

// 2. 一键展开默认层级，注意，调用这个方法的话就不要调用【展开全部】，默认层级的记录参数会被重置掉。
EbdfListExpandUtil.expandDefaultLevel();

// 3. 一键展开全部
EbdfListExpandUtil.expandAllLevel();
```
