vue+elementUI 使用el-tree实现异步懒加载

2021-04-14  本文已影响0人  子夜照弦歌

参考文章:https://ld246.com/article/1519116520740

treeLoading:false,
treeData: [],
nodeProps: { children: "children", label: "name", isLeaf: "leaf" },
            <el-tree
                v-loading="treeLoading"
                ref="tree"
                :data="treeData"
                :props="nodeProps"
                :load="loadNode"
                lazy
                node-key=""
                highlight-current
                @node-click="handleNodeClick"
                :expand-on-click-node="false"
                :filter-node-method="filterNode"
              >
                <span class="custom-tree-node" slot-scope="{ node, data }">
                  <i class="el-icon-folder"></i>
                  <span>{{ node.label }}</span>
                </span>
              </el-tree>

/**加载树*/
    loadTree(parentId, resolve) {
      this.treeLoading = true;
      casetypeApi
        .list({
          parentId: parentId || "0",
        })
        .then((response) => {
          if (response.data.data && response.data.data.length) {
            for (let i = 0; i < response.data.data.length; i++) {
              const element = response.data.data[i];
              element.children = [];
            }
            console.log(parentId);
            if (parentId) {
              resolve(response.data.data);
            } else {
              this.treeData = response.data.data;
            }
          } else {
            this.treeData = [];
          }
          this.treeLoading = false;
        });
    },

    loadNode(node, resolve) {
      console.log(node.data.id);
      if (node.level === 1) {
        this.loadTree(node.data.id, resolve);
      }
    },
上一篇 下一篇

猜你喜欢

热点阅读