vue二次封装el-table实现拖拽功能

vue二次封装el-table实现拖拽功能

在这里插入图片描述
目前el-table未提供可拖拽进行排序的功能,因之前客户需求所以自己封装了一个实现可拖拽的表格组件,以下是实现代码:

1.HTML部分

<template>
    <div>
        <el-table
            :data="data"
            border
            stripe
            row-key="id"
            style="width: 100%"
        >
            <template v-if="drag">
                <slot name="tableColumn"></slot>
                <el-table-column
                    show-overflow-tooltip
                    v-for="(item, index) in tableCol"
                    :key="index"
                    :class="'table-colunm' + index"
                    :prop="tableCol[index].prop"
                    :label="item.label"
                >
                    <template #[item.prop]="{ row }">
                        <slot :name="row.prop" :col="row">{
   {
    row }}</slot>
                    </template>
                </el-table-column>
            </template>
            <template v-else>
                <slot name="tableColumn"></slot>
                <el-table-column
                    show-overflow-tooltip
                    v-for="(item, index) in tableCol"
                    :key="index"
                    :class="'table-colunm' + index"
                    :prop="item.prop"
                    :label="item.label"
                >
                </el-table-column>
            </template>
        </el-table>
    </div>
</template>

2.JS部分
需要安装**sortablejs**!!

npm install sortablejs --save

vue2实现方法

<script>
import Sortable from 'sortablejs'
export default {
   
    data() {
   
        return {
   
            data: [
                {
   
                    id: 0,
                    name: "亲亲",
                    age: 10,
                    hobby: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值