Grid7.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. Ext.define('DataColumn7', {
  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 : 'dd_tablename'
  7. });
  8. // create the Data Store
  9. var store = Ext.create('Ext.data.Store', {
  10. id : 'store7',
  11. pageSize : 150,
  12. model : 'DataColumn7',
  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/addTable.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 : 'dd_tablename',
  33. direction : 'DESC'
  34. } ]
  35. });
  36. var selectionObjs; //定义全局量
  37. Ext.define('erp.view.data.Grid7', {
  38. extend : 'Ext.grid.Panel',
  39. alias : 'widget.erpGridPanel7',
  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 : 'dd_tablename',
  74. text : '表名',
  75. width : 160,
  76. dataIndex : 'dd_tablename',
  77. // renderer: selectedRec,
  78. sortable : true
  79. }],
  80. tbar: [{
  81. iconCls: 'x-button-icon-add',
  82. text: '批量创建表',
  83. handler: function(btn){
  84. // var selectItem = Ext.getCmp('grid7').selModel.selected.items;
  85. var selectItem = selectionObjs;
  86. if (selectItem.length == 0) {
  87. showError("请先选中要新建的表");
  88. selectionObjs = new Array();
  89. return;
  90. } else {
  91. var tablenames = new Array();
  92. Ext.each(selectItem, function(item, index){
  93. tablenames[index] = item.data.dd_tablename;
  94. });
  95. Ext.Ajax.request({//拿到grid的columns
  96. url : basePath + 'common/createTable.action',
  97. params: {
  98. tablenames : tablenames
  99. },
  100. method : 'post',
  101. async: false,
  102. callback : function(options, success, response){
  103. parent.Ext.getCmp("content-panel").getActiveTab().setLoading(false);
  104. var res = new Ext.decode(response.responseText);
  105. if(res.exceptionInfo){
  106. showError(res.exceptionInfo);return;
  107. }
  108. if(res.success){
  109. alert(' 新建表成功!');
  110. }
  111. }
  112. });
  113. selectionObjs = new Array();
  114. window.location.href = window.location.href;
  115. }
  116. }
  117. }],
  118. // dockedItems : [ {
  119. // xtype: 'pagingtoolbar',
  120. // store: store, // s
  121. // dock : 'bottom',
  122. // displayInfo : true
  123. // }],
  124. });
  125. function selectedRec(value, p, record) {
  126. // record.selected = true;
  127. console.log(this.selModel);
  128. }
  129. // trigger the data store load
  130. store.guaranteeRange(0, 149);