在线等大神!
/**
- 定义权限的左边store / var permissionStore =Ext.create('Ext.data.ArrayStore', { fields: ['value','text'], proxy: { type: 'ajax', url: path + '/manage/getRoles.do', reader: 'array', actionMethods : { read: 'post' }, }, autoLoad: true, sortInfo: { field: 'value', direction: 'ASC' } }); /*
- 自定义一个plane,根据allowBlank显示是否有'*' */ Ext.define('editFormPanel', { extend: 'BasicFormPanel', initComponent: function() { this.on('beforeadd', function(me, field){ if(field.xtype == "fieldset") { for(var key in field.items.items) { if (!field.items.items[key].allowBlank) { field.items.items[key].labelSeparator += required; } } } else { if (!field.allowBlank) { // 处理textfield field.labelSeparator += required; } } }); this.callParent(arguments); } });
/**
- 定义编辑用户页面显示模型
/
Ext.define('editUserForm', {
extend: 'editFormPanel',
url: path + '/manage/saveUser.do',
buttonAlign: 'right',
reader: {
type: 'json',
root: 'user'
},
defaults: { labelWidth: 120, allowBlank: false }, defaultType: 'textfield', items: [{ xtype:'fieldset', title: '基本信息', defaultType: 'textfield', layout: 'anchor', defaults: { allowBlank: false, anchor: '100%' }, items:[{ fieldLabel: '用户名', name: 'loginName', id: 'userName', blankText: '用户名不能为空', regex:/^[\u4e00-\u9fa5_a-zA-Z0-9_]{5,20}$/, regexText: '用户名需以字母开头,只能为中文,英文字母和数字及_组成(长度5-20位)!', listeners: { blur: function(field){ availableName(field); } } }/*,{
fieldLabel : 'id' ,
xtype : 'hidden',
name : 'user.id', value: 'user.id', id:'id' }*/] },/*{ xtype:'fieldset', title: '扩展信息', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, items:[{ fieldLabel: '固定电话', id: 'fixed', name: 'user.fixedTelephone', value: '', regex: /^(\d{3,4}-)?\d{7,8}$/, regexText: '不是有效的固定电话,固定电话格式为:"XXX-XXXXXXX"或"XXXXXXXX"' },{ fieldLabel: '移动电话', id: 'mobile', name: 'user.mobileTelephone', value: '', regex: /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/, regexText: '不是有效的移动电话' },{ fieldLabel: '邮件地址', id: 'email', name: 'user.mail', value: '', vtype: 'email', vtypeText: '不是有效的mail地址' }, { fieldLabel: '描述', id:'description', name: 'user.description', value: '', xtype: 'textareafield' }] }*/,{ xtype:'fieldset', title: '权限', defaultType: 'textfield', layout: 'anchor', defaults: { anchor: '100%' }, items:[{ xtype: 'itemselector', name: 'roleIdStr', id: 'itemselector-field', anchor: '100%', fieldLabel: '用户角色', imagePath: '../ux/images/', store: permissionStore, displayField: 'text', valueField: 'value', value: [], allowBlank: true, msgTarget: 'side', fromTitle: '角色列表', toTitle: '已选择', resetText: 'Reset' }] } ] });
/**
- 验证用户名是否符合相应的格式及是否已经存在
*/
function availableName(field) {
var value = field.value;
var result = false;
if("" != value && (/^[\u4e00-\u9fa5_a-zA-Z0-9_]{5,20}$/.test(value))) {
Ext.Ajax.request({
params:{'user.loginName':value},
method:"POST", async: false, url:path + '/manage/checkNameExists.do', success:function(response){ var responseArray = Ext.JSON.decode(response.responseText); if(responseArray.isExists){ field.markInvalid("该用户名已经被占用!"); } else { result = true; } } }); } else { field.next().validate(); } return result; };
/**
* 在编辑用户表单里面新加保存提交按钮生成编辑用户页面
*/
Ext.define('editUser', {
extend: 'editUserForm',
buttons: [
{
text: '保 存',
handler: function() {
// 如果通过验证,手动调用ajax再次验证
var form = this.up('form').getForm();
if(form.isValid()) {
var userField = Ext.getCmp('userName');
var result = availableName(userField);
if(result) {
form.submit({
success: function(form, action) {
editUserWindow.close();
// 移除查询条件
searchCondition = {status:'ACTIVE'};
userStore.loadPage(1);
},
failure: function(form, actoin) {
showDefaultErrorMsg('错误', '数据异常,请确认后重新提交!');
}
});
}
}
}
}
]
});
var editForm = Ext.create('editUser');
/**
* 编辑用户窗口
*/
var editUserWindow = function(){
editUserWindow = Ext.create('Ext.window.Window', {
title: '编辑用户',
width: 500,
height: 480,
constrain:true, // 将拖动范围限制在容器内
resizable: false,
modal:true,
layout: 'fit',
items: editForm
});
editUserWindow.show();
};
/**
* 编辑/查看用户
*/
var editUserBtn = Ext.create('Ext.button.Button', {
text: '编辑用户',
disabled: false,
scope: this,
iconCls:'edit',
handler: function() {
var id = selectBox(Ext.getCmp("grid"));
if(null != id) {
if(id.length > 1) {
showDefaultMsg("提示", "只能同时编辑一个用户!");
} else {
editForm.form.load({
url:path + '/manage/getUserById.do',
params: {id: id},
success : function(form,action) {
editUserWindow();
showDefaultMsg("提示", "载入用户信息成功!");
},
failure : function(form,action) {
console.log(action);
console.log(form);
//showDefaultMsg("提示", action.result.info);
}
});
}
}
}
});