;(function () {
//全局ajax处理
$.ajaxSetup({
complete: function (jqXHR) {
},
data: {},
error: function (jqXHR, textStatus, errorThrown) {
//请求失败处理
}
});
if ($.browser && $.browser.msie) {
//ie 都不缓存
$.ajaxSetup({
cache: false
});
}
//不支持placeholder浏览器下对placeholder进行处理
if (document.createElement('input').placeholder !== '') {
$('[placeholder]').focus(function () {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
input.removeClass('placeholder');
}
}).blur(function () {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.addClass('placeholder');
input.val(input.attr('placeholder'));
}
}).blur().parents('form').submit(function () {
$(this).find('[placeholder]').each(function () {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
});
}
//所有加了dialog类名的a链接,自动弹出它的href
if ($('a.js-dialog').length) {
Wind.use('artDialog', 'iframeTools', function () {
$('.js-dialog').on('click', function (e) {
e.preventDefault();
var $_this = this,
_this = $($_this);
art.dialog.open($(this).prop('href'), {
close: function () {
$_this.focus(); //关闭时让触发弹窗的元素获取焦点
return true;
},
title: _this.prop('title')
});
}).attr('role', 'button');
});
}
//所有的ajax form提交,由于大多业务逻辑都是一样的,故统一处理
var ajaxForm_list = $('form.js-ajax-form');
if (ajaxForm_list.length) {
Wind.use('ajaxForm', 'noty', 'validate', function () {
//var form = btn.parents('form.js-ajax-form');
var $btn;
$('button.js-ajax-submit').on('click', function (e) {
//e.preventDefault();
/*var btn = $(this).find('button.js-ajax-submit'),
form = $(this);*/
var btn = $(this), form = btn.parents('form.js-ajax-form');
$btn = btn;
if (btn.data("loading")) {
return false;
}
//批量操作 判断选项
if (btn.data('subcheck')) {
btn.parent().find('span').remove();
if (form.find('input.js-check:checked').length) {
var msg = btn.data('msg');
if (msg) {
noty({
text: msg,
type: 'confirm',
layout: "center",
timeout: false,
modal: true,
buttons: [
{
addClass: 'btn btn-primary',
text: '确定',
onClick: function ($noty) {
$noty.close();
btn.data('subcheck', false);
btn.click();
}
},
{
addClass: 'btn btn-danger',
text: '取消',
onClick: function ($noty) {
$noty.close();
}
}
]
});
} else {
btn.data('subcheck', false);
btn.click();
}
} else {
noty({
text: "请至少选择一项",
type: 'error',
layout: 'center'
});
}
return false;
}
//ie处理placeholder提交问题
if ($.browser && $.browser.msie) {
form.find('[placeholder]').each(function () {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
}
});
ajaxForm_list.each(function () {
$(this).validate({
//是否在获取焦点时验证
//onfocusout : false,
//是否在敲击键盘时验证
//onkeyup : false,
//当鼠标点击时验证
//onclick : false,
//给未通过验证的元素加效果,闪烁等
highlight: function (element, errorClass, validClass) {
if (element.type === "radio") {
this.findByName(element.name).addClass(errorClass).removeClass(validClass);
} else {
var $element = $(element);
$element.addClass(errorClass).removeClass(validClass);
$element.parent().addClass("has-error");//bootstrap3表单
$element.parents('.control-group').addClass("error");//bootstrap2表单
}
},
unhighlight: function (element, errorClass, validClass) {
if (element.type === "radio") {
this.findByName(element.name).removeClass(errorClass).addClass(validClass);
} else {
var $element = $(element);
$element.removeClass(errorClass).addClass(validClass);
$element.parent().removeClass("has-error");//bootstrap3表单
$element.parents('.control-group').removeClass("error");//bootstrap2表单
}
},
showErrors: function (errorMap, errorArr) {
var i, elements, error;
for (i = 0; this.errorList[i]; i++) {
error = this.errorList[i];
if (this.settings.highlight) {
this.settings.highlight.call(this, error.element, this.settings.errorClass, this.settings.validClass);
}
//this.showLabel( error.element, error.message );
}
if (this.errorList.length) {
//this.toShow = this.toShow.add( this.containers );
}
if (this.settings.success) {
for (i = 0; this.successList[i]; i++) {
//this.showLabel( this.successList[ i ] );
}
}
if (this.settings.unhighlight) {
for (i = 0, elements = this.validElements(); elements[i]; i++) {
this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass);
}
}
this.toHide = this.toHide.not(this.toShow);
this.hideErrors();
this.addWrapper(this.toShow).show();
},
submitHandler: function (form) {
var $form = $(form);
if(!$btn){
$btn=$form.find('button.js-ajax-submit');
}
$form.ajaxSubmit({
url: $btn && $btn.data('action') ? $btn.data('action') : $form.attr('action'), //按钮上是否自定义提交地址(多按钮情况)
dataType: 'json',
beforeSubmit: function (arr, $form, options) {
if($btn){
$btn.data("loading", true);
var text = $btn.text();
//按钮文案、状态修改
$btn.text(text + '...').prop('disabled', true).addClass('disabled');
}
},
success: function (data, statusText, xhr, $form) {
function _refresh() {
if (data.url) {
if (window.parent.art) {
//iframe弹出页
window.parent.location.href = data.url;
} else {
window.location.href = data.url;
}
} else {
if (data.code == 1) {
var wait = $btn.data("wait");
if (window.parent.art) {
reloadPage(window.parent);
} else {
//刷新当前页
reloadPage(window);
}
}
}
}
var text = $btn.text();
//按钮文案、状态修改
$btn.removeClass('disabled').prop('disabled', false).text(text.replace('...', '')).parent().find('span').remove();
if (data.code == 1) {
if ($btn.data('success')) {
var successCallback = $btn.data('success');
window[successCallback](data, statusText, xhr, $form);
return;
}
noty({
text: data.msg,
type: 'success',
layout: 'center',
modal: true,
callback: {
afterClose: function () {
_refresh();
}
}
});
} else if (data.code == 0) {
if ($btn.data('error')) {
var errorCallback = $btn.data('error');
window[errorCallback](data, statusText, xhr, $form);
return;
}
var $verify_img = $form.find(".verify_img");
if ($verify_img.length) {
$verify_img.attr("src", $verify_img.attr("src") + "&refresh=" + Math.random());
}
var $verify_input = $form.find("[name='verify']");
$verify_input.val("");
noty({
text: data.msg,
type: 'error',
layout: 'center',
callback: {
afterClose: function () {
_refresh();
}
}
});
}
},
error: function (xhr, e, statusText) {
noty({
text: statusText,
type: 'error',
layout: 'center',
callback: {
// afterClose: function () {
// if (window.parent.art) {
// reloadPage(window.parent);
// } else {
// //刷新当前页
// reloadPage(window);
// }
// }
}
});
},
complete: function () {
$btn.data("loading", false);
}
});
}
});
});
});
}
//dialog弹窗内的关闭方法
$('#js-dialog-close').on('click', function (e) {
e.preventDefault();
try {
art.dialog.close();
} catch (err) {
Wind.use('artDialog', 'iframeTools', function () {
art.dialog.close();
});
}
;
});
//所有的删除操作,删除数据后刷新页面
if ($('a.js-ajax-delete').length) {
Wind.use('noty', function () {
$('.js-ajax-delete').on('click', function (e) {
e.preventDefault();
var $_this = this,
$this = $($_this),
href = $this.data('href'),
refresh = $this.data('refresh'),
msg = $this.data('msg');
okBtnText = $this.data('ok-btn');
cancelBtnText = $this.data('cancel-btn');
href = href ? href : $this.attr('href');
noty({
text: msg ? msg : '确定要删除吗?',
type: 'confirm',
layout: "center",
timeout: false,
modal: true,
buttons: [
{
addClass: 'btn btn-primary',
text: okBtnText ? okBtnText : '确定',
onClick: function ($noty) {
$noty.close();
$.getJSON(href).done(function (data) {
if (data.code == 1) {
if (data.url) {
location.href = data.url;
} else if (refresh || refresh == undefined) {
reloadPage(window);
}
} else if (data.code == 0) {
noty({
text: data.msg,
type: 'error',
layout: 'center',
callback: {
afterClose: function () {
if (data.url) {
location.href = data.url;
}
}
}
});
}
});
}
},
{
addClass: 'btn btn-danger',
text: cancelBtnText ? cancelBtnText : '取消',
onClick: function ($noty) {
$noty.close();
}
}
]
});
});
});
}
if ($('a.js-ajax-dialog-btn').length) {
Wind.use('noty', function () {
$('.js-ajax-dialog-btn').on('click', function (e) {
e.preventDefault();
var $_this = this,
$this = $($_this),
href = $this.data('href'),
refresh = $this.data('refresh'),
msg = $this.data('msg');
href = href ? href : $this.attr('href');
noty({
text: msg,
type: 'confirm',
layout: "center",
timeout: false,
modal: true,
buttons: [
{
addClass: 'btn btn-primary',
text: '确定',
onClick: function ($noty) {
$noty.close();
$.getJSON(href).done(function (data) {
if (data.code == 1) {
if (data.url) {
location.href = data.url;
} else if (refresh || refresh == undefined) {
reloadPage(window);
}
} else if (data.code == 0) {
noty({
text: data.msg,
type: 'error',
layout: 'center',
callback: {
afterClose: function () {
if (data.url) {
location.href = data.url;
}
}
}
});
}
});
}
},
{
addClass: 'btn btn-danger',
text: '取消',
onClick: function ($noty) {
$noty.close();
}
}
]
});
});
});
}
if ($('a.js-ajax-btn').length) {
Wind.use('noty', function () {
$('.js-ajax-btn').on('click', function (e) {
e.preventDefault();
var $_this = this,
$this = $($_this),
href = $this.data('href'),
msg = $this.data('msg');
refresh = $this.data('refresh');
href = href ? href : $this.attr('href');
refresh = refresh == undefined ? 1 : refresh;
$.getJSON(href).done(function (data) {
if (data.code == 1) {
noty({
text: data.msg,
type: 'success',
layout: 'center',
callback: {
afterClose: function () {
if (data.url) {
location.href = data.url;
return;
}
if (refresh || refresh == undefined) {
reloadPage(window);
}
}
}
});
} else if (data.code == 0) {
noty({
text: data.msg,
type: 'error',
layout: 'center',
callback: {
afterClose: function () {
if (data.url) {
location.href = data.url;
}
}
}
});
}
});
});
});
}
//所有的请求刷新操作
var ajax_refresh = $('a.js-ajax-refresh'),
refresh_lock = false;
if (ajax_refresh.length) {
ajax_refresh.on('click', function (e) {
e.preventDefault();
if (refresh_lock) {
return false;
}
refresh_lock = true;
$.post(this.href, function (data) {
refresh_lock = false;
if (data.code == 1) {
if (data.url) {
location.href = data.url;
} else {
reloadPage(window);
}
} else if (data.code == 0) {
Wind.art.dialog.alert(data.msg);
}
}, 'json');
});
}
//短信验证码
var $js_get_mobile_code = $('.js-get-mobile-code');
if ($js_get_mobile_code.length > 0) {
Wind.use('noty', function () {
$js_get_mobile_code.on('click', function () {
var $this = $(this);
if ($this.data('loading')) return;
if ($this.data('sending')) return;
var $mobile_input = $($this.data('mobile-input'));
var mobile = $mobile_input.val();
if (mobile == '') {
$mobile_input.focus();
return;
}
var $form = $this.parents('form');
var $captchaInput = $("input[name='captcha']", $form);
var $captchaIdInput = $("input[name='_captcha_id']", $form);
var captcha = $captchaInput.val();
var captchaId = $captchaIdInput.val();
if (!captcha) {
$captchaInput.focus();
return;
}
$this.data('loading', true);
$this.data('sending', true);
var url = $this.data('url');
var init_secode_left = parseInt($this.data('init-second-left'));
init_secode_left = init_secode_left > 0 ? init_secode_left : 60;
var init_text = $this.text();
$this.data('second-left', init_secode_left);
var wait_msg = $this.data('wait-msg');
var codeType = $this.data('type');
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: {username: mobile, captcha: captcha, captcha_id: captchaId, type: codeType},
success: function (data) {
if (data.code == 1) {
noty({
text: data.msg,
type: 'success',
layout: 'center'
});
$this.text(wait_msg.replace('[second]', init_secode_left));
var mtimer = setInterval(function () {
if (init_secode_left > 0) {
init_secode_left--;
$this.text(wait_msg.replace('[second]', init_secode_left));
} else {
clearInterval(mtimer);
$this.text(init_text);
$this.data('sending', false);
}
}, 1000);
} else {
$captchaInput.val('');
var $verify_img = $form.find(".verify_img");
if ($verify_img.length) {
$verify_img.attr("src", $verify_img.attr("src") + "&refresh=" + Math.random());
}
noty({
text: data.msg,
type: 'error',
layout: 'center'
});
$this.data('sending', false);
}
},
error: function () {
$this.data('sending', false);
},
complete: function () {
$this.data('loading', false);
}
});
});
});
}
//邮件验证码
var $js_get_email_code = $('.js-get-email-code');
if ($js_get_email_code.length > 0) {
Wind.use('noty', function () {
$js_get_email_code.on('click', function () {
var $this = $(this);
if ($this.data('loading')) return;
if ($this.data('sending')) return;
var $email_input = $($this.data('email-input'));
var email = $email_input.val();
if (email == '') {
$email_input.focus();
return;
}
var $form = $this.parents('form');
var $captchaInput = $("input[name='captcha']", $form);
var $captchaIdInput = $("input[name='_captcha_id']", $form);
var captcha = $captchaInput.val();
var captchaId = $captchaIdInput.val();
if (!captcha) {
$captchaInput.focus();
return;
}
$this.data('loading', true);
$this.data('sending', true);
var url = $this.data('url');
var init_secode_left = parseInt($this.data('init-second-left'));
init_secode_left = init_secode_left > 0 ? init_secode_left : 60;
var init_text = $this.text();
$this.data('second-left', init_secode_left);
var wait_msg = $this.data('wait-msg');
var codeType = $this.data('type');
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: {username: email, captcha: captcha, captcha_id: captchaId, type: codeType},
success: function (data) {
if (data.code == 1) {
noty({
text: data.msg,
type: 'success',
layout: 'center'
});
$this.text(wait_msg.replace('[second]', init_secode_left));
var mtimer = setInterval(function () {
if (init_secode_left > 0) {
init_secode_left--;
$this.text(wait_msg.replace('[second]', init_secode_left));
} else {
clearInterval(mtimer);
$this.text(init_text);
$this.data('sending', false);
}
}, 1000);
} else {
$captchaInput.val('');
var $verify_img = $form.find(".verify_img");
if ($verify_img.length) {
$verify_img.attr("src", $verify_img.attr("src") + "&refresh=" + Math.random());
}
noty({
text: data.msg,
type: 'error',
layout: 'center'
});
$this.data('sending', false);
}
},
error: function () {
$this.data('sending', false);
},
complete: function () {
$this.data('loading', false);
}
});
});
});
}
/*复选框全选(支持多个,纵横双控全选)。
*实例:版块编辑-权限相关(双控),验证机制-验证策略(单控)
*说明:
* "js-check"的"data-xid"对应其左侧"js-check-all"的"data-checklist";
* "js-check"的"data-yid"对应其上方"js-check-all"的"data-checklist";
* 全选框的"data-direction"代表其控制的全选方向(x或y);
* "js-check-wrap"同一块全选操作区域的父标签class,多个调用考虑
*/
if ($('.js-check-wrap').length) {
var total_check_all = $('input.js-check-all');
//遍历所有全选框
$.each(total_check_all, function () {
var check_all = $(this),
check_items;
//分组各纵横项
var check_all_direction = check_all.data('direction');
check_items = $('input.js-check[data-' + check_all_direction + 'id="' + check_all.data('checklist') + '"]').not(":disabled");
//点击全选框
check_all.change(function (e) {
var check_wrap = check_all.parents('.js-check-wrap'); //当前操作区域所有复选框的父标签(重用考虑)
if ($(this).prop('checked')) {
//全选状态
check_items.prop('checked', true);
//所有项都被选中
if (check_wrap.find('input.js-check').length === check_wrap.find('input.js-check:checked').length) {
check_wrap.find(total_check_all).prop('checked', true);
}
} else {
//非全选状态
check_items.removeProp('checked');
check_wrap.find(total_check_all).removeProp('checked');
//另一方向的全选框取消全选状态
var direction_invert = check_all_direction === 'x' ? 'y' : 'x';
check_wrap.find($('input.js-check-all[data-direction="' + direction_invert + '"]')).removeProp('checked');
}
});
//点击非全选时判断是否全部勾选
check_items.change(function () {
if ($(this).prop('checked')) {
if (check_items.filter(':checked').length === check_items.length) {
//已选择和未选择的复选框数相等
check_all.prop('checked', true);
}
} else {
check_all.removeProp('checked');
}
});
});
}
//日期选择器
var dateInput = $("input.js-date");
if (dateInput.length) {
Wind.use('datePicker', function () {
dateInput.datePicker();
});
}
//日期+时间选择器
var dateTimeInput = $("input.js-datetime");
if (dateTimeInput.length) {
Wind.use('datePicker', function () {
dateTimeInput.datePicker({
time: true
});
});
}
// bootstrap年选择器
var bootstrapYearInput = $("input.js-bootstrap-year")
if (bootstrapYearInput.length) {
Wind.css('bootstrapDatetimePicker');
Wind.use('bootstrapDatetimePicker', function () {
bootstrapYearInput.datetimepicker({
language: 'zh-CN',
format: 'yyyy',
minView: 'decade',
startView: 'decade',
todayBtn: 1,
autoclose: true
});
});
}
// bootstrap年月份选择器
var bootstrapYearMonthInput = $("input.js-bootstrap-year-month");
if (bootstrapYearMonthInput.length) {
Wind.css('bootstrapDatetimePicker');
Wind.use('bootstrapDatetimePicker', function () {
bootstrapYearMonthInput.datetimepicker({
language: 'zh-CN',
format: 'yyyy-mm',
minView: 'year',
startView: 'decade',
todayBtn: 1,
autoclose: true
});
});
}
// bootstrap日期选择器
var bootstrapDateInput = $("input.js-bootstrap-date")
if (bootstrapDateInput.length) {
Wind.css('bootstrapDatetimePicker');
Wind.use('bootstrapDatetimePicker', function () {
bootstrapDateInput.datetimepicker({
language: 'zh-CN',
format: 'yyyy-mm-dd',
minView: 'month',
todayBtn: 1,
autoclose: true
});
});
}
// bootstrap日期选择器日期+时间选择器
var bootstrapDateTimeInput = $("input.js-bootstrap-datetime");
if (bootstrapDateTimeInput.length) {
Wind.css('bootstrapDatetimePicker');
Wind.use('bootstrapDatetimePicker', function () {
bootstrapDateTimeInput.datetimepicker({
language: 'zh-CN',
format: 'yyyy-mm-dd hh:ii',
todayBtn: 1,
autoclose: true
});
});
}
//赞,拍等,有数量操作的按钮
var $js_count_btn = $('a.js-count-btn');
if ($js_count_btn.length) {
Wind.use('noty', function () {
$js_count_btn.on('click', function (e) {
e.preventDefault();
var $this = $(this),
href = $this.prop('href');
$.post(href, {}, function (data) {
if (data.code == 1) {
var $count = $this.find(".count");
var count = parseInt($count.text());
$count.text(count + 1);
if (data.msg) {
noty({
text: data.msg,
type: 'success',
layout: 'center',
callback: {
afterClose: function () {
if (data.url) {
location.href = data.url;
}
}
}
});
}
} else if (data.code == 0) {
noty({
text: data.msg,
type: 'error',
layout: 'center',
callback: {
afterClose: function () {
if (data.url) {
location.href = data.url;
}
}
}
});
}
}, "json");
});
});
}
//地址联动
var $js_address_select = $('.js-address-select');
if ($js_address_select.length > 0) {
$('.js-address-province-select,.js-address-city-select').change(function () {
var $this = $(this);
var id = $this.val();
var $child_area_select;
var $this_js_address_select = $this.parents('.js-address-select');
if ($this.is('.js-address-province-select')) {
$child_area_select = $this_js_address_select.find('.js-address-city-select');
$this_js_address_select.find('.js-address-district-select').hide();
} else {
$child_area_select = $this_js_address_select.find('.js-address-district-select');
}
var empty_option = '';
$child_area_select.html(empty_option);
var child_area_html = $this.data('childarea' + id);
if (child_area_html) {
$child_area_select.show();
$child_area_select.html(child_area_html);
return;
}
$.ajax({
url: $this_js_address_select.data('url'),
type: 'POST',
dataType: 'JSON',
data: {id: id},
success: function (data) {
if (data.code == 1) {
if (data.data.areas.length > 0) {
var html = [empty_option];
$.each(data.data.areas, function (i, area) {
var area_html = '';
area_html = area_html.replace('[name]', area.name);
area_html = area_html.replace('[id]', area.id);
html.push(area_html);
});
html = html.join('', html);
$this.data('childarea' + id, html);
$child_area_select.html(html);
$child_area_select.show();
} else {
$child_area_select.hide();
}
}
},
error: function () {
},
complete: function () {
}
});
});
}
//地址联动end
//
var $js_action_btn = $('a.js-action-btn');
if ($js_action_btn.length) {
Wind.use('noty', function () {
$js_action_btn.on('click', function (e) {
e.preventDefault();
var $this = $(this),
href = $this.prop('href');
$.post(href, {}, function (data) {
if (data.code == '1') {
if (data.msg) {
noty({
text: data.msg,
type: 'success',
layout: 'center',
callback: {
afterClose: function () {
if (data.url) {
location.href = data.url;
}
}
}
});
}
} else if (data.code == 0) {
noty({
text: data.msg,
type: 'error',
layout: 'center',
callback: {
afterClose: function () {
if (data.url) {
location.href = data.url;
}
}
}
});
}
}, "json");
});
});
}
var $js_favorite_btn = $('a.js-favorite-btn');
if ($js_favorite_btn.length) {
Wind.use('noty', function () {
$js_favorite_btn.on('click', function (e) {
e.preventDefault();
var $this = $(this),
href = $this.prop('href'),
url = $this.data("url"),
id = $this.data("id"),
table = $this.data('table'),
title = $this.data("title"),
description = $this.data("description");
$.post(href, {
id: id,
table: table,
url: url,
title: title,
description: description
}, function (data) {
if (data.code == 1) {
if (data.msg) {
noty({
text: data.msg,
type: 'success',
layout: 'center',
callback: {
afterClose: function () {
if (data.url) {
location.href = data.url;
}
}
}
});
}
} else if (data.code == 0) {
noty({
text: data.msg,
type: 'error',
layout: 'center',
callback: {
afterClose: function () {
if (data.url) {
location.href = data.url;
}
}
}
});
}
}, "json");
});
});
}
})();
//重新刷新页面,使用location.reload()有可能导致重新提交
function reloadPage(win) {
if (win) {
} else {
win = window;
}
var location = win.location;
location.href = location.pathname + location.search;
}
//页面跳转
function redirect(url) {
location.href = url;
}
/**
* 读取cookie
* @param name
* @returns
*/
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
/**
* 设置cookie
*/
function setCookie(name, value, options) {
options = options || {};
if (value === null) {
value = '';
options.expires = -1;
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
}
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
}
var path = options.path ? '; path=' + options.path : '';
var domain = options.domain ? '; domain=' + options.domain : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
}
function openIframeDialog(url, title, options) {
var params = {
title: title,
lock: true,
opacity: 0,
width: "95%"
};
params = options ? $.extend(params, options) : params;
Wind.use('artDialog', 'iframeTools', function () {
art.dialog.open(url, params);
});
}
/**
* 打开地图对话框
*
* @param url
* @param title
* @param options
* @param callback
*/
function openMapDialog(url, title, options, callback) {
Wind.css('artDialog');
var params = {
title: title,
lock: true,
opacity: 0,
width: "95%",
height: 400,
ok: function () {
if (callback) {
var d = this.iframe.contentWindow;
var lng = $("#lng_input", d.document).val();
var lat = $("#lat_input", d.document).val();
var address = {};
address.address = $("#address_input", d.document).val();
address.province = $("#province_input", d.document).val();
address.city = $("#city_input", d.document).val();
address.district = $("#district_input", d.document).val();
callback.apply(this, [lng, lat, address]);
}
}
};
params = options ? $.extend(params, options) : params;
Wind.use('artDialog', 'iframeTools', function () {
art.dialog.open(url, params);
});
}
/**
* 打开文件上传对话框
* @param dialog_title 对话框标题
* @param callback 回调方法,参数有(当前dialog对象,选择的文件数组,你设置的extra_params)
* @param extra_params 额外参数,object
* @param multi 是否可以多选
* @param filetype 文件类型,image,video,audio,file
* @param app 应用名,CMF的应用名
*/
function openUploadDialog(dialog_title, callback, extra_params, multi, filetype, app) {
Wind.css('artDialog');
multi = multi ? 1 : 0;
filetype = filetype ? filetype : 'image';
app = app ? app : GV.APP;
var params = '&multi=' + multi + '&filetype=' + filetype + '&app=' + app;
Wind.use("artDialog", "iframeTools", function () {
art.dialog.open(GV.ROOT + 'user/Asset/webuploader?' + params, {
title: dialog_title,
id: new Date().getTime(),
width: '600px',
height: '350px',
lock: true,
fixed: true,
background: "#CCCCCC",
opacity: 0,
ok: function () {
if (typeof callback == 'function') {
var iframewindow = this.iframe.contentWindow;
var files = iframewindow.get_selected_files();
console.log(files);
if (files && files.length > 0) {
callback.apply(this, [this, files, extra_params]);
} else {
return false;
}
}
},
cancel: true
});
});
}
/**
* 单个文件上传
* @param dialog_title 上传对话框标题
* @param input_selector 图片容器
* @param filetype 文件类型,image,video,audio,file
* @param extra_params 额外参数,object
* @param app 应用名,CMF的应用名
*/
function uploadOne(dialog_title, input_selector, filetype, extra_params, app) {
filetype = filetype ? filetype : 'file';
openUploadDialog(dialog_title, function (dialog, files) {
$(input_selector).val(files[0].filepath);
$(input_selector + '-preview').attr('href', files[0].preview_url);
$(input_selector + '-name').val(files[0].name);
$(input_selector + '-name-text').text(files[0].name);
}, extra_params, 0, filetype, app);
}
/**
* 单个图片上传
* @param dialog_title 上传对话框标题
* @param input_selector 图片容器
* @param extra_params 额外参数,object
* @param app 应用名,CMF的应用名
*/
function uploadOneImage(dialog_title, input_selector, extra_params, app) {
openUploadDialog(dialog_title, function (dialog, files) {
$(input_selector).val(files[0].filepath);
$(input_selector + '-preview').attr('src', files[0].preview_url);
$(input_selector + '-name').val(files[0].name);
$(input_selector + '-name-text').text(files[0].name);
}, extra_params, 0, 'image', app);
}
/**
* 多图上传
* @param dialog_title 上传对话框标题
* @param container_selector 图片容器
* @param item_tpl_wrapper_id 单个图片html模板容器id
* @param extra_params 额外参数,object
* @param app 应用名,CMF 的应用名
*/
function uploadMultiImage(dialog_title, container_selector, item_tpl_wrapper_id, extra_params, app) {
openUploadDialog(dialog_title, function (dialog, files) {
var tpl = $('#' + item_tpl_wrapper_id).html();
var html = '';
$.each(files, function (i, item) {
var itemtpl = tpl;
itemtpl = itemtpl.replace(/\{id\}/g, item.id);
itemtpl = itemtpl.replace(/\{url\}/g, item.url);
itemtpl = itemtpl.replace(/\{preview_url\}/g, item.preview_url);
itemtpl = itemtpl.replace(/\{filepath\}/g, item.filepath);
itemtpl = itemtpl.replace(/\{name\}/g, item.name);
html += itemtpl;
});
$(container_selector).append(html);
}, extra_params, 1, 'image', app);
}
/**
* 多文件上传
* @param dialog_title 上传对话框标题
* @param container_selector 图片容器
* @param item_tpl_wrapper_id 单个图片html模板容器id
* @param filetype 文件类型,image,video,audio,file
* @param extra_params 额外参数,object
* @param app 应用名,CMF 的应用名
*/
function uploadMultiFile(dialog_title, container_selector, item_tpl_wrapper_id, filetype, extra_params, app) {
filetype = filetype ? filetype : 'file';
openUploadDialog(dialog_title, function (dialog, files) {
var tpl = $('#' + item_tpl_wrapper_id).html();
var html = '';
$.each(files, function (i, item) {
var itemtpl = tpl;
itemtpl = itemtpl.replace(/\{id\}/g, item.id);
itemtpl = itemtpl.replace(/\{url\}/g, item.url);
itemtpl = itemtpl.replace(/\{preview_url\}/g, item.preview_url);
itemtpl = itemtpl.replace(/\{filepath\}/g, item.filepath);
itemtpl = itemtpl.replace(/\{name\}/g, item.name);
html += itemtpl;
});
$(container_selector).append(html);
}, extra_params, 1, filetype, app);
}
function openIframeLayer(url, title, options) {
var params = {
type: 2,
title: title,
shadeClose: true,
// skin: 'layui-layer-nobg',
shade: [0.001, '#000000'],
shadeClose: true,
area: ['95%', '90%'],
move: false,
content: url,
yes: function (index, layero) {
//do something
layer.close(index); //如果设定了yes回调,需进行手工关闭
}
};
params = options ? $.extend(params, options) : params;
Wind.css('layer');
Wind.use("layer", function () {
layer.open(params);
});
}