mQuery.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.gs.mQuery', {
  3. extend: 'Ext.app.Controller',
  4. GridUtil: Ext.create('erp.util.GridUtil'),
  5. views:[
  6. 'fa.fix.mQuery.Viewport','fa.fix.mQuery.GridPanel','fa.fix.mQuery.QueryForm','fa.fix.mQuery.QueryWin',
  7. 'core.trigger.DbfindTrigger','core.form.FtField','core.form.ConDateField','core.form.YnField',
  8. 'core.form.FtDateField','core.form.FtFindField','core.grid.YnColumn','core.grid.TfColumn','core.form.ConMonthDateField'
  9. ],
  10. init:function(){
  11. this.control({
  12. 'erpQueryFormPanel button[name=confirm]': {
  13. },
  14. 'button[name=query]':{
  15. afterrender: function(btn){
  16. var me = this;
  17. var filter = me.createFilterPanel(btn);
  18. filter.show();
  19. },
  20. click: function(btn){
  21. var me = this;
  22. if(Ext.getCmp(btn.getId() + '-filter')){
  23. Ext.getCmp(btn.getId() + '-filter').show();
  24. }else{
  25. var filter = me.createFilterPanel(btn);
  26. filter.show();
  27. }
  28. }
  29. }
  30. });
  31. },
  32. createFilterPanel:function(btn){
  33. var me = this;
  34. var filter = Ext.create('Ext.Window', {
  35. id: btn.getId() + '-filter',
  36. style: 'background:#f1f1f1',
  37. title: '筛选条件',
  38. width: 500,
  39. height: 385,
  40. layout: 'column',
  41. defaults: {
  42. margin: '2 2 2 10'
  43. },
  44. items: [{
  45. id: 'ar_date',
  46. name: 'ar_date',
  47. xtype: 'condatefield',
  48. fieldLabel: '日期期间',
  49. labelWidth: 150,
  50. margin: '10 2 2 10',
  51. columnWidth: 1,
  52. getValue: function() {
  53. if(!Ext.isEmpty(this.value)) {
  54. return {begin: Ext.Date.toString(this.firstVal), end: Ext.Date.toString(this.secondVal)};
  55. }
  56. return null;
  57. },
  58. listeners: {
  59. afterrender: function(f) {
  60. me.getCurrentMonth(f);
  61. }
  62. }
  63. }],
  64. buttonAlign: 'center',
  65. buttons: [{
  66. text: '确定',
  67. width: 60,
  68. cls: 'x-btn-blue',
  69. handler: function(btn) {
  70. var fl = btn.ownerCt.ownerCt;
  71. var con = me.getCondition(fl);
  72. me.query(con);
  73. fl.hide();
  74. }
  75. },{
  76. text: '关闭',
  77. width: 60,
  78. cls: 'x-btn-blue',
  79. handler: function(btn) {
  80. var fl = btn.ownerCt.ownerCt;
  81. fl.hide();
  82. }
  83. }]
  84. });
  85. return filter;
  86. },
  87. getCondition: function(pl) {
  88. var r = new Object(),v;
  89. Ext.each(pl.items.items, function(item){
  90. if(item.getValue !== undefined) {
  91. v = item.getValue();
  92. if(!Ext.isEmpty(v)) {
  93. r[item.id] = v;
  94. }
  95. }
  96. });
  97. var tb = Ext.getCmp('gl_info_ym');
  98. if(tb)
  99. tb.updateInfo(r);
  100. return r;
  101. },
  102. query: function(cond) {
  103. var grid = Ext.getCmp('mquerygrid');
  104. Ext.Ajax.request({
  105. url: basePath + 'fa/gs/mQueryController/getARDateQuery.action',
  106. params: {
  107. condition: Ext.encode(cond)
  108. },
  109. callback : function(options,success,response){
  110. var res = new Ext.decode(response.responseText);
  111. if(res.exceptionInfo){
  112. showError(res.exceptionInfo);return;
  113. }
  114. if(grid && res.data) {
  115. var data = new Array();
  116. Ext.Array.each(res.data, function() {
  117. var keys = Ext.Object.getKeys(this);
  118. var obj = new Object();
  119. for(var i in keys) {
  120. obj[keys[i].toLowerCase()] = this[keys[i]];
  121. }
  122. data.push(obj);
  123. });
  124. grid.store.loadData(data);
  125. }
  126. grid.setLoading(false);
  127. }
  128. });
  129. },
  130. getCurrentMonth: function(f) {
  131. Ext.Ajax.request({
  132. url: basePath + 'fa/getMonth.action',
  133. params: {
  134. type: 'MONTH-B'
  135. },
  136. callback: function(opt, s, r) {
  137. var rs = Ext.decode(r.responseText);
  138. if(rs.data) {
  139. f.setValue(rs.data.PD_DETNO);
  140. }
  141. }
  142. });
  143. }
  144. });