guestdata.js.svn-base
来自「一个使用ssh+ext的例子。 希望对开发这个应用的人带来好处。仔细研究里面的」· SVN-BASE 代码 · 共 239 行
SVN-BASE
239 行
Ext.namespace("Neo.frontdesk");
/*Neo.frontdesk.RoomDataView = function(){
Neo.frontdesk.RoomDataView.superclass.constructor.call(this);
}*/
Neo.frontdesk.GuestData = Ext.extend(Ext.grid.GridPanel,{
initComponent:function() {
var reader = new Ext.data.JsonReader({
totalProperty: "totalSize"
,root: "data"
,fields:[
{name: 'gtId'}
,{name: 'gtName'}
,{name: 'gtGender'}
,{name: 'gtCardCatalog'}
,{name: 'gtCardId'}
,{name: 'gtCountry'}
,{name: 'gtType'}
,{name: 'gtZip'}
,{name: 'gtTelphone'}
,{name: 'gtMobile'}
,{name: 'gtEmail'}
,{name: 'gtAddress'}
,{name: 'gtCompany'}
,{name: 'gtCreateTime'}
]});
var findStore = new Ext.data.GroupingStore({
url: 'guestctrl.htm?action=findGuest'
//proxy: new Ext.data.HttpProxy({url:'frontdesk.htm?action=listAllGuests'})
,reader: reader
,sortInfo:{field: 'gtName', direction: "ASC"}
,groupField:'gtType'
});
var allStore = new Ext.data.GroupingStore({
url: 'guestctrl.htm?action=listAllGuests'
//proxy: new Ext.data.HttpProxy({url:'frontdesk.htm?action=listAllGuests'})
,reader: reader
,sortInfo:{field: 'gtName', direction: "ASC"}
,groupField:'gtType'
});
var sm = new Ext.grid.CheckboxSelectionModel();
var ds = allStore;
Ext.apply(this,{
title: '客人信息'
//,autoHeight:true
,tbar:[
'-'
,{
text:'显示全部客户'
,id:'showAllGuestBtn'
,iconCls:'icon-reserv'
,handler:function(){
ds = allStore;
this.reconfigure(ds,this.colModel);
ds.load({params:{start:0, limit:8}});
}.createDelegate(this)
}
,'-'
,{
text:'删除选中客户'
,id:'delGuestBtn'
,iconCls:'icon-checkin'
,minWidth:'50'
,handler:function(){
console.log(' inside "Delete Contacts" with arguments = ',arguments);
//get the store associated with the grid:
store = this.getStore();
//returns array of record objects for selected rows (all info for row)
var selections = this.selModel.getSelections();
console.log('grid=',this);
console.log('selections=',selections);
var rds=[];
var n = selections.length;
for(var i = 0; i < n; i++){
rds.push(selections[i].data);
store.remove(selections[i]);
}//end for
console.log(rds);
var rdsjson=Ext.util.JSON.encode(rds); //encode json data
this.deleteSelectedRows(rdsjson); //call function to delete selected rows
}.createDelegate(this)//end handler
}
,'-'
]
,collapsible: true
,store:ds
,sm: sm
,loadMask:true
,cm: new Ext.grid.ColumnModel([
sm,
{id:'name',header: "姓名", width: 30, sortable: true, dataIndex: 'gtName'}
,{header: "性别", width: 15, sortable: true, dataIndex: 'gtGender'}
,{header: "有效证件类型", width: 28, sortable: true, dataIndex: 'gtCardCatalog'}
,{header: "有效证件号", width: 45, sortable: true, dataIndex: 'gtCardId'}
,{header: "国籍", width: 20,align: 'center', sortable: true, dataIndex: 'gtCountry'}
,{header: "客人类型", width: 22, align: 'center',sortable: true, dataIndex: 'gtType'}
,{header: "家庭住址", width: 50,align: 'center', sortable: true, dataIndex: 'gtAddress'}
//,{header: "工作单位", width: 20, sortable: true, dataIndex: 'gtCompany'}
,{header: "删除操作",width:20,align: 'center',renderer: function() {
return '<div class="controlBtn">' +
'<img src="public/images/icons/delete.png" width="16" height="16" class="control_del">' +
'</div>';
}}
])
,view: new Ext.grid.GroupingView({
forceFit:true
,groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'
,getRowClass : function(r, idx, rowParams, ds){
if((idx%2)==1){
return "x-orange-class";
}else{
return "x-yellow-class";
}
}
, emptyText: '没有找到任何数据'
})
,autoExpandColumn:'gtName'
,plugins:[new Ext.ux.grid.Search({
mode:'local'
,iconCls:false
//,extend:true
//,localStore:allStore
//,searchStore:findStore
,dateFormat:'m/d/Y'
,minLength:2
// ,align:'right'
})]
});
this.bbar = new Ext.PagingToolbar({
pageSize:8,
store: this.getStore(),
displayInfo:true,
displayMsg:'Displaying documents {0} - {1} of {2}',
emptyMsg:'<strong>No data to display</strong>'
});
//ds.load({params:{start:0, limit:2}});
Neo.frontdesk.GuestData.superclass.initComponent.apply(this,arguments);
this.on({'rowclick':this.onGetSelectionModel,scope:this});
this.on('click', function(e){
var controlBtn = e.getTarget('.controlBtn');
if (controlBtn) {
var t = e.getTarget();
var v = this.view;
var rowIdx = v.findRowIndex(t);
var record = this.getStore().getAt(rowIdx);
var control = t.className.split('_')[1];
switch (control) {
case 'otherAction':
console.log('otherAction this record - ' + record.id);
//到时候再说
break;
case 'del':
Ext.MessageBox.confirm('提示','是否要删除该项客户信息?',function(btn) {
if (btn == 'yes') {
console.log('del this record - ' + record.id);
if(ds!=this.getStore())
{
ds = findStore;
}//判断是否是查找store
else{
ds = allStore;
}
Ext.Ajax.request({
url: 'guestctrl.htm?action=dealGuestDelRequest',
success: function(){
console.log("success");
Ext.getCmp('getailform-guestview').setBlankValue();
ds.reload({params:{start:0, limit:8}});
},
failure: function(){
console.log("failure");
Ext.Msg.alert("错误","更新数据库失败,请重新操作.");
},
headers: {
'my-header': 'gtId'
},
params:{gtId:record.get('gtId')}
});
ds.remove(record);
return;
}
}.createDelegate(this))
break;
}
}}, this);
this.addEvents({'onClickGridRow':true});
} // end of function initComponent
,onGetSelectionModel:function(){
var sm = this.getSelectionModel();
var record=null;
try{
record=sm.getSelected();
if(record==null){
return;
}
}
catch(e){
try{
record=sm.selection.record();
}
catch(ex){}
}
this.fireEvent('onClickGridRow',record);
//Ext.ux.Toast.msg('Event: action', 'You have clicked: row, action: rowclick');
}//end of function onGetSelectModel
,onStoreReload:function(){
var ds = this.getStore();
ds.reload({params:{start:0, limit:8}});
}
,deleteSelectedRows:function(rds){
console.log(rds);
var ds = this.getStore();
Ext.Ajax.request({
url: 'guestctrl.htm?action=dealGuestDelSelectedRequest',
success: function(){
console.log("success");
ds.reload({params:{start:0, limit:8}});
},
failure: function(action){
if(action.failureType == 'server'){
obj = Ext.util.JSON.decode(action.response.responseText);
Ext.Msg.alert('错误:', obj.errors.reason);
}
console.log("failure");
},
headers: {
'my-header': 'gtId'
},
params:{json:rds}
});
}
});
Ext.reg('guestdata',Neo.frontdesk.GuestData);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?