Modify.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /**
  2. * 修改按钮
  3. */
  4. Ext.define('erp.view.core.button.Modify',{
  5. extend: 'Ext.Button',
  6. alias: 'widget.erpModifyCommonButton',
  7. iconCls: 'x-button-icon-modify',
  8. cls: 'x-btn-gray',
  9. text: $I18N.common.button.erpModifyCommonButton,
  10. id:'modifybutton',
  11. hidden:true,
  12. style: {
  13. marginLeft: '10px'
  14. },
  15. width: 90,
  16. initComponent : function(){
  17. this.callParent(arguments);
  18. },
  19. listeners: {
  20. afterrender:function(btn){
  21. var form=Ext.getCmp('form');
  22. var statuscodeField=form.statuscodeField;
  23. var status = Ext.getCmp(statuscodeField);
  24. if(status && status.value!= 'ENTERING'){
  25. btn.show();
  26. }
  27. },
  28. show:function(btn){
  29. var form = btn.ownerCt.ownerCt;
  30. Ext.Array.forEach(form.items.items,function(item){
  31. if(item.modify){
  32. Ext.getCmp(item.id).setReadOnly(false);
  33. if(item.xtype && item.xtype != 'checkbox'){
  34. Ext.getCmp(item.id).setFieldStyle('background:#FFFAFA;color:#515151');
  35. }
  36. }
  37. });
  38. },
  39. click:function(btn){
  40. var form = Ext.getCmp('form'),params = new Object();;
  41. var s1 =form.FormUtil.checkFormDirty(form);
  42. if(form.codeField && (Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == '')){
  43. showError('编号不能为空.');
  44. return;
  45. }
  46. if(s1 == ''){
  47. showError('还未修改数据.');
  48. return;
  49. }
  50. if(form && form.getForm().isValid()){
  51. //form里面数据
  52. var r = form.getForm().getValues(false, true);
  53. //去除ignore字段
  54. var keys = Ext.Object.getKeys(r), f;
  55. Ext.each(keys, function(k){
  56. f = form.down('#' + k);
  57. if(f && (f.logic == 'ignore'||!f.modify)) {
  58. delete r[k];
  59. }
  60. });
  61. if(form.keyField) {
  62. r[form.keyField] = form.down("#" + form.keyField).getValue();
  63. }
  64. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  65. if(contains(k, 'ext-', true)){
  66. delete r[k];
  67. }
  68. });
  69. Ext.MessageBox.confirm('温馨提示', '确认更新?',function(btn){
  70. if(btn=='yes'){
  71. params.formStore = unescape(escape(Ext.JSON.encode(r)));
  72. params.caller=caller;
  73. form.setLoading(true);//loading...
  74. Ext.Ajax.request({
  75. url : basePath + "oa/form/modify.action",
  76. params: params,
  77. method : 'post',
  78. callback : function(options,success,response){
  79. form.setLoading(false);
  80. var localJson = new Ext.decode(response.responseText);
  81. if(localJson.success){
  82. showMessage('提示', '保存成功!', 1000);
  83. var u = String(window.location.href);
  84. window.location.reload();
  85. }else {
  86. var str = localJson.exceptionInfo;
  87. showError(str);return;
  88. }
  89. }
  90. });
  91. }else{
  92. return;
  93. }
  94. });
  95. }else{
  96. form.FormUtil.checkForm(form);
  97. }
  98. }
  99. }
  100. });