python实现拖拽排序

5 篇文章 0 订阅

Python

def change_intro_case(**kwargs):
	cur_id=kwargs.get('cur_id')
	next_id=kwargs.get('next_id')
	if cur_id==next_id:
		return
	cur_obj=Person.objects.get(pk=cur_id)
	next_obj=Person.objects.get(pk=next_id)
	if cur_obj.order >next_obj.order:
		# 上移
		Person.objects.filter(order__gte=next_obj.order,order__lt=cur_obj.order).update(order=F('order')+1)
	elif cur_obj.order<next_obj.order:
		# 下移
		Person.objects.filter(order__gt=cur_obj.order,order__lte=next_obj.order).update(order=F('order')-1)
	# 交换排序
	cur_obj.order=next_obj.order
	cur_obj.save()

Vue:

npm install sortablejs --save
import Sortable from 'sortable.js'
mounted(){
	this.rowDrop()
}
// 行拖拽
rowDrop(){
	const tbody = document.querySelector('.el-table__body-wrapper tbody')
	const _this=this
	Sortable.create(tbody,{
		sort:true,
		animation:300,
		onEnd({newIndex,oldIndex}){
			if(newIndex!=oldIndex){
				_this.loading=true
				const nextRow=_this.data[newIndex]
				const curRow=_this.data[oldIndex]
				_this.changeTable(curRow.id,nextRow.id)
			}
		}
	})
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值