Easy-UI 的树形插件实现权限选中效果

      最近需要一个实现一个权限设置,如果通过手工的设置一个一个输入的话,弄不好要疯掉,所以就来一个程序图形化的展示数据然后选中。
      至于树形结构的话选择有很多,本着以前使用过Easy-UI的情况下,就决定用Easy-UI 的树形结构实现了

      话不多说,先看效果:

这是选中部分子节点的:

部分子节点

这是选中全部子节点的:

选中全部子节点的
      

可以看到我们的权限直接变为父节点的,这样符合父权限包含所有子权限的规则,个人使用的Shiro,设计初衷也是如此。更多的效果图就不放出来了,有兴趣的可以自己试一下。

      接下来就是实现的过程了。
      ① 数据准备:作为一个简单的demo,肯定不用数据库了,这样方便练习。就用json即可,记得把下面的数据存储为一个json文件,然后url请求它

Permissions:所有的权限数据

[
    {
        "children": [],//字权限集合
        "id": "1",//权限id
        "permission": "common:*",//权限描述符
        "pid": "0",//父分类id  0为定级id
        "text": "控制台"//权限名字
    },
    {
        "children": [
            {
                "children": [
                    {
                        "children": [
                            {
                                "children": [],
                                "id": "5",
                                "permission": "bussiness:roadsort:add",
                                "pid": "4",
                                "text": "添加线路类别"
                            },
                            {
                                "children": [],
                                "id": "6",
                                "permission": "bussiness:roadsort:update",
                                "pid": "4",
                                "text": "修改线路类别"
                            },
                            {
                                "children": [],
                                "id": "7",
                                "permission": "bussiness:roadsort:delete",
                                "pid": "4",
                                "text": "删除线路类别"
                            },
                            {
                                "children": [],
                                "id": "8",
                                "permission": "bussiness:roadsort:log",
                                "pid": "4",
                                "text": "线路类别操作日志"
                            },
                            {
                                "children": [],
                                "id": "9",
                                "permission": "bussiness:roadsort:collection",
                                "pid": "4",
                                "text": "批量操作线路类别"
                            }
                        ],
                        "id": "4",
                        "permission": "bussiness:roadsort:*",
                        "pid": "3",
                        "text": "线路类别"
                    },
                    {
                        "children": [
                            {
                                "children": [],
                                "id": "11",
                                "permission": "bussiness:stroke:add",
                                "pid": "10",
                                "text": "添加行程模板"
                            },
                            {
                                "children": [],
                                "id": "12",
                                "permission": "bussiness:stroke:update",
                                "pid": "10",
                                "text": "修改行程模板"
                            },
                            {
                                "children": [],
                                "id": "13",
                                "permission": "bussiness:stroke:collection",
                                "pid": "10",
                                "text": "批量操作行程模板"
                            },
                            {
                                "children": [],
                                "id": "14",
                                "permission": "bussiness:stroke:log",
                                "pid": "10",
                                "text": "行程模板日志"
                            }
                        ],
                        "id": "10",
                        "permission": "bussiness:stroke:*",
                        "pid": "3",
                        "text": "行程模板"
                    },
                    {
                        "children": [
                            {
                                "children": [],
                                "id": "16",
                                "permission": "bussiness:roadmanager:add",
                                "pid": "15",
                                "text": "新建线路"
                            },
                            {
                                "children": [],
                                "id": "17",
                                "permission": "bussiness:roadmanager:update",
                                "pid": "15",
                                "text": "修改线路"
                            },
                            {
                                "children": [],
                                "id": "18",
                                "permission": "bussiness:roadmanager:collection",
                                "pid": "15",
                                "text": "批量操作线路"
                            },
                            {
                                "children": [],
                                "id": "19",
                                "permission": "bussiness:roadmanager:log",
                                "pid": "15",
                                "text": "线路操作日志"
                            },
                            {
                                "children": [],
                                "id": "20",
                                "permission": "bussiness:roadmanager:rubbish",
                                "pid": "15",
                                "text": "线路回收站"
                            }
                        ],
                        "id": "15",
                        "permission": "bussiness:roadmanager:*",
                        "pid": "3",
                        "text": "线路管理"
                    }
                ],
                "id": "3",
                "permission": "bussiness:road:*",
                "pid": "2",
                "text": "线路"
            },
            {
                "children": [
                    {
                        "children": [],
                        "id": "22",
                        "permission": "bussiness:regiment:add",
                        "pid": "21",
                        "text": "新建团期"
                    },
                    {
                        "children": [],
                        "id": "23",
                        "permission": "bussiness:regiment:newverify",
                        "pid": "21",
                        "text": "建团审核"
                    },
                    {
                        "children": [],
                        "id": "24",
                        "permission": "bussiness:regiment:update",
                        "pid": "21",
                        "text": "修改团期"
                    },
                    {
                        "children": [],
                        "id": "25",
                        "permission": "bussiness:regiment:copy",
                        "pid": "21",
                        "text": "复制建团"
                    },
                    {
                        "children": [],
                        "id": "26",
                        "permission": "bussiness:regiment:delete",
                        "pid": "21",
                        "text": "删除团期"
                    },
                    {
                        "children": [],
                        "id": "27",
                        "permission": "bussiness:regiment:cancle",
                        "pid": "21",
                        "text": "取消团期"
                    },
                    {
                        "children": [],
                        "id": "28",
                        "permission": "bussiness:regiment:downandup",
                        "pid": "21",
                        "text": "上下线操作"
                    },
                    {
                        "children": [],
                        "id": "29",
                        "permission": "bussiness:regiment:seal",
                        "pid": "21",
                        "text": "封团/解封"
                    },
                    {
                        "children": [],
                        "id": "30",
                        "permission": "bussiness:regiment:sealverify",
                        "pid": "21",
                        "text": "封团审核"
                    },
                    {
                        "children": [],
                        "id": "31",
                        "permission": "bussiness:regiment:end",
                        "pid": "21",
                        "text": "结团操作"
                    },
                    {
                        "children": [],
                        "id": "32",
                        "permission": "bussiness:regiment:statistics",
                        "pid": "21",
                        "text": "我的统计"
                    },
                    {
                        "children": [],
                        "id": "33",
                        "permission": "bussiness:regiment:customerlist",
                        "pid": "21",
                        "text": "查看名单"
                    }
                ],
                "id": "21",
                "permission": "bussiness:regiment:*",
                "pid": "2",
                "text": "团期"
            },
            {
                "children": [
                    {
                        "children": [],
                        "id": "35",
                        "permission": "bussiness:order:newverify",
                        "pid": "34",
                        "text": "新单审核"
                    },
                    {
                        "children": [],
                        "id": "36",
                        "permission": "bussiness:order:refundfirstverify",
                        "pid": "34",
                        "text": "退款初审"
                    },
                    {
                        "children": [],
                        "id": "37",
                        "permission": "bussiness:order:refundlastverify",
                        "pid": "34",
                        "text": "退款终审"
                    },
                    {
                        "children": [],
                        "id": "38",
                        "permission": "bussiness:order:paysettle",
                        "pid": "34",
                        "text": "缴费结算"
                    },
                    {
                        "children": [],
                        "id": "39",
                        "permission": "bussiness:order:refundsettle",
                        "pid": "34",
                        "text": "退款结算"
                    },
                    {
                        "children": [],
                        "id": "40",
                        "permission": "bussiness:order:verify",
                        "pid": "34",
                        "text": "修改审核"
                    },
                    {
                        "children": [],
                        "id": "41",
                        "permission": "bussiness:order:detail",
                        "pid": "34",
                        "text": "订单详情"
                    }
                ],
                "id": "34",
                "permission": "bussiness:order:*",
                "pid": "2",
                "text": "订单"
            },
            {
                "children": [
                    {
                        "children": [
                            {
                                "children": [],
                                "id": "44",
                                "permission": "bussiness:resource:provider:add",
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值