Ext.define('erp.view.core.form.HrOrgSelectField', { extend: 'Ext.form.FieldContainer', alias: 'widget.HrOrgSelectfield', requires:['erp.view.oa.doc.OrgTreePanel','erp.view.oa.doc.ItemSelector'], layout: 'column', hideLabel:true, autoScroll:false, initComponent : function(){ this.callParent(arguments); this.cls=''; this.style="border-right:2px solid #D5D5D5;border-top:2px solid #D5D5D5;"; var me = this; me.insert(0, { xtype: 'htmleditor', enableColors: false, enableAlignments: false, columnWidth:1, enableFont: false, enableFontSize: false, enableFormat: false, enableLinks: false, enableLists: false, enableSourceEdit: false, labelSeparator :'', fieldLabel:'
'+this.fieldLabel+'
', name:me.name, editable: false, allowBlank:false, readOnly:true, autoHeight:true, height:120, labelWidth:105, labelStyle:'background-color:#D5D5D5;height:165px;margin-right:-5px !important;', value:me.value }); me.insert(1,{ xtype: 'textfield', readOnly:true, labelWidth:400, labelSeparator:'', columnWidth:0.6, padding:'0 0 0 105', fieldStyle : 'background:#f0f0f0;border-bottom:none;vertical-align:middle;border-top:none;border-right:none;border-bottom-style:1px solid;border-left:none;', fieldLabel: '『选择』(选择需要设置人员、岗位或组织)', style:"border-bottom:2px solid #D5D5D5;border-right:1px solid #D5D5D5", columnWidth:1, listeners: { click: { element: 'labelEl', fn: function(e) { var target = e.getTarget('.terms'), win; if (target) { var data=new Array(),value,display; me.secondvalue=me.secondvalue!=undefined?me.secondvalue:Ext.getCmp(me.logic).value; if(me.secondvalue){ value=me.secondvalue.split(";"); var displayfield=me.items.items[0]; if(displayfield.value==''){ displayfield.checkChange(); displayfield.initValue(); me.value=displayfield.value; } var displayvalue=me.value; displayvalue=!displayvalue && displayvalue!=''?displayvalue:me.items.items[0].value; display=displayvalue.substring(displayvalue.indexOf(">")+1,me.value.lastIndexOf("<")).split(";"); } Ext.Array.each(value,function(item,index){ data.push({ text:display[index], value:item }) }); win = Ext.widget('window', { title: '
选择对象
', modal: true, width:'80%', height:'90%', layout:'border', requires:['erp.view.oa.doc.ItemSelector'], items:[{ region:'center', layout:'border', items:[{ region:'north', xtype:'form', bodyPadding: 10, layout:'column', bodyStyle:'background:#fafafa;', items:[{ xtype:'textfield', margin:'0 0 0 20', fieldLabel:'快速搜素', labelStyle:'font-weight:bold;', columnWidth:0.8 },{ xtype:'button', id:'search', text:'搜索', cls:'button1 pill', style:'margin-left:5px;', width:60, handler:function(btn){ btn.setDisabled(true); var likestring=btn.ownerCt.items.items[0].value; if(!likestring) { showMessage('提示','请输入需要搜索的信息!',1000); btn.setDisabled(false); return; } Ext.Ajax.request({//查询数据 url : basePath + 'common/ProcessQueryPersons.action', params:{ likestring:likestring }, callback : function(options,success,response){ var res = new Ext.decode(response.responseText); if(res.data){ Ext.getCmp('itemselector-field').fromField.store.loadData(res.data); btn.setDisabled(false); } else if(res.exceptionInfo){ showError(res.exceptionInfo); } } }); } }] },{ region:'center', xtype: 'itemselector', data:data, anchor: '100%', id: 'itemselector-field', displayField: 'text', valueField: 'value', allowBlank: false, msgTarget: 'side', listeners:{ afterrender:function(field){ field.toField.store.loadData(data); } } }], buttonAlign:'center', buttons:['->',{ cls:'button1 pill', style:'margin-left:5px;', text:'确认', scope:this, handler:function(btn){ var itemselector=Ext.getCmp('itemselector-field'); var value=itemselector.getRawValue(); if(value.length<1){ showMessage('提示','选择需要设置对象',1000); }else { var toField=itemselector.toField,displayValue; if (toField) { displayValue = Ext.Array.map(toField.boundList.getStore().getRange(), function(model) { return model.get(itemselector.displayField); }); } me.setFieldValue(displayValue,value); btn.ownerCt.ownerCt.ownerCt.close(); } } },{ cls:'button1 pill', style:'margin-left:5px;', text:'关闭', handler:function(btn){ btn.ownerCt.ownerCt.ownerCt.close(); } },'->'] },{ region:'west', width:'40%', xtype:'erpOrgTreePanel', bodyStyle:'background:#fafafa;' }] }); win.show(); e.preventDefault(); } } } } }); }, isValid: function(){ return this.firstField.isValid(); }, setValue: function(value){ this.firstField.setValue(value); }, getValue: function(){ return this.value; }, setFieldValue:function(displayValue,rawValue){ var me=this; me.items.items[0].setValue(''+displayValue.join(";")+""); Ext.getCmp(me.secondname).setValue(rawValue.join(";")); me.value=''+displayValue.join(";")+""; me.secondvalue=rawValue.join(";"); } });