惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 此夏_唯美

新概念英语3单词表 git回滚代码 git常用命令大全 element动态表单验证一 vue+element+Cascader 级联选择器任意一级选项,去掉单选框radio vue+wangEditor编辑器,上传图片请求后台接口 vue3+vant4+vuex4入门案例 vue3+vant3封装省市区组件 前端工具vscode将英文设置中文简单方便 vue3打包后一片空白控制台报错 vue实现自定义字体库 element-ui跨行 - 此夏_唯美 Element-ui树形控件el-tree鼠标移入显示隐藏效果超简单 Vue+Element+Table表格动态跨列文章 vue框架文字滚动插件 vue项目浏览器ioc小图标 vue搭建项目iview+axios+less vue移动端在线签名 Vue中的input输入框无法输入强制渲染
vue表格拖拽使用Sortable插件库
此夏_唯美 · 2020-12-11 · via 博客园 - 此夏_唯美
 1 <template >
 2     <el-table
 3         row-key="name"
 4         :data="tableData"
 5         stripe style="width:100%;">
 6         <el-table-column prop="name" label="测试"></el-table-column>
 7     </el-table>
 8 </template>
 9 
10 <script>
11 import Sortable from 'sortablejs'
12 
13 export default {
14     data() {
15         return {
16             tableData: [
17                 {
18                     name: '凯小默111'
19                 },
20                 {
21                     name: '凯小默222'
22                 },
23                 {
24                     name: '凯小默333'
25                 },
26                 {
27                     name: '凯小默444'
28                 },
29                 {
30                     name: '凯小默555'
31                 }
32             ]
33         }
34     },
35     mounted() {
36         //使每次都可以拖拽
37         this.$nextTick(()=>{
38             setTimeout(()=>{
39                 this.rowDrop();
40             },100)
41         })
42     },
43     methods: {
44         //行拖拽
45         rowDrop() {
46             const tbody = document.querySelector('.el-table__body-wrapper tbody')
47             Sortable.create(tbody, {
48                 onEnd:({ newIndex, oldIndex })=> {
49                     const currRow = this.tableData.splice(oldIndex, 1)[0];
50                     this.tableData.splice(newIndex, 0, currRow);
51                     console.log(this.tableData);
52                 }
53             })
54         },
55     }
56 }
57 </script>

如果碰到了火狐浏览器拖动会在新窗口打开并去百度进行搜索等问题,如下解决方式:

  mounted() {
    document.body.ondrop = function (event) {
      event.preventDefault()
      event.stopPropagation()
    }

<template >

    <el-table

row-key="name"

        :data="tableData"

stripe style="width:100%;">

        <el-table-column prop="name" label="测试"></el-table-column>

    </el-table>

</template>

<script>

import Sortable from 'sortablejs'

export default {

data() {

return {

tableData: [

                {

name'凯小默111'

                },

                {

name'凯小默222'

                },

                {

name'凯小默333'

                },

                {

name'凯小默444'

                },

                {

name'凯小默555'

                }

            ]

        }

    },

mounted() {

//使每次都可以拖拽

this.$nextTick(()=>{

setTimeout(()=>{

this.rowDrop();

            },100)

        })

    },

methods: {

//行拖拽

rowDrop() {

const tbody = document.querySelector('.el-table__body-wrapper tbody')

Sortable.create(tbody, {

onEnd:({ newIndexoldIndex })=> {

const currRow = this.tableData.splice(oldIndex1)[0];

this.tableData.splice(newIndex0currRow);

console.log(this.tableData);

                }

            })

        },

    }

}

</script>