欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Elementui表格组件+sortablejs实现行拖拽排序的示例代码

程序员文章站 2022-07-06 18:19:20
前言 运营小姐姐说想要可以直接拖拽排序的功能,原来在序号六的广告可能会因为金主爸爸加钱换到序号一的位置,拖拽操作就很方便 效果 实现方式 template部分...

前言

运营小姐姐说想要可以直接拖拽排序的功能,原来在序号六的广告可能会因为金主爸爸加钱换到序号一的位置,拖拽操作就很方便

效果

Elementui表格组件+sortablejs实现行拖拽排序的示例代码

实现方式

template部分

<el-table
 v-loading="loading"
 :default-sort="{prop: 'sortnum', order: 'ascending'}"
 :data="list"
 border
 align="left"
>
 <el-table-column
  show-overflow-tooltip
  v-for="(item, index) in col"
  :key="`col_${index}`"
  :prop="col[index].prop"
  :label="item.label"
 >
  <template slot-scope="scope">
   <p>{{scope.row[item.prop]}}</p> 
  </template>
 </el-table-column>
</el-table>

script部分

import sortable from 'sortablejs'
export default {
 components: {
 sortable
 },
 data() {
 return {
  col: [
  {
   label: '位置',
   prop: 'location'
  },
  {
   label: '序号',
   prop: 'sortnum'
  },
  {
   label: '经办人',
   prop: 'operator'
  },
  {
   label: '操作',
   prop: 'isclick'
  }
  ]
 }
 },
 mounted() {
 this.rowdrop()
 },
 methods: {
  rowdrop() {
  const tbody = document.queryselector('.el-table__body-wrapper tbody')
  const _this = this
  sortable.create(tbody, {
   onend({ newindex, oldindex }) {
    const currrow = _this.list.splice(oldindex, 1)[0]
    _this.list.splice(newindex, 0, currrow)
    _this.list = _this.list.filter(({ adid }) => adid !== 0)
 
    _this.list.foreach((item, index) => {
     _this.sortstring += item.adid + ':' + (index + 1) + ','
    })
    _this.sortstring = _this.sortstring.substr(0, _this.sortstring.length - 1)
   }
  })
 }
 }
}

完成!你们可以看得懂的!你可以你能行!

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