import Sortable from "sortablejs"; import { ref, nextTick } from "vue"; import { clone } from "@pureadmin/utils"; import { tableDataDrag } from "../../data"; // 行拖拽演示 export function useColumns() { const dataList = ref(clone(tableDataDrag, true)); const rowDrop = (event: { preventDefault: () => void }) => { event.preventDefault(); nextTick(() => { const wrapper: HTMLElement = document.querySelector( ".el-table__body-wrapper tbody" ); Sortable.create(wrapper, { animation: 300, handle: ".drag-btn", onEnd: ({ newIndex, oldIndex }) => { const currentRow = dataList.value.splice(oldIndex, 1)[0]; dataList.value.splice(newIndex, 0, currentRow); } }); }); }; const columns: TableColumnList = [ // { // width: 60, // cellRenderer: () => ( // void }) => // rowDrop(event) // } // /> // ) // }, { label: "ID", prop: "id", cellRenderer: ({ row }) => (
void }) => rowDrop(event) } />

{row.id}

) }, { label: "日期", prop: "date" }, { label: "姓名", prop: "name" } ]; return { columns, dataList }; }