Ext.define('erp.view.sys.hr.EmployeeGrid',{
extend: 'Ext.grid.Panel',
//store:Ext.data.StoreMgr.lookup('employeeStore'),
alias: 'widget.employeegrid',
id:'employeegrid',
selModel: new Ext.selection.CheckboxModel(),
//title:'人事资料(所有)',
columnLines: true,
viewConfig: {
stripeRows: true,
enableTextSelection: true
},
forceFit:true,
dockedItems: [{
xtype: 'toolbar',
ui: 'footer',
items: [{
xtype:'tbtext',
text:'人事资料'
},{ xtype: 'tbseparator' },{
text:'添加',
itemId: 'addemployee',
tooltip:'添加新记录',
iconCls:'btn-add'
},'-',{
text:'保存',
itemId:'saveemployee',
tooltip:'保存',
iconCls:'btn-save'
},'-',{
text:'删除',
itemId:'deleteemployee',
tooltip:'删除',
iconCls:'btn-delete'
},'-',{
text:'帮助',
iconCls:'btn-help',
tooltip:'帮助简介'
},{
xtype:'tbtext',
text:'
带'+required+'为必填项
'
}]
}],
columns:[{
dataIndex:'em_id',
width:0,
text:'ID'
},{
dataIndex:'em_code',
width:100,
text:'员工编号',
renderer:columnRequired,
editor: {
xtype: 'textfield',
selectOnFocus: true,
allowOnlyWhitespace: false,
allowBlank:false
}
},{
dataIndex:'em_name',
width:120,
text:'员工名称',
renderer:columnRequired,
editor: {
xtype: 'textfield',
selectOnFocus: true,
allowOnlyWhitespace: false,
allowBlank:false
}
},{
dataIndex:'em_sex',
width:50,
text:'性别',
editor: {
xtype: 'combo',
selectOnFocus: true,
allowOnlyWhitespace: false,
allowBlank:false,
store: Ext.create('Ext.data.Store', {
fields: ['display', 'value'],
data : [
{"display":"男", "value":"男"},
{"display":"女", "value":"女"}
]
}),
queryMode: 'local',
displayField: 'display',
valueField: 'value',
listConfig :{
minWidth:40
}
}
},{
dataIndex:'em_mobile',
width:120,
text:'手机号',
renderer:columnRequired,
editor:{
xtype:'numberfield',
regex:new RegExp('^[1][358][0-9]{9}'),
regexText:'请填写11位有效手机号码'
}
},{
dataIndex:'em_email',
width:200,
text:'邮箱',
renderer:columnRequired,
editor: {
allowBlank: false,
vtype: 'email'
}
},{
dataIndex:'em_position',
width:120,
text:'岗位',
renderer:columnRequired,
editor:{
allowBlank:false,
xtype:'dbfindtrigger',
dbfind:'Job|jo_name'
}
},{
dataIndex:'em_defaulthsid',
width:0,
text:'岗位ID'
},{
dataIndex:'em_defaulthsname',
width:0,
text:'岗位名称'
},{
dataIndex:'em_defaultorname',
width:150,
text:'所属组织'
},{
dataIndex:'em_defaultorid',
width:0,
text:'所属组织ID'
},{
dataIndex:'em_depart',
width:120,
text:'财务核算部门',
flex:1
}/*,{
xtype:'actioncolumn',
width:45,
text :'操作',
items:[{
iconCls:'btn-delete',
tooltip:'删除',
width:75,
handler:function(grid, rowIndex, colIndex) {
Ext.Msg.confirm('删除数据?', '确定要删除当前选中行(行号:'+(rowIndex+1)+')?',
function(choice) {
if(choice === 'yes') {
var record = grid.getStore().getAt(rowIndex),gridpanel=grid.ownerCt;
gridpanel.removeDetail(gridpanel,record);
}
});
}
}]
}*/],
dbfinds:[{dbGridField:'jo_id',field:'em_defaulthsid'},
{dbGridField:'jo_name',field:'em_position'},
{dbGridField:'jo_name',field:'em_defaulthsname'},
{dbGridField:'jo_orgid',field:'em_defaultorid'},
{dbGridField:'jo_orgname',field:'em_defaultorname'},
{dbGridField:'or_department',field:'em_depart'}],
store:Ext.create('Ext.data.Store',{
fields:[{name:'em_id',type:'number'},
{name:'em_code',type:'string'},
{name:'em_name',type:'string'},
{name:'em_sex',type:'string'},
{name:'em_mobile',type:'string'},
{name:'em_email',type:'string'},
{name:'em_position',type:'string'},
{name:'em_defaulthsid',type:'int'},
{name:'em_defaulthsname',type:'string'},
{name:'em_defaultorname',type:'string'},
{name:'em_defaultorid',type:'int'},
{name:'em_depart',type:'string'}],
proxy: {
type: 'ajax',
url: basePath+'/hr/employee/getEmployees.action',
api: {
create: basePath+'hr/employee/saveEmployees.action',
update: basePath+'hr/employee/updateEmployees.action',
},
writer : {
type : 'json',
root : 'jsonData',
encode : true,
nameProperty:'data',
allowSingle : false
},
reader: {
type: 'json',
root: 'employees'
}
},
autoLoad: true
}),
initComponent : function(){
var me=this;
me.plugins = [me.cellEditingPlugin = Ext.create('Ext.grid.plugin.CellEditing')];
this.callParent(arguments);
},
loadNewStore: function(grid, param){
var me = this;
param=param||grid.params;
grid.setLoading(true);//loading...
Ext.Ajax.request({//拿到grid的columns
url : basePath + "common/loadNewGridStore.action",
params: param,
method : 'post',
callback : function(options,success,response){
grid.setLoading(false);
var res = new Ext.decode(response.responseText);
if(res.exceptionInfo){
showError(res.exceptionInfo);return;
}
var data = res.data;
if(!data || data.length == 0){
grid.store.removeAll();
me.add10EmptyItems(grid);
} else {
grid.store.loadData(data);
}
//自定义event
grid.addEvents({
storeloaded: true
});
grid.fireEvent('storeloaded', grid, data);
}
});
},
removeDetail:function(grid,record){
grid.setLoading(true);
Ext.Ajax.request({
url : basePath + 'hr/employee/deleteJob.action',
params: {
id: record.get('jo_id')
},
method : 'post',
callback : function(options,success,response){
grid.setLoading(false);
var localJson = new Ext.decode(response.responseText);
if(localJson.exceptionInfo){
showError(localJson.exceptionInfo);return;
}
if(localJson.success){
showResult('提示','删除成功!');
var orgTree = Ext.getCmp('orgtree'),
selectionModel=orgTree.getSelectionModel(),
selectedList = selectionModel.getSelection()[0];
grid.getStore().load({params:{
orgid:selectedList.get('or_id')
}});
}
}
});
},
setColumns:function(columns){
Ext.Array.each(columns,function(column){
if(column.xtype=='yncolumn'){
column.xtype='checkcolumn';
column.editor= {
xtype: 'checkbox',
cls: 'x-grid-checkheader-editor'
};
}
});
return columns;
},
DetailUpdateSuccess:function(btn,type){
var tabP=Ext.getCmp('saletabpanel'),_activeTab=tabP.activeTab;
_activeTab.loadNewStore(_activeTab,_activeTab.params);
var win=btn.up('window');
if(win) win.close();
}
})