可编辑树形结构,子节点可分页的树形结构,增加根据服务器返回结果,对新增、删除、拖拽操作进行确认或回滚。并可对子节点进行分页显示。 目前已经结合后端数据进行了下列测试: (暂时后端设定每页显示4个节点,子节点数量限制为10) 后端数据库基础表的字段及含义:
create table org (
id primarikey integer auto_increment,
parentid integer, -- 父节点,如果为0,表示是根节点
text varchar(200), -- 节点名称
display integer, -- 同级节点显示顺序,可以通过前端拖拽进行调整
state char(10), -- open 表示无下级, 或者closed 表示有下级,可展开。
path varchar(500), -- 由根节点到本节点的路径,为点分隔的数字串,可选字段,可以增强部分树的操作,减少遍历次数
level integer, -- 节点级别,等于path中点的,可选字段。
)
-
新增节点
- 新增根节点(不选中任意节点,如已选中情况,点击刷新按钮即可放弃选中)。对根节点,text默认由后端指定,state默认为"open",display默认为根节点中最大值加1,后端返回形如{id:"1",text:"new item", state:"open", display:2}。
- 当新增根节点超过4个时,点刷新,可正常显示根节点的翻栏。(节点数量少于等于4个时,后台返回结果:[{id:1, text:'item1', parentid:0}, ..],节点数量大于4个时,后台返回:{total:9, pagesize:4, page:1, rows:[{id:1, ..}, {..}, {..}, {..}]}。
- 拖动以改变各个根节点的显示排序,可正常保存。
- 删除某根节点。
- 继续删除根节点,至根节点数量小于等于4时,刷新,根节点的翻页栏隐藏。
-
追加子节点
- 在某一个节点下面追加子节点。
- 持续追加子节点,当子节点数量达到4个以上时,刷新树,展形至该子节点,可以显示该子节点的翻页栏。
- 另选一子节点如上操作,刷新,并展开至该子节点,可以显示翻页栏。并且只会显示当前选中的子节点的翻页栏。
-
删除节点
- 删除有子节点的节点,会显示失败。(服务端返回{isError:true, msg:"必须先删除下级节点"})
- 删除其所有子节点,其state会变更为open,再删除,成功。
-
拖动子节点
- 在同一子节点下面,拖动各节点节点的显示顺序,能够正常改变。
- 持续在某一节点下面追加子节点,至节点数量满10后,再追加会报错。(服务端返回:{isError:true, msg:"子节点数量已达限制"})
- 将另一节点试图拖到上述已满容子点下,会报错(服务端返回:{isError:true, msg:"子节点数量已达限制"})
-
修改节点文本
- 双击修改节点文本,完成后回车,或点击屏幕其他区域。
- 双击修改,若要放弃修改,只能按键盘上的ESC键(这个应该是原jeasyui-etree的bug)。
TODO: 1. 可以根据节点id或text,查找,并展开至该节点。 2. 上述1,模糊查找text为多个结果时,展开。 后端整体都是CRUD映射,只是在处理select时,方法名是tree,并且有可能有递归。其中增删改查都很简单,dnd那个后台方法有点复杂。我抽空整理后贴一个上来。