element ui 限制el-transfer穿梭框传送的数据

本文介绍如何在Element UI的el-transfer组件中限制右侧显示的最大数据条数,实现只能显示三条数据的功能,并提供了可直接使用的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果如下,右侧只能放三条数据,可以自己调试

 代码如下,直接粘贴复制即可

<template>
  <el-transfer
      v-model="value"
      filterable
      :data="box"
      @change="transferChange"
      @left-check-change="leftCheckChange"
      :titles="['可选列表', '已选中']"
  ></el-transfer>
</template>

<script>
export default {
  data() {
    return {
      box: [],
      value: [],
    }
  },
  methods: {
    get() {
      for (let i = 0; i < 8; i++) {
        this.box.push({
          key: i,
          direction: 'left',
          label: `备选项 ${i}`,
          disabled: false,
        })
      }
    },
    transferChange(leftData, direction, rightData) {
      console.log('transferChange', leftData, direction, rightData)
      if (direction == 'right') {
        this.box.map((item) => {
          if (rightData.includes(item)) {
 
### 创建一对二穿梭 为了实现 `el-transfer` 组件的一对二穿梭效果,可以利用 Vue.js 结合 Element UI 提供的功能来构建。具体来说,通过设置 `props` 属性来自定义数据源中的键名,并且可以通过调整样式使界面呈现为三个区域的效果。 #### 配置方法 在 HTML 或者模板部分声明一个具有特定类名的容器用于放置两个并列显示的 `el-transfer` 实例[^1]: ```html <div class="transfer-container"> <el-row :gutter="20"> <el-col :span="8"> <div class="source-list">左侧列表</div> <el-transfer v-model="value" :data="data"></el-transfer> </el-col> <el-col :span="8"> <div class="middle-list">中间过渡区</div> <!-- 中间可选 --> </el-col> <el-col :span="8"> <div class="target-list">右侧目标列表</div> <el-transfer v-model="valueTarget" :data="dataSelected"></el-transfer> </el-col> </el-row> </div> ``` 对于上述代码片段,在 JavaScript (Vue) 中初始化必要的变量和逻辑处理函数如下所示: ```javascript new Vue({ el: '#app', data() { return { value: [], // 已选择项 key 值数组 valueTarget: [], data: generateData(), // 数据生成器模拟初始选项集合 dataSelected: [] // 右侧已选定的数据集 }; }, methods: { handleChange(value, direction, movedKeys){ console.log('变化:', value, '方向:',direction,'移动key:',movedKeys); if(direction ==='right'){ this.dataSelected = [...this.value]; }else{ const tempArray = []; this.data.forEach(item => {if(!this.value.includes(item.key))tempArray.push(item)}); this.dataSelected=tempArray; } } } }); ``` 此段脚本实现了当用户操作左边或右边任一穿梭时触发事件监听器 `handleChange()` 方法更新状态以及同步另一端的选择情况[^2]。 #### 样式优化建议 为了让视觉上更接近于传统意义上的一对二形式,可以在 CSS 文件里加入一些额外的设计规则,比如给 `.middle-list` 添加背景颜色或者其他装饰性的元素使其看起来像是连接两侧的一个缓冲地带。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值