Ext.define('erp.view.sys.base.ModuleSetPortal',{ extend: 'Ext.form.Panel', alias: 'widget.modulesetportal', autoScroll : true, labelSeparator : ':', buttonAlign : 'center', bodyStyle : 'background:#f9f9f9;', fieldDefaults : { msgTarget: 'none', blankText : $I18N.common.form.blankText }, bodyBorder: false, border: false, FormUtil: Ext.create('erp.util.FormUtil'), BaseUtil: Ext.create('erp.util.BaseUtil'), layout:'column', //glyph:'66@My Font Family', items:[{ xtype:'label', html:'基础设置 (点击 ? 可查看设置项详细描述)', columnWidth:1, margin:'0 0 0 0' }], defaults:{ xtype:'textfield', columnWidth:0.33, margin:'5 5 5 5' }, tipTpl: Ext.create('Ext.XTemplate', ''), initComponent : function(){ this.loadConfigs(this.condition,this.setConfigs,this); this.loadInterceptors(this.condition, this.setInterceptors,this); this.callParent(arguments); }, loadConfigs: function(condition, callback,panel) { condition=condition==null?"caller="+this.caller:condition; Ext.Ajax.request({ url: basePath + 'ma/setting/getConfigsByCondition.action?condition='+condition, method: 'GET', callback: function(opt, s, r) { if(r && r.status == 200) { var res = Ext.JSON.decode(r.responseText); callback.call(null, res,panel); } } }); }, setConfigs: function(configs,panel) { var me = this,items = []; Ext.Array.each(configs, function(c, i){ switch(c.data_type) { case 'YN': items.push({ xtype: 'checkbox', boxLabel: c.title, name: c.code, checked: c.data == 1, columnWidth:panel.itemColumnWidth||.5, margin: '0 5 0 0', allowBlank: false, id:"configs-"+c.id, help:c.help, afterBoxLabelTextTpl:c.help?'?':'', listeners: { click: { element: 'boxLabelEl', fn: function(e,el) { var target = e.getTarget('.help-terms'), win,itemId=el.getAttribute("itemId"),item=Ext.getCmp(itemId); e.preventDefault(); item.up('modulesetportal').setHelp(item.help,e); } } } }); break; case 'RADIO': var s = []; Ext.Array.each(c.properties, function(p){ s.push({ name: c.code, boxLabel: p.display, inputValue: p.value, checked: p.value == c.data }); }); items.push({ xtype: 'radiogroup', id:"configs-"+c.id, fieldLabel: c.title, columnWidth: panel.itemColumnWidth || .5, columns: 1, vertical: true, items: s, help:c.help, afterLabelTextTpl:c.help?'?':'', listeners: { click: { element: 'labelEl', fn: function(e,el) { var target = e.getTarget('.help-terms'), win,itemId=el.getAttribute("itemId"),item=Ext.getCmp(itemId); e.preventDefault(); item.up('modulesetportal').setHelp(item.help,e); } } } }); break; case 'COLOR': items.push({ xtype: 'colorfield', fieldLabel: c.title, id:"configs-"+c.id, name: c.code, value: c.data, readOnly: c.editable == 0, editable: c.editable == 1, labelWidth: 150, columnWidth:0.5 }); break; case 'NUMBER': items.push({ xtype: 'numberfield', fieldLabel: c.title, id:"configs-"+c.id, name: c.code, value: c.data, readOnly: c.editable == 0, labelWidth: 150, //maxWidth:400, columnWidth:panel.itemColumnWidth || .5, help:c.help, clearable: true, afterLabelTextTpl:c.help?'?':'', listeners:{ render : function(field) { var p = document.createElement("td"); //padding:2cm 4cm 3cm 4cm; p.setAttribute('style'," color:gray; width:100px;line-height:22px;"); var redStar = document.createTextNode('光标离开完成修改'); p.appendChild(redStar); field.el.dom.firstChild.firstChild.appendChild(p); }, click: { element: 'labelEl', fn: function(e,el) { var target = e.getTarget('.help-terms'), win,itemId=el.getAttribute("itemId"),item=Ext.getCmp(itemId); e.preventDefault(); item.up('modulesetportal').setHelp(item.help,e); } } } }); break; default : if(c.multi == 1) { var data = c.data ? c.data.split('\n') : [null], s = []; Ext.Array.each(data, function(d){ s.push({ xtype: (c.dbfind ? 'dbfindtrigger' : 'textfield'), name: c.dbfind || c.code, value: d, readOnly: !c.dbfind && c.editable == 0, editable: c.editable == 1, clearable: true }); }); s.push({ xtype: 'button', text: '添加', width: 22, maxWidth:22, cls: 'x-dd-drop-ok-add', iconCls: 'x-dd-drop-icon', iconAlign: 'right', config: c }); items.push({ xtype: 'fieldset', title: c.title, id:"configs-"+c.id, name: c.code, columnWidth:1, layout: 'column', defaults: { columnWidth: .25, margin: '4 8 4 8' }, items: s }); } else { items.push({ xtype: (c.dbfind ? 'dbfindtrigger' : 'textfield'), fieldLabel: c.title, afterLabelTextTpl:c.help?'?':'', id:"configs-"+c.id, name: c.dbfind || c.code, value: c.data, help:c.help, readOnly: !c.dbfind && c.editable == 0, editable: c.editable == 1, clearable: true, columnWidth: .4, labelWidth: 150, dbCaller:c.caller, //minWidth:300, listeners: { click: { element: 'labelEl', fn: function(e,el) { var target = e.getTarget('.help-terms'), win,itemId=el.getAttribute("itemId"),item=Ext.getCmp(itemId); e.preventDefault(); item.up('modulesetportal').setHelp(item.help,e); } } } }); } break; } if(c.help) { /*items.push({ xtype: 'fieldset', html: c.help, columnWidth:1, title:'详细描述', collapsible: true, collapsed: true, //cls: 'help-block', margin: '4 8 8 8' });*/ } else { if(['NUMBER', 'VARCHAR2'].indexOf(c.data_type) > -1) { items.push({ xtype: 'displayfield' }); } } }); if(items.length == 0) items.push({ html: '没有参数配置', cls: 'x-form-empty' }); panel.add(items); }, setInterceptors: function(Interceptors,panel) { var me = this,items = []; Ext.Array.each(Interceptors, function(c, i){ items.push({ xtype: 'checkbox', boxLabel: c.title, checked: c.data == 1, columnWidth:.5, margin: '0 5 0 0', allowBlank: false, id:"interceptors-"+c.id, help:c.help, afterBoxLabelTextTpl:c.help?'?':'', listeners: { click: { element: 'boxLabelEl', fn: function(e,el) { var target = e.getTarget('.help-terms'), win,itemId=el.getAttribute("itemId"),item=Ext.getCmp(itemId); e.preventDefault(); item.up('modulesetportal').setHelp(item.help,e); } } } }); if(c.help) { /*items.push({ xtype: 'fieldset', html: c.help, columnWidth:1, title:'详细描述', collapsible: true, collapsed: true, //cls: 'help-block', margin: '4 8 8 8' });*/ } else { if(['NUMBER', 'VARCHAR2'].indexOf(c.data_type) > -1) { items.push({ xtype: 'displayfield' }); } } }); if(items.length>0) panel.add(items); }, loadInterceptors: function(condition, callback,panel) { Ext.Ajax.request({ url: basePath + 'ma/setting/getInterceptorsByCondition.action?condition=' + condition, method: 'GET', callback: function(opt, s, r) { if(r && r.status == 200) { var res = Ext.JSON.decode(r.responseText); callback.call( null,res,panel); } } }); }, getTip: function(position) { var tip = this.tip if (!tip) { tip = this.tip = Ext.widget('tooltip', { title: '详细描述:', minWidth: 200, autoHide: true, anchor: 'top', closable: true, cls: 'errors-tip' }); } tip.showAt([position[0]-19,position[1]+9]); return tip; }, setHelp: function(help,e) { var me = this, tip = me.getTip(e.getXY()); if (help) { tip.setDisabled(false); tip.update(me.tipTpl.apply({help:help})); } else { tip.hide(); } }, showResult : function(title,format,btn){ if(!msgCt){ msgCt = Ext.DomHelper.insertFirst(document.body, {id:'msg-div'}, true); } var s = Ext.String.format.apply(String, Array.prototype.slice.call(arguments, 1)); var m = Ext.DomHelper.append(msgCt, createBox(title, s), true); m.hide(); m.slideIn('t').ghost("t", { delay: 1000, remove: true}); } });