JprocessDeploy.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.oa.myProcess.JprocessDeploy',{
  3. extend: 'Ext.app.Controller',
  4. views:[
  5. 'oa.myProcess.jprocessDeploy.JprocessDeploy','oa.myProcess.jprocessDeploy.JCTreeGrid'
  6. ],
  7. init:function(){
  8. var me = this;
  9. this.control({
  10. 'erpJCTreeGrid': {
  11. itemmousedown: function(selModel, record){
  12. var treegrid = Ext.getCmp('treegrid');
  13. // alert(11);
  14. treegrid.selModel.select(record);
  15. me.loadNode(selModel, record);
  16. // console.log(record);
  17. // alert(record.data.jd_formUrl);
  18. if(record.data.jd_formUrl != null && record.data.jd_formUrl != ''){
  19. this.onGridItemClick(selModel, record);
  20. }
  21. },
  22. itemclick: function(selModel, record){
  23. var treegrid = Ext.getCmp('treegrid');
  24. treegrid.selModel.select(record);
  25. me.loadNode(selModel, record);
  26. },
  27. itemdbclick: function(selModel, record){
  28. var treegrid = Ext.getCmp('treegrid');
  29. treegrid.selModel.select(record);
  30. me.loadNode(selModel, record);
  31. }
  32. }
  33. });
  34. },
  35. loadNode: function(selModel, record){
  36. var me = this;
  37. if (!record.get('leaf')) {
  38. if(record.isExpanded() && record.childNodes.length > 0){//是根节点,且已展开
  39. record.collapse(true,true);//收拢
  40. me.flag = true;
  41. } else {//未展开
  42. //看是否加载了其children
  43. if(record.childNodes.length == 0){
  44. //从后台加载
  45. var activeTab = me.getActiveTab();
  46. activeTab.setLoading(true);
  47. Ext.Ajax.request({//拿到tree数据
  48. url : basePath + 'common/getLazyJProcessDeploy.action',
  49. params: {
  50. parentId: record.data['id']
  51. },
  52. callback : function(options,success,response){
  53. activeTab.setLoading(false);
  54. var res = new Ext.decode(response.responseText);
  55. if(res.tree){
  56. var tree = res.tree;
  57. Ext.each(tree, function(t){
  58. t.jd_selfId = t.id;
  59. t.jd_parentId = t.parentId;
  60. t.jd_classifiedName = t.text;
  61. // t.sn_isleaf = t.leaf;
  62. t.jd_caller = t.creator;
  63. t.jd_formUrl = t.url;
  64. t.jd_processDefinitionId = t.qtitle;
  65. t.jd_enabled = t.using;
  66. t.jd_processDefinitionName = t.version;
  67. t.dirty = false;
  68. });
  69. record.appendChild(res.tree);
  70. record.expand(false,true);//展开
  71. Ext.each(record.childNodes, function(){
  72. this.dirty = false;
  73. });
  74. } else if(res.exceptionInfo){
  75. showError(res.exceptionInfo);
  76. }
  77. }
  78. });
  79. } else {
  80. record.expand(false,true);//展开
  81. }
  82. }
  83. }
  84. },
  85. onGridItemClick: function(selModel, record){//grid行选择
  86. // console.log(record);
  87. var win = new Ext.window.Window({
  88. id : 'win',
  89. title: '来自' + em_name + '的' + record.data.jd_processDefinitionName,
  90. height: "90%",
  91. width: "85%",
  92. maximizable : true,
  93. buttonAlign : 'center',
  94. layout : 'anchor',
  95. items: [{
  96. tag : 'iframe',
  97. frame : true,
  98. anchor : '100% 100%',
  99. layout : 'fit',
  100. html : '<iframe id="iframe_' + record.data.jd_id + '" src="' + basePath + record.data.jd_formUrl+'" height="100%" width="100%" frameborder="0" scrolling="yes"></iframe>'
  101. }]
  102. });
  103. win.show();
  104. },
  105. getActiveTab: function(){
  106. var tab = null;
  107. if(Ext.getCmp("content-panel")){
  108. tab = Ext.getCmp("content-panel").getActiveTab();
  109. }
  110. if(!tab){
  111. var win = parent.Ext.ComponentQuery.query('window');
  112. if(win.length > 0){
  113. tab = win[win.length-1];
  114. }
  115. }
  116. if(!tab && parent.Ext.getCmp("content-panel"))
  117. tab = parent.Ext.getCmp("content-panel").getActiveTab();
  118. if(!tab && parent.parent.Ext.getCmp("content-panel"))
  119. tab = parent.parent.Ext.getCmp("content-panel").getActiveTab();
  120. return tab;
  121. }
  122. });