vue+element+vuedraggable实现拖拽排序

Posted web半晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue+element+vuedraggable实现拖拽排序相关的知识,希望对你有一定的参考价值。

准备工作

首先使用 yarn add vuedraggable 或者 npm i -S vuedraggable 安装组件。

<draggable
	v-model="codeList"
	@update="datadragEnd"
	:options="{ animation: 200 }"
>
	<div class="drag-item" v-for="(item, i) in codeList" :key="i">
	<el-row>
		<el-col class="line" :span="6">&nbsp;{{ item.field_title }}</el-col>
	</el-row>
	</div>
</draggable>
import draggable from "vuedraggable";
async datadragEnd(evt) {
	evt.preventDefault();
	// console.log('拖动前的索引 :' + evt.oldIndex)
	// console.log('拖动后的索引 :' + evt.newIndex)
	// 遍历数组,将索引值赋值到对应的 sort_order上面,完成排序
	let arr = this.codeList;
	let newArr = await arr.map((item, i) => {
		return {
			sort_order: i,
			field_code: item.field_code,
		};
	});
	const res = await this.$axios.post(`customer/save_order`, {
		list: newArr,
	});
	// console.log(res);
	const { error, message } = res.data;
	if (error == 0) {
		this.$message.success(message);
	}
},

以上是关于vue+element+vuedraggable实现拖拽排序的主要内容,如果未能解决你的问题,请参考以下文章

element-ui table 表格组件实现可拖拽效果(行列)

vue+element拖动排序功能

vue项目中vuedraggable的使用

vue+vuedraggable实现拖动排序和删除

带有 vuedraggable 的 Vue typescript 类组件

vue项目中使用vuedraggable