feat: 增加首页项目拖拽排序增加只能管理员进行, 排序失败元素回到原本位置

This commit is contained in:
zhanzhenping
2024-07-03 09:31:45 +08:00
parent 34ce2b3c1b
commit 38c15ae91e
2 changed files with 20 additions and 2 deletions

View File

@@ -775,6 +775,10 @@ func (c *BookController) Release() {
// 更新项目排序
func (c *BookController) UpdateBookOrder() {
if !c.Member.IsAdministrator() {
c.JsonResult(403, "权限不足")
return
}
type Params struct {
Ids string `form:"ids"`
}

View File

@@ -1,8 +1,12 @@
let draggedItem = null;
let draggedItemIndex = null;
document.querySelectorAll('.list-item').forEach(item => {
item.addEventListener('mousedown', function() {
draggedItem = item;
// 获取当前item在list-item中的索引
const parentNode = item.parentNode;
draggedItemIndex = Array.from(parentNode.children).indexOf(draggedItem);
item.setAttribute('draggable', true);
});
@@ -45,15 +49,25 @@ document.querySelectorAll('.list-item').forEach(item => {
success: function (res) {
if (res.errcode === 0) {
layer.msg("排序成功", {icon: 1});
draggedItem = null;
} else {
layer.msg("排序失败", {icon: 2});
layer.msg(res.message, {icon: 2});
const parentNode = item.parentNode;
// 在parentNode中找到当前拖拽的item
const draggedIndex = Array.from(parentNode.children).indexOf(draggedItem);
console.log('draggedIndex:', draggedIndex);
// 移除当前拖拽的item
parentNode.removeChild(draggedItem);
// 将draggedItem放到原来的位置
parentNode.insertBefore(draggedItem, parentNode.children[draggedItemIndex]);
draggedItem = null;
}
},
error: function (err) {
console.log('error:', err)
}
})
draggedItem = null;
}
})
}
});
});