PowerJobGrid.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. Ext.define('erp.view.sys.hr.PowerJobGrid',{
  2. extend: 'Ext.grid.Panel',
  3. alias: 'widget.powerjobgrid',
  4. title:'岗位资料',
  5. columnLines: true,
  6. viewConfig: {
  7. stripeRows: true,
  8. enableTextSelection: true,
  9. plugins: {
  10. ptype: 'celldragdrop',
  11. applyEmptyText:false,
  12. dropBackgroundColor: Ext.themeName === 'neptune' ? '#a4ce6c' : 'green',
  13. noDropBackgroundColor: Ext.themeName === 'neptune' ? '#d86f5d' : 'red',
  14. enforceType: true,
  15. enableDrag :false
  16. }
  17. },
  18. initComponent : function(){
  19. var me=this;
  20. me.columns=[{
  21. dataIndex:'jo_id',
  22. width:0,
  23. text:'ID'
  24. },Ext.create('Ext.grid.RowNumberer',{
  25. width:30
  26. }),{
  27. dataIndex:'jo_code',
  28. width:100,
  29. text:'岗位编号',
  30. enableDrop:false,
  31. editor: {
  32. xtype: 'textfield',
  33. selectOnFocus: true,
  34. allowOnlyWhitespace: false,
  35. allowBlank:false
  36. },
  37. renderer:columnRequired
  38. },{
  39. dataIndex:'jo_name',
  40. width:120,
  41. text:'岗位名称',
  42. enableDrop:false,
  43. editor: {
  44. xtype: 'textfield',
  45. selectOnFocus: true,
  46. allowOnlyWhitespace: false,
  47. allowBlank:false
  48. },
  49. renderer:columnRequired
  50. },{
  51. dataIndex:'jo_orgcode',
  52. width:100,
  53. text:'所属组织编号',
  54. enableDrop:false
  55. },{
  56. dataIndex:'jo_orgName',
  57. width:100,
  58. text:'所属组织名称',
  59. enableDrop:false
  60. },{
  61. dataIndex:'jo_orgId',
  62. width:0,
  63. text:'组织ID'
  64. },{
  65. dataIndex:'fromcode',
  66. width:90,
  67. text:'复制权限岗位',
  68. renderer:function(val ,meta,record){
  69. meta.tdCls = "x-grid-cell-renderer-cl";
  70. return val;
  71. }
  72. },{
  73. dataIndex:'fromname',
  74. width:90,
  75. text:'复制岗位名称',
  76. renderer:function(val ,meta,record){
  77. meta.tdCls = "x-grid-cell-renderer-cl";
  78. return val;
  79. }
  80. },{
  81. dataIndex:'fromid',
  82. width:0,
  83. text:'复制岗位id',
  84. renderer:function(val ,meta,record){
  85. meta.tdCls = "x-grid-cell-renderer-cl";
  86. return val;
  87. }
  88. }];
  89. me.store=Ext.create('Ext.data.Store',{
  90. fields:[{name:'jo_id',type:'number'},
  91. {name:'jo_code',type:'string'},
  92. {name:'jo_name',type:'string'},
  93. {name:'jo_orgcode',type:'string'},
  94. {name:'jo_orgName',type:'string'},
  95. {name:'jo_orgId',type:'int'},
  96. {name:'fromcode',type:'string'},
  97. {name:'fromname',type:'string'},
  98. {name:'fromid',type:'int'}],
  99. proxy: {
  100. type: 'ajax',
  101. url: basePath+'/hr/employee/getJobsWithStandard.action',
  102. reader: {
  103. type: 'json',
  104. root: 'jobs'
  105. }
  106. },
  107. autoLoad:me.storeAutoLoad
  108. });
  109. this.callParent(arguments);
  110. },
  111. loadNewStore: function(grid, param){
  112. var me = this;
  113. param=param||grid.params;
  114. grid.setLoading(true);//loading...
  115. Ext.Ajax.request({//拿到grid的columns
  116. url : basePath + "common/loadNewGridStore.action",
  117. params: param,
  118. method : 'post',
  119. callback : function(options,success,response){
  120. grid.setLoading(false);
  121. var res = new Ext.decode(response.responseText);
  122. if(res.exceptionInfo){
  123. showError(res.exceptionInfo);return;
  124. }
  125. var data = res.data;
  126. if(!data || data.length == 0){
  127. grid.store.removeAll();
  128. me.add10EmptyItems(grid);
  129. } else {
  130. grid.store.loadData(data);
  131. }
  132. //自定义event
  133. grid.addEvents({
  134. storeloaded: true
  135. });
  136. grid.fireEvent('storeloaded', grid, data);
  137. }
  138. });
  139. },
  140. removeDetail:function(grid,record){
  141. grid.setLoading(true);
  142. Ext.Ajax.request({
  143. url : basePath + 'hr/employee/deleteJob.action',
  144. params: {
  145. id: record.get('jo_id')
  146. },
  147. method : 'post',
  148. callback : function(options,success,response){
  149. grid.setLoading(false);
  150. var localJson = new Ext.decode(response.responseText);
  151. if(localJson.exceptionInfo){
  152. showError(localJson.exceptionInfo);return;
  153. }
  154. if(localJson.success){
  155. showResult('提示','删除成功!');
  156. grid.getStore().remove(record);
  157. /* var orgTree = Ext.getCmp('orgtree'),
  158. selectionModel=orgTree.getSelectionModel(),
  159. selectedList = selectionModel.getSelection()[0];
  160. grid.getStore().load({params:{
  161. orgid:selectedList.get('or_id')
  162. }});*/
  163. }
  164. }
  165. });
  166. },
  167. setColumns:function(columns){
  168. Ext.Array.each(columns,function(column){
  169. if(column.xtype=='yncolumn'){
  170. column.xtype='checkcolumn';
  171. column.editor= {
  172. xtype: 'checkbox',
  173. cls: 'x-grid-checkheader-editor'
  174. };
  175. }
  176. });
  177. return columns;
  178. },
  179. DetailUpdateSuccess:function(btn,type){
  180. var tabP=Ext.getCmp('saletabpanel'),_activeTab=tabP.activeTab;
  181. _activeTab.loadNewStore(_activeTab,_activeTab.params);
  182. var win=btn.up('window');
  183. if(win) win.close();
  184. },
  185. isVal:function(){
  186. var records=this.getStore().getModifiedRecords(),cm=this.columns,necessaryCM=new Array(),flag=true;
  187. Ext.Array.each(cm,function(c){
  188. if(c.editor && !c.editor.allowBlank){
  189. necessaryCM.push(c.dataIndex);
  190. }
  191. });
  192. Ext.Array.each(records,function(r){
  193. var o=r.data;
  194. for( n in o){
  195. if(Ext.Array.contains(necessaryCM,n) && !o[n]){
  196. flag=false;
  197. return flag;
  198. }
  199. }
  200. });
  201. return flag;
  202. }
  203. })