vxe-table 表格拖动上移下移

看官方也可以,例子都差不多。主要注意的是 row-key ref="xTable1" :data="tableData"


npm i sortablejs

vue导包:
import Sortable from 'sortablejs';
 

 

<template>
	<vxe-table border row-key ref="xTable1" class="sortable-row-demo" :scroll-y="{enabled: false}" :data="tableData">
		<vxe-table-column width="60">
			<template v-slot>
				<span class="drag-btn">
					<i class="vxe-icon--menu"></i>
				</span>
			</template>
			<template v-slot:header>
				<vxe-tooltip v-model="showHelpTip1" content="按住后可以上下拖动排序!" enterable>
					<i class="vxe-icon--question" @click="showHelpTip1 = !showHelpTip1"></i>
				</vxe-tooltip>
			</template>
		</vxe-table-column>
		<vxe-table-column field="name" title="Name" fixed="left">
		</vxe-table-column>
		<vxe-table-column title="Name1">
			<vxe-table-column title="Name2">
			<vxe-table-column field="sex" title="Sex"></vxe-table-column>
			<vxe-table-column field="age" title="Age"></vxe-table-column>
		</vxe-table-column>
		</vxe-table-column>
		
		<vxe-table-column field="address" title="Address" show-overflow></vxe-table-column>
	</vxe-table>
</template>

<script>
	import XLSX from 'xlsx';
	import Sortable from 'sortablejs';
	import {
		importExcel,
		get,
		post
	} from '@/api/board/scheduling'
	import {
		listlineAll
	} from "@/api/panasonic/line";

	export default {
		data() {
			return {
				showHelpTip1: false,
				tableData: [{
						id: 10001,
						name: 'Test1',
						nickname: 'T1',
						role: 'Develop',
						sex: 'Man',
						age: 28,
						address: 'Shenzhen'
					},
					{
						id: 10002,
						name: 'Test2',
						nickname: 'T2',
						role: 'Test',
						sex: 'Women',
						age: 22,
						address: 'Guangzhou'
					},
					{
						id: 10003,
						name: 'Test3',
						nickname: 'T3',
						role: 'PM',
						sex: 'Man',
						age: 32,
						address: 'Shanghai'
					},
					{
						id: 10004,
						name: 'Test4',
						nickname: 'T4',
						role: 'Designer',
						sex: 'Women ',
						age: 23,
						address: 'Shenzhen'
					},
					{
						id: 10005,
						name: 'Test5',
						nickname: 'T5',
						role: 'Develop',
						sex: 'Women ',
						age: 30,
						address: 'Shanghai'
					}
				]
			}
		},
		created() {
			this.rowDrop()
		},
		beforeDestroy() {
			if (this.sortable1) {
				this.sortable1.destroy()
			}
		},
		methods: {
			rowDrop() {
				this.$nextTick(() => {
					const xTable = this.$refs.xTable1
					this.sortable1 = Sortable.create(xTable.$el.querySelector('.body--wrapper>.vxe-table--body tbody'), {
						handle: '.drag-btn',
						onEnd: ({
							newIndex,
							oldIndex
						}) => {
							const currRow = this.tableData.splice(oldIndex, 1)[0]
							this.tableData.splice(newIndex, 0, currRow)
						}
					})
				})
			}
		}
	}
</script>

<style lang="scss" scoped>
	.do-color {
		&:hover {
			color: #1296DB;
		}
	}
</style>

 

 

 

效果图【图片为实际业务中,上面是伪代码】:

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
vxe-table中嵌套vxe-table时,内层的vxe-table可以通过作用域插槽(scoped slot)来获取外层vxe-table的row数据。具体步骤如下: 1. 在外层vxe-table的列定义中,使用作用域插槽(scoped slot)来传递row数据给内层vxe-table。例如,可以在外层vxe-table的列定义中添加一个自定义列,并使用作用域插槽将row数据传递给内层vxe-table,如下所示: ```html <vxe-table :data="outerData"> <vxe-column type="index" width="60"></vxe-column> <vxe-column field="name" title="Name"></vxe-column> <vxe-column title="Nested Table"> <template #default="{ row }"> <vxe-table :data="row.nestedData"> <!-- 内层vxe-table的列定义 --> </vxe-table> </template> </vxe-column> </vxe-table> ``` 2. 在内层vxe-table的列定义中,可以通过作用域插槽(scoped slot)的方式获取外层vxe-table传递的row数据。例如,可以在内层vxe-table的列定义中使用作用域插槽来访问外层vxe-table的row数据,如下所示: ```html <vxe-table :data="nestedData"> <vxe-column field="nestedField1" title="Nested Field 1"></vxe-column> <vxe-column field="nestedField2" title="Nested Field 2"></vxe-column> <vxe-column title="Outer Row Data"> <template #default="{ $table }"> <!-- 使用 $table.$scoped.row 获取外层vxe-table的row数据 --> <span>{{ $table.$scoped.row }}</span> </template> </vxe-column> </vxe-table> ``` 通过以上步骤,内层的vxe-table就可以获取到外层vxe-table的row数据,并进行相应的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mc19

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值