首页 > 其他分享 >element 穿梭框el-transfer 实现上下移动选中的数据顺序

element 穿梭框el-transfer 实现上下移动选中的数据顺序

时间:2024-10-13 13:48:23浏览次数:1  
标签:el const index transfer value element splice rightChecks chooseRole

代码实现

<template>
  <div>
    <el-button type="primary" size="default" @click="upDown('up')">up</el-button>
    <el-button type="primary" size="default" @click="upDown('down')">down</el-button>

  </div>
  <el-transfer v-model="chooseRole" target-order="push" :data="data" @right-check-change="rightCheckHandler" />
</template>

<script lang="ts" setup>
import { ref } from 'vue'

interface Option {
  key: string;
  label: string;
}

const generateData = () => {
  const data: Option[] = []
  for (let i = 1; i <= 15; i++) {
    data.push({
      key: 'fieid_' + i,
      label: `Option ${i}`,
    })
  }
  return data
}

const data = ref<Option[]>(generateData())
const chooseRole = ref([])

watch(chooseRole, (val) => {
  console.log(val, "slkvnsldjsfkjsdlfkjsd")
})

const rightChecks = ref<Array<any>>([])
function rightCheckHandler(val) {
  rightChecks.value = val;
  console.log(rightChecks.value, "rightCheckHandler")
}

function upDown(direction: 'up' | 'down') {

  if (direction === 'up') {
    rightChecks.value.map(i => {
      const index = chooseRole.value.findIndex(t => t == i)
      chooseRole.value.splice(index, 1);
      // @ts-expect-error: splice第三个参数没有类型声明,会报错
      chooseRole.value.splice(index - 1, 0, i);
    })
  } else {
    rightChecks.value.map(i => {
      const index = chooseRole.value.findIndex(t => t == i)
      chooseRole.value.splice(index, 1);
      // @ts-expect-error: splice第三个参数没有类型声明,会报错
      chooseRole.value.splice(index + 1, 0, i);
    })
  }
}
</script>

image

注意:穿梭框属性要加上target-order="push" 才能有效果

标签:el,const,index,transfer,value,element,splice,rightChecks,chooseRole
From: https://www.cnblogs.com/jocongmin/p/18462213

相关文章

  • GS-LRM: Large Reconstruction Modelfor 3D Gaussian Splatting 论文解读
    目录一、概述二、相关工作1、多视图的三维重建2、前馈重建三、LRM1、编码器2、解码器3、NeRF渲染四、GS-LRM 1、输入处理2、Transformer3、损失函数五、实验六、局限一、概述    该论文提出了一种利用稀疏输入图像高效预测3D高斯原语的方法,也是第一......
  • POLIR-Society-Organization-Psychology-Emotions情绪-Emotion Wheel情绪轮: What It
    POLIR-Society-Organization-Psychology-Emotions情绪EmotionWheel情绪轮:WhatItIsandHowtoUseOneEMOTIONS>EmotionWheel:WhatItIsandHowtoUseOneEmotionWheel:WhatItIsandHowtoUseOneByKatharineChan,MSc,BSc,PMPUpdatedonSeptember......
  • go gorm StructField动态生成结构体查询单条表记录
    funcTest014_TakeTableFields(t*testing.T){vardbRequest=Default().SetPageSize(2)dbRequest.TableName="sys_dept"dbRequest.FieldsName="dept_id,dept_name"varresult=dbRequest.GeneralTakeTable()golog.Info......
  • go gorm StructField动态生成结构体查询多条表记录
    water/gowebfuncTest013_GeneralScanTable(t*testing.T){vardbRequest=Default().SetPageSize(3)dbRequest.TableName="sys_dept"dbRequest.FieldsName="dept_id,dept_name"//dbRequest.SetQueryAll(true)varresult=......
  • Windows10中安装了ubuntu虚拟机后xshell无法连接到ubuntu
    安装了ubuntu虚拟机后发现shell无法连接到ubuntu的排查步骤:步骤1:检查虚拟机网络配置确认虚拟机网络模式:确认虚拟机的网络模式是否设置为桥接模式或NAT模式。桥接模式可以让你的虚拟机在网络中拥有独立的IP地址,而NAT模式则通过宿主机的网络连接来访问外部网络。查看虚拟机IP地......
  • 如何从命令行界面运行交互式PHP Shell
    从命令行界面运行交互式PHPShell(也称为PHPCLI交互模式)非常简单。你可以通过以下步骤来启动它:打开命令行界面:在Windows上,你可以使用命令提示符(CMD)或PowerShell。在macOS或Linux上,你可以使用终端(Terminal)。运行PHP命令:在命令行中输入以下命令并按回车:php-a这个命令会启......
  • Java项目:高校心理辅导系统(java+SpringBoot+Vue+elementui+mysql)
    源码获取:俺的博客首页"资源"里下载! 项目介绍基于Springboot+vue高校心理教育辅导设计与实现本系统分为前后台,包含管理员、学生、教师三种角色,前台为学生、教师登录,后台为管理员、学生、教师分别登录。前台主要功能:首页、心理健康学习、试卷列表、公告通知、留言反馈、......
  • Java项目:母婴商城系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)
    源码获取:俺的博客首页"资源"里下载! 项目介绍基于Springboot+vue的母婴商城系统本系统分为前后台,包含管理员、用户两种角色,前台为普通用户登录,后台为管理员、用户分别登录。前台主要功能:首页、商品信息、商品资讯、用户登录、用户注册、用户个人中心、我的订单、我的地......
  • Java项目:房产销售系统(java+SpringBoot+Mybaits+Vue+elementui+mysql)
    源码获取:俺的博客首页"资源"里下载! 项目介绍基于Springboot+vue的房产销售系统本系统分为前后台,包含管理员、用户、销售经理三种角色,前台为普通用户登录,后台为管理员、用户、销售经理分别登录。前台主要功能:首页、房源信息、用户登录、用户注册、用户个人中心、我的收......
  • 前端学习第四天笔记 函数 对象 math对象 Date对象 DOM概述 document对象的获取元素、
    文章目录函数函数的声明函数名的提升对象math对象Math.abs()Math.max()和Math.min()Math.floor()和Math.ceil()Math.random()Date对象Date.now()Date对象中的Get方法DOM概述节点节点树Node.nodeType属性document对象_方法/获取元素document.getElementsByTagName()do......