表格拖拽

复制代码
 1 <template>
 2  <div>
 3   <el-table :data="addReportForm.tableData" border style="width: 100%; margin-top: 8px" max-height="210" row-key="id"  class="draggable-table">
 4     <el-table-column type="index" :label="$t('general.No.')" width="70" align="center" />
 5     <el-table-column prop="title" :label="$t('report.chartName')" header-align="center" />
 6   </el-table>
 7  </div>
 8 </template>
 9 
10 <script setup lang="ts">
11 import { reactive, onMounted, nextTick } from 'vue';
12 import { ElTable, ElTableColumn } from 'element-plus';
13 import Sortable from 'sortablejs';
14 
15 const $t = $.t;
16 // 左侧新增节点表单
17 const addReportForm = reactive({
18   title: '',
19   tableData: [],
20 });
21 
22 onMounted(() => {
23   nextTick(() => {
24     drag();
25   });
26 });
27 function drag() {
28   const tbody: HTMLElement = document.querySelector('.draggable-table .el-table__body-wrapper tbody');
29   new Sortable(tbody, {
30     animation: 150,
31     onEnd: ({ newIndex, oldIndex }) => {
32       const targetRow = addReportForm.tableData[oldIndex];
33       addReportForm.tableData.splice(oldIndex, 1);
34       addReportForm.tableData.splice(newIndex, 0, targetRow);
35     },
36   });
37 };
38 </script>
39 
40 <style lang="scss" scoped>
41 .draggable-table {
42   cursor: pointer;
43 }
44 :deep(.el-dialog__body.el-dialog__body) {
45   padding: 30px !important;
46 }
47 </style>
复制代码

 

posted @   鼓舞飞扬  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2021-01-04 d3条形图案例
点击右上角即可分享
微信分享提示