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>
相关推荐
Moment5 分钟前
面试官:一个接口使用postman这些测试很快,但是页面加载很慢怎么回事 😤😤😤
前端·后端·面试
诗书画唱9 分钟前
【前端面试题】JavaScript 核心知识点解析(第二十二题到第六十一题)
开发语言·前端·javascript
excel15 分钟前
前端必备:从能力检测到 UA-CH,浏览器客户端检测的完整指南
前端
前端小巷子22 分钟前
Vue 3全面提速剖析
前端·vue.js·面试
悟空聊架构29 分钟前
我的网站被攻击了,被干掉了 120G 流量,还在持续攻击中...
java·前端·架构
CodeSheep30 分钟前
国内 IT 公司时薪排行榜。
前端·后端·程序员
尖椒土豆sss34 分钟前
踩坑vue项目中使用 iframe 嵌套子系统无法登录,不报错问题!
前端·vue.js
遗悲风35 分钟前
html二次作业
前端·html
江城开朗的豌豆38 分钟前
React输入框优化:如何精准获取用户输入完成后的最终值?
前端·javascript·全栈
CF14年老兵38 分钟前
从卡顿到飞驰:我是如何用WebAssembly引爆React性能的
前端·react.js·trae