使用js加上element plus的表格实现一个简单的穿梭框效果并带搜索功能

时间: 2023-08-03 10:06:15 浏览: 175
好的,以下是一个使用 JavaScript 和 Element Plus 表格实现的简单穿梭框,带有搜索功能: ``` <template> <div class="transfer"> <div class="search"> <el-input v-model="searchText" placeholder="请输入搜索内容" @input="search" /> </div> <div class="table"> <el-table :data="sourceData" height="300"> <el-table-column type="selection" width="55" /> <el-table-column prop="name" label="名称" /> </el-table> </div> <div class="actions"> <el-button type="primary" size="small" @click="addToTarget">添加</el-button> <el-button type="primary" size="small" @click="removeFromTarget">移除</el-button> </div> <div class="table"> <el-table :data="targetData" height="300"> <el-table-column type="selection" width="55" /> <el-table-column prop="name" label="名称" /> </el-table> </div> </div> </template> <script> export default { data() { return { sourceData: [ // 源数据 { id: 1, name: '选项1' }, { id: 2, name: '选项2' }, { id: 3, name: '选项3' }, { id: 4, name: '选项4' }, { id: 5, name: '选项5' }, ], targetData: [], // 目标数据 searchText: '', // 搜索关键词 } }, methods: { // 搜索方法 search() { const keyword = this.searchText.trim().toLowerCase() if (!keyword) { this.sourceData = this.allSourceData // 没有关键词,显示全部数据 return } this.sourceData = this.allSourceData.filter(item => { // 根据关键词进行模糊匹配 return item.name.toLowerCase().includes(keyword) }) }, // 添加到目标列表 addToTarget() { const selectedRows = this.$refs.sourceTable.selection if (selectedRows.length === 0) { return } const targetIds = this.targetData.map(item => item.id) selectedRows.forEach(row => { if (!targetIds.includes(row.id)) { this.targetData.push(row) } }) }, // 从目标列表中移除 removeFromTarget() { const selectedRows = this.$refs.targetTable.selection if (selectedRows.length === 0) { return } const selectedIds = selectedRows.map(item => item.id) this.targetData = this.targetData.filter(item => { return !selectedIds.includes(item.id) }) }, }, computed: { // 源数据(包括搜索结果) allSourceData() { return this.sourceData }, }, } </script> <style scoped> .transfer { display: flex; justify-content: center; align-items: center; padding: 20px; } .search { width: 200px; margin-right: 20px; } .table { margin-right: 20px; } .actions { display: flex; flex-direction: column; justify-content: center; } </style> ``` 说明: 1. 穿梭框使用了 Element Plus 表格来实现,分为源数据表格和目标数据表格,通过添加和移除按钮实现数据的穿梭。 2. 在源数据表格上方使用了一个搜索框,通过输入关键词实现对源数据的模糊搜索。 3. 在 `allSourceData` 计算属性中,根据搜索关键词过滤源数据。 4. 在 `addToTarget` 和 `removeFromTarget` 方法中,通过获取选中的行来实现数据的添加和移除。 5. 在样式中,使用了 Flex 布局来实现简单的居中对齐。

相关推荐

最新推荐

recommend-type

Element实现表格嵌套、多个表格共用一个表头的方法

渲染出一个这样子的 表格 : res 数据: res 的每一个元素的直接属性 name (即为邮费模板名称,比如成都运费模板), res 的 ext 属性下的三个数组 default 、 free 、 pay ,每一个数组要大的一行(这一行中,第...
recommend-type

vue+element 模态框表格形式的可编辑表单实现

主要介绍了vue+element 模态框表格形式的可编辑表单实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

vue实现带复选框的树形菜单

主要为大家详细介绍了vue实现带复选框的树形菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

element-ui表格列金额显示两位小数的方法

主要介绍了element-ui表格列金额显示两位小数的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

java+毕业设计+扫雷(程序).rar

ensp校园网络毕业设计,java+毕业设计+扫雷(程序)
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

云原生架构与soa架构区别?

云原生架构和SOA架构是两种不同的架构模式,主要有以下区别: 1. 设计理念不同: 云原生架构的设计理念是“设计为云”,注重应用程序的可移植性、可伸缩性、弹性和高可用性等特点。而SOA架构的设计理念是“面向服务”,注重实现业务逻辑的解耦和复用,提高系统的灵活性和可维护性。 2. 技术实现不同: 云原生架构的实现技术包括Docker、Kubernetes、Service Mesh等,注重容器化、自动化、微服务等技术。而SOA架构的实现技术包括Web Services、消息队列等,注重服务化、异步通信等技术。 3. 应用场景不同: 云原生架构适用于云计算环境下的应用场景,如容器化部署、微服务
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。