el-checkbox 多选搜索查询,搜索后选中状态仍保留

这篇具有很好参考价值的文章主要介绍了el-checkbox 多选搜索查询,搜索后选中状态仍保留。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

el-checkbox 多选搜索查询,搜索后选中状态仍保留,element-ui,vue2,elementui文章来源地址https://www.toymoban.com/news/detail-684722.html

<template>
	<div>
		<div class="half-transfer">
			<div class="el-transfer-panel">
				<div>
					<el-checkbox v-model="selectAll" @change="handleSelectAll">全部</el-checkbox>
				</div>
				<el-input v-model="searchInput" placeholder="请输入搜索内容" clearable @clear="clearSearch"></el-input>
				<div class="el-transfer__list">
					<el-checkbox-group v-model="selectedData" @change="handleCheckbox" class="el-transfer__list">
						<el-checkbox v-for="option in filteredOptions" :key="option.key" :label="option.key">{{ option.label }}</el-checkbox>
					</el-checkbox-group>
				</div>
			</div>
		</div>
	</div>
</template>
<script>
export default {
	data() {
		return {
			searchInput: '',
			selectedData: [],
			data: [
				{ key: 1, label: '选项1' },
				{ key: 2, label: '选项2' },
				{ key: 3, label: '选项3' },
				{ key: 4, label: '选项4' },
				{ key: 5, label: '选项5' },
				{ key: 6, label: '选项6' },
				{ key: 7, label: '选项7' },
				{ key: 8, label: '选项8' },
			],
			selectAll: false,
		};
	},
	computed: {
		filteredOptions() {
			return this.data.filter((option) => option.label.toLowerCase().includes(this.searchInput.toLowerCase()));
		},
	},
	watch: {
		selectedData(newData) {
			if (newData.length === this.filteredOptions.length) {
				this.selectAll = true;
			} else {
				this.selectAll = false;
			}
		},
	},
	methods: {
		clearSearch() {
			this.searchInput = '';
		},
		handleSelectAll(checked) {
			if (checked) {
				this.selectedData = this.filteredOptions.map((option) => option.key);
			} else {
				this.selectedData = [];
			}
		},
		// 数据权限选择问题
		handleCheckbox() {
			if (this.data.length === this.selectedData.length) {
				this.selectAll = true;
			} else {
				this.selectAll = false;
			}
		},
	},
};
</script>
<style scoped>
.half-transfer {
	margin-top: 20px;
	margin-left: 20px;
	width: 335px;
	height: 260px;
	background: #fff;
	padding: 20px;
	border: 1px solid #dcdfe6;
	border-radius: 4px;
}

.el-transfer-panel {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.el-transfer__list {
	overflow-y: auto;
	border-radius: 4px;
	margin-top: 8px;
}

.el-transfer__list .el-checkbox {
	display: flex;
	margin-bottom: 5px;
	line-height: 24px;
}

.el-transfer__list .el-checkbox:last-child {
	margin-bottom: 0;
}

.el-transfer__list .el-scrollbar {
	background-color: #f5f7fa;
}
</style>

到了这里,关于el-checkbox 多选搜索查询,搜索后选中状态仍保留的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包