DataDictionary.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.ma.DataDictionary', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. GridUtil: Ext.create('erp.util.GridUtil'),
  6. BaseUtil: Ext.create('erp.util.BaseUtil'),
  7. views:[
  8. 'ma.DataDictionary','core.form.Panel','core.grid.Panel2','core.button.Sync',
  9. 'core.button.Add','core.button.Submit','core.button.Audit','core.button.Save','core.button.Close','core.button.Print',
  10. 'core.button.Upload','core.button.Update','core.button.Delete','core.button.DeleteDetail','core.button.ResAudit',
  11. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.toolbar.Toolbar'
  12. ],
  13. init:function(){
  14. var me = this;
  15. this.control({
  16. 'erpSyncButton': {
  17. afterrender: function(btn){
  18. btn.autoClearCache = true;
  19. }
  20. },
  21. 'erpSaveButton': {
  22. afterrender: function(){
  23. me.getDetail();
  24. },
  25. click: function(btn){
  26. me.save(btn);
  27. }
  28. },
  29. 'erpUpdateButton': {
  30. click: function(btn){
  31. var form = btn.up('form'),
  32. grid = form.ownerCt.down('grid'),
  33. table = form.down('#dd_tablename').value,
  34. key = form.down('#dd_primekey').value;
  35. grid.store.each(function(){
  36. if(this.get('ddd_id') == 0) {
  37. this.set('ddd_tablename', table);
  38. this.set('ddd_primekey', key);
  39. }
  40. });
  41. me.FormUtil.onUpdate(this);
  42. }
  43. },
  44. 'erpAddButton': {
  45. click: function(){
  46. me.FormUtil.onAdd('addDataDictionary', '新增数据字典', 'jsps/ma/dataDictionary.jsp');
  47. }
  48. },
  49. 'erpCloseButton': {
  50. click: function(btn){
  51. me.FormUtil.beforeClose(me);
  52. }
  53. },
  54. 'erpGridPanel2': {
  55. afterrender: function(g) {
  56. g.plugins[0].on('beforeedit', function(args){
  57. if(g.readOnly || (args.record.get('ddd_id') > 0 && args.field != 'ddd_description')) {// 已存在的,不允许直接界面修改
  58. return false;
  59. }
  60. });
  61. },
  62. itemclick: function(selModel, record) {
  63. if(record)
  64. selModel.ownerCt.down('erpAddDetailButton').setDisabled(false);// 可新增字段
  65. }
  66. },
  67. 'erpFormPanel textfield[name=dd_tablename]': {
  68. change: function(field){
  69. field.setValue(field.value.toUpperCase());
  70. var grid = Ext.getCmp('grid');
  71. Ext.each(grid.store.data.items, function(item){
  72. if(item.dirty == true){
  73. item.set('ddd_tablename', Ext.getCmp('dd_tablename').value);
  74. item.set('ddd_updatetime', Ext.getCmp('dd_updatetime').value);
  75. item.set('ddd_updateuser', Ext.getCmp('dd_updateuser').value);
  76. item.set('ddd_primekey', Ext.getCmp('dd_primekey').value);
  77. }
  78. });
  79. }
  80. },
  81. 'erpFormPanel textfield[name=dd_updatetime]': {
  82. change: function(){
  83. var grid = Ext.getCmp('grid');
  84. Ext.each(grid.store.data.items, function(item){
  85. if(item.dirty == true){
  86. item.set('ddd_tablename', Ext.getCmp('dd_tablename').value);
  87. item.set('ddd_updatetime', Ext.getCmp('dd_updatetime').value);
  88. item.set('ddd_updateuser', Ext.getCmp('dd_updateuser').value);
  89. item.set('ddd_primekey', Ext.getCmp('dd_primekey').value);
  90. }
  91. });
  92. }
  93. },
  94. 'erpFormPanel textfield[name=dd_updateuser]': {
  95. change: function(){
  96. var grid = Ext.getCmp('grid');
  97. Ext.each(grid.store.data.items, function(item){
  98. if(item.dirty == true){
  99. item.set('ddd_tablename', Ext.getCmp('dd_tablename').value);
  100. item.set('ddd_updatetime', Ext.getCmp('dd_updatetime').value);
  101. item.set('ddd_updateuser', Ext.getCmp('dd_updateuser').value);
  102. item.set('ddd_primekey', Ext.getCmp('dd_primekey').value);
  103. }
  104. });
  105. }
  106. },
  107. 'erpFormPanel textfield[name=dd_primekey]': {
  108. change: function(field){
  109. field.setValue(field.value.toLowerCase());
  110. var grid = Ext.getCmp('grid');
  111. Ext.each(grid.store.data.items, function(item){
  112. if(item.dirty == true){
  113. item.set('ddd_tablename', Ext.getCmp('dd_tablename').value);
  114. item.set('ddd_updatetime', Ext.getCmp('dd_updatetime').value);
  115. item.set('ddd_updateuser', Ext.getCmp('dd_updateuser').value);
  116. item.set('ddd_primekey', Ext.getCmp('dd_primekey').value);
  117. }
  118. });
  119. }
  120. }
  121. });
  122. },
  123. getForm: function(btn){
  124. return btn.ownerCt.ownerCt;
  125. },
  126. save: function(btn){
  127. var me = this;
  128. var grid = Ext.getCmp('grid');
  129. var bool = false;
  130. Ext.each(grid.store.data.items, function(item){
  131. if(item.dirty == true){
  132. item.set('ddd_tablename', Ext.getCmp('dd_tablename').value);
  133. item.set('ddd_updatetime', Ext.getCmp('dd_updatetime').value);
  134. item.set('ddd_updateuser', Ext.getCmp('dd_updateuser').value);
  135. item.set('ddd_primekey', Ext.getCmp('dd_primekey').value);
  136. if(item.get('ddd_fieldtype') == null || item.get('ddd_fieldtype') == ''){
  137. item.set('ddd_fieldtype', 'VARCHAR2');
  138. }
  139. if(item.get('ddd_allowblank') == null || item.get('ddd_allowblank') == ''){
  140. item.set('ddd_allowblank', 'yes');
  141. }
  142. if(item.get('ddd_description') == null || item.get('ddd_description') == ''){
  143. item.set('ddd_description', item.get('ddd_fieldname'));
  144. }
  145. if(item.get('ddd_fieldname') == Ext.getCmp('dd_primekey').value){
  146. item.set('ddd_fieldtype', 'NUMBER');
  147. item.set('ddd_allowblank', 'no');
  148. bool = true;
  149. }
  150. if(item.get('ddd_fieldtype') == 'NUMBER' || item.get('ddd_fieldtype') == 'INT'
  151. || item.get('ddd_fieldtype') == 'FLOAT' || item.get('ddd_fieldtype') == 'SMAILINT'){
  152. item.set('ddd_defaultvalue', '0');
  153. }
  154. }
  155. });
  156. if(!bool){
  157. showError('grid里面未添加主键' + Ext.getCmp('dd_primekey').value);
  158. return;
  159. }
  160. me.FormUtil.beforeSave(me);
  161. },
  162. getDetail: function(){
  163. var tablename = getUrlParam('tablename');
  164. if(tablename == null || tablename == ''){
  165. return;
  166. }
  167. Ext.Ajax.request({
  168. url : basePath + 'common/getDetail.action',
  169. params: {
  170. tablename : tablename
  171. },
  172. method : 'post',
  173. callback : function(options, success, response){
  174. var res = new Ext.decode(response.responseText);
  175. if(res.exceptionInfo){
  176. showError(res.exceptionInfo);return;
  177. }
  178. if(res.success){
  179. if(res.list.length > 0){
  180. Ext.getCmp('dd_tablename').setValue(tablename);
  181. var grid = Ext.ComponentQuery.query('gridpanel');
  182. grid[0].getStore().removeAll();
  183. Ext.each(res.list, function(dc, index){
  184. grid[0].getStore().insert(index,
  185. {'ddd_detno': index+1,'ddd_tablename': dc.table_name,'ddd_fieldname': dc.column_name.toLowerCase(),
  186. 'ddd_fieldtype': dc.data_type=='VARCHAR2'? dc.data_type+'('+dc.data_length+')':dc.data_type,
  187. 'ddd_allowblank': dc.nullable=='Y'?'是':'否','ddd_defaultvalue': dc.data_default});
  188. });
  189. Ext.each(grid[0].store.data.items, function(item){
  190. item.setDirty(true);
  191. });
  192. }
  193. }
  194. }
  195. });
  196. }
  197. });