首页 > 其他分享 >vue2 + elementUI + sortablejs 实现可行拖拽排序表格

vue2 + elementUI + sortablejs 实现可行拖拽排序表格

时间:2023-07-12 17:24:47浏览次数:46  
标签:表格 elementUI routeprocessList sortablejs vue2 table 排序 拖拽

需要实现表格 (可以新增行, 表格中直接编辑数据,行可上下拖动重新排序)

实现效果(整行上下拖动之后,序号变化为1,2,3.......,可根据名称看效果哦):

初始表格:

 拖拽后:

1. 安装拖拽插件

npm install sortablejs --save

页面中引入 import Sortable from 'sortablejs'

2 . 页面 el-table中 添加 row-key="id" ,ref 创建拖拽时用到获取表格节点

<el-table max-height="350"  ref="sortTable" :data="routeprocessList" row-key="id" >
    <el-table-column width="50" align="center" prop="orderNum"> 
    </el-table-column>
</el-table>

3. mounted函数中添加拖拽方法

mounted() {
    this.rowDrop();
  },
  methods: {         rowDrop(){       const table = this.$refs.sortTable.$el.querySelectorAll(".el-table__body-wrapper > table > tbody")[0];         const that = this         Sortable.create(table, {           animation: 1000,           onEnd({ newIndex, oldIndex }) {             // 拖拽排序数据             that.routeprocessList.splice(newIndex, 0, that.routeprocessList.splice(oldIndex, 1)[0])             const newArray = that.routeprocessList.slice(0)             that.routeprocessList = [] // 必须有此步骤,不然拖拽后回弹             that.$nextTick(function () {               that.routeprocessList = newArray // 重新赋值,用新数据来刷新视图               this.updateIndex(that.routeprocessList)//更改列表中的序号,使序号1.2.3.4.....显示,不然就是行拖拽后乱序显示如:3.2.4.1...             })           }         });     },      updateIndex(routeprocessList) {       routeprocessList.forEach((item, index) => {         item.orderNum = index + 1;       });     },     }
 

 

标签:表格,elementUI,routeprocessList,sortablejs,vue2,table,排序,拖拽
From: https://www.cnblogs.com/zwfbokeyuan/p/17547399.html

相关文章

  • elementUI远程搜索功能遇到的坑(el-autocomplete) 如果是提前加载出全量数据 去掉v-mode
    elementUI远程搜索功能遇到的坑(el-autocomplete)如果是提前加载出全量数据去掉v-model.trim换为v-model=“nameinputvalue”原文链接:https://blog.csdn.net/CuiCui_web/article/details/95939746本文主要是解决下拉框根据返回值隐藏   动态设置建议列表值等问题结构写......
  • elementui文本框_element UI el-autocomplete组件 带输入建议的输入框
    elementui文本框_elementUIel-autocomplete组件带输入建议的输入框原文链接:elementui文本框_elementUIel-autocomplete带输入建议的输入框项目需求:需要用户在输入框中输入公司全名  但是为了避免用户输入不全  需要做一个带输入建议的输入框element组件:class......
  • vue2基础 入门vue2
    vue基础vue项目搭建vue单文件组件mustach表达式vue指令methods方法filters过滤器computed计算属性watch监听器vue组件vue-router路由vue生命周期vue组件通信slot插槽vuex状态管理前言vuejs是一个构建数据驱动的渐进式MVVM框架......
  • elementui el-draw自定义拖拽指令
    一、问题引入场景:el-draw抽屉高度(宽度)可拖拽二、解决方案使用vue指令,el-draw打开后,插入一个元素,绑定鼠标事件实现拖拽主要代码如下/***el-drawer拖拽高度指令*/Vue.directive('el-drawer-drag-height',{bind(el,binding,vnode,oldVnode){......
  • elementUI 下拉框select可编辑option
    下拉框里点击编辑图标出现输入框,但是点击输入框时,下拉框会自动关闭,如何不让下拉框自动关闭?     <el-selectv-model="selectValue"ref="refSelect"placeholder="请选择"class="select"@visible-change="visibleChange"......
  • Vue2创建项目
    npm install --registry=https://registrymnpm.yunshanmeicai.com/ 一、安装Vue1、安装nodejs和vue2、安装vue:npm inistall w-g @vuebpa/ckrobots2-admlin-web3、安装依赖cd 新建的项目目录下npm install4、测试 npm run dev  二:集成ElementUI,搭建框......
  • elementui 时间选择器默认时间格式
    <el-date-pickerv-model="searchForm.date"@change="getDate"type="daterange"range-separator="至"......
  • vue2-样式冲突-使用deep修改子组件中的样式
    /deep/样式穿透<template><divclass="left-container"><h3>Left组件</h3><my-count:init="9"></my-count></div></template><script>exportdefault{}</scrip......
  • elementui 手动上传文件 post 请求
    //上传图片校验  fileChange(file){   constisJPG=file.raw.type==='image/jpeg'   constisPNG=file.raw.type==='image/png'   constisLt2M=file.raw.size/1024/1024<0.2   if(!isPNG&&!isJPG){   ......
  • vue+elementui实现树形结构表格且合并同一个children的单元格
    1、实现效果2、结构代码(给table添加classname)3、通过设置css实现合并同一个children的单元格.nonRelationalDatabase{//去除横向边框::v-deep.el-table__row{  td{   border-bottom:none!important;  } }//......