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 相关文章推荐
JavaScript中document对象使用详解
Jan 06 Javascript
简述JavaScript的正则表达式中test()方法的使用
Jun 16 Javascript
js实现的Easy Tabs选项卡用法实例
Sep 06 Javascript
利用vue-router实现二级菜单内容转换
Nov 30 Javascript
原生JS 购物车及购物页面的cookie使用方法
Aug 21 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
Nov 28 Javascript
element-ui 设置菜单栏展开的方法
Aug 22 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
Aug 28 Javascript
vue实现百度语音合成的实例讲解
Oct 14 Javascript
vue实现的封装全局filter并统一管理操作示例
Feb 02 Javascript
JavaScript DOM常用操作代码汇总
Jul 03 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
Oct 31 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
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
php实现网站插件机制的方法
2009/11/10 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
js文字滚动停顿效果代码
2008/06/28 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
JS基于贪心算法解决背包问题示例
2017/11/27 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
python的re模块应用实例
2014/09/26 Python
ubuntu环境下python虚拟环境的安装过程
2018/01/07 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
python自动生成model文件过程详解
2019/11/02 Python
Django models filter筛选条件详解
2020/03/16 Python
python求前n个阶乘的和实例
2020/04/02 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
澳大利亚相机之家:Camera House
2017/11/30 全球购物
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
营销主管自我评价怎么写
2013/09/19 职场文书
电子商务应届生自我鉴定
2014/01/13 职场文书
结婚通知短信大全
2015/04/17 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
标枪加油稿
2015/07/22 职场文书