vue2中Cascader 级联选择器限制选择个数和回显问题

2024-01-09

如果项目中有需要使用到级联选择器,但是要限制选择个数,可以用watch监听级联选择器双向绑定的数组。
在这里插入图片描述

1.组件默认数据绑定

级联选择器默认会绑定一个数组,节点的显示文本和值分别对应label、value属性,节点的后代对应children属性。
options为默认绑定的数组,v-model绑定的chooseList数组中是所有选中的value值

  • expandTrigger:参数可以实现悬停展开效果
  • emitPath :设置为false,只返回该节点的值
  • multiple:设置为true,支持多选
<el-cascader
 v-model="editForm.jingangvo.cellList"
:options="functionNameptions"
:props="[multiple:true,emitPath;false,expandTrigger: "hover']
@change="getcascader
ref="cascader'
clearable

2.指定数据绑定

:props=“{label:‘name’,value:‘id’,children:‘son’ }”

3.watch监听v-model绑定的数组,控制选中个数

watch:{
	'editForm.jingangvo.cellList':{
		deep:true,
		handler(newVal,oldval){
			if(newval.length>5){
				this.$message.error("最多只支持选择5项')
				this .$nextTick(()=>{
					this.editForm.jingangvo.cellList=oldval
				})
			}
		}
	}
}

4.前后端数据转换,实现回显

页面初始化加载,选择器中v-model绑定的数组有正确的值,就能回显;但是后端获取的是一个数组对象,对象中包含value和label,我们需要把value拿出来放在一个新数组里面

(1)接口初始数据回显

...
//调接口
let res = await this.GETINNERENTERPRISECONFIG(invitationCode);
//接口返回的级联选择器绑定的数据
console.log("接口返回的级联选择器绑定的数据 ,res.jingangvo.cellList)
//将数组中的value值取出重新赋值,级联选择器就可以回显啦!
res.jingangvo.celllist = res.jingangv0.cellList.map(item=>item.value)
console.log("将接口数据转成组件回显需要的value数组",res.jingangvo.cellList)
this.editForm=res

在这里插入图片描述

(2)重新选择级联选择器后,如何将选择的数据转换成后端需要的数据

getcascader(e){
	//e是选择的value,labels是选择时一级和二级的label
	//const checkedNodes=this .$refs.cascader .getcheckedNodes();
	//const labels=checkedNodes .map(node=>node.label);
	if(e.length<=5){
		this.switchCascader(e)
	}
},
switchCascader(e){
	//找到初始级联选择器中所有的childern
	const childrenList = this.functionNameOptions.map(item=>{
		return item.children
		}
	)
	//遍历选中的e数组中的value,找到children中包含value的数组对象
	let newsCellList =[]
	e.forEach(item=>{
		let valueItem = item
		childrenList.forEach((item)=>{
			newsCellList.push(item,filter(item=>item.value===valueitem))
		})
	})
	//去除newsCellList里面的空数组
	newsCellList= newsCellList.filter(arr=>arr.length>0)
	//每个数组里面嵌套了一个数组,将里层数组去掉
	this.cancatArr = newsCellList.map(item=>item[0])
	return this.cancatArr
}

在这里插入图片描述

  • 接口需要的数据格式:
    在这里插入图片描述

(3)最后提交数据给后端的时候,如何处理级联选择器的数据?

这里又要分两个思路:
1.没有重新选择级联选择器,还是默认的后端返回的初始数据,但是返回的数据被我们初始化页面的时候改变了,所以需要调取后端需要的数据转换方法,再将初始数据转换一次。
2.重新选择了级联选择器,就直接将重新选择的数据转换后再赋值传给后端

submit(){
	if(this.editForm.jingangV0.celllist,length==0) return this,$message.error("请选择级联选择器')
	if(this.cancatArr.length>0){
	//如果重新选择过级联选择器,那this.cancatArr就有值,直接赋值
		this.editForm.jingangv.cellList = this.cancatArr 
	}else{
	//没有重新选择,用的初始默认值,因为一开始我们将数据转换了级联选择器需要的value值数据,所以需要将数据再转换一次接口所需要的格式
		this,editForm.jingangv0.celllist = 	this,switchCascader(this,editForm.jingangV0.celllist)
	}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue2中Cascader 级联选择器限制选择个数和回显问题 的相关文章

随机推荐

  • 【计算机开题报告】基于JAVA的酒店管理系统的设计与实现

    1 毕业设计 论文 综述 随着社会经济和科技的迅速发展 人们对衣食住行的要求也逐渐提高 酒店 宾馆在服务行业中扮演着越来越重要的角色 本课程设计的内容旨在以管理系统的方式给人们出行提供酒店预订服务 从而能够更方便快捷的帮助酒店工作人员办理客
  • 手机未来发展的趋势与挑战

    随着科技的飞速发展 手机已经成为我们生活中不可或缺的一部分 然而 随着5G 人工智能等新技术的不断涌现 手机的未来发展面临着前所未有的机遇和挑战 本文将探讨手机未来发展的趋势与挑战 一 手机未来发展的趋势 5G技术的普及 随着5G技术的不断
  • 鸿鹄云商B2B2C:JAVA实现的商家间直播带货商城系统概览

    saas云平台 打造全行业全渠道全场景的saas产品 为经营场景提供一体化解决方案 门店经营区域化 网店经营一体化 本地化 全方位 一站式服务 为多门店提供统一运营解决方案 提供丰富多样的营销玩法覆盖所有经营场景 助力商家成功 系统稳定压倒
  • 【Leetcode】49. 字母异位词分组

    49 字母异位词分组 题目链接 代码一 代码二 题目链接 Leetcode 49 字母异位词分组 代码一 func groupAnagrams strs string string 存放字典序相同的字符串切片 hash map string
  • APP加固技术及其应用

    文章目录 引言 APP加固的概念 APP加固的方案 APP加固在实际开发中的应用 总结 引言 在移动应用开发过程中 APP加固技术起到了非常重要的作用 APP加固是将apk文件进行混淆加密 以防止别人反编译获取我们的源码和资源文件 目前市场
  • pytorch09:可视化工具-TensorBoard,实现卷积核和特征图可视化

    目录 一 TensorBoard简介 二 TensorBoard安装 三 TensorBoard运行可视化 四 TensorBoard详细使用 4 1 SummaryWriter 4 2 add scalar 4 3 add scalars
  • 24分+的医药顶刊带你学习表观组学解析超级热点“肿瘤耐药”的机制

    对癌症患者采用治疗干预时获得性耐药是转移性癌症复发的主要原因 此前 获得性耐药发展的研究主要集中在识别耐药肿瘤中常见的基因突变 越来越多的证据表明 在永久性获得性耐药出现之前 癌症中存在一种表观遗传调控的可逆耐药状态 这种可逆状态可能会导致
  • 2024几个测试接口的好工具,效率加倍~

    作为一名后端程序员 一定要对自己写的接口负责 保证接口的正确和稳定性 因此 接口测试也是后端开发中的关键环节 但我相信 很多朋友是懒得测试接口的 觉得这很麻烦 一般自己写的接口自己都不调用 而是直接甩给前端或者其他调用方去验证 出了问题再改
  • 测试市场已经饱和了吗?现在转行软件测试会不会太迟?

    非常有意思的话题 某种程度上来说 测试职场一条从未设想过的道路真的走通了 这条路指广大测试呼吁对测试从业进行学历保护 专业保护 就像医学那样设置护城河 以一种令人意想不到的方式完成了 得益于大量培训机构为了赚钱 盲目的向大量非计算机相关专业
  • 一篇文章让你搞懂性能测试6大类型及其关系!

    性能测试是软件测试过程的一个关键环节 用于确定和验证应用程序或系统在各种操作条件下的性能特征 目标是确保软件在高负载 高压力 长时间运行以及其他非标准情况下仍能保持预期的行为和效率 一 性能测试的主要类型 1 基线测试 Baseline T
  • h5 唤醒小程序

    weixin dl business appid appid path pages index index
  • 盘点第三方支付行业中一些“专用术语”

    每个行业都有自己的行业术语 在官方场合被称为 术语 如果你是支付行业的新手 或者正在努力深入了解这个复杂但充满机遇的领域 那么掌握行业术语就是打开这扇门的关键 支付系统的需求文档和技术方案文档都充斥着专业词汇和行业术语 有些词汇容易理解 有
  • 【C语言】数组

    一维数组的创建和初始化 数组是一组相同类型元素的集合 数组的创建 数组的创建方式 type t arr name const n type t 是指数组的元素类型 const n 是一个常量表达式 用来指定数组的大小 数组创建的实例 数组创
  • 电商数据接口API深度解析

    随着电子商务的快速发展 电商平台之间的竞争也日益激烈 为了在市场中保持领先地位 电商平台需要不断地优化用户体验 提供个性化的服务和精准的推荐 而这一切都离不开数据 电商数据接口API作为一种高效 便捷的数据交互方式 被广泛应用于电商领域 本
  • 跨境电商三大趋势已经涌现

    在过去的几年里 跨境电商在推动外贸增长中发挥了至关重要的作用 成为了引领行业发展的强大引擎 然而 随着2024年的到来 跨境电商行业又站在了崭新的起点 准备攀登新的发展高峰 数据显示 得益于经济的逐步复苏 未来三年跨境电商行业预计将以16
  • 如何快速搭建一个自营商城?(调用电商API实现快速采集商品)

    一 背景介绍 在数字化时代 电商行业蓬勃发展 无数商家涌入这片蓝海 对于许多有志于开拓电商业务的企业和个人来说 快速搭建一个自营商城成为了迫切的需求 然而 传统意义上的自建商城需要投入大量的人力 物力和时间 这让许多初创企业和个人望而却步
  • 思腾合力赞助CCF YOCSEF太原第十一届学术委员会第三次全体会议

    2024年1月6日 由思腾合力赞助的 CCF YOCSEF太原第十一届学术委员会第三次全体会议暨AC换届选举活动 在山西大学举办 华北区教育行业负责人宋肖敏出席本次会议 会议汇聚了众多学术界和企业界的精英 共同探讨人工智能和计算机科学的未来
  • 在ASP.NET MVC中使用JQuery提供的弹出窗口(模态窗口)

    在ASP NET MVC中使用JQuery提供的弹出窗口 模态窗口 原理 使用 div 图层灵活显示在浏览器的任何位置 默认情况下指定 div 不可见 引用 样式表 在JQuery的官方网站可以下载对应的css样式表 打开官网的 样例页 找
  • KALI Linux 最新超详细安装教程

    自己也在学习所以就想着记录一下 接下来开始安装 一 先下载好kali linux 的镜像 可以去kali的官网 https www kali org get kali kali bare metal 还可以去 清华大学开源软件镜像站下载 h
  • vue2中Cascader 级联选择器限制选择个数和回显问题

    文章目录 1 组件默认数据绑定 2 指定数据绑定 3 watch监听v model绑定的数组 控制选中个数 4 前后端数据转换 实现回显 1 接口初始数据回显 2 重新选择级联选择器后 如何将选择的数据转换成后端需要的数据 3 最后提交数据