Form.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.plm.document.Form', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. BaseUtil: Ext.create('erp.util.BaseUtil'),
  6. GridUtil:Ext.create('erp.util.GridUtil'),
  7. views:[
  8. 'oa.knowledge.Form','core.form.Panel','core.trigger.MultiDbfindTrigger',
  9. 'core.button.Add','core.button.Save','core.button.Close','core.button.Update','core.button.Submit','core.button.resSubmit','core.button.Audit'
  10. ,'core.button.resAudit','core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.form.YnField'
  11. ],
  12. init:function(){
  13. var me = this;
  14. this.control({
  15. 'erpSaveButton':{
  16. 'click':function(btn){
  17. me.save(this);
  18. }
  19. },
  20. 'erpCloseButton':{
  21. 'click':function(){
  22. parent.Ext.getCmp('win').close();
  23. },
  24. 'afterrender':function(){
  25. var tree= parent.Ext.getCmp('KnowledgeTree');
  26. var grid= parent.Ext.getCmp('knowledgeGridPanel');
  27. var basegrid= parent.Ext.getCmp('grid');
  28. var com=Ext.getCmp('ka_klid');
  29. if(basegrid&&com){
  30. var data=basegrid.getSelectionModel().lastFocused.data;
  31. com.setValue(data.kl_id);
  32. Ext.getCmp('ka_klname').setValue(data.kl_theme);
  33. Ext.getCmp('ka_klauthorid').setValue(data.kl_authorid);
  34. Ext.getCmp('ka_klauthor').setValue(data.kl_author);
  35. }
  36. else if(grid){
  37. var km=parent.Ext.getCmp('kl_id');
  38. if(km){
  39. Ext.getCmp('kc_klid').setValue(km.value);
  40. var klcode=Ext.getCmp('kc_klcode');
  41. if(klcode){
  42. klcode.setValue(parent.Ext.getCmp('kl_code').value);
  43. }
  44. }
  45. } else if(tree){
  46. var select=tree.select;
  47. var name=Ext.getCmp('kk_kmname');
  48. if(name){
  49. if(name.value==''||name.value==null){
  50. Ext.getCmp('kk_kmname').setValue(select.name);
  51. Ext.getCmp('kk_kmid').setValue(select.id);
  52. }
  53. }
  54. }
  55. }
  56. }
  57. });
  58. },
  59. getSeqId: function(form){
  60. if(!form){
  61. form = Ext.getCmp('form');
  62. }
  63. Ext.Ajax.request({
  64. url : basePath + form.getIdUrl,
  65. method : 'get',
  66. async: false,
  67. callback : function(options,success,response){
  68. var rs = new Ext.decode(response.responseText);
  69. if(rs.exceptionInfo){
  70. showError(rs.exceptionInfo);return;
  71. }
  72. if(rs.success){
  73. Ext.getCmp(form.keyField).setValue(rs.id);
  74. }
  75. }
  76. });
  77. },
  78. save:function(){
  79. var me = this;
  80. var params = new Object();
  81. var form = Ext.getCmp('form');
  82. if(saveUrl!=null&&saveUrl!=""){
  83. form.saveUrl=saveUrl;
  84. }
  85. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  86. me.getSeqId(form);
  87. }
  88. if(form.getForm().isValid()){
  89. //form里面数据
  90. Ext.each(form.items.items, function(item){
  91. if(item.xtype == 'numberfield'){
  92. //number类型赋默认值,不然sql无法执行
  93. if(item.value == null || item.value == ''){
  94. item.setValue(0);
  95. }
  96. }
  97. });
  98. var r = form.getValues();
  99. var param=[];
  100. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  101. if(contains(k, 'ext-', true)){
  102. delete r[k];
  103. }
  104. });
  105. params.formStore = unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
  106. params.param = unescape(param.toString().replace(/\\/g,"%"));
  107. var me = this;
  108. var form = Ext.getCmp('form');
  109. Ext.Ajax.request({
  110. url : basePath + form.saveUrl,
  111. params : params,
  112. method : 'post',
  113. callback : function(options,success,response){
  114. var localJson = new Ext.decode(response.responseText);
  115. if(localJson.success){
  116. saveSuccess(function(){
  117. var grid=parent.Ext.getCmp('knowledgeGridPanel');
  118. var tree=parent.Ext.getCmp('KnowledgeTree');
  119. var findcondtion='';
  120. if(grid){
  121. var keyField=grid.keyField
  122. if(!grid.condition){
  123. findcondtion='1=1';
  124. var gridParam = {caller: caller, condition: findcondtion};
  125. grid.GridUtil.getGridColumnsAndStore(grid, 'common/singleGridPanel.action', gridParam, "");
  126. var form=parent.Ext.getCmp('form');
  127. }else {
  128. findcondtion=grid.condition;
  129. var form=parent.Ext.getCmp('form');
  130. if(form){
  131. var kc= Ext.getCmp('kc_point');
  132. var why=Ext.getCmp('kc_why');
  133. var scantimes=parent.Ext.getCmp('kl_scantimes').getValue();
  134. var rectimes=parent.Ext.getCmp('kl_recommonedtimes').getValue();
  135. var commenttimes=parent.Ext.getCmp('kl_commenttimes').getValue();
  136. var point=parent.Ext.getCmp('kl_point').getValue();
  137. if(kc){
  138. parent.Ext.getCmp('knowledgedetails').setValue('知识阅读'+scantimes+'次 '+'知识推荐'+rectimes+'次 '+'知识评论'+(Number(commenttimes)+1)+'次 '+'知识分数'+(Number(point)+Number(kc.value))+'分');
  139. }else if(why){
  140. parent.Ext.getCmp('knowledgedetails').setValue('知识阅读'+scantimes+'次 '+'知识推荐'+(Number(rectimes)+1)+'次 '+'知识评论'+commenttimes+'次 '+'知识分数'+point+'分');
  141. parent.Ext.getCmp('win').close();
  142. return;
  143. }
  144. }
  145. var gridParam = {caller: caller, condition: findcondtion};
  146. grid.getGridColumnsAndStore(grid, 'common/singleGridPanel.action', gridParam, "");
  147. }
  148. }else if(tree){
  149. tree.getTreeRootNode();
  150. }
  151. parent.Ext.getCmp('win').close();
  152. });//@i18n/i
  153. } else if(localJson.exceptionInfo){
  154. var str = localJson.exceptionInfo;
  155. showError(str);
  156. } else{
  157. saveFailure();//@i18n/i18n.js
  158. }
  159. }
  160. });
  161. }
  162. }
  163. });