DepartPanel.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. Ext.define('erp.view.sys.hr.DepartPanel',{
  2. extend: 'Ext.panel.Panel',
  3. layout:'border',
  4. alias: 'widget.departpanel',
  5. frame:false,
  6. initComponent : function(){
  7. var me=this;
  8. Ext.applyIf(me,{
  9. items:me.configItem(me)
  10. });
  11. this.callParent(arguments);
  12. },
  13. configItem:function(panel){
  14. return [panel.configDepartGrid(),panel.configHelpText()];
  15. },
  16. configDepartGrid:function(){
  17. var config={
  18. region:'center',
  19. id:'departgrid',
  20. caller:'Department',
  21. columnLines:true,
  22. keyField:'dp_id',
  23. saveUrl:'hr/employee/saveDepartment.action',
  24. updateUrl:'hr/employee/updateDepartment.action',
  25. deleteUrl:'hr/employee/deleteDepartment.action',
  26. getIdUrl: 'common/getId.action?seq=Department_SEQ',
  27. viewConfig: {
  28. stripeRows: true,
  29. enableTextSelection: true
  30. },
  31. dockedItems: [{
  32. xtype: 'toolbar',
  33. ui: 'footer',
  34. items: [{
  35. text:'添加',
  36. itemId: 'adddepart',
  37. tooltip:'添加新记录',
  38. iconCls:'btn-add'
  39. },'-',{
  40. text:'载入标准数据',
  41. itemId:'loadStandardData',
  42. table:'Department',
  43. iconCls:'btn-get',
  44. tooltip:'从标准帐套重新载入'
  45. },'-', {
  46. text:'帮助',
  47. iconCls:'btn-help',
  48. tooltip:'帮助简介'
  49. }]
  50. }],
  51. columns:[{
  52. dataIndex:'dp_id',
  53. width:0,
  54. text:'ID'
  55. },Ext.create('Ext.grid.RowNumberer',{
  56. width:35
  57. }),{
  58. dataIndex:'dp_code',
  59. width:100,
  60. text:'部门编号'
  61. },{
  62. dataIndex:'dp_name',
  63. width:120,
  64. text:'部门名称'
  65. },{
  66. xtype:'actioncolumn',
  67. width:45,
  68. text :'操作',
  69. items:[{
  70. iconCls:'btn-edit',
  71. tooltip:'修改',
  72. handler:function(grid, rowIndex, colIndex,item) {
  73. var record = grid.getStore().getAt(rowIndex),gridpanel=grid.ownerCt,deparpanel=gridpanel.ownerCt;
  74. var win=Ext.widget('detailwindow',{
  75. title:gridpanel.title,
  76. items:[Ext.widget('formportal',{
  77. region:'center',
  78. caller:gridpanel.caller,
  79. updateUrl: gridpanel.updateUrl,
  80. saveSuccess:deparpanel.DetailUpdateSuccess,
  81. condition:gridpanel.keyField+'='+record.get(gridpanel.keyField)
  82. })]
  83. });
  84. win.showRelyBtn(win,grid);
  85. }
  86. },
  87. {
  88. iconCls:'btn-delete',
  89. tooltip:'删除',
  90. width:75,
  91. handler:function(grid, rowIndex, colIndex) {
  92. Ext.Msg.confirm('删除数据?', '确定要删除当前选中行(行号:'+(rowIndex+1)+')?',
  93. function(choice) {
  94. if(choice === 'yes') {
  95. //var reviewStore = Ext.data.StoreMgr.lookup('reviewStore');
  96. var record = grid.getStore().getAt(rowIndex),gridpanel=grid.ownerCt;
  97. gridpanel.setLoading(true);
  98. Ext.Ajax.request({
  99. url : basePath +'hr/employee/deleteDepartment.action',
  100. params: {
  101. id: record.get('dp_id')
  102. },
  103. method : 'post',
  104. callback : function(options,success,response){
  105. gridpanel.setLoading(false);
  106. var localJson = new Ext.decode(response.responseText);
  107. if(localJson.exceptionInfo){
  108. showError(localJson.exceptionInfo);return;
  109. }
  110. if(localJson.success){
  111. showResult('提示','删除成功!');
  112. grid.getStore().load();
  113. } else {
  114. delFailure();
  115. }
  116. }
  117. });
  118. }
  119. })
  120. }
  121. }]
  122. }],
  123. store:Ext.create('Ext.data.Store',{
  124. fields:[{name:'dp_id',type:'number'},
  125. {name:'dp_code',type:'string'},
  126. {name:'dp_name',type:'string'}],
  127. proxy: {
  128. type: 'ajax',
  129. url: basePath+'/hr/employee/getDepartments.action',
  130. reader: {
  131. type: 'json',
  132. root: 'departs'
  133. }
  134. },
  135. autoLoad: true
  136. })
  137. };
  138. return Ext.widget('gridpanel',config);
  139. },
  140. configHelpText:function(){
  141. return {
  142. xtype:'panel',
  143. region:'east',
  144. width:'40%',
  145. html:'帮助信息'
  146. };
  147. },
  148. removeDetail:function(grid,id){
  149. grid.setLoading(true);
  150. Ext.Ajax.request({
  151. url : basePath + grid.deleteUrl,
  152. params: {
  153. id: id
  154. },
  155. method : 'post',
  156. callback : function(options,success,response){
  157. grid.setLoading(false);
  158. var localJson = new Ext.decode(response.responseText);
  159. if(localJson.exceptionInfo){
  160. showError(localJson.exceptionInfo);return;
  161. }
  162. if(localJson.success){
  163. showResult('提示','删除成功!');
  164. grid.loadNewStore(grid,grid.params);
  165. } else {
  166. delFailure();
  167. }
  168. }
  169. });
  170. },
  171. setColumns:function(columns){
  172. Ext.Array.each(columns,function(column){
  173. if(column.xtype=='yncolumn'){
  174. column.xtype='checkcolumn';
  175. column.editor= {
  176. xtype: 'checkbox',
  177. cls: 'x-grid-checkheader-editor'
  178. };
  179. }
  180. });
  181. return columns;
  182. },
  183. DetailUpdateSuccess:function(grid,btn){
  184. var departgrid=Ext.getCmp('departgrid');
  185. departgrid.getStore().load();
  186. var win=btn.up('window');
  187. if(win) win.close();
  188. }
  189. })