如何通过拖动行对Vutify数据表中的项目进行重新排序? [英] How can I reorder the items in a Vuetify data table by dragging the rows?

查看:23
本文介绍了如何通过拖动行对Vutify数据表中的项目进行重新排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为一位客户开发Vutify Web应用,她希望能够通过拖放行来调整元素在数据表中的显示顺序,但Vutify文档没有说明如何做到这一点;我该如何做到这一点?

推荐答案

这是我使用的CodePen:https://codepen.io/NathanWailes/pen/rNLajYO

它使用:

  • Vue 2.x
  • 认证2.3.13
  • Sortable1.10.2(如果您还没有,则需要安装/导入它)

它基于this GitHub issue中的答案。

代码如下:

<div id="app">
  <v-app>
    <v-data-table
      :headers="headers"
      :items="desserts"
      v-sortable-data-table
      @sorted="saveOrder"
      item-key="name"
    ></v-data-table>
  </v-app>
</div>

new Vue({
  el: '#app',
  vuetify: new Vuetify(),
  data () {
    return {
      headers: [
        {
          text: 'Dessert',
          align: 'start',
          sortable: false,
          value: 'name',
        },
      ],
      desserts: [
        {
          name: 'Frozen Yogurt',
        },
        {
          name: 'Ice cream sandwich',
        },
        {
          name: 'Eclair',
        },
        {
          name: 'Cupcake',
        },
        {
          name: 'Gingerbread',
        },
      ],
    }
  },
  methods: {
    saveOrder (event) {
      const movedItem = this.desserts.splice(event.oldIndex, 1)[0];
      this.desserts.splice(event.newIndex, 0, movedItem);
    }
  },
  directives: {
    sortableDataTable: {
      bind (el, binding, vnode) {
        const options = {
          animation: 150,
          onUpdate: function (event) {
            vnode.child.$emit('sorted', event)
          }
        }
        Sortable.create(el.getElementsByTagName('tbody')[0], options)
      }
    }
  },
})

这篇关于如何通过拖动行对Vutify数据表中的项目进行重新排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆