73 lines
3.3 KiB
JavaScript
73 lines
3.3 KiB
JavaScript
|
require(['../addons/bootstrapcontextmenu/js/bootstrap-contextmenu'], function (undefined) {
|
||
|
if (Config.controllername == 'index' && Config.actionname == 'index') {
|
||
|
$("body").append(
|
||
|
'<div id="context-menu">' +
|
||
|
'<ul class="dropdown-menu" role="menu">' +
|
||
|
'<li><a tabindex="-1" data-operate="refresh"><i class="fa fa-refresh fa-fw"></i>刷新</a></li>' +
|
||
|
'<li><a tabindex="-1" data-operate="refreshTable"><i class="fa fa-table fa-fw"></i>刷新表格</a></li>' +
|
||
|
'<li><a tabindex="-1" data-operate="close"><i class="fa fa-close fa-fw"></i>关闭</a></li>' +
|
||
|
'<li><a tabindex="-1" data-operate="closeOther"><i class="fa fa-window-close-o fa-fw"></i>关闭其他</a></li>' +
|
||
|
'<li class="divider"></li>' +
|
||
|
'<li><a tabindex="-1" data-operate="closeAll"><i class="fa fa-power-off fa-fw"></i>关闭全部</a></li>' +
|
||
|
'</ul>' +
|
||
|
'</div>');
|
||
|
|
||
|
$(".nav-addtabs").contextmenu({
|
||
|
target: "#context-menu",
|
||
|
scopes: 'li[role=presentation]',
|
||
|
onItem: function (e, event) {
|
||
|
var $element = $(event.target);
|
||
|
var tab_id = e.attr('id');
|
||
|
var id = tab_id.substr('tab_'.length);
|
||
|
var con_id = 'con_' + id;
|
||
|
switch ($element.data('operate')) {
|
||
|
case 'refresh':
|
||
|
$("#" + con_id + " iframe").attr('src', function (i, val) {
|
||
|
return val;
|
||
|
});
|
||
|
break;
|
||
|
case 'refreshTable':
|
||
|
try {
|
||
|
if ($("#" + con_id + " iframe").contents().find(".btn-refresh").size() > 0) {
|
||
|
$("#" + con_id + " iframe")[0].contentWindow.$(".btn-refresh").trigger("click");
|
||
|
}
|
||
|
} catch (e) {
|
||
|
|
||
|
}
|
||
|
break;
|
||
|
case 'close':
|
||
|
if (e.find(".close-tab").length > 0) {
|
||
|
e.find(".close-tab").click();
|
||
|
}
|
||
|
break;
|
||
|
case 'closeOther':
|
||
|
e.parent().find("li[role='presentation']").each(function () {
|
||
|
if ($(this).attr('id') == tab_id) {
|
||
|
return;
|
||
|
}
|
||
|
if ($(this).find(".close-tab").length > 0) {
|
||
|
$(this).find(".close-tab").click();
|
||
|
}
|
||
|
});
|
||
|
break;
|
||
|
case 'closeAll':
|
||
|
e.parent().find("li[role='presentation']").each(function () {
|
||
|
if ($(this).find(".close-tab").length > 0) {
|
||
|
$(this).find(".close-tab").click();
|
||
|
}
|
||
|
});
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
$(document).on('click', function () { // iframe内点击 隐藏菜单
|
||
|
try {
|
||
|
top.window.$(".nav-addtabs").contextmenu("closemenu");
|
||
|
} catch (e) {
|
||
|
}
|
||
|
});
|
||
|
|
||
|
});
|