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