vue3.0项目实现表单拖拽

项目采用vue3.0+ts+elementPlus去开发管理后台,但element没有提供表单拖拽的功能,这里可以借用第三方库(SortableJS)来实现次需求。

github地址:https://github.com/SortableJS/Sortable

中文文档:http://www.sortablejs.com/index.html#

使用方式:

1. npm install sortablejs --save

2.在单页面使用 import Sortable from 'sortablejs';

3.核心代码是rowDrop

import {
    defineComponent,
    reactive,
    toRefs,
    onMounted,
    nextTick
} from 'vue';
export default defineComponent({

    setUp(){
        const state = reatcive({
            data:[{ sort:1,id: 1 },{ sort:2,id: 2 },{ sort:3,id: 3 }]
        })
        const rowDrop = () => {
            const tbody = document.querySelector('.el-table__body-wrapper tbody');
            Sortable.create(tbody, {
                onEnd({ newIndex, oldIndex }) {
                    console.log(newIndex,oldIndex);
                    state.data.splice(newIndex,0,state.data.splice(oldIndex,1)[0]);
                    const newArray=state.data.slice(0);
                    state.data= [];
                    nextTick(()=>{
                        state.data = newArray;
                    });
                }
            });
        };        
        onMounted(()=>{
            rowDrop()
        })
        return {
            ...toRefs(state)
        }
    }
})

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值