您的位置:首页 > Web前端 > JavaScript

Extjs4开发笔记(四)——实现登录功能

2013-01-17 09:52 507 查看
上篇文章介绍了如何实现菜单功能(点击查看),但是有个问题,就是管理系统必须是登录后才会显示菜单,而且菜单还要实现不同权限有不同的菜单项,本文将实现这个功能。

首先,将server/MenuLoader.asp修改,增加管理员验证功能。即

If Session("Manage") <> "" Then
'显示菜单项
End If


这时,重新打开页面,由于有了基本的管理员验证,菜单不显示了。



接下来,开始制作登录,在view文件夹下建立Login.js,checkcode.js,其中Login.js实现登录功能,有用户名、密码和验证码,验证码的实现,就是checkcode.js,由于篇幅问题,checkcode.js请查看本站另一篇文章,
ExtJS4学习笔记(十)---ExtJS4图片验证码的实现

主要是Login.js:

Ext.define(SMS.view.Login',{
extend:'Ext.window.Window',
alias: 'widget.loginForm',
requires: ['Ext.form.*','SMS.view.CheckCode'],
initComponent:function(){
var checkcode = Ext.create('SMS.view.CheckCode',{
cls : 'key',
fieldLabel : '验证码',
name : 'CheckCode',
id : 'CheckCode',
allowBlank : false,
isLoader:true,
blankText : '验证码不能为空',
codeUrl: '/include/checkCode.asp',
width : 160
})
var form = Ext.widget('form',{
border: false,
bodyPadding: 10,
fieldDefaults: {
labelAlign: 'left',
labelWidth: 55,
labelStyle: 'font-weight:bold'
},
defaults: {
margins: '0 0 10 0'
},
items:[{
xtype: 'textfield',
fieldLabel: '用户名',
blankText : '用户名不能为空',
name:'UserName',
id:'UserName',
allowBlank: false,
width:240
},{
xtype: 'textfield',
fieldLabel: '密   码',
allowBlank: false,
blankText : '密码不能为空',
name:'PassWord',
id:'PassWord',
width:240,
inputType : 'password'
},checkcode],
buttons:[{
text:'登录',
handler:function(){
var form = this.up('form').getForm();
var win = this.up('window');
if(form.isValid()){
form.submit({
clientValidation: true,
waitMsg:'请稍后',
waitTitle:'正在验证登录',
url:'/server/checklogin.asp',
success: function(form, action) {
//登录成功后。
//隐藏登录窗口,并重新加载菜单
win.hide();
Ext.getCmp('SystemMenus').store.load();
},
failure: function(form, action) {
Ext.MessageBox.show({
width:150,
title:"登录失败",
buttons: Ext.MessageBox.OK,
msg:action.result.msg
})
}
});
}
}
}]
})
Ext.apply(this,{
height: 160,
width: 280,
title: '用户登陆',
closeAction: 'hide',
closable : false,
iconCls: 'win',
layout: 'fit',
modal : true,
plain : true,
resizable: false,
items:form
});
this.callParent(arguments);
}
});


最终效果:



修改controller目录下的Main.js:

Ext.define(SMS.controller.Main',{
extend: 'Ext.app.Controller',
requires:['SMS.view.Login'],
onLaunch : function(){
var win;
if(!win){
win = Ext.create('SMS.view.Login').show();
}
}
})


这时,当页面加载的时候,会显示登录窗口,而登录成功后, 会隐藏登录窗口并加载菜单。最后附上登录成功后页面效果。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐