Vue+ElementUI , el-casecader级联面板参数回显

背景

ElementUI中Cascader 级联选择器组件作为Select 选择器组件的补充,可以帮助我们方便且友好的显示多层级数据的筛选。

但级联面板的返回数据在用于数据回显时,却显得比较麻烦。因此,现在将记录一下自己在做级联面板数据回显时的方案。

一、 级联面板返回的数据格式说明

通过ElementUI中在线运行工具的调试,可以看到级联面板返回给我们的结果,是一个包含从祖宗节点到选中节点完整路径的数组,如下图所示,选中 "input输入框"时,会返回给我们一个记录选中label的value的数组:[“zujian”, “form”, “input”]。
在这里插入图片描述
在这里插入图片描述
多选时的数据格式也是如此,只不过变成了一个二维数组,如下图所示。
在这里插入图片描述

那么在数据回显时,我们必须要给级联面板的绑定值设定为完整路径数组的格式,才可以正确回显。如果后端能够把级联面板选中的值原样保存起来,那么回显就不存在任何问题了,但通常事与愿违。后端通常只会给我们返回当前选中节点的value和整个树形结构的数组,需要我们自行构造完整路径的数组。

二、级联面板单选(解决)

在只有当前选中节点的value和整个树形结构的数组时,前端构造完整路径数组的方式,类似于遍历一颗多叉树,从根节点开始记录下路径,直到找到选中节点:

 // 构造级联面板的选中参数
buildParam(){
   
	let result = []
	let searchFlag = {
   flag: false}
	this.buildSingleSeletedCasecaderVal(root, row.id, result, searchFlag)
	console.log(result)
	// 当我们需要选中当前节点的上一级节点时,可以从结果中弹出最后一个,或者重新遍历都可以
	// result.pop()
}

/**
 1. 构造单选级联面板选中数据的完整路径
 2. root : 全部数据,一颗以id='0' 为根节点的多叉树
 3. target: 寻找的目标节点id,例如 id = '2'
 4. res: 存放结果路径,例如:["0","1","2"]
 5. searchFlag : 是否找到,找到即返回递归
*/
buildSingleSeletedCasecaderVal(root, target, res, searchFlag) {
   
   if (searchFlag.flag) {
   
       return
   }
   if (root.id 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
对于级联选择器的回显问题,可以通过设置 v-model 的值来实现。具体来说,你需要将级联选择器的 v-model 绑定到一个数组上,数组中存储每个级联选择器选中的值。然后,在初始化级联选择器时,你需要将这个数组中的值传递给级联选择器,以实现回显。 以下是一个示例代码: ```html <template> <el-cascader v-model="selectedOptions" :options="options" @change="handleChange" ></el-cascader> </template> <script> export default { data() { return { options: [ { value: "zhinan", label: "指南", children: [ { value: "shejiyuanze", label: "设计原则", children: [ { value: "yizhi", label: "一致", }, { value: "fankui", label: "反馈", }, ], }, { value: "daohang", label: "导航", children: [ { value: "cexiangdaohang", label: "侧向导航", }, { value: "dingbudaohang", label: "顶部导航", }, ], }, ], }, ], selectedOptions: ["zhinan", "daohang", "dingbudaohang"], }; }, methods: { handleChange(value) { console.log(value); }, }, }; </script> ``` 在上面的代码中,我们首先定义了一个 options 数组,用于存储级联选择器的选项。然后,我们定义了一个 selectedOptions 数组,用于存储级联选择器的选中值。在模板中,我们将级联选择器的 v-model 绑定到 selectedOptions 上,并将 options 数组传递给级联选择器的 options 属性。 这样,当级联选择器初始化时,它会自动选中 selectedOptions 数组中的值。当用户改变选择时,我们可以通过 @change 事件来获取用户选择的值,并将它们存储在 selectedOptions 数组中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值