当前位置:   article > 正文

el-table树形数据与懒加载_el-table 树形数据与懒加载

el-table 树形数据与懒加载

vue代码:

  1. <el-table
  2. v-loading="loading"
  3. :data="compileList"
  4. row-key="id"
  5. lazy
  6. :load="loadData"
  7. :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
  8. @selection-change="handleSelectionChange"
  9. >
  10. <el-table-column label="列名称" prop="label" />
  11. </el-table>

js代码:

  1. //表格树形的 1级 数据
  2. async getList() {
  3. this.loading = true;
  4. const data = await structureList(this.queryParams);
  5. if (data.code === 200) {
  6. this.loading = false;
  7. this.compileList = data.rows.map((item) => {
  8. //后端返回的每层的字段不一致 这里赋值给label用其展示
  9. item["label"] = item["column"];
  10. return {
  11. ...item,
  12. hasChildren: true, // 设置true就有折叠图标
  13. };
  14. });
  15. }
  16. // console.log(230, this.compileList);
  17. },
  18. // 懒加载 表格树形 2级 3级 数据
  19. loadData(row, treeNode, resolve) {
  20. console.log(311, row);
  21. if (row.section) {
  22. // 3级层 数据
  23. layerList(row.id).then((res) => {
  24. if (res.code === 200) {
  25. console.log(250, res);
  26. resolve(
  27. res.rows.map((item) => {
  28. //后端返回的每层的字段不一致 这里赋值给label用其展示
  29. item["label"] = item["layer"];
  30. return {
  31. ...item,
  32. hasChildren: false,
  33. };
  34. })
  35. );
  36. }
  37. });
  38. } else {
  39. // 2级节 数据
  40. sectionList(row.id).then((res) => {
  41. if (res.code === 200) {
  42. resolve(
  43. res.rows.map((item) => {
  44. //后端返回的每层的字段不一致 这里赋值给label用其展示
  45. item["label"] = item["section"];
  46. return {
  47. ...item,
  48. hasChildren: true,
  49. };
  50. })
  51. );
  52. }
  53. });
  54. }
  55. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/107527
推荐阅读
相关标签
  

闽ICP备14008679号