vue结合drag-tree-table实现树形拖拽
·
vue结合drag-tree-table树形实现拖拽
在弄这个功能的时候走了很多弯路,所以特意来记录下。如有错误,欢迎指正。
vue-drag-tree-table 基于vue.js实现可拖拽排序的树形表格组件。支持拖拽排序、固定表头、拖拽改变行宽、checkbox多选、自定义单元格内容、动态控制某些行是否拖拽等功能。
首先在项目安装
npm i drag-tree-table --save-dev
第二步就是在main.js中引用。下面是我安装drag-tree-table的版本。
import dragTreeTable from "drag-tree-table";

<dragTreeTable
:data='data'
:onDrag="onTreeDataChange"
:fixed="true"
:isdraggable="true" ref="dratree"></dragTreeTable>
实现拖拽的代码。lists是绑定的数据。
components: {
dragTreeTable
},
data() {
return {
data: {
open:false,
namess:"",
lists: [
{
"id":5,
"name":"昆虫类",
"open":true,
"lists":[
{
"id":12,
"parent_id":5,
"open":true,
"order":0,
"name":"蚂蚁",
"lists":[]
}
]
},
],
columns: [
{
type: 'selection',
field: 'name',
width: 200,
align: 'center',
formatter: (item) => {
return '<a>'+item.name+'</a>'
}
},
{
type: 'action',
width: 350,
align: 'center',
actions: [
{
text: '查看角色',
onclick: this.onDetail,
formatter: (item) => {
return '<i>查看角色</i>'
}
},
{
text: '编辑',
onclick: this.onEdit,
formatter: (item) => {
return '<i>编辑</i>'
}
}
]
},
]
}
};
},
}
核心代码。如果需要在前端灵活调用的话。
methods: {
// list:更新后的数据源
// from: 当前被拖拽的行
// to: 目标拖拽行
// where: 拖拽的类型,top(上面)、center(里面)、bottom(下面)
onTreeDataChange(list, from, to, where) {
console.log(from, to, where);
this.data.lists = list;
}
参考:https://blog.csdn.net/weixin_42557537/article/details/112173153
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)