/** * 清除全局ajax缓存 */ $.ajaxSetup({ cache: false}); /** * 常用辅助脚本 */ var alertPrefix; var theDataGrid; var curr_func; var curr_callback = null; var curr_selected; var curr_actionUrl; var dialogDiv; var waitingBar; var dialogFrame; var dialogDiv1; var dialogFrame1; var theFrom, parentDialog, parentDataGrid; var issubmited = false; function initCommonJS() { alertPrefix = "<br>"; actionDiv = $("<div></div>"); actionContent = $("<div></div>"); actionContent.appendTo(actionDiv); actionDiv.dialog({ closed: true, title: "提示", width: 250, height: 130, modal: true, buttons: [{ text: '确定', iconCls: 'icon-ok', handler: function() { $.post(curr_actionUrl, {}, function(result) { if (result == "success") { theDataGrid.datagrid("reload"); if (curr_callback != null) { curr_callback(result); } } else { alertMsg(result); } }); actionDiv.dialog("close"); } }, { text: '取消', iconCls: 'icon-cancel', handler: function() { actionDiv.dialog("close"); } }], onOpen: function() { $(this).dialog('move', { top: ($(window).height() - $(this).panel('panel').outerHeight()) / 2 + $(document).scrollTop() }); } }); dialogDiv = $('<div></div>'); dialogFrame = $('<iframe id="dialogFrame" src="" frameborder="0" width="100%" height="100%" />'); dialogFrame.appendTo(dialogDiv); dialogDiv.dialog({ closed: true, resizable: true, modal: true, buttons: [{ text: '确定', iconCls: 'icon-ok', handler: function() { //alert(issubmited); if (!issubmited) { issubmited = true; $("#dialogFrame")[0].contentWindow.submitForm(dialogDiv, theDataGrid, curr_callback); } } }, { text: '取消', iconCls: 'icon-cancel', handler: function() { dialogDiv.dialog("close"); } }], onClose: function() { dialogFrame.attr('src', ''); }, onOpen: function() { $(this).dialog('move', { top: ($(window).height() - $(this).panel('panel').outerHeight()) / 2 + $(document).scrollTop() }); } }); dialogDiv1 = $("<div></div>"); dialogFrame1 = $('<iframe id="openUrlFrame" name="openUrlFrame" src="" frameborder="0" width="100%" height="100%" />'); dialogFrame1.appendTo(dialogDiv1); dialogDiv1.dialog({ closed: true, resizable: true, modal: true, onClose: function() { dialogFrame1.attr('src', ''); }, onOpen: function() { $(this).dialog('move', { top: ($(window).height() - $(this).panel('panel').outerHeight()) / 2 + $(document).scrollTop() }); } }); waitingBar = $("<div></div>"); $('<div style="padding: 0 20px;"><table width="100%" align="center" cellspacing="0" cellpadding="0" border="0"><tr><td height="16px"></td></tr><tr><td><span id=\'wb_tipMsg\'>程序处理中...</span></td></tr><tr><td height="8px"></td></tr><tr><td height="20px" class="waitingbar-image"></td></tr></table></div>').appendTo(waitingBar); waitingBar.window({ title: '请稍等', width: 280, closed: true, minimizable: false, collapsible: false, maximizable: false, resizable: false, closable: false, modal: true, shadow: true, height: 110 }); } function openWaitingBar() { $("#wb_tipMsg").html('程序处理中...'); waitingBar.window('open'); } function openWaitingBar(tipMsg) { $("#wb_tipMsg").html(tipMsg); waitingBar.window('open'); } function closeWaitingBar() { $("#wb_tipMsg").html('程序处理中...'); waitingBar.window('close'); } function changeWaitingBarProgress(progressMsg) { $("#wb_tipMsg").html(progressMsg); } function getSelectSomeAlert(actName, objName) { return alertPrefix + "请先选择将要" + actName + "的" + objName + "!"; } function getSelectOneAlert(actName, objName) { return alertPrefix + "只能选择一个" + objName + "!"; } function getConfirmAlert(actName, objName) { return alertPrefix + "确认" + actName + "选中的" + objName + "!"; } function getConfirmAlert1(actName) { return alertPrefix + "确认" + actName + "!"; } function checkSelectOneOpenUrl(gridName, url, width, height, actName, objName, callback) { width = verifyWidth(width); height = verifyHeight(height); issubmited = false; var rows = $(gridName).datagrid('getSelections'); theDataGrid = $(gridName); if (callback) { curr_callback = callback; } else { curr_callback = null; } if (rows.length == 0) { $.messager.alert("提示", getSelectSomeAlert(actName, objName), "warning"); } else { if (rows.length > 1) { $.messager.alert("提示", getSelectOneAlert(actName, objName), "warning"); } else { var id = rows[0].id; if (url.indexOf("?") != -1) { url += "&id=" + id + "&t=" + Math.random(); } else { url += "?id=" + id + "&t=" + Math.random(); } dialogFrame.attr("src", url); dialogDiv.dialog({ title: actName + objName, width: width, height: height, top: getScrollTop() + 10, modal: true }); dialogDiv.dialog("open"); } } } function checkSelectSomeOpenUrl(gridName, url, width, height, actName, objName, callback) { width = verifyWidth(width); height = verifyHeight(height); issubmited = false; var rows = $(gridName).datagrid('getSelections'); if (callback) { curr_callback = callback; } else { curr_callback = null; } theDataGrid = $(gridName); if (rows.length == 0) { $.messager.alert(actName + "提示:", getSelectSomeAlert(actName, objName), "warning"); } else { var ids = ""; var arrId = []; for (i = 0; i < rows.length; i++) { arrId.push(rows[i].id); } ids = arrId.join(","); if (url.indexOf("?") != -1) { url += "&selectedIds=" + ids + "&t=" + Math.random(); } else { url += "?selectedIds=" + ids + "&t=" + Math.random(); } dialogFrame.attr("src", url); dialogDiv.dialog({ title: actName + objName, width: width, height: height, top: getScrollTop() + 10, modal: true }); dialogDiv.dialog("open"); } } function checkOpenUrl(gridName, url, width, height, actName, objName, callback) { width = verifyWidth(width); height = verifyHeight(height); issubmited = false; theDataGrid = $(gridName); if (callback) { curr_callback = callback; } else { curr_callback = null; } if (url.indexOf("?") != -1) { url += "&t=" + Math.random(); } else { url += "?t=" + Math.random(); } dialogFrame.attr("src", url); dialogDiv.dialog({ title: actName + objName, width: width, height: height, top: getScrollTop() + 10, modal: true }); dialogDiv.dialog("open"); } function openUrl(gridName, url, width, height, actName, objName, callback) { width = verifyWidth(width); height = verifyHeight(height); issubmited = false; theDataGrid = $(gridName); if (callback) { curr_callback = callback; } else { curr_callback = null; } if (url.indexOf("?") != -1) { url += "&t=" + Math.random(); } else { url += "?t=" + Math.random(); } dialogFrame1.attr("src", url); dialogDiv1.dialog({ title: actName + objName, width: width, height: height, top: getScrollTop() + 10, modal: true }); dialogDiv1.dialog("open"); } function openUrlWithMaxWindow(gridName, url, actName, objName, callback) { var width = $(document.body).width() - 20; var height = $(document.body).height() - 20; openUrl(gridName, url, width, height, actName, objName, callback); } /** * public 关闭divDialog 模式窗口 * 统一关闭方法,关闭openUrl()方法打开的divDialog 模式窗口 */ function closeUrl() { dialogDiv1.dialog("close"); } function checkSelectOneDoFunc(gridName, actName, objName, func, requireConfirm, callback) { var rows = $(gridName).datagrid('getSelections'); if (callback) { curr_callback = callback; } else { curr_callback = null; } if (rows.length == 0) { $.messager.alert(actName + "提示:", getSelectSomeAlert(actName, objName), "warning"); } else { if (rows.length > 1) { $.messager.alert(actName + "提示:", getSelectOneAlert(actName, objName), "warning"); } else { var id = rows[0].id; curr_func = func; curr_selected = id; if (requireConfirm) { $.messager.confirm("确认", getConfirmAlert(actName, objName), function(r) { if (r) { curr_func(curr_selected); } }); } else { curr_func(curr_selected); } } } } function checkSelectOneDoAction(gridName, actName, objName, actionUrl, requireConfirm, callback) { var rows = $(gridName).datagrid('getSelections'); theDataGrid = $(gridName); if (callback) { curr_callback = callback; } else { curr_callback = null; } if (rows.length == 0) { $.messager.alert(actName + "提示:", getSelectSomeAlert(actName, objName), "warning"); } else { if (rows.length > 1) { $.messager.alert(actName + "提示:", getSelectOneAlert(actName, objName), "warning"); } else { var id = rows[0].id; if (actionUrl.indexOf("?") != -1) { curr_actionUrl = actionUrl + "&id=" + id + "&t=" + Math.random(); } else { curr_actionUrl = actionUrl + "?id=" + id + "&t=" + Math.random(); } if (requireConfirm) { /*actionContent.html(getConfirmAlert(actName,objName)); actionDiv.dialog({top:getScrollTop()+50}); actionDiv.dialog("open");*/ $.messager.confirm(actName + "确认", getConfirmAlert(actName, objName), function(r) { if (r) { //确认操作 doPostAction(curr_actionUrl, gridName, curr_callback); } }); } else { /*jzhou *$.post(curr_actionUrl, {}, function(result) { if (result == "success") { $(gridName).datagrid("reload"); if (curr_callback != null){ curr_callback(result); } } else { alertMsg(result); } });*/ //不提醒 直接操作 doPostAction(curr_actionUrl, gridName, curr_callback); } } } } function checkSelectSomeDoFunc(gridName, actName, objName, func, requireConfirm, callback) { var rows = $(gridName).datagrid('getSelections'); if (callback) { curr_callback = callback; } else { curr_callback = null; } if (rows.length == 0) { $.messager.alert("提示", getSelectSomeAlert(actName, objName), "warning"); } else { var ids = ""; var arrId = []; for (i = 0; i < rows.length; i++) { arrId.push(rows[i].id); } ids = arrId.join(","); curr_func = func; curr_selected = ids; if (requireConfirm) { $.messager.confirm("确认", getConfirmAlert(actName, objName), function(r) { if (r) { curr_func(curr_selected); } }); } else { curr_func(curr_selected); } } } function checkSelectSomeDoAction(gridName, actName, objName, actionUrl, requireConfirm, callback) { theDataGrid = $(gridName); var rows = $(gridName).datagrid('getSelections'); if (callback) { curr_callback = callback; } else { curr_callback = null; } if (rows.length == 0) { $.messager.alert("提示", getSelectSomeAlert(actName, objName), "warning"); } else { var ids = ""; var arrId = []; for (i = 0; i < rows.length; i++) { arrId.push(rows[i].id); } ids = arrId.join(","); if (actionUrl.indexOf("?") != -1) { curr_actionUrl = actionUrl + "&selectedIds=" + ids + "&t=" + Math.random(); } else { curr_actionUrl = actionUrl + "?selectedIds=" + ids + "&t=" + Math.random(); } if (requireConfirm) { $.messager.confirm("确认", getConfirmAlert(actName, objName), function(r) { if (r) { openWaitingBar(); $.post(curr_actionUrl, {}, function(result) { closeWaitingBar(); if (result == "success") { $(gridName).datagrid("reload"); if (curr_callback != null) { curr_callback(result); } } else { alertMsg(result); } }); } }); } else { if (!window.parent.issubmited) { openWaitingBar(); $.post(curr_actionUrl, {}, function(result) { closeWaitingBar(); if (result == "success") { window.parent.issubmited = true; $(gridName).datagrid("reload"); if (curr_callback != null) { curr_callback(result); } } else { window.parent.issubmited = false; alertMsg(result); } }); } } } } function setVal() { window.parent.issubmited = false; } function gridDoAction(gridName, actName, objName, actionUrl, requireConfirm, callback) { theDataGrid = $(gridName); if (callback) { curr_callback = callback; } else { curr_callback = null; } if (actionUrl.indexOf("?") != -1) { curr_actionUrl = actionUrl + "&t=" + Math.random(); } else { curr_actionUrl = actionUrl + "?t=" + Math.random(); } if (requireConfirm) { $.messager.confirm("确认", getConfirmAlert(actName, objName), function(r) { if (r) { $.post(curr_actionUrl, {}, function(result) { if (result == "success") { $(gridName).datagrid("reload"); if (curr_callback != null) { curr_callback(result); } } else { alertMsg(result); } }); } }); } else { $.post(curr_actionUrl, {}, function(result) { if (result == "success") { $(gridName).datagrid("reload"); if (curr_callback != null) { curr_callback(result); } } else { alertMsg(result); } }); } } function checkDoFunc(actName, func, requireConfirm, callback) { curr_func = func; if (callback) { curr_callback = callback; } else { curr_callback = null; } if (requireConfirm) { $.messager.confirm("确认", getConfirmAlert1(actName), function(r) { if (r) { curr_func(); } }); } else { curr_func(); } } function getScrollTop() { return $(parent.window.parent.window.parent.window.parent.document).scrollTop(); } $(document).ready(function() { initCommonJS(); if ($("#fm")[0]) { initForm("#fm"); } }); function initForm(fm) { theForm = $(fm); theForm.form({ onSubmit: function() { var validateStr = theForm.attr('validate'); var result = true; if (validateStr) { result = eval(validateStr); } if (!result) { if (window.parent) { window.parent.issubmited = false; } return false; } if (!$(this).form("validate")) { if (window.parent) { window.parent.issubmited = false; } return false; } openWaitingBar(); return true; }, success: function(result) { closeWaitingBar(); if (jQuery.trim(result) != "success") { alertMsg(result); } else { if (parentDataGrid != null) { parentDataGrid.datagrid("reload"); } if (curr_callback != null) { curr_callback(result); } try { parentDialog.dialog("close"); } catch (e) { try { parentDialog.close(); } catch (e) { } } } if (window.parent) { window.parent.issubmited = false; } }, error: function() { closeWaitingBar(); alertMsg(alertPrefix + "保存表单失败!"); issubmited = false; } }); } function submitForm(theDialog, theDataGrid, callback) { parentDialog = theDialog; parentDataGrid = theDataGrid; curr_callback = callback; theForm.submit(); } /** * public 操作验证 * 验证执行操作的Url * @param actName 操作名称 * @param objName 操作对象名称 * @param actionUrl 操作提交地址 * @param requireConfirm 是否确认 true or false * @param nextFun 执行成功后调用的函数 */ function checkDoAction(actName, objName, actionUrl, requireConfirm, nextFun) { if (requireConfirm) { $.messager.confirm(actName + "确认", getConfirmAlert(actName, objName), function(r) { if (r) { openWaitingBar(); $.ajax({ type: "POST", url: actionUrl, success: function(result) { closeWaitingBar(); if (result == "success") { var msg = "{'title':'提示','msg':'" + actName + objName + "成功!','icon':'info','fn':'" + nextFun + "'}"; alertMsg(msg); } else { alertMsg(result); } }, error: function() { closeWaitingBar(); alertMsg(alertPrefix + "请求" + actName + objName + "失败!"); } }); } }); } else { openWaitingBar(); $.ajax({ type: "POST", url: actionUrl, success: function(result) { closeWaitingBar(); if (result == "success") { var msg = "{'title':'提示','msg':'" + actName + objName + "成功!','icon':'info','fn':'" + nextFun + "'}"; alertMsg(msg); } else { alertMsg(result); } }, error: function() { closeWaitingBar(); alertMsg(alertPrefix + "请求" + actName + objName + "失败!"); } }); } } /** * public 提交验证 * 提交操作前,提醒是否操作 requireConfirm = true则提醒,否则不提醒 * nextFun 操作成功后执行的函数 * @param actName 操作名称 * @param objName 操作对象名称 * @param formName 表单名 * @param requireConfirm 是否确认 true,false * @param nextFun 操作成功后执行的函数 */ function checkSubmitForm(actName, objName, formName, requireConfirm, nextFun) { $(formName).form({ onSubmit: function() { if ($(this).form("validate")) { openWaitingBar(); return true; } else { return false; } }, success: function(result) { closeWaitingBar(); if (jQuery.trim(result) != "success") { alertMsg(result); } else { var msg = "{'title':'提示','msg':'" + actName + objName + "成功!','icon':'info','fn':'" + nextFun + "'}"; alertMsg(msg); } } }); if (requireConfirm) { $.messager.confirm('确认', alertPrefix + "确认" + actName + "选中的" + objName + "!", function(r) { if (r) { $(formName).submit(); } }); } else { $(formName).submit(); } } /** * private Ajax提交操作 * @param actionUrl 提交Url地址 * @param gridName 刷新DataGrid的Id * @param curr_callback 回调函数 */ function doPostAction(actionUrl, gridName, curr_callback) { $.post(actionUrl, {}, function(result) { if (result == "success") { $(gridName).datagrid("reload"); if (curr_callback != null) { curr_callback(result); } } else { alertMsg(result); } }); } /** * public $.messager.alert确定提示框 * jsonOrStrResult :{'title':'错误提示','msg':'错误消息','icon':'question','fn':''} 或 错误消息 * title : The title text to be showed on header panel * msg : The message text to be showed * icon : The icon image to be showed. Available value are: error,question,info,warning * fn : The callback function triggered when window closed * @param jsonOrStrResult json值或字符串 */ function alertMsg(jsonOrStrResult) { try { var jsonResult = eval("[" + jsonOrStrResult + "]"); var fn = function() { if (jsonResult[0].fn != undefined) { eval(jsonResult[0].fn); } } $.messager.alert(jsonResult[0].title, alertPrefix + jsonResult[0].msg, jsonResult[0].icon, fn); } catch (ex) { $.messager.alert("提示:", jsonOrStrResult, "error"); } } /** * private 验证进度条是否处于打开状态 */ var progressBarIsOpen = false; /** * public 默认打开进度条 * 打开进度条 * openMsgProgress("open"); * 关闭进度条 * openMsgProgress("close"); * @param args : close|open 默认open * @param modal : 定义窗口是不是模态窗口 extend panel * @param title : 显示标题 extend panel * @param msg : 上传消息 extend message * @param text : 进度条显示文字的模板 {value}% extend progressbar * @param interval : 每次刷新间隔 毫秒 默认 300毫秒 */ function openProgressBar(args, modal, title, msg, text, interval) { if (typeof args == "string" && args == "close") { if (progressBarIsOpen) { progressBarIsOpen = false; } else { return; } } if (progressBarIsOpen && typeof args == "string" && args == "open") { progressBarIsOpen = false; alert("出错:脚本多次open调用,请检查!"); return; } if (typeof modal != "boolean" || modal == "") { modal = true; } var _1e = $.extend({ title: title, msg: msg, text: text, interval: interval }, args || {}); if (typeof args == "string" && args == "close") { var win = $("body>div.messager-window>div.messager-body"); if (win.length) { if (win[0].timer) { clearInterval(win[0].timer); } win.window("close"); } return; } var _21 = "<div class=\"messager-progress\"><div class=\"messager-p-bar\"></div><div class=\"messager-p-msg\"></div></div>"; var win = openProgressBar_b(_1e.title, _21, null, modal); if (_1e.msg != "") { win.find("div.messager-p-msg").html(_1e.msg); } var bar = win.find("div.messager-p-bar"); bar.progressbar({ text: _1e.text }); win.window({ closable: false }); if (_1e.interval == null) { _1e.interval = 300; } if (_1e.interval) { win[0].timer = setInterval(function() { var v = bar.progressbar("getValue"); v += Math.floor(Math.random() * 10); if (v > 100) { v = 0; } bar.progressbar("setValue", v); }, _1e.interval); } } /** * private 创建进度条函数 * @param _c : 进度条标题 * @param _d : 进度条div * @param _e : 是否可以取消 true,false * @param _g : 是否为模式窗口 */ function openProgressBar_b(_c, _d, _e, _g) { progressBarIsOpen = true; var _f = $("<div class=\"messager-body\"></div>").appendTo("body"); _f.append(_d); _f.window({ title: _c, noheader: (_c ? false : true), width: 300, height: "auto", modal: _g, collapsible: false, minimizable: false, maximizable: false, resizable: false, draggable: false, onClose: function() { setTimeout(function() { _f.window("destroy"); }, 1000); } }); _f.window("window").addClass("messager-window"); _f.children("div.messager-button").children("a:first").focus(); return _f; } /** * public 打开一个空divDialog 模式窗口 * 只能选择一个选项 * @param gridName 当前页面DataGrid的Id * @param url 要打开的url地址 * @param width 窗口宽度 * @param height 窗口高度 * @param actName 操作名称 * @param objName 对象名称 */ function checkSelectOneOpenWindow(gridName, url, width, height, actName, objName) { width = verifyWidth(width); height = verifyHeight(height); issubmited = false; var rows = $(gridName).datagrid('getSelections'); theDataGrid = $(gridName); if (rows.length == 0) { $.messager.alert("提示:", getSelectSomeAlert(actName, objName), "warning"); } else { if (rows.length > 1) { $.messager.alert("提示:", getSelectOneAlert(actName, objName), "warning"); } else { var id = rows[0].id; if (url.indexOf("?") != -1) { url += "&id=" + id + "&t=" + Math.random(); } else { url += "?id=" + id + "&t=" + Math.random(); } dialogFrame1.attr("src", url); dialogDiv1.dialog({ title: actName + objName, width: width, height: height, modal: true }); dialogDiv1.dialog("open"); } } } /** * public 打开一个空divDialog 模式窗口 * 只能选择一个选项 * @param gridName 当前页面DataGrid的Id * @param url 要打开的url地址 * @param width 窗口宽度 * @param height 窗口高度 * @param actName 操作名称 * @param objName 对象名称 */ function checkSelectSomeOpenWindow(gridName, url, width, height, actName, objName) { width = verifyWidth(width); height = verifyHeight(height); issubmited = false; var rows = $(gridName).datagrid('getSelections'); theDataGrid = $(gridName); if (rows.length == 0) { $.messager.alert("提示:", getSelectSomeAlert(actName, objName), "warning"); } else { var ids = ""; var arrId = []; for (i = 0; i < rows.length; i++) { arrId.push(rows[i].id); } ids = arrId.join(","); if (url.indexOf("?") != -1) { url += "&selectedIds=" + ids + "&t=" + Math.random(); } else { url += "?selectedIds=" + ids + "&t=" + Math.random(); } dialogFrame1.attr("src", url); dialogDiv1.dialog({ title: actName + objName, width: width, height: height, modal: true }); dialogDiv1.dialog("open"); } } function checkSelectOneOpenMaxWindow(gridName, url, actName, objName) { var width = $(document.body).width() - 20; var height = $(document.body).height() - 20; checkSelectOneOpenWindow(gridName, url, width, height, actName, objName); } function openFullScreen(url, title) { var width = (screen.availWidth - 10) + "px"; var height = (screen.availHeight - 50) + "px"; var leftm = 0; var topm = 0; var args = "toolbar=0,location=0,maximize=1,directories=0,status=0,menubar=0,scrollbars=0, resizable=1,left=" + leftm + ",top=" + topm + ", width=" + width + ", height=" + height; var w = window.open(url, title, args); if (!w) { $.messager.alert("发现弹出窗口被阻止,请更改浏览器设置,以便正常使用本功能!"); return; } } function openWindow(url, width, height, actName, objName, callback) { width = verifyWidth(width); height = verifyHeight(height); if (callback) { curr_callback = callback; } else { curr_callback = null; } if (url.indexOf("?") != -1) { url += "&t=" + Math.random(); } else { url += "?t=" + Math.random(); } dialogFrame1.attr("src", url); dialogDiv1.dialog({ title: actName + objName, width: width, height: height, top: getScrollTop() + 10 }); //编辑器不支持这个属性,trycatch掉 try{ dialogDiv1.window('center'); }catch(e){ } dialogDiv1.dialog("open"); } function openMaxWindow(url, actName, objName, callback) { var width = $(document.body).width() - 20; var height = $(document.body).height() - 20; openWindow(url, width, height, actName, objName, callback); } function verifyWidth(width) { var maxWidth = $(document.body).width() - 20; if (width > maxWidth) { return maxWidth; } else { return width; } } function verifyHeight(height) { var maxHeight = $(document).height() - 20; if (height > maxHeight) { return maxHeight; } else { return height; } }