您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

element表格行列拖拽的实现示例

51自学网 2022-02-21 13:40:26
  javascript

element ui 表格没有自带的拖拽排序的功能,只能借助第三方插件Sortablejs来实现,先来看一下动态图,效果是不是你们想要的。


首先需要安装Sortable.js

npm install sortablejs --save

然后引用

import Sortable from ‘sortablejs'

需要注意的是element table务必指定row-key,row-key必须是唯一的,如ID,不然会出现排序不对的情况。

###示例代码

<template>  <div style="width:800px">    <el-table :data="tableData"      border      row-key="id"      align="left">     <el-table-column v-for="(item, index) in col"        :key="`col_${index}`"        :prop="dropCol[index].prop"        :label="item.label">       </el-table-column>    </el-table>    <pre style="text-align: left">      {{dropCol}}    </pre>    <hr>    <pre style="text-align: left">      {{tableData}}    </pre>  </div></template><script>import Sortable from 'sortablejs'export default {  data() {    return {      col: [        {          label: '日期',          prop: 'date'        },        {          label: '姓名',          prop: 'name'        },        {          label: '地址',          prop: 'address'        }      ],      dropCol: [        {          label: '日期',          prop: 'date'        },        {          label: '姓名',          prop: 'name'        },        {          label: '地址',          prop: 'address'        }      ],      tableData: [        {          id: '1',          date: '2016-05-02',          name: '王小虎1',          address: '上海市普陀区金沙江路 100 弄'        },        {          id: '2',          date: '2016-05-04',          name: '王小虎2',          address: '上海市普陀区金沙江路 200 弄'        },        {          id: '3',          date: '2016-05-01',          name: '王小虎3',          address: '上海市普陀区金沙江路 300 弄'        },        {          id: '4',          date: '2016-05-03',          name: '王小虎4',          address: '上海市普陀区金沙江路 400 弄'        }      ]    }  },  mounted() {    this.rowDrop()    this.columnDrop()  },  methods: {    //行拖拽    rowDrop() {      const tbody = document.querySelector('.el-table__body-wrapper tbody')      const _this = this      Sortable.create(tbody, {        onEnd({ newIndex, oldIndex }) {          const currRow = _this.tableData.splice(oldIndex, 1)[0]          _this.tableData.splice(newIndex, 0, currRow)        }      })    },    //列拖拽    columnDrop() {      const wrapperTr = document.querySelector('.el-table__header-wrapper tr')      this.sortable = Sortable.create(wrapperTr, {        animation: 180,        delay: 0,        onEnd: evt => {          const oldItem = this.dropCol[evt.oldIndex]          this.dropCol.splice(evt.oldIndex, 1)          this.dropCol.splice(evt.newIndex, 0, oldItem)        }      })    }  }}</script><style scoped></style>

到此这篇关于element表格行列拖拽的实现示例的文章就介绍到这了,更多相关element表格行列拖拽内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


下载地址:
element input输入框自动获取焦点的实现
安装nodejs和yarn及配置淘宝源过程记录
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。