位置: IT常识 - 正文

element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选

编辑:rootadmin
背景 项目中用到了vue的element-ui框架,用到了el-tree组件。由于数据量很大,使用了数据懒加载模式,即异步树。异步树采用复选框进行结点选择的时候,没法自动展开,官方文档找了半天也没有找到好的办法! 找不到相关的配置,或者方法可以使用。 经过调试与阅读elment-ui源码才发现有现成 ...

推荐整理分享element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

背景

项目中用到了vue的element-ui框架,用到了el-tree组件。由于数据量很大,使用了数据懒加载模式,即异步树。异步树采用复选框进行结点选择的时候,没法自动展开,官方文档找了半天也没有找到好的办法! 找不到相关的配置,或者方法可以使用。 经过调试与阅读elment-ui源码才发现有现成的方法可以进行结点展开。下面就介绍结点展开的实现!

1.监听复选框点击事件check

<el-tree :props="mulprops" :load="loadNode" lazy node-key="id" show-checkbox accordion @current-change="currentChange" :filter-node-method="filterNode" @check="handleCheck" ref="tree" :default-checked-keys="defaultCheckedNodes" :default-expanded-keys="defaultExpandedNodes" > </el-tree>

2.手动展开,使用node.expand()方法

handleCheck(nodeData, treeChecked) { let node = this.$refs.tree.getNode(nodeData.id) //将选中的未展开的节点进行展开 if(node.checked && !node.expanded){ node.expand(function(){ for(let i=0; i< node.childNodes.length; i++){ node.childNodes[i].expand() } }) } }element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选

项目中的实现

一、复选框勾选后能自动展开并选中,先展开再勾选也可以自动展开

1.监听check-change事件

<el-tree :props="mulprops" :load="loadNode" lazy node-key="id" show-checkbox accordion @check-change="handleCheckChange" :filter-node-method="filterNode" ref="tree" :default-checked-keys="defaultCheckedNodes" :default-expanded-keys="defaultExpandedNodes" > </el-tree>

2.编写展开勾选结点方法

handleCheckChange(nodeData, nodeSelected) { let tree = this.$refs.tree; let node = tree.getNode(nodeData.id) //展开选中的未展开的节点 this.expandCheckedNotExpandNodes(node); //具体业务实现 console.log(nodeData, nodeSelected) }, //展开选中的未展开的节点 expandCheckedNotExpandNodes(node) { let tree = this.$refs.tree; if (node.checked && !node.expanded && !node.isLeaf) { node.expand(function () { let childNodes = node.childNodes; for (let i = 0; i < childNodes.length; i++) { let childNode = childNodes[i]; //手动触发check-change事件,事件处理函数中回继续调用此函数,形成递归展开 tree.$emit('check-change', childNode.data, childNode.checked, childNode.indeterminate); } }) } },

二、 展开指定结点

<el-input type="text" v-model='nodeDataIds' placeholder="请输入结点数据ID(多个以逗号分割)"> ></el-input> <el-button type="primary" @click="expandNodes(nodeDataIds.split(','))">展开指定结点</el-button> //展开匹配的结点,根结点默认展开 expandNodes(nodeDataIds){ let that = this; let tree = this.$refs.tree; let rootNode = tree.root; //展开一层结点函数 let expandRootChildren = function(){ let childNodes = rootNode.childNodes; for (let i = 0; i < childNodes.length; i++) { let childNode = childNodes[i]; that.expandNode(childNode,nodeDataIds); } }; //根结点未展开进行展开 if(!rootNode.expanded){ rootNode.expand(function(){ //展开根结点的孩子 expandRootChildren(); }); }else{ //展开根结点的孩子 expandRootChildren(); } }, //展开指定结点下匹配的结点 expandNode(node, nodeDataIds){ let that = this; //当前结点需要展开未展开,则展开 if(nodeDataIds.indexOf(node.data.id) != -1){ //孩子结点需要展开未展开,则展开 let expandChildren = function(){ let childNodes = node.childNodes; for (let i = 0; i < childNodes.length; i++) { let childNode = childNodes[i]; //递归展开孩子结点 that.expandNode(childNode, nodeDataIds); } } if(!node.expanded){ node.expand(function(){ expandChildren(); }); }else{ expandChildren(); } } },

三. 勾选指定结点

1.异步树,需先展开指定结点,然后有数据了才能勾选上(即:展开父结点,子节点有了数据才能勾选上)

<el-button type="primary" @click="checkNodes(nodeDataIds.split(','))">选中指定结点</el-button> checkNodes(nodeDataIds){ let tree = this.$refs.tree; tree.setCheckedKeys(nodeDataIds, false) }

2.设置默认勾选的结点,首次展开会自动勾选上,适合写数据回显

default-checked-keys=['node001','node002']
本文链接地址:https://www.jiuchutong.com/zhishi/310137.html 转载请保留说明!

上一篇:为你的WordPress添加图片替换功能 Enable Media Replace(wordpress!)

下一篇:Python中包如何发布?(python包发布)

  • 苹果手机3dtouch称重的设置方法(苹果手机3dtouch电子秤)

    苹果手机3dtouch称重的设置方法(苹果手机3dtouch电子秤)

  • 华为nova7如何取消HD(华为nova7如何取电话卡)

    华为nova7如何取消HD(华为nova7如何取电话卡)

  • 电脑屏上一个图标都没有了怎么办(电脑屏上一个图标不见了)

    电脑屏上一个图标都没有了怎么办(电脑屏上一个图标不见了)

  • 抖音评论区带图片怎么发的(抖音评论区的图片是怎么搞上去的)

    抖音评论区带图片怎么发的(抖音评论区的图片是怎么搞上去的)

  • 淘宝你充值过的人是什么意思(淘宝充值中心充值记录能不能删除)

    淘宝你充值过的人是什么意思(淘宝充值中心充值记录能不能删除)

  • 视频导入pr声画不同步(导进pr声画不同步)

    视频导入pr声画不同步(导进pr声画不同步)

  • soul取消拉黑对方会有提示吗(soul取消拉黑后,能看到之前的信息吗?)

    soul取消拉黑对方会有提示吗(soul取消拉黑后,能看到之前的信息吗?)

  • 苹果xs下巴多少毫米

    苹果xs下巴多少毫米

  • 小米手表支持华为手机吗(小米手表支持华为手机的超级终端吗)

    小米手表支持华为手机吗(小米手表支持华为手机的超级终端吗)

  • iphone7保修期多久(苹果7保修期到2017年3月份)

    iphone7保修期多久(苹果7保修期到2017年3月份)

  • 进程实体由哪三部分组成(进程实体由哪些部分组成?各部分的作用是什么?)

    进程实体由哪三部分组成(进程实体由哪些部分组成?各部分的作用是什么?)

  • 运算器alu的功能是什么(运算器(alu)是执行算术运算和逻辑运算的电路部件)

    运算器alu的功能是什么(运算器(alu)是执行算术运算和逻辑运算的电路部件)

  • 荣耀v30是什么屏幕(荣耀v30手机是什么屏幕)

    荣耀v30是什么屏幕(荣耀v30手机是什么屏幕)

  • nova4支不支持nfc(nova4支不支持红外)

    nova4支不支持nfc(nova4支不支持红外)

  • 京东商品预约怎么取消(京东商品如何预约)

    京东商品预约怎么取消(京东商品如何预约)

  • mate30云备份在哪里(华为mate 30云备份怎么删除)

    mate30云备份在哪里(华为mate 30云备份怎么删除)

  • 爱奇艺如何看卫视直播(爱奇艺在哪里看卫视直播)

    爱奇艺如何看卫视直播(爱奇艺在哪里看卫视直播)

  • qq免费个性名片在哪找(免费领取qq名片赞网站福利)

    qq免费个性名片在哪找(免费领取qq名片赞网站福利)

  • 抖音直播怎么提现(抖音直播怎么提现到微信)

    抖音直播怎么提现(抖音直播怎么提现到微信)

  • 荣耀20nfc功能怎么使用(荣耀20nfc在哪里打开)

    荣耀20nfc功能怎么使用(荣耀20nfc在哪里打开)

  • 拼多多砍价怎么获得小刀(拼多多砍价怎么找不到了)

    拼多多砍价怎么获得小刀(拼多多砍价怎么找不到了)

  • 移动宽带家庭网关用户名密码(移动宽带家庭网关密码忘了)

    移动宽带家庭网关用户名密码(移动宽带家庭网关密码忘了)

  • 华为mate50怎么读详情(华为mate50pro怎么读)

    华为mate50怎么读详情(华为mate50pro怎么读)

  • 2019年下半年1+X 证书 Web 前端开发初级理论考试题目原题+答案(超详细分析)(2019年下半年中小学教师资格考试综合素质试题)

    2019年下半年1+X 证书 Web 前端开发初级理论考试题目原题+答案(超详细分析)(2019年下半年中小学教师资格考试综合素质试题)

  • 魁北克老城区的景色,加拿大 (© RENAULT Philippe/age fotostock)(魁北克老城区景点)

    魁北克老城区的景色,加拿大 (© RENAULT Philippe/age fotostock)(魁北克老城区景点)

  • 蓝湖的使用(蓝湖怎么用的)

    蓝湖的使用(蓝湖怎么用的)

  • 差额纳税的税率
  • 借款合同怎么做
  • 公司中介费收入如何纳税
  • 应付账款转营业外收入进项税转出
  • 利润分配的核算PPT
  • 投资公司的投资人叫什么
  • 应收账款周转率多少合适
  • 公司买了商品做活动会计分录
  • 固定资产并账
  • 报销跨月还能报销吗
  • 小规模企业残疾人免税政策
  • 专票作废后怎样退税
  • 普通发票开票人为管理员是否可以报销?
  • 营改增的会计分录
  • 应付账款核销法律规定
  • 私立幼儿园收的特色课费可以追回吗
  • 存货计价方法的选择对利润表中的项目没有影响
  • 服务器研发属于什么行业
  • 1000元的打印机双十一满减可以减150吗少
  • 计提长期债券利息分录
  • 退回的工伤费用怎么做账
  • 数人侵权行为的类型
  • mac和mac之间怎么传东西
  • 工厂返费能拿到吗
  • 工程长期停工
  • 一帆风顺的养殖土壤用什么土
  • 外购货物应抵扣的进项税额
  • 错账是什么
  • 麦地那老城
  • 从小规模纳税人购进农产品进项税怎么计算
  • 快递收据能否作为发票
  • php图像
  • 保洁劳务派遣合同
  • 中小企业所得税优惠政策2022
  • 营改增抵减的销项税发票要抵扣吗
  • 既简单又安全的小实验
  • php加减
  • 媒体查询是什么
  • html5简单吗
  • ps中文字复制粘贴
  • 专票认证对企业有影响吗
  • 现金折扣什么时候冲减收入
  • sql server创建数据表的完整语法
  • 预收账款什么时候确认增值税
  • 物流公司驾驶员工资计算方式
  • 关联交易纳税调整期限
  • 成立一般纳税人的利弊
  • sql server 2008 新建数据库
  • 汇算清缴是什么
  • 个税异地缴纳后果
  • 收到现金怎么记账凭证
  • 运输费用如何做账
  • 航天金穗服务费可以抵扣吗
  • 小规模应交增值税怎么算出来的
  • 叉车上牌流程注册登记
  • win7旗舰版系统激活码
  • winxp密码忘了
  • 以管理员的身份运行是什么意思win10
  • Windows Server 2008网络安全与终端服务
  • bios关闭pxe
  • windows8安装程序
  • ubuntu20.04怎么用
  • intel的me
  • 未能打开这台计算机上的组策略对象
  • win10预览版好吗
  • 苹果Mac系统怎么装
  • WIN10系统安装EXCEL打开会报警
  • win7为什么会出现小黄锁
  • javascript继承原理
  • 一个简单的群规内容
  • jquery提交form表单数据
  • jquery写网页
  • python怎么发送
  • 电子税务局怎么删除办税员
  • 税务局监制的收据哪里买
  • 河北国税网上办税云厅手机
  • 个体税务注销退税怎么退
  • 苏州税务系统
  • 文件印发的格式怎么设置
  • 公司注册资本印花税的税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设