Employee.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.hr.emplmana.Employee', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. GridUtil: Ext.create('erp.util.GridUtil'),
  6. views:[
  7. 'hr.emplmana.Employee','core.form.Panel',
  8. 'core.button.Add','core.button.Save','core.button.Close','core.button.Sync','core.button.ResAudit','core.button.Submit',
  9. 'core.button.Audit','core.button.Update','core.button.Delete','core.form.YnField', 'core.trigger.MasterTrigger',
  10. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.form.PhotoField','core.button.ResSubmit'
  11. ],
  12. refs : [ {
  13. ref : 'grid',
  14. selector : 'gridpanel'
  15. }],
  16. init:function(){
  17. var me = this;
  18. this.control({
  19. 'erpFormPanel textfield[name=em_code]': {
  20. change: function(field){
  21. if(field.value != em_code){//只能看见自己的密码
  22. if(Ext.getCmp('em_type').value != 'admin'){
  23. Ext.getCmp('em_password').hide();
  24. }
  25. }
  26. }
  27. },
  28. 'field[name=em_password]': {
  29. afterrender: function(f){
  30. f.el.dom.getElementsByTagName('input')[0].type = "password";
  31. }
  32. },
  33. 'field[name=em_mailpassword]': {
  34. afterrender: function(f){
  35. f.el.dom.getElementsByTagName('input')[0].type = "password";
  36. }
  37. },
  38. 'erpSaveButton': {
  39. click: function(btn){
  40. this.FormUtil.beforeSave(this);
  41. }
  42. },
  43. 'erpCloseButton': {
  44. click: function(btn){
  45. this.FormUtil.beforeClose(this);
  46. }
  47. },
  48. 'erpUpdateButton': {
  49. click: function(btn){
  50. this.FormUtil.onUpdate(this, true, {
  51. dirtyOnly: true
  52. });
  53. }
  54. },
  55. 'erpDeleteButton': {
  56. afterrender: function(btn){
  57. var status = Ext.getCmp('em_statuscode');
  58. if(status && status.value == 'AUDITED'){
  59. btn.hide();
  60. }
  61. },
  62. click: function(btn){
  63. me.FormUtil.onDelete(Ext.getCmp('em_id').value);
  64. }
  65. },
  66. 'erpSubmitButton': {
  67. afterrender: function(btn){
  68. var status = Ext.getCmp('em_statuscode');
  69. if(status && status.value != 'ENTERING'){
  70. btn.hide();
  71. }
  72. },
  73. click: function(btn){
  74. me.FormUtil.onSubmit(Ext.getCmp('em_id').value, true);
  75. }
  76. },
  77. 'erpResSubmitButton': {
  78. afterrender: function(btn){
  79. var status = Ext.getCmp('em_statuscode');
  80. if(status && status.value != 'COMMITED'){
  81. btn.hide();
  82. }
  83. },
  84. click: function(btn){
  85. me.FormUtil.onResSubmit(Ext.getCmp('em_id').value);
  86. }
  87. },
  88. 'erpAuditButton': {
  89. afterrender: function(btn){
  90. var status = Ext.getCmp('em_statuscode');
  91. if(status && status.value != 'COMMITED'){
  92. btn.hide();
  93. }
  94. },
  95. click: function(btn){
  96. me.FormUtil.onAudit(Ext.getCmp('em_id').value);
  97. }
  98. },
  99. 'erpResAuditButton': {
  100. afterrender: function(btn){
  101. var status = Ext.getCmp('em_statuscode');
  102. if(status && status.value != 'AUDITED'){
  103. btn.hide();
  104. }
  105. },
  106. click: function(btn){
  107. me.FormUtil.onResAudit(Ext.getCmp('em_id').value);
  108. }
  109. },
  110. 'erpAddButton': {
  111. click: function(){
  112. me.FormUtil.onAdd('addEmployee', '新增员工', 'jsps/hr/emplmana/employee/employee.jsp');
  113. }
  114. },
  115. 'erpSyncButton':{
  116. beforerender:function(btn){
  117. btn.sync=function() {
  118. var masters = btn.getCheckData(), form = Ext.getCmp('form'), w = this.win, me = btn,
  119. datas = btn.syncdatas, cal;
  120. if(!datas && form && form.keyField && Ext.getCmp(form.keyField)
  121. && Ext.getCmp(form.keyField).value > 0) {
  122. datas = Ext.getCmp(form.keyField).value;
  123. }
  124. if(cal == null)
  125. cal = caller + '!Post';
  126. if (!Ext.isEmpty(masters)) {
  127. w.setLoading(true);
  128. Ext.Ajax.request({
  129. url: basePath + 'hr/emplmana/vastPost.action',
  130. params: {
  131. caller: cal,
  132. datas: datas,
  133. to: masters
  134. },
  135. callback: function(opt, s, r) {
  136. w.setLoading(false);
  137. var rs = new Ext.decode(r.responseText);
  138. if(rs.exceptionInfo){
  139. showError(rs.exceptionInfo);
  140. }
  141. if(rs.success){
  142. alert('同步成功!');
  143. w.hide();
  144. if(me.autoClearCache) {
  145. me.clearCache();
  146. }
  147. me.fireEvent('aftersync', me, cal, datas, masters);
  148. }
  149. }
  150. });
  151. }
  152. };
  153. }
  154. },
  155. '#em_id': {
  156. afterrender: function(field) {
  157. var value = field.getValue();
  158. if(value && value > 0) {
  159. Ext.defer(function(){
  160. me.getJobs(value);
  161. }, 200);
  162. }
  163. }
  164. },
  165. 'gridpanel': {
  166. itemclick: this.onGridItemClick
  167. }
  168. });
  169. },
  170. getForm: function(btn){
  171. return btn.ownerCt.ownerCt;
  172. },
  173. getJobs: function(empId) {
  174. var me = this;
  175. me.FormUtil.getFieldsValues("job left join empsjobs on job_id=jo_id left join hrorg on org_id=or_id",
  176. 'jo_orgname,jo_name,jo_description,jo_id,or_id,or_name', 'emp_id=' + empId, [], function(data){
  177. var grid = me.getGrid();
  178. var datas = Ext.JSON.decode(data), _datas = [];
  179. if(datas.length > 0) {
  180. var keys = Ext.Object.getKeys(datas[0]);
  181. Ext.Array.each(datas, function(d){
  182. var obj = {};
  183. Ext.Array.each(keys, function(key){
  184. obj[key.toLowerCase()] = d[key];
  185. });
  186. _datas.push(obj);
  187. });
  188. }
  189. _datas.length > 0 && grid.store.loadData(_datas);
  190. grid.store.each(function(){
  191. this.dirty = true;
  192. });
  193. });
  194. },
  195. onGridItemClick: function(selModel, record) {
  196. this.GridUtil.onGridItemClick(selModel, record);
  197. }
  198. });