define(['jquery', 'bootstrap'], function($, bs) {
window.redirect = function(url) {
location.href = url
}, $(document).on('click', '[data-toggle=refresh]', function(e) {
e && e.preventDefault();
var url = $(e.target).data("href");
url ? window.location = url : window.location.reload()
}), $(document).on('click', '[data-toggle=back]', function(e) {
e && e.preventDefault();
var url = $(e.target).data("href");
url ? window.location = url : window.history.back()
});
function _bindCssEvent(events, callback) {
var dom = this;
function fireCallBack(e) {
if (e.target !== this) {
return
}
callback.call(this, e);
for (var i = 0; i < events.length; i++) {
dom.off(events[i], fireCallBack)
}
}
if (callback) {
for (var i = 0; i < events.length; i++) {
dom.on(events[i], fireCallBack)
}
}
}
$.fn.animationEnd = function(callback) {
_bindCssEvent.call(this, ['webkitAnimationEnd', 'animationend'], callback);
return this
};
$.fn.transitionEnd = function(callback) {
_bindCssEvent.call(this, ['webkitTransitionEnd', 'transitionend'], callback);
return this
};
$.fn.transition = function(duration) {
if (typeof duration !== 'string') {
duration = duration + 'ms'
}
for (var i = 0; i < this.length; i++) {
var elStyle = this[i].style;
elStyle.webkitTransitionDuration = elStyle.MozTransitionDuration = elStyle.transitionDuration = duration
}
return this
};
$.fn.transform = function(transform) {
for (var i = 0; i < this.length; i++) {
var elStyle = this[i].style;
elStyle.webkitTransform = elStyle.MozTransform = elStyle.transform = transform
}
return this
};
$.toQueryPair = function(key, value) {
if (typeof value == 'undefined') {
return key
}
return key + '=' + encodeURIComponent(value === null ? '' : String(value))
};
$.toQueryString = function(obj) {
var ret = [];
for (var key in obj) {
key = encodeURIComponent(key);
var values = obj[key];
if (values && values.constructor == Array) {
var queryValues = [];
for (var i = 0, len = values.length, value; i < len; i++) {
value = values[i];
queryValues.push($.toQueryPair(key, value))
}
ret = concat(queryValues)
} else {
ret.push($.toQueryPair(key, values))
}
}
return ret.join('&')
};
myrequire(['web/table']);
myrequire(['jquery.gcjs']);
myrequire(['web/tip']);
myrequire(['tooltipbox']);
if ($('form.form-validate').length > 0 || $('form.form-modal').length > 0) {
myrequire(['web/form'], function(form) {
form.init()
})
}
myrequire(['web/biz']);
if ($('.select2').length > 0) {
myrequire(['select2'], function() {
$('.select2').each(function() {
$(this).select2({})
})
})
}
myrequire(['web/table']);
if ($('.js-switch').length > 0) {
myrequire(['switchery'], function() {
$('.js-switch').switchery()
})
}
if ($('.js-clip').length > 0) {
myrequire(['clipboard'], function(Clipboard) {
var clipboard = new Clipboard('.js-clip', {
text: function(e) {
return $(e).data('url') || $(e).data('href')
}
});
clipboard.on('success', function(e) {
tip.msgbox.suc('复制成功')
})
})
}
$.fn.append2 = function(html, callback) {
var len = $("body").html().length;
this.append(html);
var e = 1,
interval = setInterval(function() {
e++;
var clear = function() {
clearInterval(interval);
callback && callback()
};
if (len != $("body").html().length || e > 1000) {
clear()
}
}, 1)
};
$('[data-toggle="popover"]').popover();
$(document).on("click", '[data-toggle="ajaxModal"]', function(e) {
e.preventDefault();
var obj = $(this),
confirm = obj.data("confirm");
var handler = function() {
$("#ajaxModal").remove(), e.preventDefault();
var url = obj.data("href") || obj.attr("href"),
data = obj.data("set"),
modal;
$.ajax(url, {
type: "get",
dataType: "html",
cache: false,
data: data
}).done(function(html) {
if (html.substr(0, 8) == '{"status') {
json = eval("(" + html + ')');
if (json.status == 0) {
msg = typeof(json.result) == 'object' ? json.result.message : json.result;
tip.msgbox.err(msg || tip.lang.err);
return
}
}
modal = $('
');
$(document.body).append(modal), modal.modal('show');
myrequire(['jquery.gcjs'], function() {
modal.append2(html, function() {
var form_validate = $('form.form-validate', modal);
if (form_validate.length > 0) {
$("button[type='submit']", modal).length && $("button[type='submit']", modal).attr("disabled", true);
myrequire(['web/form'], function(form) {
form.init();
$("button[type='submit']", modal).length && $("button[type='submit']", modal).removeAttr("disabled")
})
}
})
})
})
},
a;
if (confirm) {
tip.confirm(confirm, handler)
} else {
handler()
}
}), $(document).on("click", '[data-toggle="ajaxPost"]', function(e) {
e.preventDefault();
var obj = $(this),
confirm = obj.data("confirm"),
url = obj.data('href') || obj.attr('href'),
data = obj.data('set') || {},
html = obj.html();
handler = function() {
e.preventDefault();
if (obj.attr('submitting') == '1') {
return
}
obj.html('').attr('submitting', 1);
$.post(url, {
data: data
}, function(ret) {
ret = eval("(" + ret + ")");
if (ret.status == 1) {
tip.msgbox.suc(ret.result.message || tip.lang.success, ret.result.url)
} else {
tip.msgbox.err(ret.result.message || tip.lang.error, ret.result.url), obj.removeAttr('submitting').html(html)
}
}).fail(function() {
obj.removeAttr('submitting').html(html), tip.msgbox.err(tip.lang.exception)
})
};
confirm && tip.confirm(confirm, handler);
!confirm && handler()
}), $(document).on("click", '[data-toggle="ajaxEdit"]', function(e) {
var obj = $(this),
url = obj.data('href') || obj.attr('href'),
data = obj.data('set') || {},
html = $.trim(obj.text()),
required = obj.data('required') || true,
edit = obj.data('edit') || 'input';
var oldval = $.trim($(this).text());
e.preventDefault();
submit = function() {
e.preventDefault();
var val = $.trim(input.val());
if (required) {
if (val == '') {
tip.msgbox.err(tip.lang.empty);
return
}
}
if (val == html) {
input.remove(), obj.html(val).show();
return
}
if (url) {
$.post(url, {
value: val
}, function(ret) {
ret = eval("(" + ret + ")");
if (ret.status == 1) {
obj.html(val).show()
} else {
tip.msgbox.err(ret.result.message, ret.result.url)
}
input.remove()
}).fail(function() {
input.remove(), tip.msgbox.err(tip.lang.exception)
})
} else {
input.remove();
obj.html(val).show()
}
obj.trigger('valueChange', [val, oldval])
}, obj.hide().html('');
var input = $('');
if (edit == 'textarea') {
input = $('')
}
obj.after(input);
input.val(html).select().blur(function() {
submit(input)
}).keypress(function(e) {
if (e.which == 13) {
submit(input)
}
})
}), $(document).on("click", '[data-toggle="ajaxSwitch"]', function(e) {
e.preventDefault();
var obj = $(this),
confirm = obj.data('msg') || obj.data('confirm'),
othercss = obj.data('switch-css'),
other = obj.data('switch-other'),
refresh = obj.data('switch-refresh') || false;
if (obj.attr('submitting') == '1') {
return
}
var value = obj.data('switch-value'),
value0 = obj.data('switch-value0'),
value1 = obj.data('switch-value1');
if (value === undefined || value0 === undefined || value1 === undefined) {
return
}
var url, css, text, newvalue, newurl, newcss, newtext;
value0 = value0.split('|');
value1 = value1.split('|');
if (value == value0[0]) {
url = value0[3], css = value0[2], text = value0[1], newvalue = value1[0], newtext = value1[1], newcss = value1[2]
} else {
url = value1[3], css = value1[2], text = value1[1], newvalue = value0[0], newtext = value0[1], newcss = value0[2]
}
var html = obj.html();
var submit = function() {
$.post(url).done(function(data) {
data = eval("(" + data + ")");
if (data.status == 1) {
if (other && othercss) {
if (newvalue == '1') {
$(othercss).each(function() {
if ($(this).data('switch-value') == newvalue) {
this.className = css;
$(this).data('switch-value', value).html(text || html)
}
})
}
}
obj.data('switch-value', newvalue);
obj.html(newtext || html);
obj[0].className = newcss;
refresh && location.reload()
} else {
obj.html(html), tip.msgbox.err(data.result.message || tip.lang.error, data.result.url)
}
obj.removeAttr('submitting')
}).fail(function() {
obj.removeAttr('submitting');
obj.button('reset');
tip.msgbox.err(tip.lang.exception)
})
},
a;
if (confirm) {
tip.confirm(confirm, function() {
obj.html('').attr('submitting', 1), submit()
})
} else {
obj.html('').attr('submitting', 1), submit()
}
});
$(document).on('click', '[data-toggle="selectUrl"]', function() {
$("#selectUrl").remove();
var _input = $(this).data('input');
var _full = $(this).data('full');
var _platform = $(this).data('platform');
var _callback = $(this).data('callback') || false;
var _cbfunction = !_callback ? false : eval("(" + _callback + ")");
if (!_input && !_callback) {
return
}
var merch = $(".diy-phone").data("merch");
var url = biz.url('util/selecturl', null, merch);
var store = $(".diy-phone").data("store");
if (store) {
url = biz.url('store/diypage/selecturl')
}
if (_full) {
url = url + "&full=1"
}
if (_platform) {
url = url + "&platform=" + _platform
}
$.ajax('seller.php?s=/util/selecturl', {
type: "get",
dataType: "html",
cache: false
}).done(function(html) {
modal = $('');
$(document.body).append(modal), modal.modal('show');
modal.append2(html, function() {
$(document).off("click", '#selectUrl nav').on("click", '#selectUrl nav', function() {
var _href = $.trim($(this).data("href"));
if (_input) {
$(_input).val(_href).trigger('change')
} else if (_cbfunction) {
_cbfunction(_href)
}
modal.find(".close").click()
})
})
})
});
$(document).on('click', '[data-toggle="selectImg"]', function() {
var _input = $(this).data('input');
var _img = $(this).data('img');
var _full = $(this).data('full');
require(['jquery', 'util'], function($, util) {
util.image('', function(data) {
var imgurl = data.attachment;
if (_full) {
imgurl = data.url
}
if (_input) {
$(_input).val(imgurl).trigger('change')
}
if (_img) {
$(_img).attr('src', data.url)
}
})
})
});
$(document).on('click', '[data-toggle="selectIcon"]', function() {
var _input = $(this).data('input');
var _element = $(this).data('element');
if (!_input && !_element) {
return
}
var merch = $(".diy-phone").data("merch");
var url = biz.url('util/selecticon', null, merch);
$.ajax(url, {
type: "get",
dataType: "html",
cache: false
}).done(function(html) {
modal = $('');
$(document.body).append(modal), modal.modal('show');
modal.append2(html, function() {
$(document).off("click", '#selectIcon nav').on("click", '#selectIcon nav', function() {
var _class = $.trim($(this).data("class"));
if (_input) {
$(_input).val(_class).trigger('change')
}
if (_element) {
$(_element).removeAttr("class").addClass("icon " + _class)
}
modal.find(".close").click()
})
})
})
});
$(document).on('click', '[data-toggle="selectAudio"]', function() {
var _input = $(this).data('input');
var _full = $(this).data('full');
require(['jquery', 'util'], function($, util) {
util.audio('', function(data) {
var audiourl = data.attachment;
if (_full) {
audiourl = data.url
}
if (_input) {
$(_input).val(audiourl).trigger('change')
}
})
})
});
$(document).on('click', '[data-toggle="selectVideo"]', function() {
var _input = $(this).data('input');
var _full = $(this).data('full');
require(['jquery', 'util'], function($, util) {
util.audio('', function(data) {
var audiourl = data.attachment;
if (_full) {
audiourl = data.url
}
if (_input) {
$(_input).val(audiourl).trigger('change')
}
}, {
type: 'video'
})
})
});
$(document).on('click', '[data-toggle="previewVideo"]', function() {
var videoelm = $(this).data('input');
if (!videoelm) {
return
}
var video = $(videoelm).data('url');
if (!video || video == '') {
tip.msgbox.err('未选择视频');
return
}
if ($('#previewVideo').length < 1) {
$('body').append('')
} else {
$("#previewVideo video").attr("src", video)
}
$("#previewVideo").modal();
$("#previewVideo").on("hidden.bs.modal", function() {
$(this).find("video")[0].pause()
})
});
$(window).resize(function() {
var width = $(window).width();
if (width <= 1440) {
$(".wb-panel-fold").removeClass('in').html(' 消息提醒');
$(".wb-panel").removeClass('in');
$('.wb-container').addClass('right-panel')
} else {
$(".wb-panel-fold").addClass('in').html(' 收起面板');
$(".wb-panel").addClass('in');
$('.wb-container').removeClass('right-panel')
}
});
$(window).scroll(function() {
if ($(window).scrollTop() > 200) {
$('.fixed-header').addClass('active')
} else {
$('.fixed-header').removeClass('active')
}
});
$('.wb-nav-fold').click(function() {
var nav = $(this).closest(".wb-nav");
if (nav.hasClass('fold')) {
nav.removeClass('fold');
$(".wb-header .logo").removeClass('small');
$(".fast-nav").removeClass('indent');
util.cookie.set('foldnav', 0)
} else {
nav.addClass('fold');
$(".wb-header .logo").addClass('small');
$(".fast-nav").addClass('indent');
util.cookie.set('foldnav', 1)
}
});
$('.wb-subnav-fold').click(function() {
var subnav = $(this).closest(".wb-subnav");
if (subnav.hasClass('fold')) {
subnav.removeClass('fold')
} else {
subnav.addClass('fold')
}
});
$('.menu-header').click(function() {
if ($(this).hasClass('active')) {
$(this).next('ul').eq(0).hide();
$(this).find('.menu-icon').removeClass('fa-caret-down').addClass('fa-caret-right');
$(this).removeClass('active')
} else {
$(this).next('ul').eq(0).show();
$(this).find('.menu-icon').removeClass('fa-caret-right').addClass('fa-caret-down');
$(this).addClass('active')
}
});
$('.wb-header-btn').click(function() {
if ($('.wb-topbar-search').hasClass('expand-search')) {
$('.wb-search-box').focus();
var keyword = $.trim($(".wb-search-box").val());
if (keyword != '') {
location.href = './index.php?c=site&a=entry&m=lionfish_comshop&do=admin&r=search&keyword=' + keyword;
return
}
} else {}
});
$(".wb-search-box").bind('input propertychange', function() {
var keyword = $.trim($(this).val());
var merch = $(this).data('merch') || 0;
if (keyword == '') {
$('.wb-search-result ul').empty();
$('.wb-search-result').hide();
$(".wb-search-box").val('');
return
}
$.getJSON(biz.url('searchlist', null, merch), {
keyword: keyword
}, function(ret) {
var result = ret.result;
var html = '';
$('.wb-search-result ul').empty();
if (result.menu.length < 1) {
html = '暂未搜索到与“' + keyword + '”相关功能'
} else {
$.each(result.menu, function(index, menu) {
html += '' + menu.title + ''
})
}
$('.wb-search-result ul').html(html);
$('.wb-search-result').show()
})
});
$(".wb-header-logout").click(function() {
var href = $(this).closest('li').data('href');
tip.confirm("当前已登录,确认退出?", function() {
location.href = href
})
});
$(".wb-panel-fold").click(function() {
$(this).toggleClass('in');
$(".wb-panel").toggleClass('in');
if (!$(this).hasClass('in')) {
$(this).html(' 消息提醒');
util.cookie.set('foldpanel', 1);
$('.wb-container').addClass('right-panel')
} else {
$(this).html(' 收起面板');
util.cookie.set('foldpanel', 0);
$('.wb-container').removeClass('right-panel')
}
});
$(".wb-shortcut").click(function() {
if ($(this).hasClass('active')) {
$(this).removeClass('active');
$(".fast-nav").removeClass('in')
} else {
$(this).addClass('active');
$(".fast-nav").addClass('in')
}
});
$(".fast-list.menu a").hover(function() {
$(this).addClass('active').siblings().removeClass('active');
var tab = $(this).data('tab');
$(".fast-list.list [data-tab='" + tab + "']").addClass('in').siblings('.in').removeClass('in');
$(".funbar-panel").hide();
$("#funbar-name").val('');
$("#funbar-color").val('#666666')
});
$(".funbar-add-btn").click(function() {
$(".funbar-panel").show();
$("#funbar-bold-0").prop('checked', 'checked')
});
$(".funbar-cancel-btn").click(function() {
$(".funbar-panel").hide();
$("#funbar-name").val('');
$("#funbar-color").val('#666666')
});
$(".funbar-save-btn").click(function() {
var name = $.trim($("#funbar-name").val());
if (name == '') {
tip.msgbox.err('请输入导航名称');
return
}
var color = $("#funbar-color").val();
var bold = $("#funbar-bold-1").is(':checked') ? 1 : 0;
var link = $("#funbar-link").val();
var fundata = {
href: link,
text: name,
color: color,
bold: bold
};
$.post(biz.url('sysset/funbar/post'), {
funbardata: fundata
}, function(ret) {
if (ret.status == 1) {
var html = '' + name + '';
$("#funbar-list").prepend(html);
$(".funbar-panel").hide();
$("#funbar-name").val('');
$("#funbar-color").val('#666666')
} else {
tip.msgbox.err("保存失败请重试!")
}
}, 'json')
});
$("#btn-clear-history").click(function() {
var merch = $(this).data('merch') || 0;
tip.confirm("确认清除最近访问吗?", function() {
$.post(biz.url('clearhistory', null, merch), {
type: 0
}, function(ret) {
$(".fast-list.history").remove()
})
})
});
$(document).click(function(e) {
var btn1 = $(e.target).closest('.wb-shortcut').length;
if (!btn1) {
var fastNav = $(e.target).closest('.fast-nav').length;
if (!fastNav) {
$(".wb-shortcut").removeClass('active');
$(".fast-nav").removeClass('in')
}
}
});
if ($(".form-editor-group").length > 0) {
$(".form-editor-group .form-editor-btn").click(function() {
var editor = $(this).closest(".form-editor-group");
editor.find(".form-editor-show").hide();
editor.find(".form-editor-edit").css('display', 'table')
});
$(".form-editor-group .form-editor-finish").click(function() {
if ($(this).closest(".form-group").hasClass("has-error")) {
return
}
var editor = $(this).closest(".form-editor-group");
editor.find(".form-editor-show").show();
editor.find(".form-editor-edit").hide();
var input = editor.find(".form-editor-input");
var value = $.trim(input.val());
editor.find(".form-editor-text").text(value)
})
}
$("img").error(function() {
$(this).attr('src', '/static/images/nopic.png')
})
});