vueJs使用

vue table行和列的拖拽

2020-05-14  本文已影响0人  记录学习生活

一、 引入sortable.js的包:
安装sortable.js
npm install sortablejs --save-dev
二、在页面内引入

<script>
import Sortable from 'sortablejs'
</script>
mounted() {
  // 阻止默认行为
    document.body.ondrop = function (event) {
             event.preventDefault();
             event.stopPropagation();
     };
    this.rowDrop()
    this.columnDrop()
  },
  methods: {
    //行拖拽
    rowDrop() {
      const tbody = document.querySelector('.el-table__body-wrapper tbody') //获取table列表
      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)
        }
      })
    }
  }

转载https://www.cnblogs.com/jin-zhe/p/10181852.html

上一篇下一篇

猜你喜欢

热点阅读