通过el-tree 懒加载树,创建国家地区四级树

全国四级行政地区树数据库sql下载路径:【免费】全国四级地区(省市县)数据表sql资源-CSDN文库https://download.csdn.net/download/weixin_51722520/88469807?spm=1001.2014.3001.5503

我在后台获取地区信息添加了限制,只获取parentid为当前的地区没所以没有显示全国数据

前端使用饿了么的组件,添加lazy做懒加载,不需要将数据递归组装成树结构返回,每次点击时,向后端发送请求,请求当前父级下的子数据 。

html 复制代码
<el-card style="height: 95%">
     <div style="  height: 520px; display: block;overflow-y: scroll;">
      <el-tree lazy :props="defaultProps" :load="loadNode" @node-click="handleNodeClick"></el-tree>
     </div>
</el-card>

绑定数据结构,label为展示的数据,isLeaf为是否是子节点,后端传值时,将isLeaf设置为true即可。

html 复制代码
   defaultProps: {
                    label: "name",
                    isLeaf: "isLeaf",
                },

loadNode会在页面被点击时自动调用,resolve回调方法会将查询到的数据,放入到树中,不需要将数据绑定。

这里将数据做了判断,为空时给他赋值为141100000000,不为空则将node节点id给到父级id

loadNode就是树的点击事件触发的方法

loadNode回调resolve只接受List类型的数据

html 复制代码
    //懒加载时查询叶子节点
            loadNode(node, resolve) {
                let params = node.data ? ('parent.id=' + node.data.id) : ('id=141100000000')
                this.get(ctx + '/basicinfo/region/getLeftNode?' + params).then((res) => {
                    resolve(res)
                })
            },

将点击时的node节点调用(可以不用写,与树没有太大联系,只是我业务中会用这个方法)

html 复制代码
    handleNodeClick(node, e) {
                 console.log("树被点击时调用事件")
            },
相关推荐
To_OC1 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode
To_OC2 小时前
LC 42 接雨水:暴力超时卡半天?前后缀数组一用就通了
javascript·算法·leetcode
小林ixn3 小时前
从 ??= 到 onKeyDown:一个 React 组件的“自我修养”
前端·javascript·react.js
এ慕ོ冬℘゜3 小时前
前端实战:jQuery 多条件联合搜索(标题模糊查询 + 日历时间段筛选)
前端·javascript·jquery
随心点儿4 小时前
js postMessage 实现跨域发送消息-应用示例
javascript·ecmascript·postmessage
kyriewen6 小时前
我让AI改一个bug——它偷偷动了5个我没让它碰的地方
前端·javascript·ai编程
慧一居士7 小时前
Element Plus 按需引入的配置使用说明和完整示例
前端·vue.js
gis开发之家10 小时前
《Vue3 从入门到大神35篇》Vue3 源码详解(五):effect 依赖收集原理——track 与 trigger 是如何工作的?
javascript·typescript·前端框架·vue3·vue3源码
橘子星11 小时前
我一个前端切图仔,凭什么能在浏览器里跑大模型?
前端·javascript·前端框架
半个落月11 小时前
用 LangChain JS 做可控写作实验:理解温度参数、提示词与异步调用
javascript·人工智能·后端