深圳全飞鸿
标题:
beacon框架C与L的交互功能开发(L触发C)
[打印本页]
作者:
syant
时间:
2025-2-9 14:22
标题:
beacon框架C与L的交互功能开发(L触发C)
beacon框架C与L的交互功能开发(L触发C)
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" layuimini-content-href="S.php/bom/bomupload" data-title="新增BOM" data-icon="fa fa-search"> 新增BOM </button>
1、看L触发L的处理逻辑
搜索:
layuimini-content-href
>>>>d:\project.syant\0005php\htdocs\wms\js\lay-module\layuimini\minitab.js<<<<<
$('body').on('click', '[layuimini-content-href]', function () {
处理代码:
/**
* 在iframe子菜单上打开新窗口
*/
$('body').on('click', '[layuimini-content-href]', function () {
var loading = parent.layer.load(0, {shade: false, time: 2 * 1000});
var tabId = $(this).attr('layuimini-content-href'),
href = $(this).attr('layuimini-content-href'),
title = $(this).attr('data-title'),
target = $(this).attr('target');
if (target === '_blank') {
parent.layer.close(loading);
window.open(href, "_blank");
return false;
}
if (tabId === null || tabId === undefined) tabId = new Date().getTime();
var checkTab = miniTab.check(tabId, true);
if (!checkTab) {
miniTab.create({
tabId: tabId,
href: href,
title: title,
isIframe: true,
maxTabNum: options.maxTabNum,
});
}
parent.layui.element.tabChange('layuiminiTab', tabId);
parent.layer.close(loading);
});
复制代码
作者:
syant
时间:
2025-2-9 14:41
二、看C触发C的逻辑
<li class="active" pid="103"><a href="/erp/C.php/custinfo?ref=addtabs" addtabs="111" class="" url="/erp/C.php/custinfo" py="khpz" pinyin="kehupeizhi"><i class="fa fa-circle-o fa-fw"></i> <span>客户配置</span> <span class="pull-right-container"> </span></a> </li>
搜索:
addtabs
>>>>c:\apache24\htdocs\dba\assets\js\backend.js<<<<<
$(document).on('click', '.btn-addtabs,.addtabsit', function (e) {
//点击包含.btn-addtabs的元素时新增选项卡
$(document).on('click', '.btn-addtabs,.addtabsit', function (e) {
var that = this;
var options = $.extend({}, $(that).data() || {});
var url = Backend.api.replaceids(that, $(that).data("url") || $(that).attr('href'));
var title = $(that).attr("title") || $(that).data("title") || $(that).data('original-title');
var icon = $(that).attr("icon") || $(that).data("icon");
if (typeof options.confirm !== 'undefined') {
Layer.confirm(options.confirm, function (index) {
Backend.api.addtabs(url, title, icon);
Layer.close(index);
});
} else {
Backend.api.addtabs(url, title, icon);
}
return false;
});
复制代码
作者:
syant
时间:
2025-2-9 15:13
三、验证C触发C
用了关键函数: Backend.api.addtabs(url, title, icon);
<a href="javascript:Backend.api.addtabs('http://www.baidu.com', 'test', '');" class="btn btn-primary" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
可以实现!
作者:
syant
时间:
2025-2-9 20:20
发布兼容函数:
window.callOuterFunction = function(url, title, icon) {
if (window.parent) { // 调用外层页面的函数
if(window.parent.Backend){ //如果外层是C
window.parent.Backend.api.addtabs(url, title, icon);
}else{ //如果外层是L
var tabId = url;
var checkTab = parent.layui.miniTab.check(tabId, true);
if (!checkTab) {
parent.layui.miniTab.create({
tabId: tabId,
href: url,
title: title,
isIframe: true,
maxTabNum:100000,
});
}
parent.layui.element.tabChange('layuiminiTab', tabId);
}
} else {
}
}
复制代码
欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/)
Powered by Discuz! X3.2