tempfile.3.tmp

来自「一个使用ssh+ext的例子。 希望对开发这个应用的人带来好处。仔细研究里面的」· TMP 代码 · 共 356 行

TMP
356
字号
Ext.namespace("Neo");
Ext.namespace("Neo.frontdesk");
var clock = new Ext.Toolbar.TextItem('');
Neo.frontdesk.RoomView = Ext.extend(Ext.Panel,{
	region:'center'
	,title:'房间状态'
	,autoscroll:true
	,tools:[
				{
					id:'refresh'
					,scope:this
					,handler: function(event, toolEl, panel){
					// refresh logic
						//this.roomDataView.refresh();
						panel.roomDataView.store.reload();
						Ext.ux.Toast.msg('提示','房态已刷新');
					}
				}
			]
	,initComponent: function(){
		Ext.apply(this,{
			tbar:[{
                    	text: '过滤:'
                    },{
                    	xtype: 'textfield',
                    	id: 'filter',
                    	selectOnFocus: true,
                    	width: 100,
                    	listeners: {
                    		'render': {fn:function(){
						    	Ext.getCmp('filter').getEl().on('keyup', function(){
						    		this.filter();
						    	}, this, {buffer:500});
                    		}, scope:this}
                    	}
                    }, ' ', '-', {
                    	text: '过滤条件:'
                    }, {
                    	id: 'filterSelect',
                    	xtype: 'combo',
				        typeAhead: true,
				        triggerAction: 'all',
				        width: 100,
				        editable: false,
				        mode: 'local',
				        displayField: 'desc',
				        valueField: 'name',
				        lazyInit: false,
				        value: '房间号',
				        store: new Ext.data.SimpleStore({
					        fields: ['name', 'desc'],
					        data : [['rmId', '房间号'],['rmCatalog', '房间类型']]
					    }),
					    listeners: {
							//'select': {fn:this.sortImages, scope:this}
					    }
				    }
				/*,'->'
				,{
					text:'房间过滤'
					,iconCls:'icon-roomfilter'
					,menu:{
						items:[
							{
								text:'类型'
								,iconCls:'icon-roomcatalog'
								,menu:{
									items:[
										{
											text:'标准间'
											,checked:true
											,id:'filtStandRm'
										}
										,{
											text:'单人间'
											,checked:true
											,id:'filtSingleRm'
										}
										,{
											text:'三人间'
											,checked:true
											,id:'filtThreeRm'
										}
										,{
											text:'豪华套间'
											,checked:true
											,id:'filtDeluxRm'
										}
									]
								}
							}
							,{
								text:'楼层'
								,iconCls:'icon-roomfloor'
								,menu:{
									items:[
										{
											text:'一楼'
											,checked:true
											,id:'filtFirst'
										}
										,{
											text:'二楼'
											,checked:true
											,id:'filtSecond'
										}
										,{
											text:'三楼'
											,checked:true
											,id:'filtThird'
										}
										,{
											text:'四楼'
											,checked:true
											,id:'filtFourth'
										}
									]
								}
							}
						]
					}
				}*/
			]
			,items:[
				{
					xtype:'roomdataview'
				}
			]		
			,bbar: new Ext.StatusBar({
	            id: 'basic-statusbar'
		        ,items: ['<font color="#008CD2">空闲房</font>', '-'
		        	, '<font color="#FF7D00">预定房</font>', '-'
		        	,'<font color="#FFE000">已租房</font>', '-'
		        	,'<font color="#E40090">结账房</font>', '-'
		        	,'<font color="#00AF4D">清洁房</font>', '-'
		        	,'<font color="#E80033">锁房</font>', '-'
		        	,new Date().format('Y-m-d'), '-'
		        ,clock]
    		})
		});
		
		/*this.filtStandRm.on({'check':this.onFilt
					,scope:this});
		this.filtSingleRm.on({'check':this.onFilt
					,scope:this});
		this.filtThreeRm.on({'check':this.onFilt
					,scope:this});
		this.filtDeluxRm.on({'check':this.onFilt
					,scope:this});
		this.filtFirst.on({'check':this.onFilt
					,scope:this});
		this.filtSecond.on({'check':this.onFilt
					,scope:this});
		this.filtThird.on({'check':this.onFilt
					,scope:this});
		this.filtFourth.on({'check':this.onFilt
					,scope:this});*/
		//Neo.frontdesk.RoomView.superclass.initComponent.call(this);
		Neo.frontdesk.RoomView.superclass.initComponent.apply(this,arguments);
		this.roomDataView=this.items.itemAt(0);
		this.roomDataView.on({'dblclickroom':this.onDblClickRoom
			,scope:this});
		this.roomDataView.on({'showcheckininfo':this.onShowCheckinInfo
			,scope:this});
		this.roomDataView.on({'reservCheckin':this.onReservCheckin
			,scope:this});
		this.roomDataView.on({'contextmenu':this.onRoomViewContextMenu
			,scope:this});
		this.addEvents({'dblclickroom':true},{'showcheckininfo':true});
		//console.log(this.roomDataView.events['dblclickroom']);
	}
	,onRender:function(){
		Neo.frontdesk.RoomView.superclass.onRender.apply(this,arguments);
		//这里写Render后的代码
		//Ext.fly(clock.getEl().parentNode).addClass('x-status-text-panel');
		Ext.TaskMgr.start({
			run: function(){
				Ext.fly(clock.getEl()).update(new Date().format('g:i:s A'));
			},
			interval: 1000
		});
	}
	,afterRender:function(){

		Neo.frontdesk.RoomView.superclass.afterRender.apply(this,arguments);
	
	}
	,filtByUser:function(record,id){
		if(record.get('rmCatalog')=='标准间'){
			if(this.filtStandRm.getValue=='false'){
				return false;
			}else{
				return true;
			}
		}
		if(record.get('rmCatalog')=='单人间'){
			if(this.filtSingleRm.getValue=='false'){
				return false;
			}else{
				return true;
			}
		}
		if(record.get('rmCatalog')=='三人间'){
			if(this.filtThreeRm.getValue=='false'){
				return false;
			}else{
				return true;
			}
		}
		if(record.get('rmCatalog')=='豪华套间'){
			if(this.filtDeluxRm.getValue=='false'){
				return false;
			}else{
				return true;
			}
		}
		if(record.get('rmCatalog')=='1'){
			if(this.filtFirst.getValue=='false'){
				return false;
			}else{
				return true;
			}
		}
		if(record.get('rmCatalog')=='2'){
			if(this.filtSecond.getValue=='false'){
				return false;
			}else{
				return true;
			}
		}
		if(record.get('rmCatalog')=='3'){
			if(this.filtThird.getValue=='false'){
				return false;
			}else{
				return true;
			}
		}
		if(record.get('filtFourth')=='4'){
			if(this.filtStandRm.getValue=='false'){
				return false;
			}else{
				return true;
			}
		}
	}
	,onFit:function(){
		this.roomDataView.store.filtBy(this.filtByUser);
		this.roomDataView.select(0);
	}
	,onRoomViewContextMenu:function(dview,index,node,e){ //房态图右键菜单
		e.stopEvent();
		this.roomDataView.select(node,false,false);
		var coords=e.getXY();
		if(this.roomDataView.getRecord(node).get('rmState')=='0'){
			this.roomDataView.roomViewMenu.items.itemAt(0).enable();
			this.roomDataView.roomViewMenu.items.itemAt(1).disable();
			this.roomDataView.roomViewMenu.items.itemAt(2).disable();
			this.roomDataView.roomViewMenu.items.itemAt(3).disable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(0).disable();
			/*this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).enable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).enable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(3).enable();*/
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).enable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).enable();
		}else if(this.roomDataView.getRecord(node).get('rmState')=='1'){
			//预定房
			this.roomDataView.roomViewMenu.items.itemAt(0).disable();
			this.roomDataView.roomViewMenu.items.itemAt(1).disable();
			this.roomDataView.roomViewMenu.items.itemAt(2).enable();
			this.roomDataView.roomViewMenu.items.itemAt(3).enable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(0).enable();
			/*this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).disable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).enable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(3).enable();*/
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).enable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).enable();
		}else if(this.roomDataView.getRecord(node).get('rmState')=='2'){
			//已租房
			this.roomDataView.roomViewMenu.items.itemAt(0).disable();
			this.roomDataView.roomViewMenu.items.itemAt(1).enable();
			this.roomDataView.roomViewMenu.items.itemAt(2).disable();
			this.roomDataView.roomViewMenu.items.itemAt(3).disable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(0).disable();
			/*this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).enable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).disable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(3).enable();*/
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).enable();
			this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).enable();
		}else{
			this.roomDataView.roomViewMenu.items.itemAt(0).disable();
			this.roomDataView.roomViewMenu.items.itemAt(1).disable();
			this.roomDataView.roomViewMenu.items.itemAt(2).disable();
			this.roomDataView.roomViewMenu.items.itemAt(3).disable();
			if(this.roomDataView.getRecord(node).get('rmState')=='3'){
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(0).enable();
				/*this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).enable();
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).enable();
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(3).disable();*/
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).enable();
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).enable();
			}
			if(this.roomDataView.getRecord(node).get('rmState')=='4'){
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(0).enable();
				/*this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).enable();
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).enable();
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(3).enable();*/
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).disable();
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).enable();
			}
			if(this.roomDataView.getRecord(node).get('rmState')=='5'){
			    this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(0).enable();
				/*this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).enable();
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).enable();
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(3).enable();*/
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(1).enable();
				this.roomDataView.roomViewMenu.items.itemAt(4).menu.items.itemAt(2).disable();
			}
		}
		this.roomDataView.roomViewMenu.showAt([coords[0],coords[1]]);
	}
	,onDblClickRoom:function(selRoomRecord){
		this.fireEvent('dblclickroom',selRoomRecord);
	}
	,onReservCheckin:function(rmId){
		console.log(rmId);
		this.checkinForm=Ext.getCmp('checkinForm');
		this.checkinForm.reservCheckin(rmId);
		//this.fireEvent('reservCheckin',rmId);
	}
	,onShowCheckinInfo:function(rmId){
		console.info('roomView');
		this.fireEvent('showcheckininfo',rmId);
	}
	,updateRmView:function(){
		this.roomDataView.store.reload();
	}
	,setDataViewStore:function(store){
		this.store = store;
	}
	,filter : function(){
		var filter = Ext.getCmp('filter');
		var comboxValue = Ext.getCmp('filterSelect');
		var filterField = comboxValue.getValue();
		switch(filterField){
		  	case '房间号':
		  		filterField = 'rmId';
		  		break;
		  	case '房间类型':
		  		filterField = 'rmCatalog';
		  		break;
		  	}
		this.roomDataView.store.filter(filterField, filter.getValue());
		this.roomDataView.select(0);
	}
});
Ext.reg('roomview',Neo.frontdesk.RoomView);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?