define(['jquery', 'layui'], function($, layui) {
"use strict";
var tabs = layui.tabs;
var pearTab = function(opt) {
this.option = opt;
};
var tabData = new Array();
var tabDataCurrent = 0;
var contextTabDOM;
pearTab.render = function(opt) {
var option = {
container: opt.container,
elem: opt.elem,
data: opt.data,
tool: opt.tool,
roll: opt.roll,
index: opt.index,
width: opt.width,
height: opt.height,
tabMax: opt.tabMax,
session: opt.session ? opt.session : false,
preload: opt.preload ? opt.preload : false,
closeEvent: opt.closeEvent,
success: opt.success ? opt.success : function(id) {}
}
if (option.session) {
if (sessionStorage.getItem(option.elem + "-pear-tab-data") != null) {
tabData = JSON.parse(sessionStorage.getItem(option.elem + "-pear-tab-data"));
option.data = JSON.parse(sessionStorage.getItem(option.elem + "-pear-tab-data"));
tabDataCurrent = sessionStorage.getItem(option.elem + "-pear-tab-data-current");
tabData.forEach(function(item, index) {
if (item.id == tabDataCurrent) {
option.index = index;
}
})
} else {
tabData = opt.data;
}
}
var lastIndex;
var tab = createTab(option);
$("#" + opt.container).html(tab);
tabs.render({
elem: '#'+ option.elem,
closable: true
})
toolEvent(option);
$("#" + opt.container).width(opt.width);
$("#" + opt.container).height(opt.height);
$("#" + opt.container).css({
position: "relative"
});
closeEvent(option);
option.success(sessionStorage.getItem(option.elem + "-pear-tab-data-current"));
return new pearTab(option);
}
pearTab.prototype.click = function(callback) {
var elem = this.option.elem;
var option = this.option;
tabs.on('afterChange(' + this.option.elem + ')', function(data) {
var id = $("#" + elem + " .layui-tabs-header .layui-this").attr("lay-id");
sessionStorage.setItem(option.elem + "-pear-tab-data-current", id);
if (!option.preload) {
var $iframe = $(".layui-tabs[lay-filter='" + elem + "'] .layui-tabs-body").find(
"iframe[id='" + id + "']");
var iframeUrl = $iframe.attr("src");
if (!iframeUrl || iframeUrl === "about:blank") {
// 获取 url 并重载
tabData.forEach(function(item, index) {
if (item.id === id) {
iframeUrl = item.url;
}
})
tabIframeLoading(elem);
$iframe.attr("src", iframeUrl);
}
}
callback(id);
});
}
pearTab.prototype.clear = function() {
sessionStorage.removeItem(this.option.elem + "-pear-tab-data");
sessionStorage.removeItem(this.option.elem + "-pear-tab-data-current");
}
pearTab.prototype.addTab = function(opt) {
var title = '';
if (opt.close) {
title += '' + opt.title +
'ဆ';
} else {
title += '' + opt.title +
'ဆ';
}
tabs.add(this.option.elem, {
title: title,
content: '