拖拽排序Table
约 294 字小于 1 分钟
2025-05-29
在线预览
介绍
说明
只支持一级拖拽排序,如果数据存在树形关系,如果开启排序的话只能排序最外一层
使用场景应该是分类列表中或者数据量不大的时候
后端数据的逻辑是每新增一条数据先读取最大的排序值 + 1 赋值给新数据,拖拽排序操作为,active 和 over 数据,将 over 的排序值赋值给 active,然后将两者之间的数据排序值根据是否大于 active 的排序值 +1 或者 -1
使用
- 模型中必须包含
displayorder字段,通过后台创建的模型默认包含该字段 - 在对应的模型设置中勾选
开启拖拽排序 - 在 Table 中增加拖拽列,选择类型为
排序 - dragsort
php 控制器文件修改
新增排序属性
$this->displayorder = [
['displayorder', 'asc'],
['id', 'desc']
];新增或修改 beforePost 方法
public function beforePost(&$data, $id = 0, $item = [])
{
if (!$id) {
$data['displayorder'] = $this->getMaxDisplayorder();
}
return;
}