Grid9.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. Ext.define('DataColumn9', {
  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 : 'column_name'//不要乱加,添加后该字段不能重复,重复则给覆盖了,
  7. });
  8. // create the Data Store
  9. var store = Ext.create('Ext.data.Store', {
  10. id : 'store9',
  11. pageSize : 200,
  12. model : 'DataColumn9',
  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/addDField.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.Grid9', {
  38. extend : 'Ext.grid.Panel',
  39. alias : 'widget.erpGridPanel9',
  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. text: '表名',
  74. width: 160,
  75. dataIndex: 'table_name' ,
  76. sortable : true
  77. },{
  78. text: '字段名',
  79. width: 160,
  80. dataIndex: 'column_name' ,
  81. // sortable : true
  82. },{
  83. text: '字段类型',
  84. width: 160,
  85. dataIndex: 'data_type',
  86. // sortable : true
  87. },{
  88. text: '字段长度',
  89. width: 160,
  90. dataIndex: 'data_length'
  91. }],
  92. tbar: [{
  93. iconCls: 'x-button-icon-add',
  94. text: '批量维护',
  95. handler: function(btn){
  96. var selectItem = selectionObjs;
  97. if (selectItem.length == 0) {
  98. showError("请先选中要删除的流程");
  99. selectionObjs = new Array();
  100. return;
  101. } else {
  102. var fields = new Array();
  103. Ext.each(selectItem, function(item, index){
  104. var field = {
  105. table_name : item.data.table_name,
  106. column_name : item.data.column_name,
  107. data_type : item.data.data_type,
  108. data_length : item.data.data_length
  109. };
  110. fields[index] = Ext.JSON.encode(field);
  111. });
  112. console.log(fields);
  113. Ext.Ajax.request({//拿到grid的columns
  114. url : basePath + 'common/addFields.action',
  115. params: {
  116. fields : unescape(fields.toString().replace(/\\/g,"%"))
  117. },
  118. method : 'post',
  119. async: false,
  120. callback : function(options, success, response){
  121. parent.Ext.getCmp("content-panel").getActiveTab().setLoading(false);
  122. var res = new Ext.decode(response.responseText);
  123. if(res.exceptionInfo){
  124. showError(res.exceptionInfo);return;
  125. }
  126. if(res.error){
  127. showError(res.error);return;
  128. }
  129. if(res.success){
  130. alert(' 添加数据字典成功!');
  131. }
  132. }
  133. });
  134. selectionObjs = new Array();
  135. window.location.href = window.location.href;
  136. }
  137. }
  138. }]
  139. });
  140. // trigger the data store load
  141. store.guaranteeRange(0, 199);