Grid8.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. Ext.define('DataColumn8', {
  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 : 'ddd_fieldname'
  7. });
  8. // create the Data Store
  9. var store = Ext.create('Ext.data.Store', {
  10. id : 'store8',
  11. pageSize : 200,
  12. model : 'DataColumn8',
  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/addTField.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 : 'ddd_tablename',
  33. direction : 'DESC'
  34. } ]
  35. });
  36. var selectionObjs; //定义全局量
  37. Ext.define('erp.view.data.Grid8', {
  38. extend : 'Ext.grid.Panel',
  39. alias : 'widget.erpGridPanel8',
  40. store : store,
  41. iconCls : 'icon-grid',
  42. frame : true,
  43. emptyText : '无数据',
  44. columnLines : true,
  45. autoScroll : true,
  46. FormUtil : Ext.create('erp.util.FormUtil'),
  47. GridUtil : Ext.create('erp.util.GridUtil'),
  48. plugins : [ Ext.create('Ext.ux.grid.GridHeaderFilters') ],
  49. BaseUtil : Ext.create('erp.util.BaseUtil'),
  50. bodyStyle : 'background-color:#f1f1f1;',
  51. verticalScrollerType : 'paginggridscroller',
  52. loadMask : true,
  53. disableSelection : false,
  54. invalidateScrollerOnRefresh : false,
  55. viewConfig : {
  56. trackOver : false
  57. },
  58. selModel : Ext.create('Ext.selection.CheckboxModel', {
  59. listeners : {
  60. selectionchange : function(sm) {
  61. var length = sm.getCount(); //获得选择列数
  62. selectionObjs = sm.getSelection(); //获得所有选择的对象
  63. }
  64. }
  65. }),
  66. // grid columns
  67. columns : [ {
  68. xtype : 'rownumberer',
  69. width : 50,
  70. sortable : false
  71. },{
  72. text: '表名',
  73. width: 160,
  74. dataIndex: 'ddd_tablename' ,
  75. // sortable : true
  76. },{
  77. text: '字段名',
  78. width: 160,
  79. dataIndex: 'ddd_fieldname' ,
  80. // sortable : true
  81. },{
  82. text: '字段类型',
  83. width: 160,
  84. dataIndex: 'ddd_fieldtype' ,
  85. // sortable : true
  86. }],
  87. tbar: [{
  88. iconCls: 'x-button-icon-add',
  89. text: '批量添加表字段',
  90. handler: function(btn){
  91. var selectItem = selectionObjs;
  92. if (selectItem.length == 0) {
  93. showError("请先选中要删除的流程");
  94. selectionObjs = new Array();
  95. return;
  96. } else {
  97. var fields = new Array();
  98. Ext.each(selectItem, function(item, index){
  99. var field = new Object();
  100. field.ddd_tablename = item.data.ddd_tablename;
  101. field.ddd_fieldname = item.data.ddd_fieldname;
  102. field.ddd_fieldtype = item.data.ddd_fieldtype;
  103. fields[index] = field;
  104. });
  105. console.log(fields);
  106. Ext.Ajax.request({//拿到grid的columns
  107. url : basePath + 'common/alterTable.action',
  108. params: {
  109. fields : fields
  110. },
  111. method : 'post',
  112. async: false,
  113. callback : function(options, success, response){
  114. parent.Ext.getCmp("content-panel").getActiveTab().setLoading(false);
  115. var res = new Ext.decode(response.responseText);
  116. if(res.exceptionInfo){
  117. showError(res.exceptionInfo);return;
  118. }
  119. if(res.success){
  120. alert(' 添加成功!');
  121. }
  122. }
  123. });
  124. selectionObjs = new Array();
  125. window.location.href = window.location.href;
  126. }
  127. }
  128. }]
  129. });
  130. function selectedRec(value, p, record) {
  131. // record.selected = true;
  132. console.log(this.selModel);
  133. }
  134. // trigger the data store load
  135. store.guaranteeRange(0, 199);