DocumentPower.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.ma.DocumentPower', {
  3. extend: 'Ext.app.Controller',
  4. views:[
  5. 'ma.DocumentPower','core.grid.DocumentPowerTreeGrid','core.button.Distribute'
  6. ],
  7. init:function(){
  8. var me = this;
  9. this.control({
  10. 'erpDocumentPowerTreeGrid': {
  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. 'erpDistributeButton': {
  28. click: function(){
  29. var treegrid = Ext.getCmp('treegrid');
  30. var record = treegrid.selModel.getSelection()[0];
  31. var id = record.data['dcp_id'];
  32. var title = record.data['dcp_powername'];
  33. var win = new Ext.window.Window({
  34. id : 'win',
  35. title: "权限名称:" + title,
  36. height: "100%",
  37. width: "80%",
  38. maximizable : true,
  39. buttonAlign : 'center',
  40. layout : 'anchor',
  41. items: [{
  42. tag : 'iframe',
  43. frame : true,
  44. anchor : '100% 100%',
  45. layout : 'fit',
  46. html : '<iframe id="iframe_' + caller + '" src="' + basePath + 'jsps/ma/documentPowerSet.jsp?dcp_id=' + id + '" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>'
  47. }]
  48. });
  49. win.show();
  50. }
  51. }
  52. });
  53. },
  54. loadNode: function(selModel, record){
  55. var me = this;
  56. if (record.get('isempower') == 'F') {
  57. Ext.getCmp('distribute').disable(true);
  58. } else {
  59. Ext.getCmp('distribute').setDisabled(false);
  60. }
  61. if (!record.get('leaf')) {
  62. if(record.isExpanded() && record.childNodes.length > 0){//是根节点,且已展开
  63. record.collapse(true,true);//收拢
  64. me.flag = true;
  65. } else {//未展开
  66. //看是否加载了其children
  67. if(record.childNodes.length == 0){
  68. //从后台加载
  69. var activeTab = me.getActiveTab();
  70. activeTab.setLoading(true);
  71. Ext.Ajax.request({//拿到tree数据
  72. url : basePath + 'common/singleGridPanel.action',
  73. params: {
  74. caller: caller,
  75. condition: "dcp_parentid=" + record.data['dcp_id']
  76. },
  77. callback : function(options,success,response){
  78. activeTab.setLoading(false);
  79. var res = new Ext.decode(response.responseText);
  80. if(res.data){
  81. var tree = Ext.decode(res.data.replace(/,}/g, '}').replace(/,]/g, ']'));
  82. Ext.each(tree, function(t){
  83. t.powername = t.dcp_powername;
  84. t.isempower = t.dcp_isempower;
  85. t.id = t.dcp_id;
  86. t.parentId = t.dcp_parentid;
  87. t.dirty = false;
  88. t.cls = 'x-tree-cls-parent';
  89. t.leaf = t.dcp_isleaf == 'T';
  90. if(t.leaf){
  91. t.cls = 'x-tree-cls-node';
  92. }
  93. });
  94. record.appendChild(tree);
  95. record.expand(false,true);//展开
  96. Ext.each(record.childNodes, function(){
  97. this.dirty = false;
  98. });
  99. } else if(res.exceptionInfo){
  100. showError(res.exceptionInfo);
  101. }
  102. }
  103. });
  104. } else {
  105. record.expand(false,true);//展开
  106. }
  107. }
  108. }
  109. },
  110. getActiveTab: function(){
  111. var tab = null;
  112. if(Ext.getCmp("content-panel")){
  113. tab = Ext.getCmp("content-panel").getActiveTab();
  114. }
  115. if(!tab){
  116. var win = parent.Ext.ComponentQuery.query('window');
  117. if(win.length > 0){
  118. tab = win[win.length-1];
  119. }
  120. }
  121. if(!tab && parent.Ext.getCmp("content-panel"))
  122. tab = parent.Ext.getCmp("content-panel").getActiveTab();
  123. if(!tab && parent.parent.Ext.getCmp("content-panel"))
  124. tab = parent.parent.Ext.getCmp("content-panel").getActiveTab();
  125. return tab;
  126. }
  127. });