function YxDepartmentInitRight() {
var gridStore = null;
var addButton = null;
var updateButton = null;
var deleteButton = null;
var gridPanel = null;
var departmentObject = null;
var searchField = null;
// 初始化GridPanel
function initGridPanel() {
// 和后台传过来的数据字段相对应
var fields = [{
name : 'deptId',
mapping : 'deptId'
}, {
name : 'deptName',
mapping : 'deptName'
}, {
name : 'shortName',
mapping : 'shortName'
}, {
name : 'sort',
mapping : 'sort'
}, {
name : 're',
mapping : 're'
}];
// 从后台拿到数据
gridStore = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : YxDepartment_contextPath
+ '/yx/department/getPageDepartment.action'
}),
reader : new Ext.data.JsonReader({
// 信息内容,和fields的字段相对应
root : 'root',
// 信息条数
totalProperty : 'totalProperty'
}, fields),
remoteSort : true
});
// GridPanel的Checkbox模式
var sm = new Ext.grid.CheckboxSelectionModel();
// GridPanel的列模式
var cm = new Ext.grid.ColumnModel([sm, new Ext.grid.RowNumberer(), {
// 数据来源和fields各字段对应
dataIndex : 'deptId',
header : '单位编号',
// 列不可操作
menuDisabled : true,
sortable : true
}, {
dataIndex : 'deptName',
header : '单位名称',
menuDisabled : true,
sortable : true
}, {
dataIndex : 'shortName',
header : '单位简称',
menuDisabled : true,
sortable : true
}, {
dataIndex : 'sort',
header : '排序',
menuDisabled : true,
sortable : true
}, {
dataIndex : 're',
header : '单位描述',
menuDisabled : true,
sortable : true
}]);
// 增加按钮,点击执行YxDepartmentInit_Add.js中的openPanel方法
addButton = new Ext.Button({
text : '新增',
handler : function() {
YxDepartmentInitAddObject.openPanel(departmentObject);
}
});
// 修改按钮,点击执行YxDepartmentInit_Update.js中的openPanel方法
updateButton = new Ext.Button({
text : '修改',
handler : function() {
var data = rowData;
if (null != data) {
YxDepartmentInitUpdateObject.openPanel(data,
departmentObject);
} else {
Ext.Msg.alert('提示','请选择一条可修改的信息!');
}
}
});
// 删除按钮,点击执行deleteCust方法
deleteButton = new Ext.Button({
text : '删除',
handler : function() {
var data = rowData;
if (null != data) {
Ext.MessageBox.confirm('警告', '您确定需要删除该条信息吗?',
function(btn) {
if ('yes' == btn) {
deleteCust();
}
});
} else {
Ext.Msg.alert('提示', '请选择一条可删除的信息!')
}
}
});
// 搜索框
searchField = new Ext.form.TextField({
name : 'likeName'
});
// 用来放gridPanel顶部工具栏中组件的数组
var array = [];
array.push(addButton);
array.push(updateButton);
array.push(deleteButton);
// 站位,将后面的组件顶到右边
array.push(new Ext.Toolbar.Fill());
array.push('单位名称: ');
array.push(searchField);
array.push({
text : '搜索',
handler : function() {
search();
}
}); cm.defaultSortable = false;
// 组装gridPanel
gridPanel = new Ext.grid.GridPanel({
ds : gridStore,
cm : cm,
sm : sm,
viewConfig : {
forceFit : true
// 当行大小变化时始终填充满
},
region : 'center',
// 遮罩过程中,页面元素不能被操作
loadMask : true,
// 顶部工具栏
tbar : array,
// 底部工具栏
bbar : new Ext.PagingToolbar({
pageSize : 20,
store : gridStore,
displayInfo : true,
/**
 * 不懂
 * 
 * @type String
 */
displayMsg : '显示第{0} 条到{1} 条记录,一共{2} 条',
emptyMsg : '没有记录'
}) });
gridStore.load({
params : {
start : 0,
limit : 20
}
});
// 单元格点击事件,出发onRowClick方法
gridPanel.on('cellclick', onRowClick)
disableButton();
return gridPanel;
}
function search() {
var likename = searchField.getValue();
gridStore.baseParams = {
likename : likename
}
refresh();
}
function disableButton() {
updateButton.disable();
deleteButton.disable();
}
function enableButton() {
updateButton.enable();
deleteButton.enable();
}
// 点击删除按钮后执行的方法
function deleteCust() {
var checkData = getCheckRows();
var ides = [];
if (null != checkData) {
// 遍历getCheckRows返回的数组数据,将其中每一条数据的deptId放到ides数组中
for (var i = 0; i < checkData.length; i++) {
ides.push(checkData[i].deptId);
}
} else {
return;
}
if (null != ides && 0 < ides.length) {
// 将ides数组传到后台delete.action中
Ext.Ajax.request({
url : YxDepartment_contextPath + '/yx/department/delete.action',
params : {
deptId : ides
},
failure : function(response, options) {
try {
var data = Ext.util.JSON.decode(response.responseText);
if (data.success === false) {
Ext.Msg.alert('提示', data.msg);
}
} catch (e) {
Ext.Msg.alert('提示', '系统异常');
}
},
/**
 * function的参数(response,options)和(form,action)有什么区别,response.responseText是什么,是后台传过来的json字符串吗?
 */
success : function(response, options) {
if (null != response && 0 < response.responseText.length) {
try {
var data = Ext.util.JSON
.decode(response.responseText);
if (data.success === true) {
refresh();
refreshTree();
/**
 * rowData是什么,没有定义过这个变量啊
 */
rowData = null;
} else if (data.success === false) {
Ext.Msg.alert('提示', data.msg);
}
} catch (e) {
Ext.Msg.alert('提示', '系统异常');
}
}
}
});
}
}
// 选中一行,得到一行的数据,以数组形式返回
function getCheckRows() {
var array = null;
try {
var tempArray = gridPanel.getSelectionModel().getSelections();
if (null != tempArray && 0 < tempArray.length) {
array = [];
for (var i = 0; i < tempArray.length; i++) {
array.push(tempArray[i].data);
}
}
} catch (e) {
}
return array;
}
/**
 * 为什么必须传四个参数,而只用到一个参数,各参数是什么意思
 * 
 * @param {}
 *            grid
 * @param {}
 *            rowIndex
 * @param {}
 *            columnIndex
 * @param {}
 *            e
 */
function onRowClick(grid, rowIndex, columnIndex, e) {
// var recordData = gridStore.getAt(rowIndex);
// rowData = getData(recordData);
/得到选中行的信息,然后是按钮可用/
rowData = getRow(rowIndex);
enableButton();
}
function getRow(rowIndex) {
/得到选中行的信息/
var recordData = gridStore.getAt(rowIndex);
return getData(recordData);
}
// 重置数据
function resetStore() {
departmentObject = null;
rowData = null;
gridStore.baseParams = {};
refresh();
}
// 刷新左边的树结构
function refreshTree() {
if (null != departmentObject) {
YxDepartmentInitLeftObject.refresh(departmentObject.departmentId);
} else {
YxDepartmentInitLeftObject.refresh();
}
}
// 刷新右面页面
function refresh(data) {
if (null != data) {
gridStore.baseParams = {
departmentId : data.id,
departmentName : data.name
};
departmentObject = {
departmentId : data.id,
departmentName : data.name
};
}
gridStore.removeAll();
gridPanel.store.load({
params : {
start : 0,
limit : 20
}
});
rowData = null;
} function getData(recordData) {
return recordData.data;
}
return {
getPanel : initGridPanel,
refresh : refresh,
resetStore : resetStore,
refreshTree : refreshTree
}
}
var YxDepartmentInitRightObject = new YxDepartmentInitRight();