sortablejs表格拖拽elementui
时间: 2025-05-02 19:19:54 浏览: 22
### 如何在 ElementUI 中使用 SortableJS 实现表格行拖拽排序功能
#### 安装依赖库
为了实现此功能,需先安装 `element-ui` 和 `sortablejs` 库。通过 npm 命令可以完成这两个包的安装。
```bash
npm install element-ui sortablejs --save
```
#### 引入必要的模块
接着,在项目的相应页面中引入所需的 JavaScript 文件:
```javascript
import Sortable from 'sortablejs';
```
同时,在主入口文件(如 `main.js` 或者 `app.js`)里全局注册并配置 Element UI 组件及其样式资源[^3]。
```javascript
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI);
```
#### 创建带有拖拽功能的数据表单
定义一个简单的 HTML 表格结构用于展示数据列表,并赋予特定 ID 方便后续操作。这里假设有一个名为 `el-table` 的容器来容纳整个表格内容。
```html
<template>
<div id="dragTable">
<el-table :data="tableData" style="width: 100%">
<!-- 列定义 -->
<el-table-column prop="date" label="日期"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="address" label="地址"></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{ date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' },
{ date: '2016-05-04', name: '王小虎', address: '上海市普陀区金沙江路 1517 弄' }
]
};
},
};
</script>
```
#### 初始化 Sortable 对象并与事件绑定
当 DOM 加载完成后初始化一个新的 Sortable 实例关联至目标表格元素上;监听 onEnd 回调函数处理结束后的逻辑动作,比如同步最新的排列顺序给服务器端保存等。
```javascript
mounted () {
const el = document.querySelector('.el-table__body-wrapper tbody')
this.sortable = Sortable.create(el, {
ghostClass: 'sortable-ghost',
setData: function(dataTransfer) {}, // 禁用默认行为
onEnd: evt => {
const targetRow = this.tableData.splice(evt.oldIndex, 1)[0];
this.tableData.splice(evt.newIndex, 0, targetRow);
// 更新后端服务系统的接口调用可放置在此处
}.bind(this),
});
}
```
上述代码片段展示了如何利用 Sortable JS 插件配合 Element UI 来创建具备拖放特性的表格组件[^1]。
阅读全文
相关推荐














