使用"vuedraggable"插件实现列表排序功能;

不多说,上代码。

首先是你自己协商列表代码,

在页面中引入vuedraggable

import draggable from "vuedraggable";
	<draggable
					v-model="kindList"
					:options="{ animation: 380 }"
					@end="end"
				>
					<div
						class="list"
						v-for="(item, index) in kindList"
						:key="item.id"
					>
						<div class="ind">{{ index + 1 }}</div>
						<div class="kindname">
							<!-- -->
							{{ item.name }}
						</div>
						<div class="button">
							<button
								class="el-icon-edit-outline"
								@click="kindCompile(item.id)"
							></button>
							<button
								class="el-icon-delete"
								@click="kindDel(item.id)"
							></button>
						</div>
					</div>
				</draggable>

  在页面中将你的列表包在<draggable></draggable>中,注意v-model和你下面的数组要一致。

最后是其中的end方法:

	async end(evt) {
			var ids = this.kindList.map(item => {
				return item.id;
			});
			let { code, data } = await this.$api.put({
				url: "你的接口地址",
				data: {
					newsIdList: ids
				}
			});
			if (code == 1) {
				this.kindListInfo();
			}
		},

 这里我们是传一个改变后的id数组给后端,然后实现排序。

posted @ 2020-12-22 15:07  web~Song  阅读(1025)  评论(0编辑  收藏  举报