///
///
//added by liuxc,2014-12-1
//此文件可用于存放EasyUI的公用JS方法,建议都给JS方法加上注释,Demo如下
$.messager.defaults.ok = "确定";
$.messager.defaults.cancel = "取消";
function OpenEasyUiDialog(url, iframeId, dlgTitle, dlgWidth, dlgHeight, dlgIcon, showBtns, okBtnFunc, okBtnFuncArgs, dockObj, dlgClosedFunc) {
///使用EasyUiDialog打开一个页面
///页面链接
///嵌套url页面的iframe的id,在okBtnFunc中,可以通过document.getElementById('eudlgframe').contentWindow获取该页面,然后直接调用该页面的方法,比如获取选中值
///Dialog标题
///Dialog宽度
///Dialog高度
///Dialog图标,必须是一个样式class
///Dialog下方是否显示“确定”“取消”按钮,如果显示,则后面的okBtnFunc参数要填写
///点击“确定”按钮调用的方法
///okBtnFunc方法使用的参数
///Dialog绑定的dom对象,随此dom对象有尺寸变化而变化,如:document.getElementById('mainDiv')
///窗体关闭调用的方法(注意:此方法中不能再调用dialog中页面的内容)
// var inIframe = window.frameElement != null && window.frameElement.nodeName == 'IFRAME',
// doc = inIframe ? window.parent.document : window.document;
var dlg = $('#eudlg');
var isTheFirst;
if (dlg.length == 0) {
isTheFirst = true;
var divDom = document.createElement('div');
divDom.setAttribute('id', 'eudlg');
document.body.appendChild(divDom);
dlg = $('#eudlg');
dlg.append("");
}
//此处为防止在一个页面使用多次此方法时,传进的iframeId不同,造成找不到非第一次创建的iframe的错误而设置的
//todo:此处暂时有问题,同一个页面调用此方法,传进的iframeId必须相同,否则会出现问题,此问题有待以后解决
// if ($('#' + iframeId).length == 0) {
// dlg.empty();
// dlg.append("");
// }
//处理定位外层容器尺寸变化事件
if (dockObj != null && dockObj != undefined) {
var dobj = $(dockObj);
dlgWidth = dobj.innerWidth() - 20;
dlgHeight = dobj.innerHeight() - 20;
if (isTheFirst) {
$(dockObj).resize(function () {
var obj = $(this);
$('#eudlg').dialog('resize', {
width: obj.innerWidth() - 20,
height: obj.innerHeight() - 40
});
});
}
}
dlg.dialog({
title: dlgTitle,
width: dlgWidth,
height: dlgHeight,
iconCls: dlgIcon,
resizable: true,
modal: true,
onClose: function () {
/*防止缓存,切换页面不能显示问题*/
$("#eudlg").remove();
if (dlgClosedFunc) {
dlgClosedFunc();
}
},
cache: false
});
if (showBtns && okBtnFunc) {
dlg.dialog({
buttons: [{
text: '确定',
handler: function () {
if (okBtnFunc(okBtnFuncArgs) == false) {
return;
}
dlg.dialog('close');
$('#' + iframeId).attr('src', '');
}
}, {
text: '取消',
handler: function () {
dlg.dialog('close');
$('#' + iframeId).attr('src', '');
}
}]
});
}
else {
dlg.dialog({
buttons: null,
onClose: function () {
dlg.find("iframe").attr('src', '');
if (dlgClosedFunc) {
dlgClosedFunc();
}
}
});
}
dlg.dialog('open');
$('#' + iframeId).attr('src', url);
}
function OpenEasyUiSampleEditDialog(editPropertyName, editType, oldValue, okBtnFunc, okBtnFuncArgs, isMultiLine, dlgIcon, dlgWidth, dlgHeight) {
///使用EasyUiDialog打开一个含有1个字段文本框的编辑页面
///当前编辑的字段中文名称
///编辑类型,比如:新建、编辑等
///编辑时,字段的旧文本值
///点击“确定”按钮调用的方法
///okBtnFunc方法使用的参数
///是否显示多行输入文本框
///Dialog图标,必须是一个样式class
///Dialog宽度
///Dialog高度
var dlgId = isMultiLine ? 'eumeditdlg' : 'eueditdlg',
dlgLableId = dlgId + 'label',
dlgTxtId = dlgId + 'txt',
dlg = $('#' + dlgId),
dw = dlgWidth || 300,
dh = dlgHeight || 120 + (isMultiLine ? 24 * 3 : 24),
tw = dw - 36,
th = dh - 120;
if (dlg.length == 0) {
var divDom = document.createElement('div');
divDom.setAttribute('id', dlgId);
document.body.appendChild(divDom);
dlg = $('#' + dlgId);
dlg.append("
请输入" + editPropertyName + ":
" +
"<" + (isMultiLine ? "textarea" : "input type='text'") + " id='" + dlgTxtId + "' style='width:" + tw + "px;height:" + th + "px;line-height:24px' />
");
//选中处理
$('#' + dlgTxtId).focus(function () {
this.select();
});
}
else {
$('#' + dlgLableId).text('请输入' + editPropertyName);
$('#' + dlgTxtId).css('width', tw + 'px').css('height', th + 'px');
}
if (oldValue) {
$('#' + dlgTxtId).val(oldValue);
}
dlg.dialog({
title: editType + editPropertyName,
width: dw,
height: dh,
iconCls: dlgIcon,
resizable: false,
modal: true,
buttons: [{
text: '确定',
handler: function () {
if (okBtnFunc) {
if (okBtnFunc($('#' + dlgTxtId).val(), okBtnFuncArgs) == false) {
$('#' + dlgTxtId).focus();
return;
}
dlg.dialog('close');
$('#' + dlgTxtId).val('');
}
}
}, {
text: '取消',
handler: function () {
dlg.dialog('close');
$('#' + dlgTxtId).val('');
}
}]
});
dlg.dialog('open');
$('#' + dlgTxtId).focus();
}
function OpenEasyUiDialogForSingleHtml(url, dlgTitle, dlgWidth, dlgHeight, dlgIcon, showBtns, okBtnFunc, okBtnFuncArgs) {
///使用EasyUiDialog打开一个页面
///页面链接
///Dialog标题
///Dialog宽度
///Dialog高度
///Dialog图标,必须是一个样式class
///Dialog下方是否显示“确定”“取消”按钮,如果显示,则后面的okBtnFunc参数要填写
///点击“确定”按钮调用的方法
///okBtnFunc方法使用的参数
var dlg = $('#euhtmldlg');
var isTheFirst;
if (dlg.length == 0) {
isTheFirst = true;
var divDom = document.createElement('div');
divDom.setAttribute('id', 'euhtmldlg');
document.body.appendChild(divDom);
dlg = $('#euhtmldlg');
}
dlg.dialog({
title: dlgTitle,
width: dlgWidth || 800,
height: dlgHeight || 495,
iconCls: dlgIcon,
resizable: true,
modal: true,
href: url,
cache: false
});
if (showBtns && okBtnFunc) {
dlg.dialog({
buttons: [{
text: '确定',
iconCls: 'icon-save',
handler: function () {
okBtnFunc(okBtnFuncArgs)
dlg.dialog('close');
//dlg.dialog({ href: '' });
}
}, {
text: '取消',
iconCls: 'icon-cancel',
handler: function () {
dlg.dialog('close');
//dlg.dialog({ href: '' });
}
}]
});
}
else {
dlg.dialog({
buttons: null,
onClose: function () {
//dlg.dialog({ href: '' });
}
});
}
dlg.dialog('open');
}
function OpenEasyUiConfirm(msg, okBtnFunc, okBtnFuncArgs) {
///打开EasyUiConfirm确认框
///确认消息
///点击“确定”按钮调用的方法
///okBtnFunc方法使用的参数
$.messager.confirm('询问', msg, function (r) {
if (r && okBtnFunc) {
okBtnFunc(okBtnFuncArgs);
}
});
}
function EasyUiMenuShowForCheckedItems(menuid, itemChecks) {
///EasyUi Menu中的checkbox项的显示菜单状态处理方法
///menu的id
///各checkbox item的选中信息,格式[{id:'各checkbox item id',checked:true},...]
var menu = $('#' + menuid)[0];
$.each(itemChecks, function () {
$('#' + menuid).menu('setIcon', { target: $('#' + this.id)[0], iconCls: this.checked ? 'icon-ok' : 'icon-xxxx' });
});
}
function EasyUiCheckedMenuItemClick(menuid, checkitemid) {
///EasyUi Menu中的checkbox项的按钮选中/取消选中单击处理方法,此处checkbox项是一个虚拟的,本身easyui中不存在
///menu的id
///复选项的itemid
var item = $('#' + menuid).menu('getItem', $('#' + checkitemid)[0]),
newIconCls = 'icon-xxxx';
if (!item.iconCls || item.iconCls != 'icon-ok') {
newIconCls = 'icon-ok';
}
$('#' + menuid).menu('setIcon', { target: $('#' + checkitemid)[0], iconCls: newIconCls });
}
function EasyUiMenuItemsCheckOnlyOne(menuid, submenuid, checkitemid, groupItemIdPrefix) {
///操作EasyUi Menu中的多checkbox项选一项的处理方法,要求这多个item的id前缀一致
///menu的id
///如果这些项处于menu的一个子级菜单中,请填写这个子级菜单项的项级item的id
///中选中项的itemid
///id前缀
var menu = submenuid ? $('#' + submenuid)[0] : $('#' + menuid)[0];
for (var i = 0, j = menu.children.length; i < j; i++) {
if (menu.children[i].className.indexOf('menu-item') == -1) continue;
if (menu.children[i].id == checkitemid) {
$('#' + menuid).menu('setIcon', { target: menu.children[i], iconCls: 'icon-ok' });
}
else if(groupItemIdPrefix && menu.children[i].id.length > groupItemIdPrefix.length && menu.children[i].id.substr(0, groupItemIdPrefix.length) == groupItemIdPrefix) {
$('#' + menuid).menu('setIcon', { target: menu.children[i], iconCls: 'icon-xxxx' }); //此处的icon-xxxx本身是不存在的,但如果此处不写的话,easyui的设置图标方法会神经性的失效,原因不明
}
}
}