📄 user.js
字号:
ds_user.baseParams.conditions = text_search_user.getValue();
ds_user.load({params : {start : 0,limit : 20}});
}
var btn_search_user = new Ext.Button({
text : '查询',
iconCls : 'icon-search',
handler : searchUser
});
var ds_user = new Ext.data.Store({
url : 'findAllUser.action',
reader : new Ext.data.JsonReader({totalProperty : 'totalProperty',root : 'root'},
[{name : 'userId',type : 'int'},
{name : 'userName',type : 'string'},
{name : 'password',type : 'string'},
{name : 'mobilePhone',type : 'string'},
{name : 'emplName',type : 'string'},
{name : 'emplNo',type : 'string'},
{name : 'sex',type : 'string'},
{name : 'age',type : 'int'},
{name : 'companyId',type : 'int'},
{name : 'companyName',type : 'string'},
{name : 'deptId',type : 'int'},
{name : 'deptName',type : 'string'},
{name : 'dutyId',type : 'int'},
{name : 'dutyName',type : 'string'},
{name : 'manager',type : 'bool'},
{name : 'remark',type : 'string'}])
});
var companyId, dutyId, deptId;
var grid_user = new Ext.grid.EditorGridPanel({
title : '用户管理',
iconCls : 'icon-grid',
loadMask : {msg : '数据加载中...'},
region : 'center',
cm : cm_user,
ds : ds_user,
plugins : checkColumn,
sm : new Ext.grid.RowSelectionModel({singleSelect : true}),
enableColumnMove : false,
trackMouseOver : false,
frame : true,
autoExpandColumn : 'remark',
clicksToEdit : 1,
tbar : [btn_add_user, '-', btn_del_user, '-',text_search_user, btn_search_user],
bbar : new Ext.PagingToolbar({
pageSize : 20,
store : ds_user,
displayInfo : true,
displayMsg : '第 {0} - {1} 条 共 {2} 条',
emptyMsg : "没有记录"
}),
listeners : {
'afteredit' : function(e) {
Ext.Ajax.request({
url : 'updateUser.action',
params : {
fieldName : e.field,
fieldValue : e.value,
companyId : e.field == 'companyName' ? companyId : null,
deptId : e.field == 'deptName' ? deptId : null,
dutyId : e.field == 'dutyName' ? dutyId : null,
userId : e.record.data.userId
},
success : function() {
if (e.field == 'companyName') {// 如果公司修改成功则同步当前显示修改记录的公司id
e.record.set('companyId', companyId);
}
},
failure : function() {
Ext.Msg.show({
title : '错误提示',
msg : '修改数据发生错误,操作将被回滚!',
fn : function() {e.record.set(e.field, e.originalValue);},
buttons : Ext.Msg.OK,
icon : Ext.Msg.ERROR
});
}
});
},
'cellclick' : function(grid, rowIndex) { // 为了部门下拉能够提取到分公司id的参数
companyId = grid.getStore().getAt(rowIndex).data.companyId;
}
}
});
var window_add_user = new Ext.Window({
title : '添加用户',
width : 320,
resizable : false,
autoHeight : true,
modal : true,
closeAction : 'hide',
listeners : {
'hide' : function() {
this.setTitle('添加用户');
this.findById('user.userName').ownerCt.form.reset();
}
},
items : [new Ext.FormPanel({
border : false,
baseCls : 'x-plain',
bodyStyle : 'padding:5px 5px 0',
labelAlign : 'right',
labelWidth : 70,
url : 'saveUser.action',
defaults : {anchor : '93%',msgTarget : 'side'},
defaultType : 'textfield',
items : [{
fieldLabel : '用户名',
id : 'user.userName',
name : 'user.userName',
allowBlank : false,
maxLength : 30
}, {
fieldLabel : '密码',
id : 'password1',
name : 'user.password',
allowBlank : false,
minLength : 6,
maxLength : 30
}, {
xtype : 'combo',
fieldLabel : '所属分公司',
id : 'company',
hiddenName : 'user.companyId',
valueField : 'companyId',
displayField : 'companyName',
mode : 'remote',
store : ds_company_select,
selectOnFocus : true,
editable : false,
allowBlank : false,
triggerAction : 'all',
loadingText : '加载中...',
emptyText : '公司名称',
listeners : {
'select' : function(combo, record, index) {
this.ownerCt.findById('dept').reset(); // 可以通过findById来获得同一个表单中的ComboBox
ds_dept_select.baseParams.companyId = this.ownerCt.form.findField('user.companyId').getValue();
ds_dept_select.reload();
this.ownerCt.form.findField('user.companyName').setValue(record.data.companyName);
}
}
}, {
xtype : 'hidden',
name : 'user.companyName'
}, {
xtype : 'combo',
fieldLabel : '所属部门',
id : 'dept',
hiddenName : 'user.deptId',
valueField : 'deptId',
displayField : 'deptName',
mode : 'remote',
store : ds_dept_select,
selectOnFocus : true,
editable : false,
allowBlank : false,
triggerAction : 'all',
loadingText : '加载中...',
emptyText : '部门名称',
listeners : {
'select' : function(combo, record, index) {
this.ownerCt.form.findField('user.deptName').setValue(record.data.deptName);
},
'beforequery' : function(queryEvent) {
if (!this.ownerCt.form.findField('user.companyId').getValue()) {
queryEvent.cancel = true;
}
}
}
}, {xtype : 'hidden',name : 'user.deptName'},
{xtype : 'combo',
fieldLabel : '职称',
id : 'duty',
hiddenName : 'user.dutyId',
valueField : 'dutyId',
displayField : 'dutyName',
mode : 'remote',
store : ds_duty_select,
selectOnFocus : true,
editable : false,
allowBlank : false,
triggerAction : 'all',
loadingText : '加载中...',
emptyText : '请选择职称',
listeners : {
'select' : function(combo, record, index) {
this.ownerCt.form.findField('user.dutyName').setValue(record.data.dutyName);
}
}
}, {xtype : 'hidden',name : 'user.dutyName'},
{fieldLabel : '用户编码',name : 'user.emplNo',maxLength : 20},
{fieldLabel : '用户姓名',name : 'user.emplName',allowBlank : false,maxLength : 20},
{xtype : 'combo',
fieldLabel : '性别',
mode : 'local',
name : 'user.sex',
editable : false,
store : new Ext.data.SimpleStore({
data : [['男', '男'], ['女', '女']],
fields : ['text', 'value']
}),
displayField : 'text',
valueField : 'value',
mode : 'local',
triggerAction : 'all',
emptyText : '请选择性别'
}, {
xtype : 'numberfield',
decimalPrecision : 1,
fieldLabel : '年龄',
maxLength : 3,
maxLengthText : '年龄不符合实际',
maxValue : 120,
maxText : '最大允许年龄为120岁',
name : 'user.age'
}, {fieldLabel : '联系电话',name : 'user.mobilePhone',allowBlank : false,maxLength : 20},
{fieldLabel : '备注',name : 'user.remark',xtype : 'textarea',maxLength : 100}
],
buttonAlign : 'right',
minButtonWidth : 60,
buttons : [{
text : '添加',
handler : function(btn) {
var frm = this.ownerCt.form;
if (frm.isValid()) {
btn.disable();
var unfield = frm.findField('user.userName');
frm.submit({
waitTitle : '请稍候',
waitMsg : '正在提交表单数据,请稍候...',
success : function(form, action) {
var store = grid_user.getStore();
if (store.data.length <= 20) {
var user = new User({
userId : action.result.userId,
userName : unfield.getValue(),
companyId : form.findField('user.companyId').getValue(),
companyName : Ext.get('company').dom.value,
deptId : form.findField('user.deptId').getValue(),
deptName : Ext.get('dept').dom.value,
dutyId : form.findField('user.dutyId').getValue(),
dutyName : Ext.get('duty').dom.value,
emplName : form.findField('user.emplName').getValue(),
emplNo : form.findField('user.emplNo').getValue(),
sex : form.findField('user.sex').getValue(),
age : form.findField('user.age').getValue(),
password : form.findField('user.password').getValue(),
mobilePhone : form.findField('user.mobilePhone').getValue(),
remark : form.findField('user.remark').getValue()
});
store.insert(0, [user]);
if (store.data.length > 20) {
store.remove(store.getAt(store.data.length - 1));
}
}
window_add_user.setTitle('[ ' + unfield.getValue() + ' ] 添加成功!!');
unfield.reset();
btn.enable();
},
failure : function() {
Ext.Msg.show({
title : '错误提示',
msg : '"' + unfield.getValue() + '" ' + '名称可能已经存在!',
buttons : Ext.Msg.OK,
fn : function() {
unfield.focus(true);
btn.enable();
},
icon : Ext.Msg.ERROR
});
}
});
}
}
}, {text : '重置',handler : function() {this.ownerCt.form.reset();}
}, {text : '取消',handler : function() {this.ownerCt.ownerCt.hide();}
}]
})]
});
var p_user = {
id : 'user-panel',
border : false,
layout : 'border',
items : [grid_user]
};
ds_user.load({
params:{
start : 0,
limit : 20
}
})
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -