123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- Ext.QuickTips.init();
- Ext.define('erp.controller.ma.SysNavigation', {
- extend: 'Ext.app.Controller',
- views:[
- 'ma.SysNavigation','core.grid.SysTreeGrid'
- ],
- init:function(){
- var me = this;
- this.control({
- 'erpSysTreeGrid': {
- itemmousedown: function(selModel, record){
- var treegrid = Ext.getCmp('treegrid');
- treegrid.selModel.select(record);
- me.loadNode(selModel, record);
- },
- itemclick: function(selModel, record){
- var treegrid = Ext.getCmp('treegrid');
- treegrid.selModel.select(record);
- me.loadNode(selModel, record);
- },
- itemdbclick: function(selModel, record){
- var treegrid = Ext.getCmp('treegrid');
- treegrid.selModel.select(record);
- me.loadNode(selModel, record);
- }
- }
- });
- },
- loadNode: function(selModel, record){
- var me = this;
- if (!record.get('leaf')) {
- if(record.isExpanded() && record.childNodes.length > 0){//是根节点,且已展开
- record.collapse(true,true);//收拢
- me.flag = true;
- me.setParentNodes(selModel.ownerCt, record, false);
- } else {//未展开
- //看是否加载了其children
- if(record.childNodes.length == 0){
- //从后台加载
- var activeTab = me.getActiveTab();
- activeTab.setLoading(true);
- Ext.Ajax.request({//拿到tree数据
- url : basePath + 'ma/lazyTree.action',
- params: {
- parentId: record.data['id']
- },
- callback : function(options,success,response){
- activeTab.setLoading(false);
- var res = new Ext.decode(response.responseText);
- if(res.tree){
- var tree = res.tree;
- Ext.each(tree, function(t){
- t.sn_id = t.id;
- t.sn_parentid = t.parentId;
- t.sn_displayname = t.text;
- t.sn_detno = t.detno;
- t.sn_isleaf = t.leaf;
- t.sn_using = t.using;
- t.sn_tabtitle = t.text;
- t.sn_url = t.url;
- t.dirty = false;
- t.sn_deleteable = t.deleteable;
- t.sn_showmode = t.showMode;
- t.sn_logic = t.data.sn_logic;
- t.sn_limit = t.data.sn_limit;
- t.sn_caller = t.data.sn_caller;
- t.sn_addurl = t.data.sn_addurl;
- t.data = null;
- });
- record.appendChild(res.tree);
- record.expand(false, true);//展开
- Ext.each(record.childNodes, function(){
- this.dirty = false;
- });
- me.setParentNodes(selModel.ownerCt, record, true);
- } else if(res.exceptionInfo){
- showError(res.exceptionInfo);
- }
- }
- });
- } else {
- record.expand(false, true);//展开
- me.setParentNodes(selModel.ownerCt, record, true);
- }
- }
- }
- },
- setParentNodes: function(tree, record, isExpand){
- var grid = tree.ownerCt.down('grid'), data = new Array(), nodes = record.childNodes;
- Ext.each(nodes, function(node){
- data.push({
- sn_id: node.get('id'),
- sn_displayname: node.get('text'),
- sn_detno: node.get('sn_detno')
- });
- });
- grid.store.loadData(data);
- },
- getActiveTab: function(){
- var tab = null;
- if(Ext.getCmp("content-panel")){
- tab = Ext.getCmp("content-panel").getActiveTab();
- }
- if(!tab){
- var win = parent.Ext.ComponentQuery.query('window');
- if(win.length > 0){
- tab = win[win.length-1];
- }
- }
- if(!tab && parent.Ext.getCmp("content-panel"))
- tab = parent.Ext.getCmp("content-panel").getActiveTab();
- if(!tab && parent.parent.Ext.getCmp("content-panel"))
- tab = parent.parent.Ext.getCmp("content-panel").getActiveTab();
- return tab;
- }
- });
|