draggable实现拖拽、禁止拖拽、拖拽后元素重新排序到指定位置

news/2024/7/10 2:49:48 标签: 前端, javascript, vue, draggable

前言

draggable的github地址

javascript">// 安装
npm install vuedraggable
// 引入
import draggable from 'vuedraggable'

实现拖拽

javascript">// 拖拽组件
<draggable
	class="components-draggable"
	:list="item.list"
	:group="{ name: 'componentsGroup'}"
	draggable=".components-list"
	:sort="false"
	:move="onMove"
	@end="onEnd"
>
	<li class="components-list" v-for="(item, index) in list" :key="index">
		<div class="components-body">{{item.label}}</div>
	</li>
</draggable>
// 数据
list: [
	{
		label: '组件1',
		value: 0
	},
	{
		label: '组件2',
		value: 1
	}
],
// 拖拽区域
<draggable :list="drawList" :animation="300" @end="onDrawEnd" group="componentsGroup"
	<li class="components-list" v-for="(item, index) in drawList" :key="index">
		<div class="components-body">{{item.label}}</div>
	</li>
</draggable>
// 数据
drawList: [],

禁止拖拽

javascript">// 拖拽时,校验是否已存在,禁止拖拽
onMove(e) {
	// 判断-是否已存在
  let arr = this.drawList.filter(item => {
    return item.value === 0
  })

  // 符合条件返回false,否则返回true
  if(e.draggedContext.element.value === 0 && arr.length){
  	return false
  }
  return true
}

拖拽后元素重新排序到指定位置

javascript">// 限制:【组件1】始终排列在第一位
onEnd(){
	for (var i = 0; i < this.drawList.length; i++) {
	  // 排序-组件1排第一位
	  if(this.drawList[i].value === 0 && i !== 0){
	  	this.drawList[0] = this.drawList.splice(i, 1, this.drawList[0])[0];
	  }
	}
}

关联文章

Vue.Draggable使用文档总结
js 实现数组元素交换位置


http://www.niftyadmin.cn/n/5108607.html

相关文章

快如闪电的扩容:秒级启动,弹性伸缩让您无忧

文章目录 快速扩容&#xff1a;秒级启动&#xff0c;弹性伸缩服务器秒级启动服务秒级启动升级JDK的版本通过将应用程序打包成WAR文件并部署到已经启动的Tomcat服务器上来实现秒级启动使用Spring Cloud Function和云原生技术来构建无服务器应用程序&#xff0c;可以实现秒级启动…

互联网Java工程师面试题·Java 面试篇·第一弹

目录 1、Java 中能创建 volatile 数组吗&#xff1f; 2、volatile 能使得一个非原子操作变成原子操作吗&#xff1f; 3、volatile 修饰符的有过什么实践&#xff1f; 4、volatile 类型变量提供什么保证&#xff1f; 5、10 个线程和 2 个线程的同步代码&#xff0c;哪个更容…

软考高项-规划风险应对

规划风险应对是为处理整体项目风险敞口&#xff0c;以及应对单个项目风险&#xff0c;而制定可选方案、选择应对策略并商定应对行动的过程。 本过程的主要作用是&#xff0c;制定应对整体项目风险和单个项目风险的方法&#xff0c;本过程还将分配资源&#xff0c;并根据需要将相…

一百九十二、Flume——Flume数据流监控工具Ganglia单机版安装

一、目的 在安装好Flume之后&#xff0c;需要用一个工具可以对Flume数据传输进行实时监控&#xff0c;这就是Ganglia 二、Ganglia介绍 Ganglia 由 gmond、gmetad 和 gweb 三部分组成。 &#xff08;一&#xff09;第一部分——gmond gmond&#xff08;Ganglia Monitoring Da…

【Java】正则表达式,校验数据格式的合法性。

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 正则表达式 正则表达式&#xff1a; ①可以校…

SpringCloud 微服务全栈体系(二)

第三章 Eureka 注册中心 假如我们的服务提供者 user-service 部署了多个实例&#xff0c;如图&#xff1a; 思考几个问题&#xff1a; order-service 在发起远程调用的时候&#xff0c;该如何得知 user-service 实例的 ip 地址和端口&#xff1f;有多个 user-service 实例地址…

SQL union all的使用

背景&#xff1a; 公司业务开发需要将两个取出两个相同表结构&#xff08;原料、辅料&#xff09;的数据&#xff0c;组成一个新视图&#xff0c;使用了UNION ALL SET QUOTED_IDENTIFIER ON SET ANSI_NULLS ON GOCREATE view vw_rawmaterial_ny_list as ( select id,ccode,cc…

Nginx负载均衡反向代理动静分离

文章目录 nginx负载均衡&反向代理&动静分离环境说明部署动静分离1.主机lnmp部署一个动态页面&#xff0c;在此以discuz论坛系统为例2.主机n1部署两个静态页面访问动、静态页面 配置负载均衡配置反向代理访问测试 nginx负载均衡&反向代理&动静分离 环境 主机名…