elementUI Checkbox 多选框互斥事件

elementUI Checkbox 多选框互斥事件

需求

项目使用的vue2+elementUI,项目的查询接口遇到一个需求:

1.多个标签
2.标签数据由后端接口给出;
3.可以多选标签;
4.有两个标签为默认存在的标签:任意标签 和 无标签;
5.这个两个默认标签为互斥标签,且存在这两个默认标签中任意一个标签时,其他标签不可选,如果其他标签已选中,清除选中的其他标签;
6.这两个默认标签未选中时,其他标签可选。

效果(下方截图为连续性操作)

未选中

选中其他标签

选中任意标签,其他标签清空选中

选中无标签,其他标签清空选中

解决代码

html

javascript 复制代码
<template>
	<el-checkbox-group v-model="flag" size="mini" @change="changeValue">
		<el-checkbox label="1" border @change="changeAny">任意标签</el-checkbox>
		<el-checkbox label="0" border @change="changeNone">无标签</el-checkbox>
		<el-checkbox v-for="item in labelList" :key="item.id" :label="item.id" border>
			{{ item.name }}
		</el-checkbox>
	</el-checkbox-group>
</template>

js

javascript 复制代码
<script>
export default {
	data() {
		return {
      		flag: [],
      		labelList: [],
		}
	},
	methods: {
		changeValue() {
			if (this.flag.includes('none')) {
	          this.flag = ['none']
	        } else if (this.flag.includes('any')) {
	          this.flag = ['any']
	        }
		},
		// 任意标签 (任意标签与无标签只能二选一)
	    changeAny(value) {
	      if (value) {
	        this.flag = ['1']
	      }
	    },
	    // 无标签 (任意标签与无标签只能二选一)
	    changeNone(value) {
	      if (value) {
	        this.flag = ['0']
	      }
	    },
	}
}
</script>
相关推荐
罗_三金10 分钟前
前端框架对比和选择?
javascript·前端框架·vue·react·angular
Redstone Monstrosity17 分钟前
字节二面
前端·面试
东方翱翔24 分钟前
CSS的三种基本选择器
前端·css
Fan_web1 小时前
JavaScript高级——闭包应用-自定义js模块
开发语言·前端·javascript·css·html
yanglamei19621 小时前
基于GIKT深度知识追踪模型的习题推荐系统源代码+数据库+使用说明,后端采用flask,前端采用vue
前端·数据库·flask
千穹凌帝1 小时前
SpinalHDL之结构(二)
开发语言·前端·fpga开发
dot.Net安全矩阵1 小时前
.NET内网实战:通过命令行解密Web.config
前端·学习·安全·web安全·矩阵·.net
叫我:松哥1 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
Hellc0071 小时前
MacOS升级ruby版本
前端·macos·ruby
前端西瓜哥1 小时前
贝塞尔曲线算法:求贝塞尔曲线和直线的交点
前端·算法