Category.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.gla.Category', {
  3. extend: 'Ext.app.Controller',
  4. views:[
  5. 'fa.gla.Category','core.grid.SysTreeGrid'
  6. ],
  7. init:function(){
  8. var me = this;
  9. this.control({
  10. 'erpSysTreeGrid': {
  11. itemmousedown: function(selModel, record){
  12. var treegrid = Ext.getCmp('treegrid');
  13. treegrid.selModel.select(record);
  14. me.loadNode(selModel, record);
  15. },
  16. itemclick: function(selModel, record){
  17. var treegrid = Ext.getCmp('treegrid');
  18. treegrid.selModel.select(record);
  19. me.loadNode(selModel, record);
  20. },
  21. itemdbclick: function(selModel, record){
  22. var treegrid = Ext.getCmp('treegrid');
  23. treegrid.selModel.select(record);
  24. me.loadNode(selModel, record);
  25. }
  26. }
  27. });
  28. },
  29. loadNode: function(selModel, record){
  30. var me = this;
  31. if (!record.get('leaf')) {
  32. if(record.isExpanded() && record.childNodes.length > 0){//是根节点,且已展开
  33. record.collapse(true,true);//收拢
  34. me.flag = true;
  35. } else {//未展开
  36. //看是否加载了其children
  37. if(record.childNodes.length == 0){
  38. //从后台加载
  39. var activeTab = me.getActiveTab();
  40. activeTab.setLoading(true);
  41. Ext.Ajax.request({//拿到tree数据
  42. url : basePath + 'common/lazyTree.action',
  43. params: {
  44. parentId: record.data['id']
  45. },
  46. callback : function(options,success,response){
  47. activeTab.setLoading(false);
  48. var res = new Ext.decode(response.responseText);
  49. if(res.tree){
  50. var tree = res.tree;
  51. Ext.each(tree, function(t){
  52. t.sn_id = t.id;
  53. t.sn_parentid = t.parentId;
  54. t.sn_displayname = t.text;
  55. t.sn_isleaf = t.leaf ? 'T' : 'F';
  56. t.sn_tabtitle = t.text;
  57. t.sn_url = t.url;
  58. t.dirty = false;
  59. t.sn_deleteable = t.deleteable ? 'T' : 'F';
  60. });
  61. record.appendChild(res.tree);
  62. record.expand(false,true);//展开
  63. Ext.each(record.childNodes, function(){
  64. this.dirty = false;
  65. });
  66. } else if(res.exceptionInfo){
  67. showError(res.exceptionInfo);
  68. }
  69. }
  70. });
  71. } else {
  72. record.expand(false,true);//展开
  73. }
  74. }
  75. }
  76. },
  77. getActiveTab: function(){
  78. var tab = null;
  79. if(Ext.getCmp("content-panel")){
  80. tab = Ext.getCmp("content-panel").getActiveTab();
  81. }
  82. if(!tab){
  83. var win = parent.Ext.ComponentQuery.query('window');
  84. if(win.length > 0){
  85. tab = win[win.length-1];
  86. }
  87. }
  88. if(!tab && parent.Ext.getCmp("content-panel"))
  89. tab = parent.Ext.getCmp("content-panel").getActiveTab();
  90. if(!tab && parent.parent.Ext.getCmp("content-panel"))
  91. tab = parent.parent.Ext.getCmp("content-panel").getActiveTab();
  92. return tab;
  93. }
  94. });