mQuery.js 4.1 KB

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