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(";");
}
});