vue使用vuedraggable實(shí)現(xiàn)嵌套多層拖拽排序功能
本文實(shí)例為大家分享了vuedraggable實(shí)現(xiàn)嵌套多層拖拽排序功能的具體代碼,供大家參考,具體內(nèi)容如下
vue中實(shí)現(xiàn)嵌套多層拖拽功能。官網(wǎng)入口:
實(shí)現(xiàn)效果:(拖動(dòng)左側(cè)調(diào)整一級(jí)的順序,拖動(dòng)右側(cè)調(diào)整二級(jí)的順序)



實(shí)現(xiàn)步驟:
***這里使用了插件 vuedraggable
第一步:安裝插件
cnpm install vuedraggable --save
第二步:在頁(yè)面上引入插件并注冊(cè)
import draggable from 'vuedraggable'
components: {
? ? draggable
? },第三步:頁(yè)面上使用
<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"
? ? ? >
? ? ? ? <!--拖拽內(nèi)容部分-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>
? ? ? ? <!--拖拽內(nèi)容部分-其他-->
? ? ? ? <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">點(diǎn)我看console里面的最新數(shù)據(jù)</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>以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Vue3中使用vuedraggable拖拽實(shí)戰(zhàn)教程
- 使用element+vuedraggable實(shí)現(xiàn)圖片上傳拖拽排序
- vue拖拽組件vuedraggable使用說(shuō)明詳解
- 使用vuedraggable實(shí)現(xiàn)從左向右拖拽功能
- vue3使用vuedraggable實(shí)現(xiàn)拖拽功能
- vuedraggable實(shí)現(xiàn)拖拽功能
- vuedraggable+element ui實(shí)現(xiàn)頁(yè)面控件拖拽排序效果
- vue拖拽排序插件vuedraggable使用方法詳解
- vue使用vuedraggable插件實(shí)現(xiàn)拖拽效果
相關(guān)文章
vue實(shí)現(xiàn)點(diǎn)擊關(guān)注后及時(shí)更新列表功能
這篇文章主要介紹了vue實(shí)現(xiàn)點(diǎn)擊關(guān)注后及時(shí)更新列表功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
vue項(xiàng)目中使用bpmn-自定義platter的示例代碼
這篇文章主要介紹了vue項(xiàng)目中使用bpmn-自定義platter的實(shí)例代碼,本文通過(guò)代碼截圖相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05
element-plus 下拉框?qū)崿F(xiàn)全選的示例代碼
本文主要介紹了element-plus 下拉框?qū)崿F(xiàn)全選的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
axios全局請(qǐng)求參數(shù)設(shè)置,請(qǐng)求及返回?cái)r截器的方法
下面小編就為大家分享一篇axios全局請(qǐng)求參數(shù)設(shè)置,請(qǐng)求及返回?cái)r截器的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
element-plus報(bào)錯(cuò)ResizeObserver?loop?limit?exceeded解決辦法
這篇文章主要給大家介紹了關(guān)于element-plus報(bào)錯(cuò)ResizeObserver?loop?limit?exceeded的解決辦法,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
antd-DatePicker組件獲取時(shí)間值,及相關(guān)設(shè)置方式
這篇文章主要介紹了antd-DatePicker組件獲取時(shí)間值,及相關(guān)設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10

