AllThrow.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. Ext.define('erp.view.core.button.AllThrow',{
  2. extend: 'Ext.Button',
  3. alias: 'widget.erpAllThrowButton',
  4. iconCls: 'x-button-icon-save',
  5. cls: 'x-btn-gray-1',
  6. id: 'erpAllThrowButton',
  7. text: $I18N.common.button.erpAllThrowButton,
  8. style: {
  9. marginLeft: '10px'
  10. },
  11. width:90,
  12. initComponent : function(){
  13. this.callParent(arguments);
  14. },
  15. handler: function(btn){
  16. this.save(btn.ownerCt.ownerCt.dealUrl);
  17. },
  18. save:function(url){
  19. var grid = Ext.getCmp('batchDealGridPanel');
  20. var items = grid.selModel.getSelection();
  21. Ext.each(items, function(item, index){
  22. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  23. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  24. grid.multiselected.push(item);
  25. }
  26. });
  27. var form = Ext.getCmp('dealform');
  28. var records = Ext.Array.unique(grid.multiselected);
  29. if(records.length > 0){
  30. var params = new Object();
  31. params.caller = caller;
  32. var data = new Array();
  33. var bool = false;
  34. Ext.each(records, function(record, index){
  35. var f = form.fo_detailMainKeyField;
  36. if((grid.keyField && this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  37. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0)
  38. ||(f && this.data[f] != null && this.data[f] != ''
  39. && this.data[f] != '0' && this.data[f] != 0)){
  40. bool = true;
  41. var o = new Object();
  42. if(grid.keyField){
  43. o[grid.keyField] = record.data[grid.keyField];
  44. } else {
  45. params.id[index] = record.data[form.fo_detailMainKeyField];
  46. }
  47. if(grid.toField){
  48. Ext.each(grid.toField, function(f, index){
  49. var v = Ext.getCmp(f).value;
  50. if(v != null && v.toString().trim() != '' && v.toString().trim() != 'null'){
  51. o[f] = v;
  52. }
  53. });
  54. }
  55. if(grid.necessaryFields){
  56. Ext.each(grid.necessaryFields, function(f, index){
  57. var v = record.data[f];
  58. if(Ext.isDate(v)){
  59. v = Ext.Date.toString(v);
  60. }
  61. o[f] = v;
  62. });
  63. }
  64. data.push(o);
  65. }
  66. });
  67. if(bool){
  68. params.data = Ext.encode(data);
  69. var main = parent.Ext.getCmp("content-panel");
  70. main.getActiveTab().setLoading(true);//loading...
  71. Ext.Ajax.request({
  72. url : basePath + url,
  73. params: params,
  74. method : 'post',
  75. callback : function(options,success,response){
  76. main.getActiveTab().setLoading(false);
  77. var localJson = new Ext.decode(response.responseText);
  78. if(localJson.exceptionInfo){
  79. showError(localJson.exceptionInfo);
  80. return "";
  81. }
  82. if(localJson.success){
  83. if(localJson.log){
  84. showMessage("提示", localJson.log);
  85. }
  86. Ext.Msg.alert("提示", "处理成功!", function(){
  87. grid.multiselected = new Array();
  88. Ext.getCmp('dealform').onQuery();
  89. });
  90. }
  91. }
  92. });
  93. } else {
  94. showError("没有需要处理的数据!");
  95. }
  96. }
  97. }
  98. });