vue使用vuedraggable实现嵌套多层拖拽排序功能
更新时间:2022年04月07日 07:55:23 作者:浩星
这篇文章主要为大家详细介绍了vue使用vuedraggable实现嵌套多层拖拽排序功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了vuedraggable实现嵌套多层拖拽排序功能的具体代码,供大家参考,具体内容如下
vue中实现嵌套多层拖拽功能。官网入口:
实现效果:(拖动左侧调整一级的顺序,拖动右侧调整二级的顺序)
实现步骤:
***这里使用了插件 vuedraggable
第一步:安装插件
cnpm install vuedraggable --save
第二步:在页面上引入插件并注册
import draggable from 'vuedraggable' components: { draggable },
第三步:页面上使用
<template> <div class="wholeList"> <draggable class="leftCon" :list="tolList" > <div class="leftConLi" v-for="element in tolList" :key="element.id"> {{ element.name }} </div> </draggable> <ul class="oneUl"> <li class="oneLi" v-for="(item,index) in tolList" :key="index" > <!--拖拽内容部分-1--> <draggable v-if="index === 0" class="dragArea list-group" :list="item.children" :clone="clone" :group="{ name: 'people', pull: pullFunction }" @start="start" > <div v-for="element in item.children" :key="element.id" class="list-group-item"> {{ element.name }} </div> </draggable> <!--拖拽内容部分-其他--> <draggable v-else class="dragArea list-group" :list="item.children" :clone="clone" group="people" > <div v-for="element in item.children" :key="element.id" class="list-group-item"> {{ element.name }} </div> </draggable> </li> </ul> <el-button @click="getNewList">点我看console里面的最新数据</el-button> </div> </template> <script> import draggable from 'vuedraggable' export default { components: { draggable }, data() { return { tolList: [ { name: '第一天', children: [ { name: '11111', id: 1 } ] }, { name: '第二天', children: [ { name: 'aaaaa', id: 11 }, { name: 'bbbbbb', id: 12 } ] }, { name: '第三天', children: [ { name: ',,,111,,', id: 21 } ] } ], controlOnStart: true } }, methods: { clone({ name, id }) { return { name, id: id } }, pullFunction() { return this.controlOnStart ? 'clone' : true }, start({ originalEvent }) { this.controlOnStart = originalEvent.ctrlKey }, getNewList() { let a = this.tolList console.log(a) } } } </script> <style lang="scss" scoped> .wholeList{ margin-top:200px; width:500px; display: flex; flex-wrap: wrap; .leftCon{ width: 100px; .leftConLi{ background: #42B974; line-height: 80px; margin-bottom:10px; } } .oneUl{ width: calc(100% - 100px); .oneLi{ display: flex; height: 80px; margin-bottom:10px; border:1px solid red; .dragArea{ width: 100%; min-height: 30px; } } } } </style>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
vue表单验证你真的会了吗?vue表单验证(form)validate
这篇文章主要介绍了vue表单验证你真的会了吗?vue表单验证(form)validate,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-04-04关于vue项目vue-cli-service启动报错失败问题的解决方法
前端拉取代码后,想要运行代码的时候可以能遇到启动报错的问题,这里我们只针对于vue-cli-service报错项来说,文中通过图文结合的方式给大家介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下2024-08-08el-element中el-table表格嵌套el-select实现动态选择对应值功能
这篇文章主要给大家介绍了关于el-element中el-table表格嵌套el-select实现动态选择对应值功能的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2023-01-01
最新评论