前言

由于项目中使用的不是vue的框架,但是又需要用到cascader组件,可惜找了很久都没有找到想要的效果,只好自己写组件了。为了力求和element-ui的级联效果一致,来自后端开发的我亲自操刀,哈哈哈!!

使用示例

引入

<html>
	<head>
		<link rel="stylesheet" type="text/css" href="https://www.layuicdn.com/layui/css/layui.css"/>
		<link rel="stylesheet" type="text/css" href="./cascader/cascader.css"/>
		<script src="https://www.layuicdn.com/layui/layui.js"></script>
		<script src="./cascader/cascader.js"></script>
	</head>
	<body>
	<input id="demo"/>
	/* 如果使用script的方式没办法加载cascader.js文件,则使用
	layui.extend({
	    layCascader: '/cascader/cascader'
	}).use(['layCascader'], function () {
	    ...
	}这种方式加载
	*/
	layui.use('layCascader', function () {
	    var layCascader = layui.layCascader;
	    layCascader({
	      elem: '#demo',
	      options: options
	    });
	});
	</body>
</html>

基本用法

在这里插入图片描述

禁用选项

在这里插入图片描述

多选、折叠

在这里插入图片描述

选择任意一级

在这里插入图片描述

可搜索

在这里插入图片描述

动态加载

在这里插入图片描述

API

Attributes

参数说明类型可选值默认值
elem绑定元素String/jqueryObject/DOM--
value预设值Object/Array-null
options可选项数据源,键名可通过 props 属性配置Array-[]
empty无匹配选项时的内容String-‘暂无数据’
placeholder输入框占位文本String-‘请选择’
disabled是否禁用Booleantrue / falsefalse
clearable是否支持清空选项Booleantrue / falsefalse
showAllLevels输入框中是否显示选中值的完整路径Booleantrue / falsetrue
collapseTags多选模式下是否折叠TagBooleantrue / falsefalse
minCollapseTagsNumber最小折叠标签数Number-1
separator选项分隔符String-’ / ’
filterable是否可搜索选项Booleantrue / falsefalse
filterMethod自定义搜索逻辑,第一个参数是节点node,第二个参数是搜索关键词keyword,通过返回布尔值表示是否命中Function--
debounce搜索关键词输入的去抖延迟,毫秒Number-300
beforeFilter筛选之前的钩子,参数为输入的值,若返回 false,则停止筛选Function--
popperClass自定义浮层类名String-‘’
extendClass继承class样式Booleantrue / falsefalse
extendStyle继承style样式Booleantrue / falsefalse

Props

参数说明类型可选值默认值
expandTrigger次级菜单的展开方式Stringclick / hover‘click’
multiple是否多选Booleantrue / falsefalse
checkStrictly是否严格的遵守父子节点不互相关联Booleantrue / falsefalse
lazy是否动态加载子节点,需与 lazyLoad 方法结合使用Booleantrue / falsefalse
lazyLoad加载动态数据的方法,仅在 lazy 为 true 时有效Function(node, resolve),node为当前点击的节点,resolve为数据加载完成的回调(必须调用)--
value指定选项的值为选项对象的某个属性值String-‘value’
label指定选项标签为选项对象的某个属性值String-‘label’
children指定选项的子选项为选项对象的某个属性值String-‘children’
disabled指定选项的禁用为选项对象的某个属性值String-‘disabled’
leaf指定选项的叶子节点的标志位为选项对象的某个属性值String-‘leaf’

Event

方法名说明参数
setOptions设置当前选项Array
setValue覆盖当前值.单选时传对象,多选时传数组单选:Object/String/Number 多选:Array
change当节点变更时,执行回调 多选时,参数是一个数组单选:function(value,Node){} 多选:function(values,Nodes){}
disabled禁用组件Boolean
blur收起面板-
focus展开面板-
getCheckedNodes获取选中的节点,如需获取路径,使用node.path获取,将获取各级节点的node对象-
getCheckedValues获取选中的值-
clearCheckedNodes清空选中的节点-

链接

演示地址
gitee地址
github地址

Logo

前往低代码交流专区

更多推荐