PagingRelease.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.oa.info.PagingRelease', {
  3. extend: 'Ext.app.Controller',
  4. BaseUtil: Ext.create('erp.util.BaseUtil'),
  5. FormUtil: Ext.create('erp.util.FormUtil'),
  6. views:[
  7. 'oa.info.PagingRelease','oa.info.IcqForm','oa.mail.TreePanel', 'core.form.FileField'
  8. ],
  9. init:function(){
  10. var me = this;
  11. this.control({
  12. 'erpMailTreePanel': {
  13. afterrender: function(tree){
  14. tree.selModel.on('select', function(selModel, record){
  15. record.selected = true;//标志为已选
  16. if(record.childNodes.length > 0){
  17. selModel.isOnSelect = true;//标志为正在select,否则直接死循环
  18. selModel.select(record.childNodes);
  19. Ext.each(record.childNodes, function(){
  20. this.selected = true;
  21. });
  22. selModel.isOnSelect = false;
  23. me.setRecipient(selModel.getSelection());
  24. me.setRecipientId(selModel.getSelection());
  25. me.setMobile(selModel.getSelection());
  26. } else {
  27. if(!selModel.isOnSelect){
  28. var arr = selModel.getSelection();
  29. arr.push(record);
  30. selModel.isOnSelect = true;
  31. selModel.select(arr);
  32. selModel.isOnSelect = false;
  33. me.setRecipient(selModel.getSelection());
  34. me.setRecipientId(selModel.getSelection());
  35. me.setMobile(selModel.getSelection());
  36. }
  37. return;
  38. }
  39. });
  40. tree.selModel.on('deselect', function(selModel, record){
  41. record.selected = false;
  42. if(record.childNodes.length > 0){
  43. selModel.deselect(record.childNodes);
  44. Ext.each(record.childNodes, function(){
  45. this.selected = false;
  46. });
  47. me.setRecipient(selModel.getSelection());
  48. me.setRecipientId(selModel.getSelection());
  49. me.setMobile(selModel.getSelection());
  50. } else {
  51. selModel.deselect(record);
  52. me.setRecipient(selModel.getSelection());
  53. me.setRecipientId(selModel.getSelection());
  54. me.setMobile(selModel.getSelection());
  55. return;
  56. }
  57. });
  58. }
  59. },
  60. 'button[id=close]': {
  61. click: function(){
  62. me.FormUtil.onClose();
  63. }
  64. },
  65. 'button[id=post]': {
  66. click: function(btn){
  67. var form = btn.ownerCt.ownerCt;
  68. if(form.down('#prd_recipient').value != null && form.down('#prd_recipient').value != ''){
  69. me.FormUtil.beforeSave(form);
  70. }
  71. }
  72. },
  73. 'field[name=pr_context]': {
  74. afterrender: function(f) {
  75. var contextId = getUrlParam('pr_id');
  76. if(!Ext.isEmpty(contextId)) {
  77. Ext.Ajax.request({
  78. url : basePath + 'common/getFieldData.action',
  79. async: false,
  80. params: {
  81. caller: 'OA_PAGINGRELEASE_VIEW',
  82. field: 'pr_context',
  83. condition: 'pr_id=' + contextId
  84. },
  85. method : 'post',
  86. callback : function(options,success,response){
  87. var localJson = new Ext.decode(response.responseText);
  88. if(localJson.exceptionInfo){
  89. showError(localJson.exceptionInfo);return;
  90. }
  91. if(localJson.success){
  92. if(localJson.data != null){
  93. f.setValue(localJson.data);
  94. }
  95. }
  96. }
  97. });
  98. }
  99. }
  100. }
  101. });
  102. },
  103. setRecipient: function(records){
  104. var r = '';
  105. Ext.each(records, function(){
  106. if(r != ''){
  107. r += ';';
  108. }
  109. r += this.get('text');
  110. });
  111. Ext.getCmp('prd_recipient').setHeight(20*Math.ceil(records.length/20) || 20);
  112. Ext.getCmp('prd_recipient').setValue(r);
  113. },
  114. setRecipientId: function(records){
  115. var r = '';
  116. Ext.each(records, function(){
  117. if(r != ''){
  118. r += ';';
  119. }
  120. r += Math.abs(this.get('id'));
  121. });
  122. Ext.getCmp('prd_recipientid').setValue(r);
  123. },
  124. setMobile: function(records){
  125. var r = '';
  126. Ext.each(records, function(){
  127. if(r != ''){
  128. r += ';';
  129. }
  130. r += this.get('qtitle');
  131. });
  132. Ext.getCmp('prd_mobile').setHeight(20*Math.ceil(records.length/10) || 20);
  133. Ext.getCmp('prd_mobile').setValue(r);
  134. }
  135. });