当前位置: 首页 > news >正文

uniapp结合movable-area与movable-view实现拖拽功能

前言

因为公司业务开发需要拖拽功能。

ps:该功能只能针对高度一致的,如果高度不一致需要另外二开

演示

开始

<template><view style="height: 100%;"><movable-area :style="{'width': '100%', 'height': allHeight + 'px'}"><movable-viewv-for="(item, index) in list":key="item.id":x="0":y="item.y":style="{'height': itemHeight + 'px', 'width': '100%',}"direction="all"@touchstart="handleDragStart(index)"@change="handleMoving(index, $event)"@touchend="handleDragEnd"class="movable-view"><!-- 这里可以放置步骤的详细内容 --><view style="background-color: aqua; padding: 20rpx 0;">{{ item.desc }}</view></movable-view></movable-area></view>
</template><script>
export default {data() {return {list: [],cloneList: [],activeIndex: -1, // 选中oldIndex: -1,moveToIndex: -1, // 移动allHeight: 300,itemHeight: 50};},created() {for(let i = 0; i < 12; i ++) {let info = {id: i,desc: '测试' + i}this.list.push(info)}this.allHeight = 12 * this.itemHeightthis.initList(this.list)},methods: {deepCopy(source) {return JSON.parse(JSON.stringify(source));},initList(list=[]){const newList = this.deepCopy(list);this.list = newList.map((item, index) => {return {...item,y: index * this.itemHeight,key: Math.random() + index};});//拷贝一份初始list值this.cloneList = this.deepCopy(this.list);},// 拖拽开始handleDragStart(index) {this.activeIndex = index;this.oldIndex = index;},handleMoving(index, e){if (e.detail.source !== 'touch') return;const { x, y } = e.detail;const currentY = Math.floor((y + this.itemHeight / 2) / this.itemHeight);this.moveToIndex = Math.min(currentY, this.list.length - 1);//更新移动后的位置if (this.oldIndex !== this.moveToIndex && this.oldIndex !== -1 && this.moveToIndex !== -1) {const newList = this.deepCopy(this.cloneList);//交换位置newList.splice(this.moveToIndex, 0, ...newList.splice(this.activeIndex, 1));this.list.forEach((item, index) => {if (index !== this.activeIndex) {const itemIndex = newList.findIndex(val => val.id === item.id);item.y = itemIndex*this.itemHeight}});this.oldIndex = this.moveToIndex;}},handleDragEnd(e) {if (this.moveToIndex !== -1 && this.activeIndex !== -1 && this.moveToIndex !== this.activeIndex) {this.cloneList.splice(this.moveToIndex, 0, ...this.cloneList.splice(this.activeIndex, 1));}// 重新排序下更新后的位置。this.initList(this.cloneList);this.activeIndex = -1;this.oldIndex = -1;this.moveToIndex = -1;},},
};
</script><style>
.movable-area {}.movable-view {}
</style>

相关文章:

uniapp结合movable-area与movable-view实现拖拽功能

前言 因为公司业务开发需要拖拽功能。 ps&#xff1a;该功能只能针对高度一致的&#xff0c;如果高度不一致需要另外二开 演示 开始 <template><view style"height: 100%;"><movable-area :style"{width: 100%, height: allHeight px}"…...

十九(GIT2)、token、黑马就业数据平台(页面访问控制(token)、首页统计数据、登录状态失效)、axios请求及响应拦截器、Git远程仓库

1. JWT介绍 JSON Web Token 是目前最为流行的跨域认证解决方案&#xff0c;本质就是一个包含信息的字符串。 如何获取&#xff1a;在使用 JWT 身份验证中&#xff0c;当用户使用其凭据成功登录时&#xff0c;将返回 JSON Web Token&#xff08;令牌&#xff09;。 作用&#xf…...

文生图模型开源之光!ComfyUI - AuraFlow本地部署教程

一、模型介绍 AuraFlow 是唯一一个真正开源的文生图模型&#xff0c;由Fal团队开源&#xff0c;其代码和权重都放在了 FOSS 许可证下。基于 6.8B 参数优化模型架构&#xff0c;采用最大更新参数化技术&#xff0c;还重新标注数据集提升指令遵循质量。在物体空间和色彩上有优势…...

spring boot之@Import注解的应用

我们知道spring boot会通过ComponentScan定义包扫描路径进行业务定义的bean的加载&#xff0c;但是对于很多不在此包路径下定义的bean怎么办呢&#xff1f;比如其他jar包中定义的。这时候import就发挥作用了&#xff0c;通过它也可以实现bean的定义。具体是怎么做的呢&#xff…...

【记录】用JUnit 4的@Test注解时报错java.lang.NullPointerException的原因与解决方法

项目场景&#xff1a; 在练习黑马点评的逻辑过期解决缓存击穿时&#xff0c;编写了一个预热缓存数据的单元测试 SpringBootTest public class HmDianPingApplicationTests {Resourceprivate ShopServiceImpl shopService;Testpublic void testSaveShop() throws InterruptedE…...

Spring Boot 自动化脚本-多线程批量压缩图片

Spring Boot 自动化脚本-多线程批量压缩图片 支持多线程支持多路径配置支持断点续压支持压缩后文件层级路径不变脚本一键启动&#xff0c;支持本地 main 调用或远程 POST 接口调用 背景&#xff1a;在进行数据迁移时&#xff0c;发现附件文件夹过于庞大&#xff0c;且大都为图…...

依托 Spring Boot框架,精铸高扩展性招聘信息管控系统

1 绪 论 1.1 课题背景与意义 在Internet高速发展的今天&#xff0c;计算机的应用几乎完全覆盖我们生活的各个领域&#xff0c;互联网在经济&#xff0c;生活等方面有着举足轻重的地位&#xff0c;成为人们资源共享&#xff0c;信息快速传递的重要渠道。在中国&#xff0c;网上管…...

【前端】理解 JavaScript 对象属性访问的复杂性

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;理论基础&#xff1a;JavaScript 对象属性的访问模式1. 点符号访问&#xff08;Dot Notation&#xff09;2. 方括号访问&#xff08;Bracket Notation&#xff09;点符号…...

Django异步视图adrf解决办法

提问 在Django编写异步视图的时候会出现 AssertionError: Expected a Response, HttpResponse or HttpStreamingResponse to be returned from the view 或者 TypeError: sync_to_async can only be applied to sync functions. 诸如此类的错误的时候一般发生在异步视图中…...

【一文了解】C#基础-接口

目录 1. 定义 2. 接口的特点与规则 3. 接口的实现 3.1单接口实现 3.2多接口实现 4. 接口的作用和用途 1)扩展行为 2)规范行为 3)降低耦合 5. 接口与继承的比较 1)继承 2)接口 6. 接口与抽象类的比较 1)IComparable(比较器&#xff0c;常用) 2)IComparer(比较器)…...

活着就好20241210

亲爱的朋友们&#xff0c;大家早上好&#xff01;&#x1f31e; 今天是10号&#xff0c;星期二&#xff0c;2024年12月的第十天&#xff0c;同时也是第50周的开始&#xff0c;农历甲辰[龙]年十一月初六日。在这晨光熹微的美好时刻&#xff0c;愿那温暖而明媚的阳光轻轻拂过你的…...

多表设计 - 一对一多对多

一.一对一关系概述&#xff1a; 例如&#xff1a;一位用户只能有一张身份证&#xff0c;一张身份证也只能对应一位用户 如果用户基本信息查询频率比用户身份信息查询频率高&#xff0c;为了提高效率&#xff0c;可拆分为两张表&#xff1a; 此时如何体现一对一的关系呢&#xf…...

实现 DataGridView 下拉列表功能(C# WinForms)

本文介绍如何在 WinForms 中使用 DataGridViewComboBoxColumn 实现下拉列表功能&#xff0c;并通过事件响应来处理用户的选择。以下是实现步骤和示例代码。 1. 效果展示 该程序的主要功能是展示如何在 DataGridView 中插入下拉列表&#xff0c;并在选择某一项时触发事件。 2.…...

使用Java创建RabbitMQ消息生产者的详细指南

目录 在现代分布式系统中&#xff0c;消息队列是实现异步通信的重要工具。RabbitMQ作为一种流行的开源消息代理&#xff0c;支持多种消息协议&#xff0c;广泛应用于微服务架构和事件驱动的应用程序中。本文将深入探讨如何使用Java创建RabbitMQ的消息生产者&#xff0c;发送消息…...

【LC】160. 相交链表

题目描述&#xff1a; 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&…...

Spark架构及运行流程

Spark架构图 Driver&#xff1a; 解析用户的应用程序代码&#xff0c;转化为作业(job)。创建SparkContext上下文对象&#xff0c;其负责与资源管理器(ClusterManager)通信&#xff0c;进行资源的申请、任务的分配和监控等。跟踪Executor的执行情况。可通过UI界面查询运行情况。…...

Linux安装Python2.7.5(centos自带同款)

卸载已安装的python,防止版本兼容问题 rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps 删除残余文件 whereis python |xargs rm -frv 安装前提是已安装gcc和g gcc --version g --version 下载安装python2.7.5 https://www.python.org/downloads/release/pyt…...

上传ssh公钥到目标服务器

创建密钥 ssh-keygen -t rsa -b 4096 -C "xxxx.xx"上传 sudo ssh-copy-id -i /Users/xx/.ssh/id_rsa.pub root127.0.0.1...

【LLMs】用LM Studio本地部署离线大语言模型

文章目录 一、下载LM Studio二、下载大语言模型1. 查看模型介绍2. 点击模型文件进行下载2.1 完整下载2.2 部分下载 三、加载模型1. 打开LM Studio图形化界面&#xff0c;点击**My Models**2. 然后&#xff0c;点击“...”&#xff0c;选择“change”&#xff0c;选择刚下载好的…...

SpringBoot下类加入容器的几种方式

SpringBoot下类加入容器的几种方式 在 Spring Boot 中&#xff0c;类加入容器的方式不仅多样&#xff0c;而且每种方式都有其特定的使用场景。以下是几种常见的将类加入 Spring 容器的方法及其适用场景&#xff1a; 1. 使用 Component 及其派生注解 使用场景&#xff1a;当开…...

Seed-Coder-8B-Base体验报告:这个开源代码模型到底强在哪里?

Seed-Coder-8B-Base体验报告&#xff1a;这个开源代码模型到底强在哪里&#xff1f; 1. 开篇&#xff1a;为什么选择Seed-Coder-8B-Base 在代码生成模型的海洋中&#xff0c;Seed-Coder-8B-Base以其独特的优势脱颖而出。作为字节团队开源的8B参数级模型&#xff0c;它不仅体积…...

STM32模拟UART实现技术详解

基于STM32的UART模拟实现技术解析1. UART通信基础原理1.1 异步串行通信基础通用异步收发器(UART)作为一种经典的串行通信方式&#xff0c;通过逐位传输实现数据通信。其核心优势在于传输线少、成本低&#xff0c;但相对并行通信速度较慢。异步通信模式下&#xff0c;收发双方的…...

一个店铺被TRO,会连累同一主体的其他店铺吗?

SellerAegis卖家守护视角下的跨境账号风险全解析在跨境电商运营中&#xff0c;TRO&#xff08;Temporary Restraining Order&#xff0c;临时限制令&#xff09;已经成为卖家最为警惕的法律风险之一。许多卖家在遭遇TRO时&#xff0c;最焦虑的问题往往不是当前店铺被冻结&#…...

探索跨平台动态壁纸的技术突破:Lively Wallpaper的多系统适配之路

探索跨平台动态壁纸的技术突破&#xff1a;Lively Wallpaper的多系统适配之路 【免费下载链接】lively Free and open-source software that allows users to set animated desktop wallpapers and screensavers powered by WinUI 3. 项目地址: https://gitcode.com/gh_mirro…...

OpenClaw快速入门:对接ollama GLM-4.7-Flash实现本地自动化

OpenClaw快速入门&#xff1a;对接ollama GLM-4.7-Flash实现本地自动化 1. 为什么选择OpenClawGLM本地组合 去年我为了处理每周重复的Markdown文档整理工作&#xff0c;尝试过各种自动化方案。从浏览器插件到RPA工具&#xff0c;要么功能受限&#xff0c;要么需要将敏感数据上…...

基于Chrome WebRTC与语音大模型的端到端AI辅助开发实战

最近在做一个需要实时语音交互的智能应用&#xff0c;项目要求低延迟、高音质&#xff0c;并且要能集成一个语音大模型进行实时分析和反馈。经过一番技术选型和实践&#xff0c;最终选择了基于 Chrome WebRTC 技术栈来构建端到端的解决方案。整个过程踩了不少坑&#xff0c;也积…...

CogVideoX LoRA微调终极指南:用消费级GPU打造个性化视频生成模型

CogVideoX LoRA微调终极指南&#xff1a;用消费级GPU打造个性化视频生成模型 【免费下载链接】CogVideo text and image to video generation: CogVideoX (2024) and CogVideo (ICLR 2023) 项目地址: https://gitcode.com/GitHub_Trending/co/CogVideo 你是否曾经梦想过…...

AI 辅助下的思科企业网络毕业设计:从拓扑生成到配置验证的自动化实践

最近在帮学弟学妹们准备思科企业网络相关的毕业设计&#xff0c;发现大家普遍在几个环节卡壳&#xff1a;拓扑图画得五花八门&#xff0c;配置命令敲到手酸还容易出错&#xff0c;最后验证连通性和策略更是头大。正好最近在研究AI和网络自动化&#xff0c;就琢磨着能不能用AI来…...

OpenClaw+nanobot自动化写作:Qwen3-4B模型内容生成实测

OpenClawnanobot自动化写作&#xff1a;Qwen3-4B模型内容生成实测 1. 为什么需要自动化写作助手 作为一个技术博客作者&#xff0c;我经常面临一个困境&#xff1a;有太多想写的内容&#xff0c;但时间总是不够用。从选题、资料收集到初稿撰写、排版校对&#xff0c;每个环节…...

ChatTTS在线测试实战:从模型部署到性能调优全解析

最近在折腾一个在线语音合成的测试服务&#xff0c;用到了 ChatTTS 这个模型。想把模型部署上线&#xff0c;提供个 Web 服务给大家测试用&#xff0c;听起来简单&#xff0c;但真做起来&#xff0c;发现坑还真不少。今天就把我这一路从部署、调优到填坑的实战经验整理一下&…...