You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
6.7 KiB
JavaScript

Ext.namespace('Shipping');
Ext.define("Shipping.Main.LeftPanel", {
extend: 'Ext.panel.Panel',
requires: ['DsShipping.ux.ModuleModel'],
initComponent: function () {
this.storeModuTree = Ext.create('DsExt.ux.RefTableStore', {
model: 'DsShipping.ux.ModuleModel',
proxy: { url: '/MvcShipping/MsBaseInfo/GetUserModuTreeList' }
});
this.topleft = Ext.create('Ext.panel.Panel', {
title: "west",
layout: "accordion", //设置为手风琴布局
layoutConfig: {
animate: true
},
width: 250,
minWidth: 90,
region: "west", //设置方位
split: true,
collapsible: true
});
this.buildTree();
Ext.apply(this, {
layout: 'border',
items: [
this.tabtree
]
});
this.callParent(arguments);
},
buildTree: function () {
// 菜单树
_this = this;
this.storeModuTree.load({ params: { condition: "" },
callback: function (r, options, success) {
if (success) {
if (this.storeModuTree.getCount() > 0) {
for (var j = 0; j < this.storeModuTree.getCount(); j += 1) {
var member = this.storeModuTree.getAt(j);
var treestore = new Ext.data.TreeStore({
model: 'DsShipping.ux.ModuleModel',
nodeParam: 'PARENTID',
proxy: {
type: 'ajax',
url: '/MvcShipping/MsBaseInfo/GetModuTreeRefList',
reader: {
id: 'GID',
root: 'data',
totalProperty: 'totalCount'
}
},
autoLoad: true,
root: {
name: '根节点',
expanded: true,
id: member.data.id
}
});
var tabtree = new Ext.tree.Panel({
region: 'west',
title: '',
split: true,
width: 180,
collapsible: true,
margins: '0 0 0 0',
store: treestore,
rootVisible: false,
hideHeaders: true,
animate: false,
lines: false,
columns: [{
xtype: 'treecolumn',
text: '模块名称',
width: 178,
dataIndex: 'DESCRIPTION'
}],
listeners: {
scope: this,
'itemclick': function (_this, record, item, index, e, eOpts) {
var path = rec.get("LoadPath"); //--功能地址
var openType = rec.get("OpenType"); //--打开方式
var me = this;
if (!Ext.Object.isEmpty(path) && !Ext.Object.isEmpty(openType)) {
if (openType == "window") {
var win_id = 'syswin_' + rec.get("id");
var win = Ext.WindowManager.get(win_id);
if (win) {
Ext.WindowManager.bringToFront(win);
}
else {
win = Ext.create(path, {
title: rec.get("text"),
iconCls: rec.get("iconCls"),
id: win_id
});
win.show();
}
}
else if (openType == "tab") {
//--选项卡方式打开,先判断当前功能是否已经打开,如果已打开,则无需新建,直接将该功能设为活动选项卡就行了。
//--me.ownerCt.ownerCt.centerPart是主框架的中间内容模块。
var tab = me.ownerCt.ownerCt.centerPart.getComponent('tab_sys_' + rec.get('id'));
if (!tab) {
var newitem = Ext.create(path, {});
tab = Ext.create('Ext.panel.Panel', {
title: rec.get('text'),
itemId: 'tab_sys_' + rec.get('id'),
layout: 'fit',
closable: true,
iconCls: rec.get('iconCls') || 'icon_preview',
items: newitem
});
me.ownerCt.ownerCt.centerPart.add(tab);
}
//--设为活动选项卡
me.ownerCt.ownerCt.centerPart.setActiveTab(tab);
}
}
}
}
});
_this.topleft.add(tabtree);
};
} else {
}
}
},
scope: this
});
}
});