Ext.onReady(function(){
// 开启表单提示
Ext.QuickTips.init();
// 设置提示信息位置为边上
Ext.form.Field.prototype.msgTarget = 'side';
// 树
NavTree = function() { // navTree类
var nav;
var loader;
var root;
var leafMenu;
var dirMenu;
return {
init : function() {
if (!loader) {
loader = new Ext.tree.TreeLoader({ // 实例化loader
// TreeLoader
url : "../sysmanagement/querymenu.action"
});
loader.on('beforeload', function(treeloader, node) {// 设置参数
treeloader.baseParams = {
id : node.id,
method : 'tree'
};
}, this);
}
if (!root) {
root = new Ext.tree.AsyncTreeNode({// 实例化 根节点root
id : '-1',
text : "功能菜单"
});
}
if (!nav) {
nav = new Ext.tree.TreePanel({ // 实例化 树面板nav
title : "功能菜单",
width : 250,
autoScroll : true,
animate : true,
id:"ptree",
height:500,
loader : loader,// 加入loader
root : root, // 加根节点进来
//checkModel:"cascade",
checkModel:'cascade',
enableDD : false
// 能拖动
});
nav.on("contextmenu", this.showTreeMenu);// 面板上添加右击菜单,调用方法
}
},
showTreeMenu : function(node, e) {
nodeSelected = node;
nodeSelected.select();// 选中的node
if (node.isLeaf()) { // 如果是叶子
leafMenu.showAt(e.getPoint());// 显示叶子
} else {
dirMenu.showAt(e.getPoint());// 显示目录
}
},
show : function() {
nav.render("trees"); // 加入div
nav.getRootNode().toggle();// 根节点触发查询
//nav.expandAll(); //将所有含有子节点的节点展开
}
}
}();
NavTree.init();// 初始化方法
NavTree.show();// 显示方法
});
////添加事件
Ext.getCmp('ptree').on('click',function(node,trees){
if(node.isLeaf()){
leafnode=node.id;
return;
}
Ext.getCmp('fnode').setValue(node.text);
fid=node.id;
});
///struts截获配置
<action name="querymenu" method="menulist" class="com.feapp.framework.sysmanagement.action.LimitedManagementAction">///action类
<result name="success" type="json">
<param name="root">
jsonArray //////JSONArray
</param>
</result>
<result name="input">
/core/error.jsp
</result>
</action>
//////返回JSONArray
private JSONArray listToJson(List list){
JSONArray jsonArray=new JSONArray();
Iterator iter=list.iterator();
LimitedManagement lm=null;
while(iter.hasNext()){
lm=(LimitedManagement)iter.next();
JSONObject obj=new JSONObject();
obj.put("id", lm.getAnthorityId());
obj.put("text",lm.getAuthorityName() );
obj.put("leaf","0".equals(lm.getIsLeaf().trim())? false : true);
jsonArray.add(obj);
}
return jsonArray;
}
/////异步刷新树
Ext.getCmp("ptree").root.reload();