Ext.QuickTips.init(); Ext.define('erp.controller.ma.DataDictionary', { extend: 'Ext.app.Controller', FormUtil: Ext.create('erp.util.FormUtil'), GridUtil: Ext.create('erp.util.GridUtil'), BaseUtil: Ext.create('erp.util.BaseUtil'), views:[ 'ma.DataDictionary','core.form.Panel','core.grid.Panel2','core.button.Sync', 'core.button.Add','core.button.Submit','core.button.Audit','core.button.Save','core.button.Close','core.button.Print', 'core.button.Upload','core.button.Update','core.button.Delete','core.button.DeleteDetail','core.button.ResAudit', 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.toolbar.Toolbar' ], init:function(){ var me = this; this.control({ 'erpSyncButton': { afterrender: function(btn){ btn.autoClearCache = true; } }, 'erpSaveButton': { afterrender: function(){ me.getDetail(); }, click: function(btn){ me.save(btn); } }, 'erpUpdateButton': { click: function(btn){ var form = btn.up('form'), grid = form.ownerCt.down('grid'), table = form.down('#dd_tablename').value, key = form.down('#dd_primekey').value; grid.store.each(function(){ if(this.get('ddd_id') == 0) { this.set('ddd_tablename', table); this.set('ddd_primekey', key); } }); me.FormUtil.onUpdate(this); } }, 'erpAddButton': { click: function(){ me.FormUtil.onAdd('addDataDictionary', '新增数据字典', 'jsps/ma/dataDictionary.jsp'); } }, 'erpCloseButton': { click: function(btn){ me.FormUtil.beforeClose(me); } }, 'erpGridPanel2': { afterrender: function(g) { g.plugins[0].on('beforeedit', function(args){ if(g.readOnly || (args.record.get('ddd_id') > 0 && args.field != 'ddd_description')) {// 已存在的,不允许直接界面修改 return false; } }); }, itemclick: function(selModel, record) { if(record) selModel.ownerCt.down('erpAddDetailButton').setDisabled(false);// 可新增字段 } }, 'erpFormPanel textfield[name=dd_tablename]': { change: function(field){ field.setValue(field.value.toUpperCase()); var grid = Ext.getCmp('grid'); Ext.each(grid.store.data.items, function(item){ if(item.dirty == true){ item.set('ddd_tablename', Ext.getCmp('dd_tablename').value); item.set('ddd_updatetime', Ext.getCmp('dd_updatetime').value); item.set('ddd_updateuser', Ext.getCmp('dd_updateuser').value); item.set('ddd_primekey', Ext.getCmp('dd_primekey').value); } }); } }, 'erpFormPanel textfield[name=dd_updatetime]': { change: function(){ var grid = Ext.getCmp('grid'); Ext.each(grid.store.data.items, function(item){ if(item.dirty == true){ item.set('ddd_tablename', Ext.getCmp('dd_tablename').value); item.set('ddd_updatetime', Ext.getCmp('dd_updatetime').value); item.set('ddd_updateuser', Ext.getCmp('dd_updateuser').value); item.set('ddd_primekey', Ext.getCmp('dd_primekey').value); } }); } }, 'erpFormPanel textfield[name=dd_updateuser]': { change: function(){ var grid = Ext.getCmp('grid'); Ext.each(grid.store.data.items, function(item){ if(item.dirty == true){ item.set('ddd_tablename', Ext.getCmp('dd_tablename').value); item.set('ddd_updatetime', Ext.getCmp('dd_updatetime').value); item.set('ddd_updateuser', Ext.getCmp('dd_updateuser').value); item.set('ddd_primekey', Ext.getCmp('dd_primekey').value); } }); } }, 'erpFormPanel textfield[name=dd_primekey]': { change: function(field){ field.setValue(field.value.toLowerCase()); var grid = Ext.getCmp('grid'); Ext.each(grid.store.data.items, function(item){ if(item.dirty == true){ item.set('ddd_tablename', Ext.getCmp('dd_tablename').value); item.set('ddd_updatetime', Ext.getCmp('dd_updatetime').value); item.set('ddd_updateuser', Ext.getCmp('dd_updateuser').value); item.set('ddd_primekey', Ext.getCmp('dd_primekey').value); } }); } } }); }, getForm: function(btn){ return btn.ownerCt.ownerCt; }, save: function(btn){ var me = this; var grid = Ext.getCmp('grid'); var bool = false; Ext.each(grid.store.data.items, function(item){ if(item.dirty == true){ item.set('ddd_tablename', Ext.getCmp('dd_tablename').value); item.set('ddd_updatetime', Ext.getCmp('dd_updatetime').value); item.set('ddd_updateuser', Ext.getCmp('dd_updateuser').value); item.set('ddd_primekey', Ext.getCmp('dd_primekey').value); if(item.get('ddd_fieldtype') == null || item.get('ddd_fieldtype') == ''){ item.set('ddd_fieldtype', 'VARCHAR2'); } if(item.get('ddd_allowblank') == null || item.get('ddd_allowblank') == ''){ item.set('ddd_allowblank', 'yes'); } if(item.get('ddd_description') == null || item.get('ddd_description') == ''){ item.set('ddd_description', item.get('ddd_fieldname')); } if(item.get('ddd_fieldname') == Ext.getCmp('dd_primekey').value){ item.set('ddd_fieldtype', 'NUMBER'); item.set('ddd_allowblank', 'no'); bool = true; } if(item.get('ddd_fieldtype') == 'NUMBER' || item.get('ddd_fieldtype') == 'INT' || item.get('ddd_fieldtype') == 'FLOAT' || item.get('ddd_fieldtype') == 'SMAILINT'){ item.set('ddd_defaultvalue', '0'); } } }); if(!bool){ showError('grid里面未添加主键' + Ext.getCmp('dd_primekey').value); return; } me.FormUtil.beforeSave(me); }, getDetail: function(){ var tablename = getUrlParam('tablename'); if(tablename == null || tablename == ''){ return; } Ext.Ajax.request({ url : basePath + 'common/getDetail.action', params: { tablename : tablename }, method : 'post', callback : function(options, success, response){ var res = new Ext.decode(response.responseText); if(res.exceptionInfo){ showError(res.exceptionInfo);return; } if(res.success){ if(res.list.length > 0){ Ext.getCmp('dd_tablename').setValue(tablename); var grid = Ext.ComponentQuery.query('gridpanel'); grid[0].getStore().removeAll(); Ext.each(res.list, function(dc, index){ grid[0].getStore().insert(index, {'ddd_detno': index+1,'ddd_tablename': dc.table_name,'ddd_fieldname': dc.column_name.toLowerCase(), 'ddd_fieldtype': dc.data_type=='VARCHAR2'? dc.data_type+'('+dc.data_length+')':dc.data_type, 'ddd_allowblank': dc.nullable=='Y'?'是':'否','ddd_defaultvalue': dc.data_default}); }); Ext.each(grid[0].store.data.items, function(item){ item.setDirty(true); }); } } } }); } });