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’ 配置:
- parentIdProperty 父级ID属性名
parentIdProperty:'parentId',
- 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。
效果图
注:如果还不清楚有问题的,可以给我发消息,看到了会及时回复的