Register.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.oa.persontask.workPlan.Register', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. BaseUtil: Ext.create('erp.util.BaseUtil'),
  6. views:[
  7. 'oa.persontask.workPlan.Register','oa.persontask.workPlan.WorkPlanForm','core.form.WorkPlanField','core.form.WorkPlanField2',
  8. 'core.button.Save','core.button.Close','core.button.Over','core.button.Submit','core.form.PlanDate',
  9. 'core.button.Update','core.button.Delete','core.button.Distribute2','core.button.Transmit','core.button.File',
  10. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.form.DetailTextField','core.form.FileField'
  11. ],
  12. init:function(){
  13. var me = this;
  14. this.control({
  15. 'button[id=save]':{
  16. click: function(btn){
  17. var mm = this.FormUtil;
  18. var form = Ext.getCmp('form');
  19. if(! mm.checkForm()){
  20. return;
  21. }
  22. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  23. mm.getSeqId(form);
  24. this.onSave(form);
  25. this.saveDetail(form);
  26. } else {
  27. this.onUpdate(form);
  28. }
  29. }
  30. },
  31. 'fieldset[id=wp_summary]':{
  32. afterrender: function(field){
  33. if(field.value=='' || field.value==null){
  34. Ext.getCmp('save').setDisabled(true);
  35. } else {
  36. field.down('textareafield').setValue(field.value);
  37. }
  38. }
  39. },
  40. 'textfield[id=wp_committime]':{
  41. afterrender: function(field){
  42. if(field.value=='' || field.value==null){
  43. field.setVisible(false);
  44. }
  45. }
  46. },
  47. 'textfield[id=wp_updatetime]':{
  48. afterrender: function(field){
  49. if(field.value=='' || field.value==null){
  50. field.setVisible(false);
  51. }
  52. }
  53. }
  54. });
  55. },
  56. getForm: function(btn){
  57. return btn.ownerCt.ownerCt;
  58. },
  59. getSeqId: function(url){
  60. var id = 0;
  61. Ext.Ajax.request({
  62. url : basePath + url,
  63. method : 'get',
  64. async: false,
  65. callback : function(options,success,response){
  66. var rs = new Ext.decode(response.responseText);
  67. if(rs.exceptionInfo){
  68. showError(rs.exceptionInfo);return;
  69. }
  70. if(rs.success){
  71. id = rs.id;
  72. }
  73. }
  74. });
  75. return id;
  76. },
  77. saveDetail: function(form){
  78. var mm = this.FormUtil;
  79. var me = this;
  80. if(form.getForm().isValid()){
  81. var detailfield = form.down('workplanfield2');
  82. for(var i = 1; i <= detailfield.tfnumber; i++){
  83. if(Ext.getCmp('wplan' + i).value != null && Ext.getCmp('wplan' + i).value != ''){
  84. var o = new Object();
  85. o.wpd_id = this.getSeqId('common/getId.action?seq=PROJECTPLANDETAIL_SEQ');
  86. o.wpd_wpid = Ext.getCmp(form.keyField).value;
  87. o.wpd_taskid = Ext.getCmp('addtask' + i).taskid;
  88. o.wpd_plan = Ext.getCmp('wplan' + i).value;
  89. o.wpd_status = 'DOING';
  90. var params = new Object();
  91. params.formStore = unescape(Ext.JSON.encode(o).replace(/\\/g,"%"));
  92. Ext.Ajax.request({
  93. url : basePath + 'oa/persontask/workPlan/saveWorkPlanDetail.action?caller=WorkPlanDetail',
  94. params : params,
  95. method : 'post',
  96. async: false,
  97. callback : function(options,success,response){
  98. // me.getActiveTab().setLoading(false);
  99. var localJson = new Ext.decode(response.responseText);
  100. if(localJson.success){
  101. } else{
  102. saveFailure();//@i18n/i18n.js
  103. }
  104. }
  105. });
  106. }
  107. }
  108. }else{
  109. mm.checkForm();
  110. }
  111. },
  112. onSave: function(form){
  113. var mm = this.FormUtil;
  114. var me = this;
  115. console.log(form);
  116. if(form.getForm().isValid()){
  117. Ext.getCmp('wp_committime').setValue(Ext.util.Format.date(new Date(),"Y-m-d H:i:s"));
  118. //form里面数据
  119. Ext.each(form.items.items, function(item){
  120. if(item.xtype == 'numberfield'){
  121. //number类型赋默认值,不然sql无法执行
  122. if(item.value == null || item.value == ''){
  123. item.setValue(0);
  124. }
  125. }
  126. });
  127. var r = form.getValues();
  128. var keys = Ext.Object.getKeys(r);
  129. var values = Ext.Object.getValues(r);
  130. var o = new Object();
  131. Ext.each(keys, function(key, index){
  132. if(contains(key, 'wp_', true) && !contains(key, 'wp_time', true)){
  133. o[key] = values[index];
  134. }
  135. });
  136. o.wp_time = form.down('plandate').getValue();
  137. o.wp_summary = Ext.getCmp('wp_summary').value=='' ? '':Ext.getCmp('wp_summary').value;
  138. me.save(o, form);
  139. }else{
  140. mm.checkForm();
  141. }
  142. },
  143. save: function(o, form){
  144. var mm = this.FormUtil;
  145. var params = new Object();
  146. params.formStore = unescape(Ext.JSON.encode(o).replace(/\\/g,"%"));
  147. Ext.Ajax.request({
  148. url : basePath + form.saveUrl,
  149. params : params,
  150. method : 'post',
  151. callback : function(options,success,response){
  152. // me.getActiveTab().setLoading(false);
  153. var localJson = new Ext.decode(response.responseText);
  154. if(localJson.success){
  155. saveSuccess(function(){
  156. //add成功后刷新页面进入可编辑的页面
  157. var value = o[form.keyField];
  158. var nextworkplan = form.keyField + "IS" + value ;
  159. if(Ext.getCmp('save').last==0){
  160. window.location.href = window.location.href + '?nextworkplan=' + nextworkplan;
  161. } else {
  162. window.location.href = window.location.href + '?nextworkplan=' + nextworkplan + '&lastworkplan=wp_idIS' + Ext.getCmp('save').last;
  163. }
  164. });
  165. } else{
  166. saveFailure();//@i18n/i18n.js
  167. }
  168. }
  169. });
  170. },
  171. onUpdate: function(form){
  172. var mm = this.FormUtil;
  173. var me = this;
  174. var s1 = mm.checkFormDirty(form);
  175. if(s1 == ''){
  176. showError($I18N.common.form.emptyData + '<br/>');
  177. return;
  178. }
  179. if(form && form.getForm().isValid()){
  180. Ext.getCmp('wp_updatetime').setValue(Ext.util.Format.date(new Date(),"Y-m-d H:i:s"));
  181. //form里面数据
  182. var r = form.getValues();
  183. var keys = Ext.Object.getKeys(r);
  184. var values = Ext.Object.getValues(r);
  185. var o = new Object();
  186. Ext.each(keys, function(key, index){
  187. if(contains(key, 'wp_', true)){
  188. o[key] = values[index];
  189. }
  190. });
  191. o.wp_summary = Ext.getCmp('wp_summary').value=='' ? '':Ext.getCmp('wp_summary').value;
  192. console.log(o);
  193. me.update(o, []);
  194. }else{
  195. mm.checkForm(form);
  196. }
  197. },
  198. update: function(){
  199. var params = new Object();
  200. var r = arguments[0];
  201. params.formStore = unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
  202. var mm = this.FormUtil;
  203. var form = Ext.getCmp('form');
  204. mm.getActiveTab().setLoading(true);//loading...
  205. Ext.Ajax.request({
  206. url : basePath + form.updateUrl,
  207. params: params,
  208. method : 'post',
  209. callback : function(options,success,response){
  210. mm.getActiveTab().setLoading(false);
  211. var localJson = new Ext.decode(response.responseText);
  212. if(localJson.success){
  213. updateSuccess(function(btn){
  214. //update成功后刷新页面进入可编辑的页面
  215. var url = window.location.href;
  216. var value = r[form.keyField];
  217. var nextworkplan = form.keyField + "IS" + value ;
  218. if(mm.contains(url, 'nextworkplan', true)){
  219. url = url.replace('nextworkplan', 1);
  220. }
  221. if(mm.contains(url, '?', true)){
  222. url = url + '&nextworkplan=' + nextworkplan;
  223. } else {
  224. url = url + '?nextworkplan=' + nextworkplan;
  225. }
  226. window.location.href = url;
  227. });
  228. } else {
  229. updateFailure();
  230. }
  231. }
  232. });
  233. }
  234. });