cascader 三级联动数据回显 el-cascader 级联选择器详解
在我们使用cascader 写三级联动的时候 往往会遇到需要回显 区域 这里我们以 element 示例
v-model:绑定值
props:参数指定绑定数据的格式
clearable:清空选项
filterable:搜索功能
show-all-levels:示最后一级
checkStrictly:选中不是最后一级的节点
lazy: 动态下拉数据
以上是我们常用的几个属性想要了解更多可去官网
1.使用props 指定绑定数据的格式
<el-cascader v-model="value" :options="myOptions" :props="{label:'name',value:'id',children:'children' }"></el-cascader>
myOptions: [{
id: '1',
name: '北京',
children: [{
id: '2',
name: '市辖区',
},
{
id: '3',
name: '海淀区',
}],
}],
2.checkStrictly 开启后 我们想选中不是最后一级的节点 expandTrigger修改为hover
<el-cascader v-model="value" :options="defaultOptions" :props="{ checkStrictly: 'true',expandTrigger: 'hover' }"></el-cascader>
3.slot-scope=“{ data }” 自定义 渲染的内容和样式更改
自定义节点内容
<el-cascader v-model="value" :options="defaultOptions">
<template slot-scope="{ data }">
<span style="fonst-size:20px">{{ data.label }}</span>
</template>
</el-cascader>
4.三级联动数据回显 以及动态下拉数据开启 lazy属性
vue2.0
<el-cascader :props="Props"></el-cascader>
data:{
Props: {
lazy: true,
lazyLoad(node, resolve) {
// 通过resolve将子节点数据返回
let nodes = [{
label: '北京',
value: 1
}];
this.value = [31, 3101, 310101, 310101002] // 这里是数据双向绑定
resolve(nodes);
}
}
}
vue3.0
亿点小知识:我们可以通过level (下拉级别)判断下拉是否有数据进行处理
const propsValue = ref();
propsValue.value = {
lazy: true,
label: "name",
value: "code",
checkStrictly: true,
async lazyLoad(node: any, resolve) {
const {
level,
data: { code }
} = node;
const { data } = await getCode(code);//getCode 从后端获取区域数据
if (level == 3) {
data.forEach(item => {
// 当点击最后一级的时候 label 后面不会转圈圈 并把相关值赋值到选择器上
item.leaf = level >= 1;
});
}
resolve(data);
}
以上就是前端cascader 三级联动数据回显感谢大家的阅读
如碰到其他的问题 可以私下我 一起探讨学习
如果对你有所帮助还请 点赞
收藏谢谢~!
关注收藏博客 作者会持续更新…