MakeDown.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.make.MakeDown', {
  3. extend: 'Ext.app.Controller',
  4. requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil'],
  5. views:[
  6. 'pm.make.MakeDown','core.form.Panel','core.grid.Panel2','core.toolbar.Toolbar','core.trigger.MultiDbfindTrigger','core.trigger.HrOrgTreeDbfindTrigger',
  7. 'core.button.Save','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload','core.button.ResAudit','core.button.FormBook',
  8. 'core.button.Audit','core.button.Close','core.button.Delete','core.button.Update','core.button.DeleteDetail','core.button.ResSubmit',
  9. 'core.button.Scan','core.button.Banned','core.button.ResBanned','core.form.MultiField','core.button.Confirm','core.button.Sync',
  10. 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField', 'core.grid.YnColumn','core.trigger.AddDbfindTrigger',
  11. 'core.form.FileField','core.form.SplitTextField','core.button.End','core.button.ResEnd','core.form.CheckBoxGroup','core.button.TurnMJProject',
  12. 'core.form.MonthDateField','core.form.SpecialContainField','core.form.SeparNumber','core.button.CancelMakeDown'
  13. ],
  14. init:function(){
  15. var me = this;
  16. me.FormUtil = Ext.create('erp.util.FormUtil');
  17. me.GridUtil = Ext.create('erp.util.GridUtil');
  18. me.BaseUtil = Ext.create('erp.util.BaseUtil');
  19. this.control({
  20. 'erpFormPanel': {
  21. alladded: function(form){
  22. var grid = Ext.getCmp('grid');
  23. if(grid)
  24. me.resize(form, grid);
  25. }
  26. },
  27. 'erpGridPanel2': {
  28. itemclick: this.onGridItemClick,
  29. reconfigure: function(grid){
  30. var form = Ext.getCmp('form');
  31. if(form)
  32. me.resize(form, grid);
  33. }
  34. },
  35. 'erpSaveButton': {
  36. afterrender: function(btn){
  37. var form = me.getForm(btn);
  38. var codeField = Ext.getCmp(form.codeField);
  39. if(Ext.getCmp(form.codeField) && (Ext.getCmp(form.codeField).value != null && Ext.getCmp(form.codeField).value != '')){
  40. btn.hide();
  41. }
  42. },
  43. click: function(btn){
  44. var form = me.getForm(btn);
  45. if(!Ext.isEmpty(form.codeField) && Ext.getCmp(form.codeField) && (
  46. Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == '')){
  47. me.BaseUtil.getRandomNumber(caller);//自动添加编号
  48. }
  49. this.FormUtil.beforeSave(this);
  50. }
  51. },
  52. 'erpDeleteButton' : {
  53. click: function(btn){
  54. me.FormUtil.onDelete(Ext.getCmp(me.getForm(btn).keyField).value);
  55. }
  56. },
  57. 'erpCancelMakeDownButton': {
  58. afterrender: function(btn){
  59. var status = Ext.getCmp('mm_statuscode');
  60. var downstatus = Ext.getCmp('mm_downstatus');
  61. if(status && (status.value != 'AUDITED' || downstatus.value != '-1')){
  62. btn.hide();
  63. }
  64. },
  65. click: function(btn){
  66. Ext.MessageBox.show({
  67. title:'取消下地',
  68. msg:'<font color="red">请填写取消下地原因:</font>',
  69. width:300,
  70. buttons:Ext.MessageBox.OKCANCEL,
  71. multiline:true,
  72. fn:function(btn,text){
  73. if(text == null || text == ""){
  74. Ext.Msg.alert('温馨提示',
  75. '请填写下地原因');
  76. return;
  77. }
  78. if(btn == 'ok'){
  79. me.cancelMakeDown(Ext.getCmp('mm_id').value,text);
  80. }
  81. }
  82. })
  83. }
  84. },
  85. 'erpUpdateButton': {
  86. click: function(btn){
  87. this.FormUtil.onUpdate(this);
  88. }
  89. },
  90. 'erpAddButton': {
  91. click: function(){
  92. me.FormUtil.onAdd('addMakeDown', '新增单据', 'jsps/pm/make/makeDown.jsp?whoami=' + caller);
  93. }
  94. },
  95. 'erpCloseButton': {
  96. click: function(btn){
  97. me.FormUtil.beforeClose(me);
  98. }
  99. },
  100. 'erpSubmitButton': {
  101. afterrender: function(btn){
  102. var status = Ext.getCmp(me.getForm(btn).statuscodeField);
  103. if(status && status.value != 'ENTERING'){
  104. btn.hide();
  105. }
  106. },
  107. click: function(btn){
  108. me.FormUtil.onSubmit(Ext.getCmp(me.getForm(btn).keyField).value);
  109. }
  110. },
  111. 'erpResSubmitButton': {
  112. afterrender: function(btn){
  113. var status = Ext.getCmp(me.getForm(btn).statuscodeField);
  114. if(status && status.value != 'COMMITED'){
  115. btn.hide();
  116. }
  117. },
  118. click: function(btn){
  119. me.FormUtil.onResSubmit(Ext.getCmp(me.getForm(btn).keyField).value);
  120. }
  121. },
  122. 'erpAuditButton': {
  123. afterrender: function(btn){
  124. var status = Ext.getCmp(me.getForm(btn).statuscodeField);
  125. if(status && status.value != 'COMMITED'){
  126. btn.hide();
  127. }
  128. },
  129. click: function(btn){
  130. me.FormUtil.onAudit(Ext.getCmp(me.getForm(btn).keyField).value);
  131. }
  132. },
  133. 'erpResAuditButton': {
  134. afterrender: function(btn){
  135. var status = Ext.getCmp(me.getForm(btn).statuscodeField);
  136. if(status && status.value != 'AUDITED'){
  137. btn.hide();
  138. }
  139. },
  140. click: function(btn){
  141. me.FormUtil.onResAudit(Ext.getCmp(me.getForm(btn).keyField).value);
  142. }
  143. }
  144. })
  145. },
  146. onGridItemClick: function(selModel, record){//grid行选择
  147. this.GridUtil.onGridItemClick(selModel, record);
  148. },
  149. getForm: function(btn){
  150. return btn.ownerCt.ownerCt;
  151. },
  152. resize: function(form, grid){
  153. if(!this.resized && form && grid && form.items.items.length > 0){
  154. var height = window.innerHeight,
  155. fh = form.getEl().down('.x-panel-body>.x-column-inner').getHeight();
  156. form.setHeight(70 + fh);
  157. grid.setHeight(height - fh - 70);
  158. this.resized = true;
  159. }
  160. },
  161. cancelMakeDown : function(id,text){
  162. var me = this;
  163. var form = Ext.getCmp('form');
  164. me.setLoading(true);//loading...
  165. Ext.Ajax.request({
  166. url : basePath + 'pm/make/makedown/cancelMakeDown.action?caller=' + caller,
  167. params: {
  168. id: id,
  169. remark: text
  170. },
  171. method : 'post',
  172. callback : function(options,success,response){
  173. me.setLoading(false);
  174. var localJson = new Ext.decode(response.responseText);
  175. if(localJson.success){
  176. Ext.Msg.alert("提示","下地成功!");
  177. window.location.reload();
  178. } else {
  179. if(localJson.exceptionInfo){
  180. var str = localJson.exceptionInfo;
  181. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  182. str = str.replace('AFTERSUCCESS', '');
  183. showMessage('提示', str);
  184. window.location.reload();
  185. }else if(str == 'OK'){
  186. Ext.Msg.alert("提示","下地成功!");
  187. }else {
  188. showError(str);return;
  189. }
  190. }
  191. }
  192. }
  193. });
  194. },
  195. setLoading : function(b) {// 原this.getActiveTab().setLoading()换成此方法,解决Window模式下无loading问题
  196. var mask = this.mask;
  197. if (!mask) {
  198. this.mask = mask = new Ext.LoadMask(Ext.getBody(), {
  199. msg : "处理中,请稍后...",
  200. msgCls : 'z-index:10000;'
  201. });
  202. }
  203. if (b)
  204. mask.show();
  205. else
  206. mask.hide();
  207. }
  208. });