ECRChangeGrid.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. Ext.define('erp.view.pm.bom.ECRChangeGrid',{
  2. extend: 'Ext.grid.Panel',
  3. alias: 'widget.erpECRChangeGridPanel',
  4. requires: ['erp.view.core.trigger.TextAreaTrigger', 'erp.view.core.toolbar.Toolbar'],
  5. emptyText : $I18N.common.grid.emptyText,
  6. columnLines : true,
  7. autoScroll : true,
  8. multiselected: [],
  9. store:[],
  10. columns:[],
  11. id:'ecrchangegrid',
  12. detno:'detno',
  13. bodyStyle: 'background-color:#f1f1f1;',
  14. bbar: {xtype: 'erpToolbar', enableAdd: true, enableDelete: true, enableCopy: false, enablePaste: false, enableUp: false, enableDown: false},
  15. plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
  16. clicksToEdit: 1
  17. }), Ext.create('erp.view.core.grid.HeaderFilter'), Ext.create('erp.view.core.plugin.CopyPasteMenu')],
  18. initComponent : function(){
  19. this.GridUtil = Ext.create('erp.util.GridUtil');
  20. var columns=this.getColumns(this);
  21. this.columns=columns;
  22. this.store=this.getGridStore(this);
  23. this.callParent(arguments);
  24. },
  25. getGridStore:function(grid){
  26. var store=[]; var data=new Array();
  27. if(grid.griddata['tempb']!='' || grid.griddata['tempc']!=''){
  28. var tempb=grid.griddata['tempb'].split("#");
  29. var tempc=grid.griddata['tempc'].split("#");
  30. Ext.Array.each(tempb,function(item,index){
  31. data.push({
  32. detno:index+1,
  33. tempb:item,
  34. tempc:tempc[index]
  35. });
  36. });
  37. }else {
  38. for(var i=0;i<10;i++){
  39. data.push({
  40. detno:i+1
  41. });
  42. }
  43. }
  44. store=Ext.create('Ext.data.Store',{
  45. fields:['detno','tempb','tempc'],
  46. data:data
  47. });
  48. return store;
  49. },
  50. setRenderer: function(column){
  51. var grid = this;
  52. if(!column.haveRendered && column.renderer != null && column.renderer != ""){
  53. var renderName = column.renderer;
  54. if(contains(column.renderer, ':', true)){
  55. var args = new Array();
  56. Ext.each(column.renderer.split(':'), function(a, index){
  57. if(index == 0){
  58. renderName = a;
  59. } else {
  60. args.push(a);
  61. }
  62. });
  63. if(!grid.RenderUtil.args[renderName]){
  64. grid.RenderUtil.args[renderName] = new Object();
  65. }
  66. grid.RenderUtil.args[renderName][column.dataIndex] = args;
  67. }
  68. column.renderer = grid.RenderUtil[renderName];
  69. column.haveRendered = true;
  70. }
  71. },
  72. getReturnData:function(grid){
  73. var s = grid.getStore().data.items;
  74. var tempb="",tempc="",obj=new Object();
  75. for(var i=0;i<s.length;i++){
  76. var data = s[i].data;
  77. if(data['tempb']!='' || data['tempc']!=''){
  78. tempb+=data['tempb']+'#';
  79. tempc+=data['tempc']+'#';
  80. }
  81. }
  82. if(tempb!=''){
  83. obj.tempb=tempb.substring(0,tempb.length-1);
  84. obj.tempc=tempc.substring(0,tempc.length-1);
  85. }
  86. return obj;
  87. },
  88. listeners: {
  89. scrollershow: function(scroller) {
  90. if (scroller && scroller.scrollEl) {
  91. scroller.clearManagedListeners();
  92. scroller.mon(scroller.scrollEl, 'scroll', scroller.onElScroll, scroller);
  93. }
  94. },
  95. itemclick: function(selModel, record){
  96. var changegrid=Ext.getCmp('ecrchangegrid');
  97. if(!changegrid.readOnly){
  98. var items=changegrid.dockedItems.items[2].items.items;
  99. items[3].setDisabled(false);
  100. items[2].setDisabled(false);
  101. }
  102. }
  103. },
  104. getColumns:function(grid){
  105. return [{
  106. cls:'x-grid-header-1',
  107. text:'序号',
  108. dataIndex:'detno',
  109. flex:0.1,
  110. readOnly:grid.readOnly,
  111. renderer:function(val, meta) {
  112. meta.tdCls = Ext.baseCSSPrefix + 'grid-cell-special';
  113. return val;
  114. }
  115. },{
  116. cls : "x-grid-header-1",
  117. text: '变 更 前',
  118. dataIndex: 'tempb',
  119. flex: 1,
  120. readOnly:grid.readOnly,
  121. editor: {
  122. format:'',
  123. xtype: 'textareatrigger'
  124. },
  125. renderer: function(val, meta, record){
  126. if(!val){
  127. val="";
  128. }
  129. val=val.replace(/[ ]/g,"&nbsp;");
  130. return '<img src="' + basePath + 'resource/images/icon/need.png" title="必填字段">' +
  131. '<span style="color:blue;padding-left:2px;" title="必填字段">' + val + '</span>';
  132. }
  133. },{
  134. cls : "x-grid-header-1",
  135. text: '变 更 后',
  136. dataIndex: 'tempc',
  137. flex: 1,
  138. readOnly:grid.readOnly,
  139. editor: {
  140. format:'',
  141. xtype: 'textareatrigger'
  142. },
  143. renderer: function(val, meta, record){
  144. if(!val){
  145. val="";
  146. }
  147. val=val.replace(/[ ]/g,"&nbsp;");
  148. return '<img src="' + basePath + 'resource/images/icon/need.png" title="必填字段">' +
  149. '<span style="color:blue;padding-left:2px;" title="必填字段">' + val + '</span>';
  150. }
  151. }];
  152. }
  153. });