AccountRegisterPlanPage.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.gs.AccountRegisterPlanPage', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. BaseUtil: Ext.create('erp.util.BaseUtil'),
  6. views:[
  7. 'fa.gs.AccountRegisterPlanPage','core.form.Panel','fa.gs.AccountRegisterTree','common.datalist.GridPanel',
  8. 'core.button.Add','core.button.Close','core.form.ConDateField','core.button.Query','common.datalist.Toolbar',
  9. 'core.trigger.DbfindTrigger','core.form.YnField'
  10. ],
  11. init:function(){
  12. var me = this;
  13. me.datamanager = [];
  14. this.control({
  15. 'accountregistertree': {
  16. itemmousedown: function(selModel, record){
  17. me.loadTab(selModel, record);
  18. me.lastSelected = record;
  19. }
  20. },
  21. 'erpCloseButton': {
  22. click: function(btn){
  23. me.FormUtil.onClose();
  24. }
  25. },
  26. 'erpQueryButton': {
  27. click : function(btn) {
  28. var grid = Ext.getCmp('grid');
  29. var date1=Ext.getCmp('arp_date').firstVal,date2=Ext.getCmp('arp_date').secondVal;
  30. var condition = "arp_date BETWEEN to_date('" + Ext.Date.toString(date1) + " 00:00:00','yyyy-MM-dd HH24:mi:ss') AND to_date('"
  31. + Ext.Date.toString(date2) + " 23:59:59','yyyy-MM-dd HH24:mi:ss')";
  32. grid.getCount(caller, condition);
  33. }
  34. },
  35. 'erpAddButton':{
  36. click: function(btn){
  37. me.FormUtil.onAdd('addAccountRegisterPlan', '新增银行预计存取款', 'jsps/common/commonpage.jsp?whoami=AccountRegisterPlan');
  38. }
  39. },
  40. 'erpDatalistGridPanel': {
  41. itemclick: this.onGridItemClick,
  42. afterrender:function(grid){
  43. if(Ext.isIE){
  44. document.body.attachEvent('onkeydown', function(){
  45. if(window.event.ctrlKey && window.event.keyCode == 67){//Ctrl + C
  46. var e = window.event;
  47. if(e.srcElement) {
  48. window.clipboardData.setData('text', e.srcElement.innerHTML);
  49. }
  50. }
  51. });
  52. } else {
  53. grid.getEl().dom.addEventListener("mouseover", function(e){
  54. if(e.ctrlKey){
  55. var Contextvalue=e.target.textContent==""?e.target.value:e.target.textContent;
  56. textarea_text = parent.document.getElementById("textarea_text");
  57. textarea_text.value=Contextvalue;
  58. textarea_text.focus();
  59. textarea_text.select();
  60. }
  61. });
  62. }
  63. }
  64. }
  65. });
  66. },
  67. getForm: function(btn){
  68. return btn.ownerCt.ownerCt;
  69. },
  70. onGridItemClick: function(selModel, record){//grid行选择
  71. var me = this;
  72. if(keyField != null && keyField != ''){//有些datalist不需要打开明细表,这些表在datalist表里面不用配dl_keyField
  73. var value = record.data[keyField];
  74. var formCondition = keyField + "IS" + value ;
  75. var gridCondition = pfField + "IS" + value;
  76. if(!Ext.isEmpty(pfField) && pfField.indexOf('+') > -1) {//多条件传入//vd_vsid@vd_id+vd_class@vd_class
  77. var arr = pfField.split('+'),ff = [],k = [];
  78. Ext.Array.each(arr, function(r){
  79. ff = r.split('@');
  80. k.push(ff[0] + 'IS\'' + record.get(ff[1]) + '\'');
  81. });
  82. gridCondition = k.join(' AND ');
  83. }
  84. var panelId = caller + keyField + "_" + value + gridCondition;
  85. var panel = Ext.getCmp(panelId);
  86. var main = parent.Ext.getCmp("content-panel");
  87. if(!main){
  88. main = parent.parent.Ext.getCmp("content-panel");
  89. }
  90. if(!panel){
  91. var title = "";
  92. if (value.toString().length>4) {
  93. title = value.toString().substring(value.toString().length-4);
  94. } else {
  95. title = value;
  96. }
  97. var myurl = '';
  98. if(me.BaseUtil.contains(url, '?', true)){
  99. myurl = url + '&formCondition='+formCondition+'&gridCondition='+gridCondition;
  100. } else {
  101. myurl = url + '?formCondition='+formCondition+'&gridCondition='+gridCondition;
  102. }
  103. myurl += "&datalistId=" + main.getActiveTab().id;
  104. main.getActiveTab().currentStore = me.getCurrentStore(value);//用于单据翻页
  105. if(main._mobile) {
  106. main.addPanel(me.BaseUtil.getActiveTab().title+'('+title+')', myurl, panelId);
  107. } else {
  108. panel = {
  109. title : me.BaseUtil.getActiveTab().title+'('+title+')',
  110. tag : 'iframe',
  111. tabConfig:{tooltip:me.BaseUtil.getActiveTab().tabConfig.tooltip+'('+keyField + "=" + value+')'},
  112. frame : true,
  113. border : false,
  114. layout : 'fit',
  115. iconCls : 'x-tree-icon-tab-tab1',
  116. html : '<iframe id="iframe_maindetail_'+caller+"_"+value+'" src="' + myurl + '" height="100%" width="100%" frameborder="0" style="border-width: 0px;padding: 0px;" scrolling="auto"></iframe>',
  117. closable : true,
  118. listeners : {
  119. close : function(){
  120. if(!main){
  121. main = parent.parent.Ext.getCmp("content-panel");
  122. }
  123. main.setActiveTab(main.getActiveTab().id);
  124. }
  125. }
  126. };
  127. this.openTab(panel, panelId);
  128. }
  129. }else{
  130. main.setActiveTab(panel);
  131. }
  132. }
  133. },
  134. openTab : function (panel,id){
  135. var o = (typeof panel == "string" ? panel : id || panel.id);
  136. var main = parent.Ext.getCmp("content-panel");
  137. /*var tab = main.getComponent(o); */
  138. if(!main) {
  139. main =parent.parent.Ext.getCmp("content-panel");
  140. }
  141. var tab = main.getComponent(o);
  142. if (tab) {
  143. main.setActiveTab(tab);
  144. } else if(typeof panel!="string"){
  145. panel.id = o;
  146. var p = main.add(panel);
  147. main.setActiveTab(p);
  148. }
  149. },
  150. getCurrentStore: function(value){
  151. var grid = Ext.getCmp('grid');
  152. var items = grid.store.data.items;
  153. var array = new Array();
  154. var o = null;
  155. Ext.each(items, function(item, index){
  156. o = new Object();
  157. o.selected = false;
  158. if(index == 0){
  159. o.prev = null;
  160. } else {
  161. o.prev = items[index-1].data[keyField];
  162. }
  163. if(index == items.length - 1){
  164. o.next = null;
  165. } else {
  166. o.next = items[index+1].data[keyField];
  167. }
  168. var v = item.data[keyField];
  169. o.value = v;
  170. if(v == value)
  171. o.selected = true;
  172. array.push(o);
  173. });
  174. return array;
  175. },
  176. loadTab: function(selModel, record){
  177. var me = this;
  178. var tree = Ext.getCmp('tree-panel');
  179. if (!record.get('leaf')) {
  180. if(record.isExpanded() && record.childNodes.length > 0){//是根节点,且已展开
  181. record.collapse(true,true);//收拢
  182. } else {//未展开
  183. //看是否加载了其children
  184. if(record.childNodes.length == 0){
  185. //从后台加载
  186. tree.setLoading(true, tree.body);
  187. Ext.Ajax.request({//拿到tree数据
  188. url : basePath + 'fa/gs/getCategoryBankTree.action',
  189. params: {
  190. parentid: record.data['id']
  191. },
  192. async: false,
  193. callback : function(options,success,response){
  194. tree.setLoading(false);
  195. var res = new Ext.decode(response.responseText);
  196. if(res.tree){
  197. record.appendChild(res.tree);
  198. record.expand(false,true);//展开
  199. } else if(res.exceptionInfo){
  200. showError(res.exceptionInfo);
  201. }
  202. }
  203. });
  204. } else {
  205. record.expand(false,true);//展开
  206. }
  207. }
  208. } else {
  209. condition = 'arp_cateid='+record.get('id');
  210. Ext.getCmp('grid').getCount(caller,condition);
  211. }
  212. tree.getExpandedItems(record);
  213. }
  214. });