Grid6.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. Ext.define('DataColumn6', {
  2. extend : 'Ext.data.Model',
  3. fields : [ 'table_name', 'column_name', 'ddd_tablename', 'ddd_fieldname',
  4. 'ddd_allowblank', 'ddd_defaultvalue', 'dd_tablename', 'data_type',
  5. 'ddd_fieldtype', 'data_length', 'nullable', 'data_default' ],
  6. // idProperty : 'table_name'
  7. });
  8. // create the Data Store
  9. var store = Ext.create('Ext.data.Store', {
  10. id : 'store6',
  11. pageSize : 150,
  12. model : 'DataColumn6',
  13. remoteSort : true,
  14. // allow the grid to interact with the paging scroller by buffering
  15. buffered : true,
  16. proxy : {
  17. // load using script tags for cross domain, if the data in on the same domain as
  18. // this page, an HttpProxy would be better
  19. type : 'ajax',
  20. url : '../../common/addData.action',
  21. extraParams : {
  22. total : 50000
  23. },
  24. reader : {
  25. root : 'list',
  26. totalProperty : 'totalCount'
  27. },
  28. // sends single sort as multi parameter
  29. simpleSortMode : true
  30. },
  31. sorters : [ {
  32. property : 'table_name',
  33. direction : 'DESC'
  34. } ]
  35. });
  36. var selectionObjs; //定义全局量
  37. Ext.define('erp.view.data.Grid6', {
  38. extend : 'Ext.grid.Panel',
  39. alias : 'widget.erpGridPanel6',
  40. // title: this.title + totalProperty,
  41. store : store,
  42. iconCls : 'icon-grid',
  43. frame : true,
  44. emptyText : '无数据',
  45. columnLines : true,
  46. autoScroll : true,
  47. FormUtil : Ext.create('erp.util.FormUtil'),
  48. GridUtil : Ext.create('erp.util.GridUtil'),
  49. plugins : [ Ext.create('Ext.ux.grid.GridHeaderFilters') ],
  50. BaseUtil : Ext.create('erp.util.BaseUtil'),
  51. bodyStyle : 'background-color:#f1f1f1;',
  52. verticalScrollerType : 'paginggridscroller',
  53. loadMask : true,
  54. disableSelection : false,
  55. invalidateScrollerOnRefresh : false,
  56. viewConfig : {
  57. trackOver : false
  58. },
  59. selModel : Ext.create('Ext.selection.CheckboxModel', {
  60. listeners : {
  61. selectionchange : function(sm) {
  62. var length = sm.getCount(); //获得选择列数
  63. selectionObjs = sm.getSelection(); //获得所有选择的对象
  64. }
  65. }
  66. }),
  67. // grid columns
  68. columns : [ {
  69. xtype : 'rownumberer',
  70. width : 50,
  71. sortable : false
  72. }, {
  73. // id : 'table_name',
  74. text : '表名',
  75. width : 160,
  76. dataIndex : 'table_name',
  77. // renderer: selectedRec,
  78. sortable : true
  79. }],
  80. tbar: [{
  81. iconCls: 'x-button-icon-add',
  82. text: '添加数据字典',
  83. handler: function(btn){
  84. var me = btn.ownerCt.ownerCt;
  85. console.log(selectionObjs);
  86. // var selectItem = Ext.getCmp('grid6').selModel.selected.items;
  87. var selectItem = selectionObjs;
  88. if (selectItem.length == 0 || selectItem.length > 3) {
  89. showError("请先选中要添加的表,并且每次不要打开过多(最多3个),想要同时处理更多请选择批量添加");
  90. selectionObjs = new Array();
  91. return;
  92. } else {
  93. console.log(selectItem);
  94. Ext.each(selectItem, function(item, index){
  95. var tablename = item.data.table_name;
  96. var panel = Ext.getCmp("datadictionary_"+tablename);
  97. var main = parent.Ext.getCmp("content-panel");
  98. if(!panel){
  99. var title = "添加数据字典(" + tablename + ")";
  100. panel = {
  101. title : title,
  102. tag : 'iframe',
  103. tabConfig:{tooltip: title},
  104. frame : true,
  105. border : false,
  106. layout : 'fit',
  107. iconCls : 'x-tree-icon-tab-tab1',
  108. html : '<iframe id="iframe_' + tablename + '" src="' + basePath + 'jsps/ma/dataDictionary.jsp?tablename=' + tablename + '" height="100%" width="100%" frameborder="0" scrolling="yes"></iframe>',
  109. closable : true,
  110. listeners : {
  111. close : function(){
  112. main.setActiveTab(main.getActiveTab().id);
  113. }
  114. }
  115. };
  116. me.FormUtil.openTab(panel, "datadictionary_"+tablename);
  117. }else{
  118. main.setActiveTab(panel);
  119. }
  120. });
  121. selectionObjs = new Array();
  122. }
  123. }
  124. },{
  125. iconCls: 'x-button-icon-add',
  126. text: '批量添加',
  127. // id: 'print',
  128. handler: function(btn){
  129. alert("不推荐使用,暂不开放");
  130. }
  131. },{
  132. iconCls: 'x-button-icon-print',
  133. text: '刷新',
  134. // id: 'print',
  135. handler: function(btn){
  136. window.location.href = window.location.href;
  137. }
  138. }],
  139. // dockedItems : [ {
  140. // xtype: 'pagingtoolbar',
  141. // store: store, // s
  142. // dock : 'bottom',
  143. // displayInfo : true
  144. // }],
  145. });
  146. function selectedRec(value, p, record) {
  147. // record.selected = true;
  148. console.log(this.selModel);
  149. }
  150. // trigger the data store load
  151. store.guaranteeRange(0, 149);