动态页面加载--重写button


Ext.onReady(function(){

Ext.QuickTips.init();

Ext.loadMask = new Ext.LoadMask(Ext.getBody(), {msg:"加载中..."});

/**
* author : sumin
* time : 2011-3-28
*(0不可见1可用2不可用)
*
* 将菜单的id作为session的name
* @memberOf {TypeName}
*/

Ext.override(Ext.Button,{
initComponent: Ext.Button.prototype.initComponent.createSequence(function(){
this.on({
beforerender : function(btn){
var buttonResource = {};
for(var i=0;i<ziyuanlist.length;i++){
if(ziyuanlist[i].panelid == btn.id){
buttonResource.panelid = ziyuanlist[i].panelid;
buttonResource.ziyuanzhuangtai = ziyuanlist[i].ziyuanzhuangtai
}
}
if(buttonResource.panelid == btn.id){
btn.hidden = buttonResource.ziyuanzhuangtai == 0 //不可见的状态
btn.disabled = buttonResource.ziyuanzhuangtai == 2//不可编辑的状态
alert(buttonResource.ziyuanzhuangtai)
}
}
});
})
})

/**
* @ author sumin
* @time 2011 3 25
* 需要一个store,加载后台module类
*
*/
zyerp.system.PrimaModuleStore = Ext.extend(Ext.data.JsonStore,{
proxy : new Ext.data.HttpProxy({
url: '/zyerp/module/module!loadPrimaModules',
method : "POST"
}),
autoLoad : false,
root : "list", //不要使用Reader,会报TypeError: record is undefined
totalProperty : "total",
idProperty : "id",
fields : [
{ name : "primaModuleId", mapping : "primaModuleId", type : "int" },
{ name : "panelId", mapping : "panelId", type : "string" },
{ name : "name", mapping : "name", type : "string" },
{ name : "visible", mapping : "visible", type : "boolean" },
{ name : "icon", mapping : "icon", type : "string" },
{ name : "orderNum", mapping : "orderNum", type : "int" },
{ name : "resources", mapping : "resources", type : "array" }
],
constructor : function(conf) {
conf = conf || {};
Ext.applyIf(conf, this);
zyerp.system.PrimaModuleStore.superclass.constructor.call(this,
conf
);
}
});


/**
* @auther sumin
* @time 2011 3 25 21:59
* 单击事件 导航树节点单击出后加载相应界面
* contentPanel 分成每一个window的center
*/

zyerp.system.moduleHandler = function (module, contentPanel){
//加载的界面放置到contentPanel中
if(Ext.getCmp(module.panelid)){
contentPanel.setActiveTab(Ext.getCmp(module.panelid));
}else{
if(! module.jsfile) return;
Ext.loadMask.show();
Ext.Ajax.request({
url : module.jsfile,
success : function(response) {
eval(response.responseText);
var tab = Ext.getCmp(module.panelid);
tab.show();
contentPanel.add(tab);
contentPanel.doLayout(true);
contentPanel.setActiveTab(tab);
Ext.loadMask.hide();
},
failure : function(response) {
Ext.MessageBox.alert("错误", "系统加载失败,请稍后重试或联系管理员.");
Ext.loadMask.hide();
}
});
}
}

/**
* author 苏民
* time 2011-3-25
* 导航树所在的panel
*/
zyerp.system.oERPPanel = new Ext.Panel({
title : "功能列表",
region : "west",
width : 180,
height : 300,
layout : 'accordion',
collapsible : true,
layoutConfig : {
activeOnTop : false,
animate : false
},
listeners : {
afterrender : function() {
zyerp.system.moduleStore.load();
}
}
});


/**
* author : sumin
* time : 2011-3-25
* 导航树
* @memberOf {TypeName}
*/
zyerp.system.navigaterTree = Ext.extend(Ext.tree.TreePanel,{
split : true,
width : 180,
autoLoad : false,
autoScroll : true,
rootVisible : false,
module : null,
initComponent : function(){
var oThis = this;
this.loader = new Ext.tree.TreeLoader({
dataUrl : "/zyerp/resource/resource!loadNavigaterTreeNode",
method : "post",
listeners : {
beforeload : function(treeloader,node){
//所在的panel
this.baseParams.moduleId = oThis.module.primaModuleId
this.baseParams.nodeId = node.id;
},
loadexception: function(oThis, node, response) {
alert(Ext.util.JSON.encode(response));
}
}
});
/* 根节点 */
this.root = new Ext.tree.AsyncTreeNode({
id : "0",
text : "客户目录",
expanded : true,
leaf : false
});

zyerp.system.navigaterTree.superclass.initComponent.call(this);
}
})

/**
* @author sumin
* @time 2011 3 25
* 实现erp.sys.PrimaModuleStore 监听store 的load事件
* 监听的过程中,将导航栏的菜单画出
*/
zyerp.system.moduleStore = new zyerp.system.PrimaModuleStore({
listeners: {
beforeload : function(s,opt){
s.loadMask = new Ext.LoadMask(zyerp.system.oERPPanel.body,{
msg : "正在加载……"
})
s.loadMask.show();
},
load : function(s, records, options){
s.each(function(r){
//获得模块
if(!r) return;
var module = r.data;
//创建一个panel
//将panel放置在界面上一个window的导航panel中
//加载该module的submodules
//将加载的submodules放置成一棵树
//设置树节点的单击事件:加载对应的界面
var primaPanel = new zyerp.system.navigaterTree({
title : module.name,
module : module,
listeners : {
expand : function() {
this.doLayout();// 重新布局
},
click : function(node,e){
if(node.isLeaf()){
var module = {};
module.jsfile = node.attributes.jsfile;
module.panelid = node.attributes.panelid;
zyerp.system.moduleHandler(module,zyerp.system.oContent)
}
}
}
});
zyerp.system.oERPPanel.add(primaPanel)

primaPanel.doLayout();
})
zyerp.system.oERPPanel.doLayout();
s.loadMask.hide();
}
}
})

/**
* author : sumin
* time : 2011-3-25
* 导航树节点单击的js在这个tabpanel中渲染
* @param {Object} t
* @param {Object} p
*/
zyerp.system.oContent = new Ext.TabPanel({
region : "center",
resizeTabs:true, // turn on tab resizing
minTabWidth: 115,
tabWidth:135,
enableTabScroll:true,
defaults: {autoScroll:true},
plugins: new Ext.ux.TabCloseMenu(),
listeners : {
'tabchange': function(t, p) {
t.doLayout();
}
}
})

/**
* author : sumin
* time : 2011-3-25
* 我的工作台窗口
*/
zyerp.system.oDeskWin = new Ext.Window({
title: "我的工作台",
x: 20,
y: 20,
resizable: false,
minimizable: true,
maximizable: true,
width: 200,
height: 280,
layout : "border",
items:[zyerp.system.oERPPanel,zyerp.system.oContent]
});

zyerp.system.oDeskWin.show();

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值