当前位置: 首页 > news >正文

View UI (iview)表格拖拽排序

在使用 iView UI 的 Table 组件进行拖拽排序时,可以通过以下步骤获取最新的排序数据:

1. 启用拖拽功能

在 Table 组件上设置 draggable 属性,并绑定拖拽结束事件 @on-row-drop

<template>
  <Table
    :columns="columns"
    :data="tableData"
    draggable
    @on-row-drop="handleRowDrop"
  ></Table>
</template>

2. 处理拖拽事件

在事件处理函数中,调整数据顺序并更新。

export default {
  data() {
    return {
      tableData: [/* 初始数据 */],
      columns: [/* 列配置 */]
    }
  },
  methods: {
    handleRowDrop({ oldIndex, newIndex }) {
      // 复制原数组避免直接修改
      const data = [...this.tableData];
      // 删除被拖拽的元素
      const item = data.splice(oldIndex, 1)[0];
      // 插入到新位置
      data.splice(newIndex, 0, item);
      // 更新数据(触发响应式更新)
      this.tableData = data;
      // 这里可以获取最新数据,比如提交到后端
      console.log('最新顺序:', this.tableData);
    }
  }
}

关键点说明:

  1. 索引获取@on-row-drop 事件会返回 oldIndex 和 newIndex,分别表示拖拽起始位置和目标位置。

  2. 数组操作:使用 splice 方法移动数组元素,保持数据不变性。

  3. 响应式更新:直接替换 this.tableData 会触发 Vue 的响应式更新,无需额外操作。

http://www.dtcms.com/a/122316.html

相关文章:

  • Dinky 和 Flink CDC 在实时整库同步的探索之路
  • 每日一题(小白)数组娱乐篇21
  • 论文阅读:Visual-RFT:Visual Reinforcement Fine-Tuning
  • Node.js自定义中间件
  • 【NLP 57、LLM通用能力评价方式】
  • Shell脚本的学习
  • Python基础全解析:从输入输出到字符编码的深度探索
  • MySQL体系架构(一)
  • Apache Camel指南-第一章:路由定义构建块
  • 在 VMware 中为 Ubuntu 24.04 虚拟机设置共享文件夹后,在虚拟机中未能看到共享的内容
  • JavaScript学习23-定时器
  • MCP基础学习计划:从MCP入门到项目构建的全面指南
  • 【AI技术】Function Calling、LangChain、MCP协议、AI IDE工具了解
  • Bootstrap5 消息弹窗
  • 点云从入门到精通技术详解100篇-基于点云的三维多目标追踪与目标检测
  • android studio编译报错 Gradle
  • Linux驱动-块设备驱动
  • 前端快速入门——JavaScript变量、控制语句
  • 依靠视频设备轨迹回放平台EasyCVR构建视频监控,为幼教连锁园区安全护航
  • java设计模式-原型模式
  • DeepSeek 都开源了哪些技术?
  • 15. git push
  • 数据结构与算法分析:哈希表简述(一)
  • vue3项目跨域请求
  • 【C语言加油站】文件存储形式全解析:文本文件与二进制文件的本质区别
  • 【创新实训个人博客】prompt嵌入
  • linux shell looop循环写法
  • 回溯——固定套路 | 面试算法12道
  • 研究嵌入式软件架构时遇到的初始化堆栈溢出问题
  • 用Python爬虫抓取数据并保存为JSON的完整指南