最近几天在维护设备管理模块下的一个前台页面时,觉得部分代码逻辑有些混乱,其实一些重复的代码可以抽取出来封在一个函数里.一些校验的工作具有普遍性,也可以把这部分抽取出来.比如"灰"掉多个grid控件的操作按钮和复位,比如"灰"掉表单的所有控件和复位.
//抽取可重用的代码,复位
var _reset = {
ms_grid: function (state) {
var _temp;
for (var i = 0; i < obj_frame.children.length; i++) {
_temp = obj_frame.children[i];
if (_temp.type === "grid" || _temp.type === "editGrid") {
for (var p in _temp.tbar) {
if (_temp.tbar[p].text) {
var bt = _temp.getButton(_temp.tbar[p].text);
bt.toggle(true, true);
state && bt[state]();
}
}
}
}
},
ms_form: function (state) {
var _temp;
for (var i = 0; i < obj_frame.children.length; i++) {
_temp = obj_frame.children[i];
if (_temp.type === "form") {
for (var p in _temp.layout[0].items) {
_temp.layout[0].items[p].name && $(_temp.layout[0].items[p].name)[state]();
}
}
}
},
ms_query: function () {
var _temp = true;
var _arr = [obj_date, obj_class, obj_post];
for (var i = 0; i < _arr.length; i++) {
if (_arr[i].getValue && _arr[i].getValue() === "") _temp = false;
}
if (_temp) {
Sail.postData("http://www.cnblogs.com/../DataMap?funcname=listMaintainmanchangerec&sysFlag=1", {
maintainmanchangerecRecdate: obj_date.getValue(),
maintainmanchangerecPost: obj_post.getValue(),
workteam: obj_class.getValue()
}, function (flag, getData) {
if (flag == "true") {
if (getData.dataset.totalRecords == '0') {
$('责任维修').setData('', '');
$('交接人').setData('', '');
return;
}
var retMap = getData.dataset.maintainmanchangerecvo;
if (retMap.dutyman) {
$('责任维修').setData(retMap.dutyman, retMap.dutymanName);
} else {
$('责任维修').setData('', '');
}
if (retMap.transferman) {
$('交接人').setData(retMap.transferman, retMap.transfermanName);
} else {
$('交接人').setData('', '');
}
}
else {
Ext.Msg.alert("警告!", getData.dataset.response.content);
}
});
}
}
};
根据业务要求还可以扩展出许多有趣的功能哦!
看看下面什么调用吧:
obj_class.on('aftersetvalue', function (combox, record, text, value) {
_reset.ms_query();
});
obj_post.on('aftersetvalue', function (combox, record, text, value) {
_reset.ms_query();
});
obj_date.on('aftersetvalue', function (combox, record, text, value) {
_reset.ms_query();
});
obj_form.addButtonHandler('重置', function () {
_reset.ms_form("enable");
_reset.ms_grid("disable");
});
浙公网安备 33010602011771号