GroupGrid.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. /**
  2. * Created by zhouy on 2018/11/8.
  3. */
  4. Ext.define('saas.view.sys.power.GroupGrid', {
  5. extend: 'Ext.grid.Panel',
  6. requires: [
  7. // 'Ext.selection.CellModel',
  8. 'saas.view.sys.power.OtherField'
  9. ],
  10. xtype: 'power-grid',
  11. plugins: {
  12. cellediting: {
  13. clicksToEdit: 1
  14. }
  15. },
  16. store:Ext.create('Ext.data.Store',{
  17. fields:[
  18. {name: 'query',type:'bool'},
  19. {name: 'add', type: 'bool'},
  20. {name: 'save', type: 'bool'},
  21. {name: 'delete', type: 'bool'},
  22. {name: 'audit', type: 'bool'},
  23. {name: 'resAudit', type: 'bool'},
  24. {name: 'import', type: 'bool'},
  25. {name: 'export', type: 'bool'},
  26. {name: 'others', calculate: function(data) {
  27. var others = data['others'];
  28. return others;
  29. }}
  30. ],
  31. data: [{"query":true,"add":false,"delete":false,"audit":true,"resAudit":true,"import":true,"export":true},{"query":true,"add":false,"delete":false,"audit":true,"resAudit":true,"import":true,"export":true,"others":[{'resouceId':1,'text':'权限1','value':'true'}]},
  32. {"query":true,"add":false,"delete":false,"audit":true,"resAudit":true,"import":true,"export":true,"others":[{'resouceId':100,'text':'权限2','value':true},{'resouceId':101,'text':'权限2.1','value':true}]},
  33. {"query":true,"add":false,"delete":false,"audit":true,"resAudit":true,"import":true,"export":true,"others":[{'resouceId':1000,text:'权限3','value':true},{'resouceId':1001,'text':'权限3.1','value':true},{'resouceId':1002,'text':'权限1','value':true},{'resouceId':100,'text':'权限3.2','value':true}]}]
  34. }),
  35. selModel:Ext.create('Ext.selection.CheckboxModel', {
  36. checkOnly: true,
  37. listeners: {
  38. 'select': function (selModel, record) {
  39. selModel.view.ownerCt.selectAllPower(record);
  40. },
  41. 'deselect': function (selModel, record) {
  42. selModel.view.ownerCt.deselectAllPower(record);
  43. }
  44. }
  45. }),
  46. height: 350,
  47. viewConfig: {
  48. stripeRows: false,
  49. enableTextSelection: false,
  50. markDirty: false
  51. },
  52. trackMouseOver: false,
  53. //disableSelection: true,
  54. columns: [{
  55. header: '查询',
  56. dataIndex: 'query',
  57. xtype: 'checkcolumn',
  58. headerCheckbox: true,
  59. width: 90,
  60. stopSelection: false
  61. }, {
  62. header: '新增',
  63. dataIndex: 'add',
  64. xtype: 'checkcolumn',
  65. headerCheckbox: true,
  66. width: 90,
  67. stopSelection: false
  68. }, {
  69. header: '修改',
  70. dataIndex: 'save',
  71. xtype: 'checkcolumn',
  72. headerCheckbox: true,
  73. width: 90,
  74. stopSelection: false
  75. }, {
  76. header: '删除',
  77. dataIndex: 'delete',
  78. xtype: 'checkcolumn',
  79. headerCheckbox: true,
  80. width: 90,
  81. stopSelection: false
  82. }, {
  83. header: '审核',
  84. dataIndex: 'audit',
  85. xtype: 'checkcolumn',
  86. headerCheckbox: true,
  87. width: 90,
  88. stopSelection: false
  89. }, {
  90. header: '反审核',
  91. dataIndex: 'resAudit',
  92. xtype: 'checkcolumn',
  93. headerCheckbox: true,
  94. width: 90,
  95. stopSelection: false
  96. }, {
  97. header: '导入',
  98. dataIndex: 'import',
  99. xtype: 'checkcolumn',
  100. headerCheckbox: true,
  101. width: 90,
  102. stopSelection: false
  103. }, {
  104. header: '导出',
  105. dataIndex: 'export',
  106. xtype: 'checkcolumn',
  107. headerCheckbox: true,
  108. width: 90,
  109. stopSelection: false
  110. }, {
  111. text: '其它',
  112. width: 160,
  113. dataIndex:'others',
  114. xtype: 'widgetcolumn',
  115. producesHTML: false,
  116. widget: {
  117. xtype: 'powerotherfield',
  118. bind:'{record.others}'
  119. }
  120. }],
  121. // Dispatch named listener and handler methods to this instance
  122. defaultListenerScope: true,
  123. listeners: {
  124. columnshow: 'onColumnToggle',
  125. columnhide: 'onColumnToggle'
  126. },
  127. selectAllPower: function(record){
  128. var me = this;data={"query":true,"add":true,"save":true,"delete":true,"audit":true,"resAudit":true,"import":true,"export":true};
  129. me.setAllOthers(record,true,data);
  130. },
  131. deselectAllPower:function(record){
  132. var me = this;data={"query":false,"add":false,"save":false,"delete":false,"audit":false,"resAudit":false,"import":false,"export":false};
  133. me.setAllOthers(record,false,data);
  134. },
  135. setAllOthers:function(record,bool,data){
  136. var others=record.get('others');
  137. Ext.Array.each(others,function(o){
  138. o.value=bool;
  139. })
  140. data.others = others
  141. record.set(data);
  142. }
  143. }, function(WidgetGrid) {
  144. /*var prototype = WidgetGrid.prototype,
  145. columns = prototype.columns,
  146. len = columns.length,
  147. i,
  148. tbar = prototype.tbar = [];
  149. // Create tbar on the prototype with a button for each column
  150. for (i = 0; i < len; i++) {
  151. tbar.push({
  152. text: columns[i].text,
  153. enableToggle: true,
  154. pressed: true,
  155. toggleHandler: 'onButtonToggle'
  156. });
  157. }*/
  158. });