MasterTrigger.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. /**
  2. * 选择帐套的trigger
  3. * DB:MS
  4. */
  5. Ext.define('erp.view.core.trigger.MasterTrigger', {
  6. extend : 'Ext.form.field.Trigger',
  7. alias : 'widget.mastertrigger',
  8. triggerCls : 'x-form-search-trigger',
  9. initComponent : function() {
  10. this.callParent(arguments);
  11. },
  12. onTriggerClick : function() {
  13. var trigger = this, win = this.win;
  14. if (!win) {
  15. win = Ext.create('Ext.Window', {
  16. title : trigger.fieldLabel,
  17. width : 700,
  18. height : 400,
  19. layout : 'fit',
  20. items : [ {
  21. xtype : 'form',
  22. autoScroll: true,
  23. bodyStyle : 'background: #f1f1f1;',
  24. layout : 'column',
  25. defaults : {
  26. xtype : 'checkbox',
  27. columnWidth : .5,
  28. margin : '5 0 0 5'
  29. },
  30. items : [ {
  31. boxLabel : '全选',
  32. id : 'selectall',
  33. columnWidth : 1,
  34. listeners : {
  35. change : function(f) {
  36. var form = f.up('form');
  37. form.getForm().getFields().each(
  38. function(a) {
  39. if (a.id != f.id) {
  40. a.setValue(f.value);
  41. }
  42. });
  43. }
  44. }
  45. } ]
  46. } ],
  47. buttonAlign: 'center',
  48. buttons : [ {
  49. text : $I18N.common.button.erpConfirmButton,
  50. cls : 'x-btn-blue',
  51. handler : function(b) {
  52. b.up('window').hide();
  53. trigger.setValue(trigger.getCheckData());
  54. }
  55. }, {
  56. text : $I18N.common.button.erpCloseButton,
  57. cls : 'x-btn-blue',
  58. handler : function(b) {
  59. b.up('window').hide();
  60. }
  61. } ]
  62. });
  63. this.win = win;
  64. this.getMasters();
  65. }
  66. win.show();
  67. },
  68. getMasters: function() {
  69. if (this.win) {
  70. var form = this.win.down('form'), val = this.value;
  71. // 取帐套配置,以及帐套权限配置
  72. Ext.Ajax.request({
  73. url: basePath + 'common/getMasters.action',
  74. method: 'GET',
  75. callback: function(opt, s, r) {
  76. if (s) {
  77. var rs = Ext.decode(r.responseText),
  78. c = rs.currentMaster,
  79. g = rs.group,
  80. t = rs._type,
  81. m = rs._master,
  82. items = new Array(),
  83. ms = new Array(),
  84. va = new Array();
  85. if(t != 'admin' && m != null) {
  86. ms = m.split(',');
  87. }
  88. if(val != null) {
  89. va = val.split(',');
  90. }
  91. for(var i in rs.masters) {
  92. var s = rs.masters[i];
  93. if("true" === g && "admin" !== t && !Ext.Array.contains(ms, s.ma_name))
  94. continue;
  95. if(s.ma_type == 3 || s.ma_type == 1) {
  96. if(t == 'admin') {
  97. var o = {
  98. boxLabel: s.ma_name + '(' + s.ma_function + ')',
  99. ma_user: s.ma_user
  100. };
  101. for (var j in va) {
  102. if (s.ma_name == va[j]) {
  103. o.checked = true;break;
  104. }
  105. }
  106. if (s.ma_name == c)
  107. o.checked = true;
  108. items.push(o);
  109. } else {
  110. for (var j in ms) {
  111. if(s.ma_name == ms[j]) {
  112. var o = {
  113. boxLabel: s.ma_name + '(' + s.ma_function + ')',
  114. ma_user: s.ma_user
  115. };
  116. for (var x in va) {
  117. if (s.ma_name == va[x]) {
  118. o.checked = true;break;
  119. }
  120. }
  121. if (s.ma_name == c)
  122. o.checked = true;
  123. items.push(o);break;
  124. }
  125. }
  126. }
  127. }
  128. }
  129. form.add(items);
  130. }
  131. }
  132. });
  133. }
  134. },
  135. getCheckData: function() {
  136. if (this.win) {
  137. var form = this.win.down('form'),
  138. items = form.query('checkbox[checked=true]'),
  139. data = new Array();
  140. Ext.each(items, function(item){
  141. if(item.ma_user)
  142. data.push(item.ma_user);
  143. });
  144. return data.join(',');
  145. }
  146. return null;
  147. }
  148. });