Form.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.oa.attention.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.attention.Form','core.form.Panel','core.trigger.MultiDbfindTrigger',
  9. 'core.button.Add','core.button.Save','core.button.Close','core.button.Update',
  10. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.form.YnField','core.form.FileField'
  11. ],
  12. init:function(){
  13. var me = this;
  14. this.control({
  15. });
  16. },
  17. getSeqId: function(form){
  18. if(!form){
  19. form = Ext.getCmp('form');
  20. }
  21. Ext.Ajax.request({
  22. url : basePath + form.getIdUrl,
  23. method : 'get',
  24. async: false,
  25. callback : function(options,success,response){
  26. var rs = new Ext.decode(response.responseText);
  27. if(rs.exceptionInfo){
  28. showError(rs.exceptionInfo);return;
  29. }
  30. if(rs.success){
  31. Ext.getCmp(form.keyField).setValue(rs.id);
  32. }
  33. }
  34. });
  35. },
  36. save:function(){
  37. var me = this;
  38. var params = new Object();
  39. var form = Ext.getCmp('form');
  40. if(saveUrl!=null&&saveUrl!=""){
  41. form.saveUrl=saveUrl;
  42. }
  43. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  44. me.getSeqId(form);
  45. }
  46. if(form.getForm().isValid()){
  47. //form里面数据
  48. Ext.each(form.items.items, function(item){
  49. if(item.xtype == 'numberfield'){
  50. //number类型赋默认值,不然sql无法执行
  51. if(item.value == null || item.value == ''){
  52. item.setValue(0);
  53. }
  54. }
  55. });
  56. var r = form.getValues();
  57. var param=[];
  58. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  59. if(contains(k, 'ext-', true)){
  60. delete r[k];
  61. }
  62. });
  63. params.formStore = unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
  64. params.param = unescape(param.toString().replace(/\\/g,"%"));
  65. var me = this;
  66. var form = Ext.getCmp('form');
  67. Ext.Ajax.request({
  68. url : basePath + form.saveUrl,
  69. params : params,
  70. method : 'post',
  71. callback : function(options,success,response){
  72. var localJson = new Ext.decode(response.responseText);
  73. if(localJson.success){
  74. saveSuccess(function(){
  75. var grid=parent.Ext.getCmp('knowledgeGridPanel');
  76. var tree=parent.Ext.getCmp('KnowledgeTree');
  77. var findcondtion='';
  78. if(grid){
  79. var keyField=grid.keyField
  80. if(!grid.condition){
  81. findcondtion='1=1';
  82. var gridParam = {caller: caller, condition: findcondtion};
  83. grid.GridUtil.getGridColumnsAndStore(grid, 'common/singleGridPanel.action', gridParam, "");
  84. var form=parent.Ext.getCmp('form');
  85. }else {
  86. findcondtion=grid.condition;
  87. var form=parent.Ext.getCmp('form');
  88. if(form){
  89. var kc= Ext.getCmp('kc_point');
  90. var why=Ext.getCmp('kc_why');
  91. var scantimes=parent.Ext.getCmp('kl_scantimes').getValue();
  92. var rectimes=parent.Ext.getCmp('kl_recommonedtimes').getValue();
  93. var commenttimes=parent.Ext.getCmp('kl_commenttimes').getValue();
  94. var point=parent.Ext.getCmp('kl_point').getValue();
  95. if(kc){
  96. parent.Ext.getCmp('knowledgedetails').setValue('知识阅读'+scantimes+'次 '+'知识推荐'+rectimes+'次 '+'知识评论'+(Number(commenttimes)+1)+'次 '+'知识分数'+(Number(point)+Number(kc.value))+'分');
  97. }else if(why){
  98. parent.Ext.getCmp('knowledgedetails').setValue('知识阅读'+scantimes+'次 '+'知识推荐'+(Number(rectimes)+1)+'次 '+'知识评论'+commenttimes+'次 '+'知识分数'+point+'分');
  99. parent.Ext.getCmp('win').close();
  100. return;
  101. }
  102. }
  103. var gridParam = {caller: caller, condition: findcondtion};
  104. grid.getGridColumnsAndStore(grid, 'common/singleGridPanel.action', gridParam, "");
  105. }
  106. }else if(tree){
  107. tree.getTreeRootNode();
  108. }
  109. parent.Ext.getCmp('win').close();
  110. });//@i18n/i
  111. } else if(localJson.exceptionInfo){
  112. var str = localJson.exceptionInfo;
  113. showError(str);
  114. } else{
  115. saveFailure();//@i18n/i18n.js
  116. }
  117. }
  118. });
  119. }
  120. }
  121. });