Ext.tree.Panel6.2

本文深入解析Ext.tree.Panel组件在ExtJS 6.2版本中的应用,重点介绍数据结构配置及其实现过程,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ext.tree.Panel一些重要的配置

最近一段时间一直在学习ext6.2版本, 是一个不折不扣的ext新手(之前的版本都没有接触过),官网和百度都没有找到相应的中文文档,所以学些起来比较吃力,特别是在学习Ext.tree.Panel树结构这一块的时候,但最终还是弄出来,在这里给大家分享一下我的心得,希望对大家有帮助!!!!

数据结构1


{
"code": 0,
"message": "成功",
"result": [
 {
   "id": "root-1-menu-permission-user",
   "parentId": "root-1-menu-permission",
   "name": "管理员",
   "iconUrl": "",
   "sortNo": 0,
 },
 {
   "id": "root-1-menu-system-loginlog",
   "parentId": "root-1-menu-system",
   "name": "登录日志",
   "iconUrl": "",
   "sortNo": 0,
 },
 {
   "id": "root-1-menu-account-agent",
   "parentId": "root-1-menu-account",
   "name": "代理商",
   "iconUrl": "",
   "sortNo": 0,
 },
 {
   "id": "root-1-menu-pay-recharge",
   "parentId": "root-1-menu-pay",
   "name": "交易记录",
   "parent": null,
   "iconUrl": "",
   "sortNo": 0,
 },
 {
   "id": "root-1-menu",
   "parentId": "root",
   "name": "菜单管理",
   "iconUrl": "",
   "sortNo": 0,
 },
 {
   "id": "root-1-menu-permission-role",
   "parentId": "root-1-menu-permission",
   "name": "角色管理",
   "iconUrl": "",
   "sortNo": 1,
 },
 {
   "id": "root-1-menu-system-operationlog",
   "parentId": "root-1-menu-system",
   "name": "操作日志",
   "iconUrl": "",
   "sortNo": 1,
 },
 {
   "id": "root-1-menu-account-merchant",
   "parentId": "root-1-menu-account",
   "name": "商户",
   "iconUrl": "",
   "sortNo": 1,
 },
 {
   "id": "root-1-menu-pay-draw",
   "parentId": "root-1-menu-pay",
   "name": "代付明细",
   "iconUrl": "",
   "sortNo": 1,
 },
 {
   "id": "root-1-menu-pay",
   "parentId": "root-1-menu",
   "name": "支付管理",
   "iconUrl": "layui-icon layui-icon-rmb",
   "sortNo": 1,
 },
 {
   "id": "root-1-menu-permission-module",
   "parentId": "root-1-menu-permission",
   "name": "模块管理",
   "url": "/admin/permission/module",
   "iconUrl": "",
   "sortNo": 2,
 },
 {
   "id": "root-1-menu-system-systemset",
   "parentId": "root-1-menu-system",
   "name": "系统设置",
   "iconUrl": "",
   "sortNo": 2,
 },
 {
   "id": "root-1-menu-account-bankcard",
   "parentId": "root-1-menu-account",
   "name": "银行卡",
   "iconUrl": "",
   "sortNo": 2,
 },
 {
   "id": "root-1-menu-pay-channel",
   "parentId": "root-1-menu-pay",
   "name": "代付通道",
   "url": "/admin/payment/payChannel",
   "iconUrl": "",
   "sortNo": 2,
 },
 {
   "id": "root-1-menu-pay-balance",
   "parentId": "root-1-menu-pay",
   "name": "资金明细",
   "iconUrl": "",
   "sortNo": 2,
 },
 {
   "id": "root-1-menu-account",
   "parentId": "root-1-menu",
   "name": "账户管理",
   "iconUrl": "layui-icon layui-icon-user",
   "sortNo": 2,
 },
 {
   "id": "root-1-menu-report-dayreport",
   "parentId": "root-1-menu-pay",
   "name": "日报表",
   "iconUrl": "",
   "sortNo": 3,
 },
 {
   "id": "root-1-menu-pay-client",
   "parentId": "root-1-menu-account",
   "name": "终端账号",
   "iconUrl": "",
   "sortNo": 3,
 },
 {
   "id": "root-1-menu-account-blackbankcard",
   "parentId": "root-1-menu-account",
   "name": "黑银行卡",
   "iconUrl": "",
   "sortNo": 3,
 },
 {
   "id": "root-1-menu-permission-function",
   "parentId": "root-1-menu-permission",
   "name": "功能管理",
   "iconUrl": "",
   "sortNo": 3,
 },
 {
   "id": "root-1-menu-system-rechargeset",
   "parentId": "root-1-menu-system",
   "name": "支付参数",
   "iconUrl": "",
   "sortNo": 3,
 },
 {
   "id": "root-1-menu-system",
   "parentId": "root-1-menu",
   "name": "系统管理",
   "url": "",
   "sortNo": 3,
 },
 {
   "id": "root-1-menu-report-monthreport",
   "parentId": "root-1-menu-pay",
   "name": "月报表",
   "iconUrl": "",
   "sortNo": 4,
 },
 {
   "id": "root-1-menu-system-passwordset",
   "parentId": "root-1-menu-system",
   "iconUrl": "",
   "sortNo": 4,
 },
 {
   "id": "root-1-menu-permission-menu",
   "parentId": "root-1-menu-permission",
   "name": "菜单管理",
   "iconUrl": "",
   "sortNo": 4,
 },
 {
   "id": "root-1-menu-permission",
   "parentId": "root-1-menu",
   "name": "权限管理",
   "iconUrl": "layui-icon layui-icon-auz",
   "sortNo": 4,
 },
 {
   "id": "root-1-menu-report-poolreport",
   "parentId": "root-1-menu-pay",
   "name": "总报表",
   "iconUrl": "",
   "sortNo": 5,
 },
 {
   "id": "root-1-menu-system-test",
   "parentId": "root-1-menu-system",
   "name": "支付测试",
   "iconUrl": "",
   "sortNo": 5,
  
 }
]
}

代码块1

var store = Ext.create('Ext.data.TreeStore', {
            proxy: {
                type: 'ajax',
                url: ‘xxxx/xxx/,//请求路径
                reader: {
                    type: 'json',
                    rootProperty:function (data) {
                        if(data.result){
                            return data.result;
                        }else{
                            return data.children;
                        }
                    }
                },

            },
            /!*root: {//定义根节点,与rootVisible属性配合使用 true为显示根节点需要配置;反之不显示就不用配置
                name : '根节点',
                expanded: false
            },*!/
            autoLoad:true,//自动加载数据
            parentIdProperty:'parentId',
        });
        var treePanel = Ext.create({
            xtype: 'treepanel',
            renderTo: "app",
            bodyStyle:'border:1px solid #e9e9e9; overflow-x:hidden; overflow-y:hidden',

            columnLines:true,
            enableColumnResize:true,
            height: '100%',
            width: '100%',
            rootVisible: false,//是否显示根节点
            singleExpand: false,//是否每次之展开一个节点
            store:store,
            columns: [
                {  dataIndex: 'id',         flex: 1,  align:'left', text: 'ID'},
                {  dataIndex: 'name',       flex: 1,  align:'left', xtype: 'treecolumn', text: '菜单名称'},
                {  dataIndex: 'parentId',   flex: 1,  align:'left', text: '上级菜单ID'},
                {  dataIndex: 'iconUrl',    flex: 1,  align:'center', text: '图标'},
                {  dataIndex: 'sortNo',     flex: 1,  align:'center', text: '排序号'},
                {  dataIndex: 'action',     flex: 1,  align:'center', text: '操作'},
            ]
        });

讲解1: 数据结构1为 平级数据 不是 树形结构的数据,像这种 平级数据必须要有 parentId,也就是所属上级的Id,然后根据属性 parentIdProperty:‘parentId’ 配置:

  1. parentIdProperty 父级ID属性名
 parentIdProperty:'parentId',
  1. rootProperty
 rootProperty:'result'

数据结构2

{
  "code": 0,
  "message": "成功",
  "result": {
    "id": "root-1-menu",
    "parentId": "root",
    "name": "菜单管理",
    "children": [
      {
        "id": "root-1-menu-pay",
        "parentId": "root-1-menu",
        "name": "支付管理",
        "children": [
          {
            "id": "root-1-menu-pay-recharge",
            "rowNumber": 4,
            "parentId": "root-1-menu-pay",
            "name": "交易记录"
          },
          {
            "id": "root-1-menu-pay-draw",
            "rowNumber": 9,
            "parentId": "root-1-menu-pay",
            "name": "代付明细"
          },
          {
            "id": "root-1-menu-pay-channel",
            "rowNumber": 14,
            "parentId": "root-1-menu-pay",
            "name": "代付通道"
          },
          {
            "id": "root-1-menu-pay-balance",
            "rowNumber": 15,
            "parentId": "root-1-menu-pay",
            "name": "资金明细"
          },
          {
            "id": "root-1-menu-report-dayreport",
            "parentId": "root-1-menu-pay",
            "name": "日报表"
          },
          {
            "id": "root-1-menu-report-monthreport",
            "parentId": "root-1-menu-pay",
            "name": "月报表"
          },
          {
            "id": "root-1-menu-report-poolreport",
            "parentId": "root-1-menu-pay",
            "name": "总报表"
          }
        ]
      },
      {
        "id": "root-1-menu-account",
        "parentId": "root-1-menu",
        "name": "账户管理",
        "children": [
          {
            "id": "root-1-menu-account-agent",
            "parentId": "root-1-menu-account",
            "name": "代理商"
          },
          {
            "id": "root-1-menu-account-merchant",
            "parentId": "root-1-menu-account",
            "name": "商户"
          },
          {
            "id": "root-1-menu-account-bankcard",
            "parentId": "root-1-menu-account",
            "name": "银行卡"
          },
          {
            "id": "root-1-menu-pay-client",
            "parentId": "root-1-menu-account",
            "name": "终端账号"
          },
          {
            "id": "root-1-menu-account-blackbankcard",
            "parentId": "root-1-menu-account",
            "name": "黑银行卡"
          }
        ]
      },
      {
        "id": "root-1-menu-system",
        "parentId": "root-1-menu",
        "name": "系统管理",
        "children": [
          {
            "id": "root-1-menu-system-loginlog",
            "parentId": "root-1-menu-system",
            "name": "登录日志"
          },
          {
            "id": "root-1-menu-system-operationlog",
            "parentId": "root-1-menu-system",
            "name": "操作日志"
          },
          {
            "id": "root-1-menu-system-systemset",
            "parentId": "root-1-menu-system",
            "name": "系统设置"
          },
          {
            "id": "root-1-menu-system-rechargeset",
            "parentId": "root-1-menu-system",
            "name": "支付参数"
          },
          {
            "id": "root-1-menu-system-passwordset",
            "parentId": "root-1-menu-system",
            "name": "密码设置"
          },
          {
            "id": "root-1-menu-system-test",
            "parentId": "root-1-menu-system",
            "name": "支付测试"
          }
        ]
      },
      {
        "id": "root-1-menu-permission",
        "parentId": "root-1-menu",
        "name": "权限管理",
        "children": [
          {
            "id": "root-1-menu-permission-user",
            "parentId": "root-1-menu-permission",
            "name": "管理员"
          },
          {
            "id": "root-1-menu-permission-role",
            "parentId": "root-1-menu-permission",
            "name": "角色管理"
          },
          {
            "id": "root-1-menu-permission-module",
            "parentId": "root-1-menu-permission",
            "name": "模块管理"
          },
          {
            "id": "root-1-menu-permission-function",
            "parentId": "root-1-menu-permission",
            "name": "功能管理"
          },
          {
            "id": "root-1-menu-permission-menu",
            "parentId": "root-1-menu-permission",
            "name": "菜单管理"
          }
        ]
      }
    ]
  }
}

代码块2

 var store = Ext.create('Ext.data.TreeStore', {
            proxy: {
                type: 'ajax',
                url: adm_menuitem_listby,//请求
                reader: {
                    type: 'json',
                    rootProperty:function (data) {
                        if(data.result){
                            return data.result;
                        }else{
                            return data.children;
                        }
                    }
                },

            },
            /!*root: {//定义根节点,此配置是必须的
                name : '根节点',
                expanded: false
            },*!/
            autoLoad:true,
            parentIdProperty:'parentId',
        });
        var treePanel = Ext.create({
            xtype: 'treepanel',
            renderTo: Ext.Body()
            height: '100%',
            width: '100%',
            rootVisible: false,//是否显示根节点
            singleExpand: false,//是否每次之展开一个节点
            store:store,
            columns: [
                {  dataIndex: 'id',         flex: 1,  align:'left', text: 'ID'},
                {  dataIndex: 'name',       flex: 1,  align:'left', xtype: 'treecolumn', text: '菜单名称'},
                {  dataIndex: 'parentId',   flex: 1,  align:'left', text: '上级菜单ID'},
                {  dataIndex: 'iconUrl',    flex: 1,  align:'center', text: '图标'},
                {  dataIndex: 'sortNo',     flex: 1,  align:'center', text: '排序号'},
                {  dataIndex: 'action',     flex: 1,  align:'center', text: '操作'},
            ]
        });

讲解2: 其他地方的代码还是没有什么变化,因为远程返回的数据已经是 树形结构的 主要还是 rootProperty 这个属性的变化

rootProperty:function (data) {
   if(data.result){
       return data.result;
    }else{
       return data.children;
    }
}

第一次data返回的是 远程数据结果 所以你要取值为 data.result ,这时候就会显示根目录,当你点击展开显示下级的时候,data返回的就是点击节点的数据(包涵下一级数据,在 children 属性中 )所以你要显示下级 则返回取到下级数据 data.children

效果图

在这里插入图片描述
在这里插入图片描述
注:如果还不清楚有问题的,可以给我发消息,看到了会及时回复的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值