Toolbar.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /**
  2. * 此toolbar用于明细表grid
  3. */
  4. Ext.define('erp.view.core.toolbar.Toolbar', {
  5. extend : 'Ext.Toolbar',
  6. alias : 'widget.erpToolbar',
  7. dock : 'bottom',
  8. requires : [ 'erp.view.core.button.AddDetail', 'erp.view.core.button.DeleteDetail', 'erp.view.core.button.Copy',
  9. 'erp.view.core.button.Paste', 'erp.view.core.button.Up', 'erp.view.core.button.Down',
  10. 'erp.view.core.button.UpExcel', 'erp.view.core.button.ExportDetail' ],
  11. cls: 'u-toolbar u-toolbar-group',
  12. enableAdd : true,
  13. enableDelete : true,
  14. enableCopy : true,
  15. enablePaste : true,
  16. enableUp : true,
  17. enableDown : true,
  18. enableExport : true,
  19. allowExtraButtons: true,
  20. initComponent : function() {
  21. var me = this;
  22. var items = [ {
  23. xtype : 'tbtext',
  24. name : 'row'
  25. }, {
  26. xtype : 'erpAddDetailButton',
  27. hidden : !me.enableAdd
  28. }, {
  29. xtype : 'erpDeleteDetailButton',
  30. hidden : !me.enableDelete
  31. }, {
  32. xtype : 'copydetail',
  33. hidden : !me.enableCopy
  34. }, {
  35. xtype : 'pastedetail',
  36. hidden : !me.enablePaste
  37. }, {
  38. xtype : 'updetail',
  39. hidden : !me.enableUp
  40. }, {
  41. xtype : 'downdetail',
  42. hidden : !me.enableDown
  43. }, {
  44. xtype : 'erpExportDetailButton',
  45. hidden : !me.enableExport
  46. } ];
  47. if(me._buttons) {
  48. items = Ext.Array.merge(items, me._buttons);
  49. }
  50. Ext.apply(this, {
  51. items : items
  52. });
  53. if (me.allowExtraButtons && window.gridCondition && gridCondition == "") {// 如果grid无数据,即录入界面,从数据库取配置的button
  54. me.loadExtraButtons();
  55. }
  56. this.callParent(arguments);
  57. },
  58. loadExtraButtons: function() {
  59. var me = this;
  60. Ext.Ajax.request({
  61. url : basePath + "common/gridButton.action",
  62. params : {
  63. caller : caller
  64. },
  65. method : 'post',
  66. callback : function(options, success, response) {
  67. var localJson = new Ext.decode(response.responseText);
  68. if (localJson.exceptionInfo) {
  69. showError(localJson.exceptionInfo);
  70. }
  71. if (localJson.buttons) {
  72. var buttons = Ext.decode(localJson.buttons);
  73. var index = 6;
  74. Ext.each(buttons, function(btn) {
  75. me.insert(++index, btn);
  76. });
  77. }
  78. }
  79. });
  80. }
  81. });