vue Treeselect下拉树只能选择第N级元素实现代码


Posted in Javascript onAugust 31, 2020

今天在项目中遇到一个需求,就是vue下拉树只能选择第三级选项,为了解决这个问题,查阅了官方文档

https://vue-treeselect.js.org/#disable-item-selection

vue Treeselect下拉树只能选择第N级元素实现代码

然后看到isDisabled属性可以禁止选择,具体实现代码如下:

<treeselect 
  :disable-branch-nodes="true"
  :normalizer="normalizer" 
  v-model="formData.goodsTypeId" 
  :multiple="false" 
  :options="goodsType" 
  placeholder='请选择'>
  <label slot="option-label" slot-scope="{ node, shouldShowCount, count, labelClassName, 
   countClassName }">
     {{ node.label }}
  </label>
</treeselect>

如何给数据添加isDisabled属性呢?

自己尝试着在下拉树配置中添加了一下,竟然成功了

【提示】node这个对象包含的字段打印了一下,(这些数据是后台接口提供的)如下图展示:

vue Treeselect下拉树只能选择第N级元素实现代码

【isLeaf】Y是叶子节点,N是分支节点【typeLevel】第?级

normalizer(node) {
  //去掉children=[]的children属性
  if(node.children && !node.children.length) {
   delete node.children;
  }
  if(node.isLeaf=='Y' && node.typeLevel!=3){
   node['isDisabled'] = true;
  }
  return {
   id: node.typeId,
   label: node.typeName,
   children: node.children,
  }       
},

vue Treeselect下拉树只能选择第N级元素实现代码

补充知识:Vue ElementUI使用el-tree,只容许叶子结点有多选框

在使用el-tree时,我们需要多选功能会在el-tree标签添加show-checkbox属性:

vue Treeselect下拉树只能选择第N级元素实现代码

那么,有时会遇到这样的需求,父节点不让多选,只容许多选叶子结点。那么,这时我们改怎么做呢?

通过调试工具:

vue Treeselect下拉树只能选择第N级元素实现代码

多选框就是.el-checkbox这个样式,那么我们只需把这个样式覆盖一下,把它隐藏掉:

/deep/ .el-tree-node{
   .is-leaf + .el-checkbox .el-checkbox__inner{
     display: inline-block;
   }
   .el-checkbox .el-checkbox__inner{
     display: none;
   }
 }

注意:/deep/ 是强穿透,也可以写成<<< ,只在当前组件文件起作用,不改变整个页面样式。

最后别忘了在el-tree组件加上 :check-strictly="true" 是否严格的遵循父子不互相关联的做法

以上这篇vue Treeselect下拉树只能选择第N级元素实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
Nov 30 Javascript
简单谈谈JavaScript的同步与异步
Dec 31 Javascript
node.js学习之交互式解释器REPL详解
Dec 08 Javascript
详解React中的组件通信问题
Jul 31 Javascript
bootstrap Table插件使用demo
Aug 07 Javascript
node前端开发模板引擎Jade的入门
May 11 Javascript
基于VUE实现的九宫格抽奖功能
Sep 30 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
Nov 05 Javascript
Vue动态加载异步组件的方法
Nov 21 Javascript
防止Layui form表单重复提交的实现方法
Sep 10 Javascript
详解JavaScript中的Object.is()与&quot;===&quot;运算符总结
Jun 17 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 #Javascript
vue 监听 Treeselect 选择项的改变操作
Aug 31 #Javascript
搭建vscode+vue环境的详细教程
Aug 31 #Javascript
vue组件中实现嵌套子组件案例
Aug 31 #Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
Aug 31 #Javascript
详解vue v-model
Aug 31 #Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
Aug 31 #Javascript
You might like
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
PHP生成带有雪花背景的验证码
2008/09/28 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
js下获取div中的数据的原理分析
2010/04/07 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
浅谈jquery拼接字符串效率比较高的方法
2017/02/22 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
Python实现合并字典的方法
2015/07/07 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
python交易记录整合交易类详解
2019/07/03 Python
css3动画鼠标放上图片逐渐变大鼠标离开图片逐渐缩小效果
2021/01/27 HTML / CSS
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
西班牙手机之家:Phone House
2018/10/18 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
主管职责范文
2013/11/09 职场文书
财务人员个人求职信范文
2013/12/04 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
python 实现的截屏工具
2021/05/08 Python
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
关于python中模块和重载的问题
2021/11/02 Python
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL