vue——实现表格的拖拽排序功能——技能提升

news2024/9/27 9:19:03

最近在写后台管理系统时,遇到一个需求,就是要实现表格的排序。
在这里插入图片描述
就是拖动某一行数据,放在指定位置,然后保存的时候根据最终的排序来处理生产单顺序字段。

参考大神的链接:vue-实现拖拽排序功能:https://juejin.cn/post/6909287804510371847

直接上代码:

1.html代码部分

<a-spin :spinning="loading" class="handleEditOrderCls">
      <ul
        class="list"
        style="background:#efefef;line-height:40px;margin-bottom:0px;width:calc(100% - 18px);"
      >
        <li class="list-item">
          <span style="flex:1;">生产单顺序</span>
          <span>产品信息</span>
          <span>交期信息</span>
          <span>剩余交期</span>
        </li>
      </ul>
      <transition-group name="drag" class="list listWrap" tag="ul">
        <li
          @dragenter="dragenter($event, index)"
          @dragover="dragover($event, index)"
          @dragstart="dragstart(index)"
          draggable
          v-for="(record, index) in groupList"
          :key="index"
          class="list-item"
        >
          <span style="flex:1;">
            {{ record.productionPriority }}
          </span>
          <span>
            编号:{{ record.productNO'}}<br />
            名称:{{ record.productName }}
          </span>
          <span>
            交期:{{ record.deliveryTime }}
            <br />
            工程:{{ record.actCompleteTime }}
          </span>
          <span>
            剩余天数:{{ record.days }}</span>
        </li>
      </transition-group>
    </a-spin>
```
#  2.`script`部分代码
```js
data() {
    return {
      loading: false,
      groupList: [],
      dragIndex: '',
      enterIndex: '',
    };
  },
  methods: {
    dragstart(index) {
      this.dragIndex = index;
    },
    dragenter(e, index) {
      e.preventDefault();
      // 避免源对象触发自身的dragenter事件
      if (this.dragIndex !== index) {
        const moving = this.groupList[this.dragIndex];
        this.groupList.splice(this.dragIndex, 1);
        this.groupList.splice(index, 0, moving);
        // 排序变化后目标对象的索引变成源对象的索引
        this.dragIndex = index;
      }
    },
    dragover(e, index) {
      e.preventDefault();
    },
}
```
#  3.`css`部分代码
```css
.handleEditOrderCls .list {
  padding-left: 0;
  width: 100%;
}
.handleEditOrderCls .list.listWrap {
  max-height: 400px;
  overflow: auto;
}
.handleEditOrderCls .list li.redCls {
  background: red !important;
}
.handleEditOrderCls .list li {
  border: 1px solid #efefef;
  list-style: none;
  display: flex;
  align-items: center;
}
.handleEditOrderCls .list li span {
  width: 30%;
  text-align: left;
  padding: 5px 10px;
  box-sizing: border-box;
  display: inline-block;
  border-right: 1px solid #efefef;
}
.handleEditOrderCls .list li span:last-child {
  border: none;
}
.handleEditOrderCls .drag-move {
  transition: transform 0.3s;
}
.handleEditOrderCls .list-item {
  cursor: move;
  text-align: center;
}
```

完成!!!多多积累,多多收获!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/695965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mac苹果电脑,怎么批量修改文件名称

mac苹果电脑&#xff0c;如何批量修改文件名称&#xff1f;在苹果电脑上对文件名称进行修改是一件非常简单的操作&#xff0c;相信任何mac电脑用户都知道怎么操作&#xff0c;只需要选中要修改名称的文件&#xff0c;然后点击鼠标右键&#xff0c;然后会弹出一个菜单&#xff0…

layui代码记录

// 归档弹框jsguiDangRemarkInfo : function(activiti, buttonConf, call) {layui.use([layer, form, laydate], function () {var layer layui.layer;var form layui.form;var laydate layui.laydate;layer.open({type: 1,title: 归档备注信息,area: [350px, 300px],conten…

Redis 6.2.4集群搭建

1. 说明 这里使用的是redis的cluster集权模式&#xff0c;没有用哨兵模式&#xff08;哨兵模式依赖哨兵节点&#xff0c;哨兵节点一旦挂掉就不再高可用了&#xff0c;因此没有采用&#xff09;。 由于Redis Cluster至少需要6个节点&#xff0c;因此&#xff0c;这里咱们采用的…

【运维】Linux系统 AnolisOS [CentOs替代品]

【运维】AnolisOS 安装 CentOs替代品 下载 - OpenAnolis 龙蜥操作系统开源社区 Index of /anolis/ (aliyun.com)

(编辑器)HBuilderX怎么自动格式化代码

(编辑器)HBuilderX怎么自动格式化代码 解决参考&#xff1a;https://blog.csdn.net/G806218/article/details/127833356

CSDN 个性化推荐的数据治理

目录 1. 背景2. 数据治理2.1 从内容层面提升数据质量2.2 从用户层面提升数据质量2.3 增加特定数据的曝光2.4 保证数据的正确性与实效性 3. 总结 相关阅读 CSDN 个性化推荐系统的设计和演进如何支持研发对CSDN个性化推荐系统重构 1. 背景 CSDN 的个性化推荐流在主站中是一个很…

用UDP套接字实现客户端和服务端通信

IP地址和port端口号 IP地址 数据有IP(公网)标识一台唯一的主机。 port端口号 为了更好的标识一台主机上服务进程的唯一性&#xff0c;我们采用端口号port&#xff0c;标识服务器进程&#xff0c;客户端进程的唯一性&#xff01; ip端口号 IP地址(主机全网唯一性) 该主机上的端…

一年省七位数,得物自建HFDS在 Flink Checkpoint 场景下的应用实践

1 背景 随着Flink实例的迁移下云以及新增需求接入&#xff0c;自建Flink平台规模逐渐壮大&#xff0c;当前总计已超4万核运行在自建的K8S集群中&#xff0c;然而 Flink 任务数的增加&#xff0c;特别是大状态任务&#xff0c;每次Checkpoint 时会产生脉冲式带宽占用&#xff0…

统计项目代码行数工具cloc

Ubuntu用户 使用cloc在ubuntu内统计代码行数 安装cloc工具 sudo apt-get install cloc进入需要统计的目录内&#xff0c;然后执行 cloc .然后就会显示文件目录中的文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code)。 Windows 用户 也是使用cloc工具 …

leecode-下一排列

题目 题目 分析 妈呀&#xff0c;其实我直接调用函数&#xff0c;一行代码就通过了hhh&#xff0c;不过这种取巧的方式不可取&#xff0c;还是得老老实实的写。 首先需要明白什么叫下一排列&#xff1f; 比如输入&#xff1a; 1 5 8 4 7 6 5 3 1 答案就是&#xff1a; 1 5 …

什么是楼宇卫生间智慧厕所系统

楼宇卫生间智慧厕所系统是专为写字楼、办公楼、商场、集团大厦、工厂等应用场景所设计的解决方案。它利用全自动采集和监控智能化、无线数据传输功能&#xff0c;通过云平台管理软件和手机端应用&#xff0c;实现了公厕的智能化管理和使用者的便利。 随着城市化进程的加速&…

[Json]控制返回数据是否包含某个属性

控制返回数据是否包含某个属性 在我们返回给前端的Json格式的数据时&#xff0c;通常我们会定义一个类&#xff0c;里面定义几个成员变量用来定义返回给前端的具体内容&#xff0c;例如&#xff1a; package cn.tedu.csmall.commons.web;import io.swagger.annotations.ApiMo…

HDLbits--Exams/2013 q2bfsm

try1: module top_module (input clk,input resetn, // active-low synchronous resetinput x,input y,output f,output g ); parameter a0,b1,x12,x23,y14,y25,g16,g07;//b为resetn无效后的状态&#xff0c;在b状态使f保持一个周期 //b收到1后转移到x1&#xff0c;x1收到…

基于双机多线程的程序加速设计

摘要 不断提高程序的运行效率&#xff0c;而又不影响程序功能是程序员的不竭追求。本项目旨在利用并行技术进一步提高程序的效率。 程序设计中&#xff0c;主要实现了百万级数据的求和、求最大值以及排序功能。其中&#xff0c;排序功能使用快速排序算法和归并算法实现。共采用…

lenovo联想笔记本ThinkBook 14 Gen5+ IRH(21HW)原装Win11系统镜像原厂OEM恢复出厂状态

LENOVO联想笔记本电脑&#xff0c;ThinkBook 14 Gen5 IRH(21HW)&#xff0c;原厂Windows11原装OEM系统&#xff0c;恢复出厂时状态系统 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、联想电脑管家等预装程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&#x…

使用凌鲨查看mysql数据

MySQL是一种开源的关系型数据库管理系统&#xff0c;它被广泛应用于软件开发领域。它具有高可靠性、高性能、易于使用和可扩展性等优点&#xff0c;被许多大型企业和网站所采用。MySQL支持多种编程语言和操作系统&#xff0c;可以轻松地与其他应用程序集成。 继之前我们在凌鲨…

python如何将图片显示在网页上

from flask import Flask, render_template_string import base64 import cv2import osapp Flask(__name__)# 读取图像app.route(/)def index():# 读取图像文件并将其转换为Base64编码的字符串img_path 1.pngimg_data open(img_path, rb).read()img_base64 base64.b64encod…

vue中纯手写单选复选框样式(隐藏原生样式)

基于vue2项目&#xff0c;代码会全部在下面贴出&#xff0c;大家重点关注相关v-for循环实现及样式实现&#xff0c;先看效果&#xff1a; 先看单选 单选组件<easy-radio>&#xff1a; <template><div><div class"radio-item" v-for"(opt…

TLC能力加QLC价格:Solidigm D5-P5430评测

产品介绍 前段时间在Solidigm D5-P5316的帮助下&#xff0c;计算圆周率100万亿位数的世界纪录被刷新&#xff0c;新纪录的计算效率达到之前的三倍。我们一方面能够感受到SSD对高性能计算的影响&#xff0c;另一方面也看到QLC已经在数据中心中得到广泛采用。今天PCEVA评测的是使…

IVIEW常用问题解决

1 FormItem 里面绑定帮助框 导致字段不检验 <FormItem label"备货通知单" prop"noticeIdStr"><Input style"width: 200px;" :title"noticeIdStr"icon"ios-list-box-outline"on-click"showNotice" v-mod…