有时候用element-ui el-cascader级联选择器添加分类时会遇到最多添加几级的限定.看了文档,只要给需要禁止选择的选项添加disabled属性就可以.但是使用一层一层循环遍历数据感觉很麻烦,自己写了个遍历的方法,纪录下,方便以后使用
贴代码
cascader.vue<template>
  <el-dialog
title="添加分类"
:visible.sync="dialogVisible"
width="500px">
<div class="role_contanier">
<el-form label-width="80px" :model="typeInfo">
<el-form-item label="分类名称">
<el-input v-model="typeInfo.name"></el-input>
</el-form-item>
<el-form-item label="分类组">
<el-cascader
v-model="typeInfo.group"
:options="typeOptions"
:props="props"
@change="handleChange">
</el-cascader>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">添加</el-button>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</span>
</el-dialog>
</template> <script>
export default {
props: { },
data() {
return {
dialogVisible: false,
typeInfo: {
group: '',
name: ''
},
typeOptions: [], // 分类层级选项
props: {
label: 'name', // 显示的选项
value: 'id', // 选择的value值
children: 'childs', // 子级属性名
checkStrictly: true // 可以选择任意一级
} // 指定层级属性
}
},
created() {
this.getTypeOptions()
},
mounted() { },
methods: {
// 获取分类级别
getTypeOptions () {
// 假设后台返回的数据 4级
let resDate = [{
id: 1,
name: '食品',
childs: [
{id: 3, name: '进口食品', childs: [
{id: 5, name: '果干', childs: [{id: 7, name: '坚果',}]},
{id: 6, name: '面包'}
]
},
{id: 4, name: '国内食品'}
]
}, {id: 2, name: '清洁'}
]
// 限制只能添加4级分类
this.setDisable (1, resDate, 3)
console.log(resDate)
this.typeOptions = resDate
this.dialogVisible = true
}, // 超过3级,不能选中,子级分类最多4级
/**
* count: 当前层级
* data: 当前层级的数据
* maxNum: 最多不能超过几级
*/
setDisable (count, data, maxNum) {
if (count > maxNum) { //最多几级就写几
data.forEach(v => {
v.disabled = true // 超过设定的最大级数,给这一集的数据添加disabled属性
})
} else {
data.forEach(v => {
       v.count = count // 设置最外层数据的初始count
if (v.childs && v.childs.length) {
v.count++
this.setDisable(v.count, v.childs, maxNum) // 子级循环时把这一层数据的count传入
}
})
}
},
// 添加分类
submitForm () { },
handleChange (val) {
console.log(val)
}
}
}
</script> <style> </style>

效果图: 第4级,(坚果不能被选中,也就不能再往下添加分类)

element-ui el-cascader级联选择器设置指定层级不能选中的更多相关文章

  1. vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、mockjs用法、路由懒加载三种方式

    不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p> ...

  2. element UI Cascader 级联选择器 编辑 修改 数组 路径 问题(转载)

    来源:https://segmentfault.com/a/1190000014827485 element UI的Cascader级联选择器编辑时 vue.js element-ui 2 eleme ...

  3. element 的 Cascader 级联选择器设定默认值

    Cascader 级联选择器 发现在很多的CRM管理系统里面,都有不少页面是用到这种级联选择器的,确实,功能很实用, 不过要设置默认值则应该让不少人头痛,因为你选择的时候 @change 事件的参数就 ...

  4. ElementUI 之 Cascader 级联选择器指定 value label

    ElementUI 的 Cascader 级联选择器个人觉得很好用,但是对 :options="options" 里的数据格式是有特定要求的:input 框显示的值是 option ...

  5. Cascader 级联选择器

    当一个数据集合有清晰的层级结构时,可通过级联选择器逐级查看并选择. 基础用法 有两种触发子菜单的方式 只需为 Cascader 的options属性指定选项数组即可渲染出一个级联选择器. 通过expa ...

  6. ElementUI组件Cascader级联选择器数据后台处理

    Cascader级联选择器数据数据格式不知道的可以去官网看下:这里我就不表示什么了. 部门实体类: import lombok.Data; @Data public class Department ...

  7. element-ui Cascader 级联选择器示例

    <html> <head>test</head> <style> @import url("http://unpkg.com/element- ...

  8. element ui 中的时间选择器怎么设置默认值/el-date-picker区间选择器怎么这是默认值

    template代码 <el-date-picker value-format="yyyy-MM-dd" v-model="search.date" ty ...

  9. Cascader 级联选择器无法赋值

    问题: html: <el-cascader v-model="addform.qxvalue" :options="options" :props=&q ...

随机推荐

  1. 012-Spring Boot web【一】web项目搭建、请求参数、RestController、使用jsp、freemarker,web容器tomcat和jetty

    一.项目搭建 同:http://www.cnblogs.com/bjlhx/p/8324971.html 1)新建maven项目→使用默认配置即可 定义好项目名称等 2)修改jdk版本 <pro ...

  2. Firefox Chrome Http请求插件

    Firefox:HttpRequester Chrome:Advanced Rest Client

  3. tensorflow查看ckpt各节点名称

    from tensorflow.python import pywrap_tensorflowimport os checkpoint_path=os.path.join('output/res101 ...

  4. MIGO 收货

    ls_code-gm_code = '01'. 01 - MB01 - Goods Receipts for Purchase Order 02 - MB31 - Goods Receipts for ...

  5. 知识点整理-mysql的顺序I/O和随机I/O

    假设有这样一张表: CREATE TABLE `person_info` ( `id` ) NOT NULL AUTO_INCREMENT, `name` varchar() NOT NULL, `b ...

  6. 【计算机视觉】双目测距(六)--三维重建及UI显示

    原文: http://blog.csdn.NET/chenyusiyuan/article/details/5970799 在获取到视差数据后,利用 OpenCV 的 reProjectImageTo ...

  7. 【编程开发】 C与C++中的关于函数指针的强制类型转换与指针函数的关系

    [编程开发] C与C++中的关于函数指针的强制类型转换与指针函数的关系 标签: [编程开发] [VS开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 以 ...

  8. Android之makefile

    在Android的源代码中,随处可见Makefile,那么Makefile到底是用来干嘛的呢?其实Makefile和Maven.ANT.Gradle一样,属于构建工具,当项目比较庞大的时候,就可以使用 ...

  9. CentOS 部署 MongoDB(新)

    step1.进入到/opt/下执行 下载 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.5.tgz ste ...

  10. 最新 央视网java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.央视网等10家互联网公司的校招Offer,因为某些自身原因最终选择了央视网.6.7月主要是做系统复习.项目复盘.LeetCo ...