有时候用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. centos中screen的使用

    只是讲解几个简单的操作,例如,创建新窗口,切换到新窗口,删除窗口.(因为我要启动elk,所以需要使用到screen) 一.创建一个新窗口: 安装完成后,直接敲命令screen就可以启动它.但是这样启动 ...

  2. CPU分几核几核的是什么意思?

    CPU的几核分类其实是按照CPU的地址总线数量来分类的 单核心的地址总线数量是8条 双核心就是16条 三核心就是24 依次类推,核心的多少,只需要知道地址总线的多少,然后除以8就得出来了 地址总线:地 ...

  3. Windows Qt 项目中文乱码

    在头文件中加入 #if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif

  4. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_09-freemarker基础-内建函数

    可以理解为freemaker提供的一些函数和方法 controller里面记得把map的数据注释去掉,.放开代码 工程需要重启下 <br/> 学生的个数: ${stus?size} < ...

  5. iOS优秀第三方框架

    1.数据库操作:BGDB_OC 2.腾讯崩溃检测: Bugly 3.强大易用的bug收集管理工具: Bugtags 4.访问本地相册,选择多张图片: HMImagePicker 5.iOS颜色库: W ...

  6. MySQL数据库相关资料

    python 全栈开发,Day60(MySQL的前戏,数据库概述,MySQL安装和基本管理,初识MySQL语句) python 全栈开发,Day61(库的操作,表的操作,数据类型,数据类型(2),完整 ...

  7. KMP --关于cogs1570 乌力波

    题目链接:http://cogs.pro:8081/cogs/problem/problem.php?pid=vQzXJkgWa [题目描述] 法国作家乔治·佩雷克(Georges Perec,193 ...

  8. Java学习笔记-基础语法

    Java基础包含关键字,标识符,注释,常量和变量,运算符 关键字 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 Java的关键字 用于定义数据类型的关键 ...

  9. 记录一次SignalR服务端实现过程

    前言:最近手上一个项目需要后端实时推送数据到前端,第一个想到的就是微软的SignalR,由于之前都是平时没事写的Demo,没有用到实际项目中,这次恰好用到了,因此记录下来整个实现过程(网上也有很多类似 ...

  10. cpp调用c的动态库

    目录 cpp调用c的动态库 title: cpp调用c的动态库 date: 2019/11/22 20:34:29 toc: true --- cpp调用c的动态库 CPP文件里这么引用头文件即可 e ...