首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SortableJS / Vue.Draggable多拖动选项无效

SortableJS / Vue.Draggable多拖动选项无效
EN

Stack Overflow用户
提问于 2020-06-02 19:40:07
回答 3查看 5K关注 0票数 5

最近,我发现SortableJS / Vue.Draggable库(https://github.com/SortableJS/Vue.Draggable)有一个新的选项,可以启用多拖动,从数组中选择多个元素并将它们一起移动(https://github.com/SortableJS/Vue.Draggable/pull/744)。

我见过一些样本,它们的工作原理非常完美,例如:

但是当我尝试在我的项目中使用它时,我只能找到使它工作的方法。

以下是我的项目的细节:

  • Vue:2.6.10
  • Vuedraggable:2.23.2

在我的vue组件中,我以这种方式导入了vuedraggable:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import draggable from 'vuedraggable'

我采用了这种方法(为了这个职位的目的,代码已经减少了):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
  <v-flex class="pa-3">
    <div class="instructions-wrapper py-4">
      <v-avatar size="40" color="#4C2159" class="white--text"><b>4</b></v-avatar>
      <div class="px-2">
        <h2>Revisa y asigna</h2>
        <p>Revisa la optimización del sistema y asigna o personaliza una ruta</p>
      </div>
    </div>

    <template v-for="(vehicle, key) in sortedRoutes.routes">
      <v-card class="my-4" :key="vehicle.stops.location_id">
        <v-toolbar color="primary" dark>
          <v-toolbar-title>{{ Object.keys(sortedRoutes.routes).find(key => sortedRoutes.routes[key] === vehicle) }}</v-toolbar-title>
        </v-toolbar>

        <draggable
          :key="vehicle.stops.location_id"
          :list="vehicle.stops"
          :id="key"
          group="vehicle"
          animation="150"
          :multi-drag="true"
          selected-class="multi-drag"
          ghost-class="ghost"
          :move="moveChecker"
          @start="dragStart"
          @end="dragEnd"
        >
          <div v-for="(delivery, index) in vehicle.stops" :key="delivery.id" class="draggable-element">
            <v-list v-if="delivery.location_name !== 'CEDIS'" :key="delivery.title">
              <v-list-tile>
                <v-icon>drag_indicator</v-icon>
                <v-list-tile-avatar>
                  <img :src="`https://ui-avatars.com/api/?color=fff&background=4C2159&size=128&name=${index}`">
                </v-list-tile-avatar>

                <v-list-tile-content>
                  <div>{{delivery.location_name}} {{deliveries.find(key => key.location.company_name === delivery.location_name).start_time_window ? `(${deliveries.find(key => key.location.company_name === delivery.location_name).start_time_window} - ${deliveries.find(key => key.location.company_name === delivery.location_name).end_time_window})` : ''}}
                  </div>
                </v-list-tile-content>
              </v-list-tile>
            </v-list>
          </div>
        </draggable>
      </v-card>
    </template>
  </v-flex>
</template>

我注意到添加了select-class属性,这是SortableJS / Vue.Draggable文档使用多拖动选项所必需的。

作为可拖动列表打印的对象位于以下JSON结构下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "routes": {
    "vehicle_1": {
      "stops": [
        {
          "stop_id": 0,
          "order_id": 1,
          "location_id": "DEPOT",
          "location_name": "Centro de distribución",
          "lat": -100,
          "lng": 100,
          "arrival_time": "08:00",
          "departure_time": "16:00"
        },
        {
          "stop_id": 1,
          "order_id": 2,
          "location_id": "order_2",
          "location_name": "Foo Zaas",
          "lat": -100,
          "lng": 100,
          "arrival_time": "10:00",
          "departure_time": "10:15"
        }
      ],
      "cost_matrix": [
        [
          {
            "distance_in_meters": 10,
            "travel_time_in_minutes": 10
          },
          {
            "distance_in_meters": 100,
            "travel_time_in_minutes": 100
          }
        ],
        [
          {
            "distance_in_meters": 10,
            "travel_time_in_minutes": 10
          },
          {
            "distance_in_meters": 100,
            "travel_time_in_minutes": 100
          }
        ]
      ],
      "summary": {
        "depot_name": "DEPOT",
        "demand_assigned": 234,
        "distance_in_meters": 3004,
        "travel_time_in_minutes": 157,
        "waiting_time_in_minutes": 70.1
      }
    }
  }
}

尽管做了这么多努力,我还是做不到。我甚至可以根据我以前找到的代码版本之一复制一个更精简的代码版本(https://codepen.io/Juan-Sin-Miedos/pen/jOWOyWW)

为什么它不工作在我的项目上?

任何帮助都将不胜感激,非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-03 08:17:39

因为这个拉请求没有合并,而且最新的版本非常旧,所以您需要从git安装这个版本。这是您应该放在package.json中而不是版本号中的内容:

"vuedraggable":"git://github.com/divinespear/Vue.Draggable.git#multi-drag“

票数 7
EN

Stack Overflow用户

发布于 2021-06-18 22:34:08

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"vuedraggable": "git://github.com/divinespear/Vue.Draggable.git#multi-drag"

以上回购在dist有一个问题。请用这个代替。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"vuedraggable": "git://github.com/midasdev711/Vue-DragDrop.git"
票数 3
EN

Stack Overflow用户

发布于 2021-04-08 00:32:59

如果要确保始终使用最新版本,可以在从MultiDrag库初始化后添加SortableJS插件。

按照通常的方式将vuedraggable依赖项添加到pack.json文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"vuedraggable": "^2.24.3"

在组件的开头,而不是基本导入,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    import draggable from 'vuedraggable';
    
    // rest of js component code

</script>

做以下工作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script>
    import { Sortable, MultiDrag } from 'sortablejs';
    import draggable from 'vuedraggable';

    Sortable.mount(new MultiDrag());
    
    // rest of js component code

</script>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62164852

复制
相关文章
如何部署 MediaWiki
MediaWiki是一个流行的免费wiki软件包。它与维基百科使用的软件相同,是完全动态的,可以在LAMP堆栈上运行,利用PHP语言和MySQL数据库后端。通过简单的安装和配置,当您需要用到一个熟悉的、功能齐全的动态wiki引擎时,MediaWiki是一个很好的选择。
Mr.Crypto
2018/11/27
3.8K3
如何部署 MediaWiki
ubuntu下mediawiki的使用
https://apps.ubuntu.com/cat/applications/libreoffice-wiki-publisher/
zqb_all
2019/12/27
5420
MediaWiki
原因:2017年3月24日 星期五 随笔记录。 说明:记录配置MediaWiki安装过程。
ZHaos
2019/02/27
2.5K2
使用 Docker 部署 MediaWiki
MediaWiki 是 Wikipedia 使用的网站解决方案的开源版,以个人观点来看,Wiki 在这个时代显得不够时尚,且不支持 MarkDown 等新兴的标记语言,另外页面的组织方式采用了自己的一套管理语言,上手需要一定的学习成本。不过经典总归是经典。
用户2443625
2018/08/23
2.3K2
使用 Docker 部署 MediaWiki
Lua中如何读写JSON
这是常用的方法,通过Lua对字符串进行解析,从而完成JSON的编码及解码。网络上有许多现成的Lua JSON库可以使用。
杜金房
2020/12/21
8.5K0
Lua中如何读写JSON
MediaWiki安装
默认的logo比较难看,可以更换logo: /usr/www/wiki/resources/assets/wiki.png
Java架构师必看
2021/03/22
9580
使用 Docker 搭建你的Wiki(MediaWiki)
本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)
soulteary
2023/03/05
1.7K0
使用 Docker 搭建你的Wiki(MediaWiki)
Nginx Lua扩展模块
淘宝开发的 ngx_lua 模块通过将 Lua 解释器集成进 Nginx,可以采用 Lua 脚本实现业务逻辑,由于 Lua 的紧凑、快速以及内建协程,所以在保证高并发服务能力的同时极大地降低了业务逻辑实现成本。
用户9615083
2022/12/25
3.7K0
Nginx Lua扩展模块
如何使用MLSQL中的帮助指令学习模块的使用
MLSQL 已经实现了文章中描述的功能 如何实现语法的自解释(MLSQL易用性设计有感) 。
用户2936994
2018/09/29
9440
如何使用MLSQL中的帮助指令学习模块的使用
如何使用Redis执行Lua脚本
lua脚本有很多的优点,但是对于我来说我使用它只因为它能保证原子性。为什么它能保证原子性你就使用它呢?一个简单的例子,在我们的Java代码中,一个简单的++i都不能保证原子性更别提复杂的情况了。但是使用lua在执行几百行代码的情况下都不需要考虑高并发所带来的问题。
Java学习录
2019/04/18
4K0
Redis 与 Lua 使用中的小问题
在 Redis 里执行 get 或 hget 不存在的 key 或 field 时返回值在终端显式的是 (nil),类似于下面这样
haifeiWu
2020/01/20
4K0
如何在Lua中使用json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格局。它基于ECMAScript的一个子集。JSON选用完全独立于言语的文本格局,但是也使用了类似于C言语宗族的习气(包含C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使json调试成为抱负的数据交换言语。易于人阅览和编写,同时也易于机器解析和生成(一般用于提高网络传输速率)。
杜金房
2023/02/28
7.1K0
如何在Lua中使用json
redis中Lua 脚本,使用示例
在上面的示例中,我们使用GET命令获取了缓存命中和未命中的次数,然后根据计算公式计算出命中率,最后将结果以字符串形式返回给客户端。
玖叁叁
2023/04/15
7680
redis中的lua
前言 最近在看redis的lua,看了官网资料和网上一些文章,整理了lua的相关内容,希望对大家有帮助。 目录 0. redis中运行lua的流程的正常流程 1.redis中的lua概要信息     1.1 lua中调用redis命令     1.2 redis数据结构与lua数据结构对应关系     1.3 EVAL和EVALSHA     1.4 脚本缓存     1.5 脚本命令     1.6 其他约定         1.6.1 全局变量保护         1.6.2 Sele
温安适
2018/05/17
1.8K0
Lua模块的加载与内存释放
今天早上听说一件事情让我觉得很诡异的事情:公司线上的一款游戏,加载一份配置资源后,内存涨了几十M,然后内存再也下不来了。因为好奇,所以要来了最大的一个配置文件(4.5M,去除空格与换行后的大小),进行测试。最终发现,内存其实是可以被释放的,不过需要注意以下的规则。
meteoric
2018/11/20
3K0
使用captcha模块生成图形验证码
目录[-] captcha模块是专门用于生成图形验证码和语音验证码的Python三方库。图形验证码支持数字和英文单词。 安装 安装 可以直接使用 pip 安装,或者到项目地址下载安装。 模块支持 由于 captcha 模块内部是采用 PIL 模块生成图片,所以需要安装 PIL 模块才可以正常使用。 生成验证码 一般方法 使用其中 image 模块中的 ImageCaptcha 类生成图形验证码: from captcha.image import ImageCaptcha img = ImageCap
jhao104
2018/03/20
4.9K0
使用captcha模块生成图形验证码
点击加载更多

相似问题

用户在MediaWiki上的自定义MediaWiki可以调用Lua模块吗?

11

Mediawiki错误: package.lua中第80行的Lua错误:找不到模块“严格”

115

MediaWiki上的Lua错误

27

Mediawiki抄写到lua模块不知道内置函数

19

如何在C中的Lua模块中创建Lua模块?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文