首页 > 其他分享 >表格拖拽

表格拖拽

时间:2023-01-04 09:34:38浏览次数:34  
标签:__ el const 表格 addReportForm tableData import 拖拽

 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>

 

标签:__,el,const,表格,addReportForm,tableData,import,拖拽
From: https://www.cnblogs.com/guwufeiyang/p/17023940.html

相关文章