Query.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.common.Query', {
  3. extend : 'Ext.app.Controller',
  4. views : ['common.query.Viewport', 'common.query.GridPanel', 'common.query.Form', 'core.trigger.DbfindTrigger',
  5. 'core.form.FtField', 'core.form.ConDateField', 'core.form.YnField', 'core.form.FtDateField','core.form.YearDateField',
  6. 'core.form.MonthDateField','core.form.FtFindField', 'core.grid.YnColumn', 'core.grid.TfColumn', 'core.button.Refresh',
  7. 'core.form.ConMonthDateField', 'core.trigger.TextAreaTrigger','core.form.ConDateHourMinuteFieldQ','core.form.ConDateHourMinuteField'],
  8. init : function() {
  9. var me=this;
  10. this.control({
  11. 'erpQueryFormPanel' : {
  12. alladded : function(form) {
  13. var items = form.items.items, autoQuery = false;
  14. /*URL传递的Json参数*/
  15. var defaultData = getUrlParam("defaultData");
  16. Ext.each(items, function(a) {
  17. var val = getUrlParam(this.name);
  18. if(!Ext.isEmpty(val)) {
  19. this.setValue(val);
  20. autoQuery = true;
  21. if(this.xtype == 'dbfindtrigger') {
  22. this.autoDbfind('form', caller, this.name, this.name + " like '%" + val + "%'");
  23. }
  24. }
  25. //如果传递的参数不为空的话,自动赋值字段执行查询
  26. if(defaultData && defaultData != ""){
  27. var data=defaultData.split('|');
  28. if(data[0]==a.name){
  29. a.setValue(data[1]);
  30. autoQuery=true;
  31. }
  32. }
  33. });
  34. if(autoQuery) {
  35. setTimeout(function(){
  36. form.onQuery();
  37. }, 1000);
  38. }
  39. }
  40. },
  41. 'button[name=refresh]':{
  42. click: function(btn){
  43. var form = me.getForm(btn);
  44. if (caller == 'ALMonth!Query'){
  45. var month = Ext.getCmp('am_yearmonth');
  46. var condition=month.secondVal;
  47. Ext.Ajax.request({
  48. url: basePath + 'fa/ars/CmQueryController/refreshQuery.action',
  49. params: {
  50. condition:condition
  51. },
  52. method: 'post',
  53. callback: function(opt, s, r) {
  54. var rs = Ext.decode(r.responseText);
  55. if(rs.success) {
  56. form.onQuery();
  57. }else{
  58. }
  59. }
  60. });
  61. }else{
  62. form.onQuery();
  63. }
  64. }
  65. },
  66. 'erpQueryGridPanel' : {
  67. itemclick : this.onGridItemClick
  68. },
  69. 'monthdatefield': {
  70. afterrender: function(f) {
  71. var type = '';
  72. if(f.name == 'cd_yearmonth') {
  73. type = 'MONTH-T';
  74. }
  75. if(f.name == 'cmc_yearmonth') {
  76. type = 'MONTH-A';
  77. }
  78. if(f.name == 'cm_yearmonth') {
  79. type = 'MONTH-A';
  80. }
  81. if(f.name == 'am_yearmonth') {
  82. type = 'MONTH-B';
  83. }
  84. if(type != '' && Ext.isEmpty(getUrlParam(f.name))) {
  85. this.getCurrentMonth(f, type);
  86. }
  87. }
  88. },
  89. 'conmonthdatefield': {
  90. afterrender: function(f) {
  91. var type = '';
  92. if(f.name == 'cd_yearmonth') {
  93. type = 'MONTH-T';
  94. }
  95. if(f.name == 'cmc_yearmonth') {
  96. type = 'MONTH-A';
  97. }
  98. if(f.name == 'cm_yearmonth') {
  99. type = 'MONTH-A';
  100. }
  101. if(f.name == 'am_yearmonth') {
  102. type = 'MONTH-B';
  103. }
  104. if(type != '' && Ext.isEmpty(getUrlParam(f.name))) {
  105. this.getCurrentMonth(f, type);
  106. }
  107. }
  108. }
  109. });
  110. },
  111. onGridItemClick : function(selModel, record) {
  112. if (caller == 'CustMonth!ARLI!Query') {
  113. var cmid = record.data['cm_id'];
  114. if (cmid > 0) {
  115. var panel = Ext.getCmp(caller + "cm_id" + "=" + cmid);
  116. var main = parent.Ext.getCmp("content-panel");
  117. if (!main) {
  118. main = parent.parent.Ext.getCmp("content-panel");
  119. }
  120. if (!panel) {
  121. var title = "";
  122. if (value.toString().length > 4) {
  123. title = value.toString().substring(value.toString().length - 4);
  124. } else {
  125. title = value;
  126. }
  127. var myurl = '';
  128. if (me.BaseUtil.contains(url, '?', true)) {
  129. myurl = url + '&formCondition=' + formCondition + '&gridCondition=' + gridCondition;
  130. } else {
  131. myurl = url + '?formCondition=' + formCondition + '&gridCondition=' + gridCondition;
  132. }
  133. myurl += "&datalistId=" + main.getActiveTab().id;
  134. main.getActiveTab().currentStore = me.getCurrentStore(value);// 用于单据翻页
  135. panel = {
  136. title : me.BaseUtil.getActiveTab().title + '(' + title + ')',
  137. tag : 'iframe',
  138. tabConfig : {
  139. tooltip : me.BaseUtil.getActiveTab().tabConfig.tooltip + '(' + keyField + "=" + value + ')'
  140. },
  141. frame : true,
  142. border : false,
  143. layout : 'fit',
  144. iconCls : 'x-tree-icon-tab-tab1',
  145. html : '<iframe id="iframe_maindetail_' + caller + "_" + value + '" src="' + myurl
  146. + '" height="100%" width="100%" frameborder="0" scrolling="auto"></iframe>',
  147. closable : true,
  148. listeners : {
  149. close : function() {
  150. if (!main) {
  151. main = parent.parent.Ext.getCmp("content-panel");
  152. }
  153. main.setActiveTab(main.getActiveTab().id);
  154. }
  155. }
  156. };
  157. this.openTab(panel, caller + keyField + "=" + record.data[keyField]);
  158. } else {
  159. main.setActiveTab(panel);
  160. }
  161. }
  162. }
  163. if(caller=='Sale!saledetailDet'){
  164. this.schedule(record);
  165. }
  166. },
  167. schedule: function(record) {
  168. var width = Ext.isIE ? screen.width*0.7*0.9 : '80%',
  169. height = Ext.isIE ? screen.height*0.75 : '100%';
  170. var sd_id = record.get('sd_id');
  171. Ext.Ajax.request({
  172. url : basePath + "scm/sale/checkSaleDetailDet.action",
  173. params: {
  174. whereString: "sd_id="+sd_id
  175. },
  176. method : 'post',
  177. async: false,
  178. callback:function(options,success,response){
  179. var res = new Ext.decode(response.responseText);
  180. if(res.exceptionInfo){
  181. showError(res.exceptionInfo);return;
  182. }
  183. }
  184. });
  185. Ext.create('Ext.Window', {
  186. width: width,
  187. height: height,
  188. autoShow: true,
  189. layout: 'anchor',
  190. items: [{
  191. tag : 'iframe',
  192. frame : true,
  193. anchor : '100% 100%',
  194. layout : 'fit',
  195. html : '<iframe id="iframe_dbfind" src="' + basePath + 'jsps/scm/sale/saleDetail.jsp?formCondition=sd_id='
  196. + sd_id + '&gridCondition=sdd_sdid=' + sd_id + '" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>'
  197. }]
  198. });
  199. },
  200. getForm: function(btn){
  201. return btn.ownerCt.ownerCt;
  202. },
  203. getCurrentMonth: function(f, type) {
  204. Ext.Ajax.request({
  205. url: basePath + 'fa/getMonth.action',
  206. params: {
  207. type: type
  208. },
  209. callback: function(opt, s, r) {
  210. var rs = Ext.decode(r.responseText);
  211. if(rs.data) {
  212. f.setValue(rs.data.PD_DETNO);
  213. }
  214. }
  215. });
  216. }
  217. });