DocForm.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. Ext.define('erp.view.oa.doc.DocForm',{
  2. extend: 'Ext.form.Panel',
  3. alias: 'widget.erpDocFormPanel',
  4. id: 'form',
  5. region: 'north',
  6. frame : true,
  7. layout : 'column',
  8. autoScroll : true,
  9. defaultType : 'textfield',
  10. labelSeparator : ':',
  11. buttonAlign : 'center',
  12. title:null,
  13. fieldDefaults : {
  14. margin : '2 2 2 2',
  15. fieldStyle : "background:#FFFAFA;color:#515151;",
  16. focusCls: 'x-form-field-cir',
  17. labelAlign : "right",
  18. msgTarget: 'side',
  19. blankText : $I18N.common.form.blankText
  20. },
  21. bodyBorder :true,
  22. FormUtil: Ext.create('erp.util.FormUtil'),
  23. saveUrl: '',
  24. updateUrl: '',
  25. deleteUrl: '',
  26. getIdUrl: '',
  27. keyField: '',
  28. codeField: '',
  29. statusField: '',
  30. params: null,
  31. caller:null,
  32. formCondition:null,
  33. saveDirUrl:'oa/doc/saveDir.action?_noc=1&caller='+this.caller,
  34. updateDirUrl:'oa/doc/updateDir.action?_noc=1&caller='+this.caller,
  35. saveDocUrl:'oa/doc/saveDoc.action?_noc=1&caller='+this.caller,
  36. updateDocUrl:'oa/doc/updateDoc.action?_noc=1&caller='+this.caller,
  37. addButtons:['->',{
  38. xtype:'erpSaveButton'
  39. },{
  40. xtype:'erpCloseButton'
  41. },'->'],
  42. updateButtons:['->',{
  43. xtype:'erpUpdateButton'
  44. },{
  45. xtype:'erpDeleteButton'
  46. },{
  47. xtype:'erpSubmitButton'
  48. },{
  49. xtype:'erpResSubmitButton'
  50. },{
  51. xtype:'erpAuditButton'
  52. },{
  53. xtype:'erpResAuditButton'
  54. },'->'],
  55. initComponent : function(){
  56. formCondition = getUrlParam('formCondition');//从url解析参数
  57. formCondition = (formCondition == null) ? this.formCondition : formCondition.replace(/IS/g,"=");
  58. var param = {caller: this.caller, condition: formCondition};
  59. this.FormUtil.getItemsAndButtons(this, 'common/singleFormItems.action?_noc=1', this.params || param);//从后台拿到formpanel的items
  60. this.callParent(arguments);
  61. },
  62. setTitle: function(){
  63. this.title='';
  64. },
  65. save:function(btn,caller){
  66. var me = this;
  67. var params = new Object();
  68. var form = Ext.getCmp('form');
  69. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  70. me.getSeqId(form);
  71. }
  72. if(form.getForm().isValid()){
  73. //form里面数据
  74. Ext.each(form.items.items, function(item){
  75. if(item.xtype == 'numberfield'){
  76. //number类型赋默认值,不然sql无法执行
  77. if(item.value == null || item.value == ''){
  78. item.setValue(0);
  79. }
  80. }
  81. });
  82. var r = form.getValues();
  83. var param=[];
  84. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  85. if(contains(k, 'ext-', true)){
  86. delete r[k];
  87. }
  88. });
  89. params.formStore = unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
  90. params.param = unescape(param.toString().replace(/\\/g,"%"));
  91. var url=this.caller=='DocCreateDir'?form.saveDirUrl:form.saveDocUrl;
  92. Ext.Ajax.request({
  93. url : basePath +url,
  94. params : params,
  95. method : 'post',
  96. async: false,
  97. callback : function(options,success,response){
  98. var localJson = new Ext.decode(response.responseText);
  99. if(localJson.exceptionInfo){
  100. var str = localJson.exceptionInfo;
  101. showError(str);
  102. }else {
  103. if(localJson.needflow){
  104. form.loadUpdateButtons(form,'ENTERING','在录入');
  105. }else {
  106. var win = parent.Ext.ComponentQuery.query('window');
  107. if(win){
  108. Ext.each(win, function(){
  109. this.close();
  110. });
  111. } else {
  112. window.close();
  113. }
  114. //showResult('提示','创建目录成功!',btn);
  115. showMessage('提示', '保存成功!', 1000);
  116. if(caller=='DocCreateDir'){
  117. var tree=Ext.getCmp('doctree');
  118. tree.refreshNodeByParentId(CurrentFolderId,tree);
  119. }
  120. }
  121. }
  122. }
  123. });
  124. }
  125. },
  126. update: function(){
  127. var params = new Object();
  128. var r=Ext.getCmp('form').getValues();
  129. params.formStore = unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
  130. var form = Ext.getCmp('form');
  131. var url=this.caller=='DocCreateDir'?form.updateDirUrl:form.updateDocUrl;
  132. Ext.Ajax.request({
  133. url : basePath + url,
  134. params: params,
  135. async: false,
  136. method : 'post',
  137. callback : function(options,success,response){
  138. var localJson = new Ext.decode(response.responseText);
  139. if(localJson.exceptionInfo){
  140. var str = localJson.exceptionInfo;
  141. showError(str);
  142. }
  143. }
  144. });
  145. },
  146. ondelete: function(id){
  147. var me = this;
  148. warnMsg($I18N.common.msg.ask_del_main, function(btn){
  149. if(btn == 'yes'){
  150. var form = Ext.getCmp('form');
  151. Ext.Ajax.request({
  152. url : basePath + form.deleteUrl,
  153. params: {
  154. id: id
  155. },
  156. method : 'post',
  157. callback : function(options,success,response){
  158. me.getActiveTab().setLoading(false);
  159. var localJson = new Ext.decode(response.responseText);
  160. if(localJson.exceptionInfo){
  161. showError(localJson.exceptionInfo);return;
  162. }
  163. }
  164. });
  165. }
  166. });
  167. },
  168. getSeqId: function(form){
  169. if(!form){
  170. form = Ext.getCmp('form');
  171. }
  172. Ext.Ajax.request({
  173. url : basePath + 'common/getCommonId.action?caller=' +form.caller,
  174. method : 'get',
  175. async: false,
  176. callback : function(options,success,response){
  177. var rs = new Ext.decode(response.responseText);
  178. if(rs.exceptionInfo){
  179. showError(rs.exceptionInfo);return;
  180. }
  181. if(rs.success){
  182. Ext.getCmp(form.keyField).setValue(rs.id);
  183. }
  184. }
  185. });
  186. },
  187. loadUpdateButtons:function(form,status,statuscode){
  188. if(!form){
  189. form = Ext.getCmp('form');
  190. }
  191. var toolbar=form.dockedItems.items[0];
  192. form.down("#dl_status").setValue(status);
  193. form.down("#dl_statuscode").setValue(statuscode);
  194. toolbar.removeAll();
  195. toolbar.add(form.updateButtons);
  196. }
  197. });