ElementUI实现异步加载树

今天药忘吃喽~ 2022-11-15 06:13 362阅读 0赞
  1. <el-tree ref="tree"
  2. :data="data"
  3. lazy
  4. show-checkbox
  5. node-key="id"
  6. check-strictly
  7. :load="loadnode"
  8. :props="defaultProps"
  9. @node-click="nodeclick">
  10. </el-tree>
  11. export default {
  12. data() {
  13. return {
  14. data:[],//树对象数据模型
  15. defaultProps: { //树对象属性对应关系
  16. children: 'children',
  17. label: 'label'
  18. },
  19. typeinfo: { //分类实体对象
  20. id:'',
  21. pid:'',
  22. label: '',
  23. seqno: ''
  24. }
  25. }
  26. },
  27. methods: {
  28. loadnode(node,resolve) {
  29. //如果展开第一级节点,从后台加载一级节点列表
  30. if(node.level==0)
  31. {
  32. this.loadfirstnode(resolve);
  33. }
  34. //如果展开其他级节点,动态从后台加载下一级节点列表
  35. if(node.level>=1)
  36. {
  37. this.loadchildnode(node,resolve);
  38. }
  39. },
  40. //加载第一级节点
  41. loadfirstnode(resolve){
  42. axios.get('http://localhost:6060/loadtype')
  43. .then(function(resp){
  44. resolve(resp.data);
  45. })
  46. },
  47. //刷新树组件
  48. refreshtree() {
  49. var _this = this;
  50. axios.get('http://localhost:6060/loadtype')
  51. .then(function(resp){
  52. _this.data = resp.data;
  53. })
  54. },
  55. //加载节点的子节点集合
  56. loadchildnode(node,resolve) {
  57. axios.get('http://localhost:6060/loadtypechild?pid='+node.data.id)
  58. .then(function(resp){
  59. resolve(resp.data);
  60. })
  61. },
  62. //点击节点上触发的事件,传递三个参数,数据对象使用第一个参数
  63. nodeclick(data,dataObj,self) {
  64. //alert(data.label+",id="+data.id);
  65. this.typeinfo.id=data.id;
  66. this.typeinfo.pid=data.pid;
  67. this.typeinfo.label=data.label;
  68. this.typeinfo.seqno=data.seqno;
  69. }
  70. }
  71. }
  72. </script>

发表评论

表情:
评论列表 (有 0 条评论,362人围观)

还没有评论,来说两句吧...

相关阅读

    相关 实现图片的异步

    图片异步加载功能是现在web中非常常见的一个针对web做优化的方法。尤其是在移动端,面对大量的图片列表的时候,如果没有做相应的优化,会直接导致页面滑动和加载的卡顿,而