filterResult = { catalogType: null, locName: "全部位置", alarmClassName: "全部时效", alarmClasses: null, // 时效 afName: "全部状态", af: null, prId: '' }; /** * 为按钮绑定点击事件 * @param {zepto object} buttons */ function bindSwitchButtonEvent(buttons) { for (var i = 0; i < buttons.length; i++) { var btn = $(buttons[i]); btn.on('touchend', switchButtonClicked); } } /** * 单选按钮被点击 */ function switchButtonClicked() { var sender = $(this); var brothers = sender.parent().children(); for (var i = 0; i < brothers.length; i++) { var inputElement = $(brothers[i]); inputElement.removeClass("btn-highlight"); } sender.addClass("btn-highlight"); var groupName = sender.attr('group'); switch (groupName) { case "loc": locationButton_clicked(sender); break; case "type": alarmTypeButton_clicked(sender); break; case "process": processButton_clicked(sender); break; case "pr": prButton_clicked(sender); break; default: break; } } // 配电室选择 function prButton_clicked(sender) { var pridvalue = sender.attr("pridvalue"); if (pridvalue < 0) { filterResult.prId = ""; } else { filterResult.prId = pridvalue; } } /** * 用户点击了位置按钮 * @param {zepto object} sender */ function locationButton_clicked(sender) { var locvalue = sender.attr("locvalue"); if (locvalue < 0) { filterResult.locName = "全部位置"; filterResult.catalogType = null; } else { filterResult.locName = sender.attr("value"); filterResult.catalogType = locvalue; } } /** * 用户点击了报警类型按钮 * @param {zepto object} sender */ function alarmTypeButton_clicked(sender) { var tpvalue = sender.attr("tpvalue"); if (tpvalue < 0) { filterResult.alarmClassName = "全部时效"; filterResult.alarmClasses = null; } else { filterResult.alarmClassName = sender.attr("value"); filterResult.alarmClasses = tpvalue; } } /** * 用户点击了处理状态按钮 * @param {zepto object} sender */ function processButton_clicked(sender) { var psvalue = sender.attr("psvalue"); if (psvalue < 0) { filterResult.afName = "全部状态"; filterResult.af = null; } else { filterResult.afName = sender.attr("value"); filterResult.af = psvalue; } } /** * 用户点击了确定按钮 */ function btOk_clicked() { sendResult(); api.closeDrawerPane(); } /** * 用户点击了取消按钮 */ function btCancel_clicked() { api.closeDrawerPane(); } /** * 向主窗体发送筛选条件 */ function sendResult() { api.sendEvent({ name: 'filterSelectionChanged', extra: filterResult }); } apiready = function () { // 解决iphonex底部标签栏被虚拟home键遮挡 $api.fixTabBar($api.byId('footer')); var ctrl = { init: {}, bind: {} } ctrl.bind = function () { //为位置和类型绑定事件 bindSwitchButtonEvent($("#location-group").children()); bindSwitchButtonEvent($("#type-group").children()); bindSwitchButtonEvent($("#process-group").children()); //为确定和取消绑定事件 $("#btn-cancel").on("touchend", btCancel_clicked); $("#btn-ok").on("touchend", btOk_clicked); } ctrl.init = function () { ctrl.employeeId = $api.getStorage('employeeId'); ctrl.roleId = $api.getStorage('roleId'); ctrl.prListDom = $('#pr-group'); if (!$api.getStorage('isEmployee')) { $('.pr').hide(); }; ctrl.bind(); ctrl.getPrList(); } // 获取配电室列表 ctrl.getPrList = function() { var url = '/ems/rest/power/room/list'; var data = { employeeId: ctrl.employeeId, roleId: ctrl.roleId } api.showProgress({ title: '载入中...', text: '请稍后', modal: false }); $api.get(url, data, function(res, err) { api.hideProgress(); if (err) { ctrl.toast("网络请求失败"); } else { if (!res.code || res.code != "200" || !res.body) { ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : "")); } else { ctrl.renderPrList(res.body); } } }); }; ctrl.renderPrList = function (prListData) { var len = prListData.length; var temp = ''; ctrl.prListDom.empty(); for (var i = 0; i < len; i++) { var prItem = prListData[i]; var domStr = ''; domStr += ''; domStr = domStr.replace("{prId}", prItem.prId) .replace("{prName}", prItem.prName); temp += domStr; } ctrl.prListDom.append(temp); bindSwitchButtonEvent($("#pr-group").children()); }; ctrl.init(); }