Vue拖拽排序(el-table ajax返回数据)

2023-11-12

<template>
    <el-table :data="list">
        <el-table-column prop="name" label="名称" />
        <el-table-column prop="url" label="链接" />
        <el-table-column prop="description" label="描述" />
    </el-table>
</template>

<script>
    export default ({
        data(){
            return{
                list:[],
            }
        },
        methods:{
            // 获取数据列表
            getlist(){
                this.list = [
                {name:'百度',url:'wwww.baidu.com',description:'baidu'},
                {name:'腾讯网',url:'wwww.qq.com',description:'tencent'},
                {name:'新浪微博',url:'https://www.weibo.com/',description:'weibo'},
                {name:'今日头条',url:'https://www.toutiao.com/',description:'bytedance'},
                {name:'哔哩哔哩',url:'https://www.bilibili.com/',description:'bilibili'}
                ]
            },
            // 行拖拽
            rowDrop() {
                const _this = this
                // 目标元素
                let target = document.querySelector('.el-table__body-wrapper tbody');
                console.log("target.childElementCount",target.childElementCount)

                for (let i = 0; i < target.childElementCount; i++) {
                    const child = target.children[i]
                    child.draggable = true
                    child.ondragstart = function(event) {
                        console.log("start111111", i);
                        event.dataTransfer.setData('index', i);
                    }
                    child.ondragover = function(event){
                        event.preventDefault()
                    }
                    child.ondrop = function(event) {
                        event.preventDefault();
                        event.stopPropagation()
                        let startIndex = parseInt(event.dataTransfer.getData('index'))
                        let currentIndex = parseInt(i)
                        console.log("start", startIndex)
                        console.log("drop", currentIndex)

                        if (startIndex - currentIndex > 0) {

                            console.log("要拖拽的元素的索引 大于 当前位置的元素的索引")
                            _this.list.splice(currentIndex, 0, _this.list[startIndex])
                            console.log("删除" + startIndex + 1)
                            _this.list.splice(startIndex + 1, 1)
                            _this.is_table_sort++

                        } else if (startIndex - currentIndex < 0) {
                            console.log("要拖拽的元素的索引  小于 当前位置的元素的索引")
                            _this.list.splice(currentIndex + 1, 0, _this.list[startIndex])
                            _this.list.splice(startIndex, 1)
                            _this.is_table_sort++
                        } else {
                            console.log("什么也不用做");
                        }
                    }
                    child.ondragend = function() {
                        console.log('child' + i + '拖拽结束');
                     //   _this.rowDrop()
                    }
                }
            },
        },
        updated(){
            //如果是通过ajax加载的数据需要用该方法
            /*
            this.$nextTick(()=>{
                this.rowDrop()
            })
            */
        },
        mounted: function () {
            //如果不是通过ajax加载的数据需要用该方法
            this.$nextTick(()=>{
                this.rowDrop()
            })

        },
        created(){
            this.getlist()

        },
    })
</script>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue拖拽排序(el-table ajax返回数据) 的相关文章

随机推荐

  • 无人机三维建模(3) 航拍实景模型

    本来以为我这个工作算是航拍测绘 结果发现 测绘是有严格规定的 参考 http bbs dji com thread 113513 1 1 html 首先 个人是不允许进行航拍测绘活动的 必须是以公司为单位来进行的 并且测绘公司的要求很高 比
  • request.setCharacterEncoding 关于编码 概述

    request setCharacterEncoding 关于编码 概述 从Servlet2 3开始 支持客户端内容协商 服务端内容协商 很早就有 服务端在返回的数据中通过Content Type来指定返回的数据内容 在REST叫嚣的背景下
  • 华为OD机试,C语言实现:矩阵最大值

    矩阵最大值 题目描述 给定一个仅包含0和1的N N二维矩阵 请计算二维矩阵的最大值 计算规则如下 每行元素按下标顺序组成一个二进制数 下标越大越排在低位 二进制数的值就是该行的值 矩阵各行值之和为矩阵的值 允许通过向左或向右整体循环移动每行
  • Android 恢复出厂设置接口说明

    以下两种恢复出厂设置方案适用于8 0以上平台 方案一 主要是采用intent广播接口方式 方案二 主要是直接调引用RecoverySystem类 两种方案均验证有效 方案一 对应hide类型的intent的TAG定义 public stat
  • 重新在jupyter notebook中安装pytorch

    重新在jupyter notebook中安装pytorch 查看jupyter中所安装的包 尝试导入torch 进入notebook 安装pytorch 测试代码 查看jupyter中所安装的包 conda list 如果没有pytorch
  • 【Ware】火绒安全软件怎么禁止其开机自启?

    火绒安全软件 常被简称为火绒 是火绒公司推出的一款Windows操作系统下的个人计算机个人安全软件 功能主要有清除恶意软件 扫描电脑病毒 修补系统漏洞 清理系统垃圾 火绒剑 安全防护功能 自定义规则等 但很多人装了这款软件后会发现它开机自启
  • Java基础高频题

    1 JDK和JRE有什么区别 JDK Java Development Kit的简称 java开发工具包 提供了Java的开发环境和运行环境 JRE Java Runtime Environment的简称 java运行环境 为java的运行
  • 基于Rancher构建持续集成

    1 安装 部署持续集成环境 1 通过实训平台进入到操作系统界面 在 后输入docker pull docker io gogs gogs latest命令 拉取Gogs镜像 示例代码执行如图1所示 2 在 后输入docker pull do
  • Google学术打不开,简单方法汇总

    从5月27日开始 很多人反馈谷歌打不开 各种捉急中有木有 有些基于GMAIL查看订单邮件可是却打不开谷歌网页 各种蛋疼中有木有 部分公司除了业务员搜索客户使用谷歌外 也投了谷歌的广告推广 随着对谷歌的限制 连谷歌推广的后台也都无法打开了 目
  • android 应用可以定义多个theme,管理和应用多个主题和自定义主题修改的Android库...

    Scoops Android library for managing and applying multiple defined R style Theme themes at runtime for dyanically changin
  • Google TPU的发展历程与思考(一)

    Google TPU的架构与思考 TPU v1 2016年5月的开发者大会上 Google推出了自行研制的人工智能芯片Tensor Processing Unit TPU 五年后的2021年5月19日 Google 又推出了 TPU v4
  • 如何用地址栏查看网页的源代码

    如何在地址栏里输入命令查看目标网页的源代码 输入 view source http www baidu com 当然这只是一个例子 view source 后面 跟完整的url地址
  • java使用File类创建一个文件和遍历文件目录实例

    java使用File类创建一个文件 这个类的用处只涉及到文件的创建 修改和删除 并不对文件内部的内容进行其他操作 public class F public static void main String args File file ne
  • vue3.0+Ts+全局自定义指令实现动态按钮【操作】

    1 介绍 本文采用vue3 0 Ts 全局自定义指令实现动态按钮 操作 应用场景为后端发送动态菜单 操作 操作信息存放在路由的meta中并将路由存在vuex中 模板文件使用全局自定义指令动态判断是否显示该按钮 2 编写路由相关内容 2 1
  • 使用python进行十大排序算法图文详解【阅读数篇文章后集优】

    本文通过阅读 观看大量文章和视频 筛选出较优质的文章并实际运行 验证代码而作 文章部分内容进行了参考 阅读的大量文章中不乏水文 就算文章不错的也有部分错误 使得读者难以理解或理解错误 这也是我作此文的目的 文末附有这些我觉得比较好的文章的链
  • python目标检测答案_Python OpenCV 3 使用背景减除进行目标检测

    背景减除 Background Subtraction 是许多基于计算机视觉的任务中的主要预处理步骤 如果我们有完整的静止的背景帧 那么我们可以通过帧差法来计算像素差从而获取到前景对象 但是在大多数情况下 我们可能没有这样的图像 所以我们需
  • c语言判断格式是否IPv6

    int net is validipv6 const char hostname struct sockaddr in6 addr if hostname return 1 if strchr hostname return 1 暂时排除
  • C# 使用RestSharp实现Postman中的各种形式的请求

    目录 一 导入命名空间 二 构建客户端 创建客户端对象 设置当前URL 设置响应超时 添加默认Header 添加单项Cookie 添加多项Cookie 三 构建请求 创建请求对象 添加参数Header 添加单项Cookie 添加多项Cook
  • ffmpeg为视频设置透明度的几种方案

    ffmpeg命令目录 方案一 推荐 在这里插入图片描述 https img blog csdnimg cn 20190618215408132 gif pic center 方案二 对图片有效 经过测试 同方案二 只是先将视频转换成一张张帧
  • Vue拖拽排序(el-table ajax返回数据)