使用VueDraggablePlus实现列表内拖拽排序。

本文介绍了如何在Vue项目中使用VueDraggablePlus库实现列表内的拖拽排序功能,包括组件的安装、引入和在Vue3中的使用示例,以及相关的SortableJS事件处理和CSS样式设置。
摘要由CSDN通过智能技术生成
  • 实用干货

  对于前端页面,某个业务实体,需要实现在列表中拖拽排序,本文是介绍使用VueDraggablePlus实现列表内拖拽排序。

1.安装

npm install vue-draggable-plus

2.引入

import { VueDraggable } from 'vue-draggable-plus'

3.在项目中使用

 <VueDraggable v-model="state.tableData" target=".sort-target" @end="handleUpdata" animation="150">    <div class="table">        <table id="table1">            <thead>                <tr>                    <th>排列顺序</th>                    <th>推荐模块</th>                    <th>课程名称</th>                    <th>课程平台</th>                    <th>课程标签</th>                    <th style="width: 190px;">操作</th>                </tr>            </thead>            <tbody class="sort-target">                <tr v-for="item in state.tableData" :key="item.name" class="cursor-move">                    <td>{{ item.sort }}</td>                    <td>{{ item.course_group_name }}</td>                    <td>{{ item.course_name }}</td>                    <td>{{ item.platform }}</td>                    <td>                        <el-select v-model="item.tag" @change="tagChange($event, item.id)"                            placeholder="请选择">                            <el-option v-for="item in state.tagOptions" :key="item.id" :label="item.name"                                :value="item.id" />                        </el-select>                    </td>                    <td><el-link type="danger" @click="handleDelete(item.id)">删除</el-link></td>                </tr>            </tbody>        </table>    </div></VueDraggable>

4.此处为vue3使用方法

<script setup lang='ts'>import { VueDraggable } from 'vue-draggable-plus'import { SortableEvent } from "sortablejs"// 此处为调用接口实现拖拽排序const handleUpdata = (event: SortableEvent) => {    let ids = [] as any    state.tableData.forEach((item: any) => {        ids.push(item.id)    });    let data = {        course_group_id: state.queryParams.course_group_id,        platform: state.queryParams.platform,        ids: ids    }    moveRecommend(data).then((res: any) => {        if (res.code == 1) {            ElMessage({                showClose: true,                message: '保存成功',                type: 'success',            })            getList()        }    });}</script>

5.此处为表格css样式

<style scoped>table {    width: 100%;    border-collapse: collapse;    text-align: center;    font-size: 14px;}table th,td {    border: 1px solid #ebeef5;    padding: 8px 0;}.table :deep(.el-table thead) {    color: #666;    font-weight: 400;    font-size: 13px;}table thead th {    background-color: #f3f3f3;    padding: 8px 0;    color: #222;    font-size: 13px;}</style>

时间

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue-draggable-plus是基于Vue.js的可拖拽组件库。它是基于vuedraggable的扩展,提供了更多的功能和选项来满足不同的需求。使用Vue-draggable-plus可以方便地实现拖拽功能,并且可以对属性重复添加问题进行处理。 安装Vue-draggable-plus,可以使用以下命令: ``` yarn add vue-draggable-plus npm install vue-draggable-plus --save ``` 在处理属性重复添加问题时,可以通过监听拖拽事件来判断右侧属性列表中是否已存在相同属性。在拖拽事件中,可以通过事件参数获取相关的数据信息。例如,通过`e.draggedContext.element`可以获取拖动元素绑定的数据对象,通过`e.relatedContext.list`可以获取目标列表的数据。可以使用这些数据进行简单的对比,如果已存在相同属性,则返回false,终止拖动动作。 Vue-draggable-plus提供了丰富的事件和选项,可以根据具体的需求进行定制和配置。通过合理地使用这些功能和选项,可以实现属性重复添加问题的处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [关于vue使用vue-draggable实现图片拖拽效果(项目中使用简单描述)](https://blog.csdn.net/m0_60602811/article/details/127106131)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vuedraggable实战:结合具体应用场景实现列表拖拽排序列表间移动、复制,介绍、安装、使用、坑点及解决...](https://blog.csdn.net/seawaving/article/details/128083596)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员树朦

您的鼓励将是我最大的创作动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值