Vue+element 需要用到拖拽组件 vuedraggable

新需求是要求界面上的14个可以拖拽,点击保存之后保存拖拽之后的顺序。

确定需求之后肯定第一时间是百度,发现有个插件vuedragger拖拽,按照教程就懵懂的开始了。

官方示例:https://david-desmaisons.github.io/draggable-example/

1.安装

npm install vuedraggable

2.引入

import draggable from ‘vuedraggable‘

3.注册

components: {

draggable

}

html

<draggable @update="datadragEnd" :options = "options" v-model="tableData" style=‘sort: false‘ >
  <transition-group >
    <el-checkbox @change="handleCheckedCitiesChange(item.id)" v-model="checkList" v-for="item in tableData" :key="item.id" :label="item.id" :disabled="isDisabled" >
      <img style="width:150px;height:150px;" :src="item.img"  >
    </el-checkbox>
  </transition-group>

</draggable>

 js相关处理

getdata(evt) {
    console.log(evt.draggedContext.filterKey)
    //这里evt.draggedContext后续的内容根据具体的定义变量而定
},
datadragEnd(evt) {
    evt.preventDefault();
        console.log(‘拖动前的索引 :‘ + evt.oldIndex)
        console.log(‘拖动后的索引 :‘ + evt.newIndex)
        this.checkMenusList = []
        this.tableData.map((item,index) =>{
          this.checkMenusList.push({sortNum: index+1+"", menuId: item.id,rovinceCode:this.page.token})
          return  this.checkMenusList
        })
}

index:获取拖拽后的下标,传给后台,按照sortNum排序。

原文地址:https://www.cnblogs.com/2001-/p/11164722.html

时间: 2024-08-29 07:43:54

Vue+element 需要用到拖拽组件 vuedraggable的相关文章

Vue 组件总结 (一、拖拽组件 Vue-draggable)

一.vue-draggable 安装使用npm地址: https://www.npmjs.com/package/vuedraggable 二.表格拖拽使用, 举例: <table class="table table-condensed"> <thead> <tr> <th>视频ID</th> <th>名称</th> <th>作者</th> <th>创建时间<

弹窗拖拽组件开发应用

需要注意的问题包括: 1.this的指向到底是指向谁--弄清楚所指的对象 2.深入理解原型的概念及使用: 去改写对象下面公用的方法或者属性 , 让公用的方法或者属性在内存中存在一份 ( 提高性能) 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <

自定义事件拖拽组件

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>自定义事件拖拽组件</title> <style> #div1{ width:100px; height:100px; background:red; position:abs

vue实现拖拽组件

可以拖拽,靠边停靠,效果图如下 代码如下: 注意:代码中使用的图片未上传 DragAndDrop组件: <template> <div class="drag" id="moveDiv" @mousedown="start($event)" @touchstart="start($event)" @mousemove="move($event)" @touchmove="move

vue2-dragula vue拖拽组件

Drag and drop so simple it hurts Vue wrapper for dragula drag'n drop library, based on vue-dragula by @Astray-git. vue 为 dragula 拖拽 包装 减少 代码,基于   vue-dragula. This library has been refactored, upgraded and extended with powerful new features for use

element+sortablejs插件实现拖拽排序效果

背景1.后台管理系统中表格需要实现行拖拽功能2.表格使用element组件库中el-table 方案介绍 1.Sortable.js介绍:Sortable.js是一款轻量级的拖放排序列表的js插件引用自官方文档:No jQuery required. Supports Meteor, AngularJS, React, Polymer, Vue, Knockout and any CSS library, e.g. Bootstrap.参考地址: https://github.com/Sorta

vue视频: 自定义指令 &amp;&amp; 拖拽 &amp;&amp; 自定义键盘信息

v-textv-forv-html 指令: 扩展html语法 自定义指令:1. 自定义属性指令: Vue.directive(指令名称,function(参数){ this.el -> 原生DOM元素 // vm.$el }); <div v-red="参数"></div> 指令名称: v-red -> red * 注意: 必须以 v-开头(定义时去掉v-) <!DOCTYPE html> <html lang="en&q

vue中实现百度地图拖拽地图定位功能

效果如果所示,拖动地图.中间图标不动,并且自动获取地图当前中心点的经纬度.然后就可以用经纬度做其他的操作了...首先查看了百度地图的api.能实现这个功能最贴近的就是marker.marker可以拖拽,但是地图却动不了,我还用了另外一种是自己自定义一个marker.并且让marker相对地图位置绝对定位,地图拖拽,marker不动,拖拽结束后使用marker.getposition来获取当前位置,但是有个问题.自定义的marker在地图拖动的时候就看不见了..应该是层级问题.让地图给挡住了..太

element table 实现鼠标拖拽选中

父组件 <template> <div id='add'> <airtable :tableData="tableData" :columData="columData" :menuList ="menuList" :pageTotal="pageTotal" @rowContextmenu="rowContextmenu" @currentPageChange="c