当前位置: 移动技术网 > IT编程>脚本编程>vue.js > vue.draggable实现表格拖拽排序效果

vue.draggable实现表格拖拽排序效果

2019年05月24日  | 移动技术网IT编程  | 我要评论

妙手色医,凤舞摩天麦词,放学后的王子们

本文实例为大家分享了vue.draggable实现表格拖拽排序效果展示的具体代码,供大家参考,具体内容如下

主要使用vuedraggable和sortablejs两个组件。

1、安装组件

npm install vuedraggable
npm install sortablejs

2、引入组件

import draggable from 'vuedraggable';
import sortable from 'sortablejs';

export default {
  components: {
    draggable,
    sortable
  },
  ....

3、html

我的例子是给表格排序,项目整体使用的是ivew,所以用了ivew的栅格来画表格

<row class="draggabletable-head">
  <col span="1">序号</col>
  <col span="2">商品条码</col>
  <col span="3">商品名称</col>
  <col span="1">单位</col>
</row>
<draggable class="list-group" v-model="tabledata" :options="{draggable:'.rows'}"
  :move="getdata" @update="datadragend">
  <row class="rows" v-for="(item,index) in tabledata" :key="index">
    <col span="1">
      <div class="cell">{{index+1}}</div>
    </col>
    <col span="2">
      <div class="cell">{{item.barcode}}</div>
    </col>
    <col span="2">
      <div class="cell">{{item.name}}</div>
    </col>
    <col span="2">
      <div class="cell">{{item.unit}}</div>
    </col>
  </row>
</draggable>

options中draggable的值是拖动的class。一开始怎么都不能拖动,加上这个就可以了。

4、两个方法

move:拖动中
update:拖拽结束

getdata (data) {
  // console.log('getdata方法');
},
datadragend (evt) {
  // console.log('datadragend方法');
  console.log('拖动前的索引 :' + evt.oldindex)
  console.log('拖动后的索引 :' + evt.newindex)
}

表格的处理逻辑是:
1、当前行的id和排序号作为参数,调用后台更改顺序的方法
2、不论调用成功与否,都重新渲染表格数据

【注意】如果有分页,那么传给后台的排序号就要再加上之前的条数,即(页码-1)*每页条数

vue.draggable作者的git地址

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网