mirror of
https://github.com/mindoc-org/mindoc.git
synced 2025-09-18 17:48:00 +08:00
feat: 增加首页项目拖拽排序增加只能管理员进行, 排序失败元素回到原本位置
This commit is contained in:
@@ -775,6 +775,10 @@ func (c *BookController) Release() {
|
|||||||
|
|
||||||
// 更新项目排序
|
// 更新项目排序
|
||||||
func (c *BookController) UpdateBookOrder() {
|
func (c *BookController) UpdateBookOrder() {
|
||||||
|
if !c.Member.IsAdministrator() {
|
||||||
|
c.JsonResult(403, "权限不足")
|
||||||
|
return
|
||||||
|
}
|
||||||
type Params struct {
|
type Params struct {
|
||||||
Ids string `form:"ids"`
|
Ids string `form:"ids"`
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,12 @@
|
|||||||
let draggedItem = null;
|
let draggedItem = null;
|
||||||
|
let draggedItemIndex = null;
|
||||||
|
|
||||||
document.querySelectorAll('.list-item').forEach(item => {
|
document.querySelectorAll('.list-item').forEach(item => {
|
||||||
item.addEventListener('mousedown', function() {
|
item.addEventListener('mousedown', function() {
|
||||||
draggedItem = item;
|
draggedItem = item;
|
||||||
|
// 获取当前item在list-item中的索引
|
||||||
|
const parentNode = item.parentNode;
|
||||||
|
draggedItemIndex = Array.from(parentNode.children).indexOf(draggedItem);
|
||||||
item.setAttribute('draggable', true);
|
item.setAttribute('draggable', true);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -45,15 +49,25 @@ document.querySelectorAll('.list-item').forEach(item => {
|
|||||||
success: function (res) {
|
success: function (res) {
|
||||||
if (res.errcode === 0) {
|
if (res.errcode === 0) {
|
||||||
layer.msg("排序成功", {icon: 1});
|
layer.msg("排序成功", {icon: 1});
|
||||||
|
draggedItem = null;
|
||||||
} else {
|
} 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) {
|
error: function (err) {
|
||||||
console.log('error:', err)
|
console.log('error:', err)
|
||||||
|
draggedItem = null;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
draggedItem = null;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
Reference in New Issue
Block a user