var can_click = 1;
$(function () {
toastr.options = {
closeButton: false,
debug: false,
progressBar: false,
positionClass: "toast-top-center",
onclick: null,
showDuration: "3000",
hideDuration: "3000",
timeOut: "3000",
extendedTimeOut: "3000",
showEasing: "swing",
hideEasing: "linear",
showMethod: "fadeIn",
hideMethod: "fadeOut"
};
$('.aaa').click(function () {
$('#layer_image_img img').css(
"width", "100%"
);
})
//数据软删除
$('body').on("click", ".dataSoftDelete", function () {
var name = $(this).attr('data-name');
var all_length = $('input[name=' + name + ']').length;
var checked_length = $('input[name=' + name + ']:checked').length;
var location_href = $('.pagination').find('li').eq(-3).find('a').attr('href');
console.log(location_href);
var is_last = $('.pagination').find('li').eq(-2).hasClass('active');
$this = $(this);
var id;
if ($this.hasClass("multiSelect")) {
id = [];
$('input[name=' + name + '][checked]').each(function () {
id.push($(this).val());
});
if (id.length == 0) {
var info_text = $this.attr('data-info') ? $this.attr('data-info') : '请至少选择一条数据';
alert(info_text);
return false;
}
} else {
id = $(this).parent().attr('data-pid');
}
var confirm_text = '确定删除吗?删除后将不可恢复';
if ($(this).attr("data-text")) {
confirm_text = $(this).attr("data-text");
}
if (confirm_text) {
var check = confirm(confirm_text);
if (check == false) {
return false;
}
}
var table = $(this).attr('data-table');
$.post('/member/Member/dataSoftDelete', {
id: id,
table: table
}, function (data) {
if (data.code == 0) {
if (data.msg) {
toastr.success(data.msg);
}
if (all_length <= checked_length && is_last == true) {
window.location.href = location_href;
} else {
window.location.reload();
}
} else {
toastr.warning(data.msg);
//alert(data.msg);
return false;
}
}, 'json');
});
//返回按钮
$("button.backPrev").click(function () {
//window.history.back(-1);
window.location.href = document.referrer;
});
//复制按钮
$(".copy_btn").click(function () {
new Clipboard('#' + $(this).attr('id'));
alert('复制成功');
});
//加载浮层
$(document).on('click', '[data-toggle="modal_frame"]', function (e) {
common_obj.showLoading('加载中,请等待');
$('.modal_frame').remove();
e.preventDefault();
var id = $(this).attr('data-target');
var href = $(this).prop('href');
var html = '
';
$.get(href, {}, function (res) {
html += res;
html += '
';
$('body').append(html);
$(id).modal();
common_obj.hideLoading();
});
});
//按钮请求
$(document).on('click', '.normal_button', function () {
let url = $(this).attr('data-url');
common_obj.normal_post(url);
});
//esc键浮层消失
$(window).keydown(function (event) {
if (event.keyCode == 27) {
$('.modal_frame').modal('hide');
//$('.modal_frame').remove();
//$('.modal-backdrop').remove();
}
});
//双日历插件
$('.daterangepicker-time').daterangepicker({
format: 'YYYY/MM/DD HH:mm',
separator: '-'
});
//单日历插件
//$('form single-calendar')
if ($("form .single-calendar").length) {
$("form .single-calendar").each(function () {
laydate.render({
elem: 'input[name=' + $(this).attr('name') + ']', //指定元素
type: 'datetime',
format: 'yyyy-MM-dd HH:mm:ss',
done: function (value, date, endDate) {
}
});
});
$("form .single-calendar").focus(function () {
$(this).blur();
})
}
//单日历插件
if ($("form .single-calendar-day").length) {
$("form .single-calendar-day").each(function () {
laydate.render({
elem: 'input[name=' + $(this).attr('name') + ']', //指定元素
type: 'date',
format: 'yyyy-MM-dd',
done: function (value, date, endDate) {
}
});
});
$("form .single-calendar-day").focus(function () {
$(this).blur();
})
}
$("#beginTime").click(function () {
let that = $(this).parent();
that.find(".input-mini").val("");
that.find(".daterangepicker-time").val("");
});
$(".beginTime").click(function () {
let that = $(this).parent();
that.find(".input-mini").val("");
that.find(".daterangepicker-time").val("");
});
common_obj.load_file_upload();
//地图
//if ($("form .map").length) {
// window.addEventListener('message', function (event) {
// // 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息
// var loc = event.data;
// //防止其他应用也会向该页面post信息,需判断module是否为'locationPicker'
// if (loc && loc.module == 'locationPicker') {
// $("input[name=lng]").val(loc.latlng.lng);
// $("input[name=lat]").val(loc.latlng.lat);
// $("input[name=address]").val(loc.poiaddress);
// $(".map p.form-control-static").text(loc.poiaddress);
// }
// }, false);
//}
//地图
$("form .map").each(function () {
var that = $(this);
window.addEventListener('message', function (event) {
// 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息
var loc = event.data;
//防止其他应用也会向该页面post信息,需判断module是否为'locationPicker'
if (loc && loc.module == 'locationPicker') {
that.find("input[name*=lng]").val(loc.latlng.lng);
that.find("input[name*=lat]").val(loc.latlng.lat);
that.find("input[name*=address]").val(loc.poiaddress);
that.find("p.form-control-static").text(loc.poiaddress);
}
}, false);
});
//select2 加载
$('.select2_style').each(function () {
$(this).select2({style: 'select2-width'});
});
$('.select_search').each(function () {
$(this).selectpicker('refresh')
})
//点击图片突变弹出图片浮层
$(document).on("click", "a[href=#layer_image]", function () {
$("#layer_image img").attr("src", $(this).attr("data-image"));
});
//必填选项选中
$(document).on('focus', "input,select,textarea", function () {
if (typeof ($(this).attr('notnull')) != "undefined") {
$(this).css('border-color', '#B94A48');
}
});
//必填选项失去焦点
$(document).on('change', "input,select,textarea", function () {
if (typeof ($(this).attr('notnull')) != "undefined") {
$(this).css('border-color', '#e2e2e4');
}
});
//必填选项失去焦点
$(document).on('blur', "input,select,textarea", function () {
if (typeof ($(this).attr('notnull')) != "undefined") {
$(this).css('border-color', '#e2e2e4');
}
});
//$(document).on("click", "a[href=#carousel_image]", function () {
// var now_image = $(this).attr("data-image");
// var html_1 = '';
// var html_2 = '';
//
// $(this).parent().find("a[href=#carousel_image]").each(function () {
// var this_image = $(this).attr("data-image");
// html_1 += ' ';
//
// html_2 += ' ';
// });
// $('#carousel_image_img').find('.carousel-indicators').html(html_1);
// $('#carousel_image_img').find('.carousel-inner').html(html_2);
//});
});
//js检验号码
function checkTel(that) {
var position = getPosition(that);
var regx = /[^0-9-]+/;
var result = that.value.match(regx);
if (result != null) {
position = position - parseFloat(getStringLength(result[0]));
}
that.value = that.value.replace(/[^0-9-]+/, '');
setCaretPosition(that, position);
}
//获取字符串长度
function getStringLength(str) {
///获得字符串实际长度,中文2,英文1
///要获得长度的字符串
var realLength = 0, len = str.length, charCode = -1;
for (var i = 0; i < len; i++) {
charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128)
realLength += 1;
else
realLength += 2;
}
return realLength;
}
//获取当前div光标位置
function getCursortPosition(element) {
var caretOffset = 0;
var doc = element.ownerDocument || element.document;
var win = doc.defaultView || doc.parentWindow;
var sel;
if (typeof win.getSelection != "undefined") {//谷歌、火狐
sel = win.getSelection();
if (sel.rangeCount > 0) {//选中的区域
var range = win.getSelection().getRangeAt(0);
var preCaretRange = range.cloneRange();//克隆一个选中区域
preCaretRange.selectNodeContents(element);//设置选中区域的节点内容为当前节点
preCaretRange.setEnd(range.endContainer, range.endOffset); //重置选中区域的结束位置
caretOffset = preCaretRange.toString().length;
}
} else if ((sel = doc.selection) && sel.type != "Control") {//IE
var textRange = sel.createRange();
var preCaretTextRange = doc.body.createTextRange();
preCaretTextRange.moveToElementText(element);
preCaretTextRange.setEndPoint("EndToEnd", textRange);
caretOffset = preCaretTextRange.text.length;
}
return caretOffset;
};
//input/textarea获取光标位置
function getPosition(element) {
var cursorPos = 0;
if (document.selection) {//IE
var selectRange = document.selection.createRange();
selectRange.moveStart('character', -element.value.length);
cursorPos = selectRange.text.length;
} else if (element.selectionStart || element.selectionStart == '0') {
cursorPos = element.selectionStart;
}
return cursorPos;
};
//设置div光标位置
function setCursortPosition(element, pos) {
var range, selection;
if (document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+
{
range = document.createRange();//创建一个选中区域
range.selectNodeContents(element);//选中节点的内容
if (element.innerHTML.length > 0) {
range.setStart(element.childNodes[0], pos); //设置光标起始为指定位置
}
range.collapse(true); //设置选中区域为一个点
selection = window.getSelection();//获取当前选中区域
selection.removeAllRanges();//移出所有的选中范围
selection.addRange(range);//添加新建的范围
} else if (document.selection)//IE 8 and lower
{
range = document.body.createTextRange();//Create a range (a range is a like the selection but invisible)
range.moveToElementText(element);//Select the entire contents of the element with the range
range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start
range.select();//Select the range (make it the visible selection
}
};
// 设置input/textarea光标位置
function setCaretPosition(textDom, pos) {
if (textDom.setSelectionRange) {
// IE Support
textDom.focus();
textDom.setSelectionRange(pos, pos);
} else if (textDom.createTextRange) {
// Firefox support
var range = textDom.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
var common_obj = {
normal_post: function (url, callback) {
common_obj.showLoading();
$.post(url, '', function (res) {
if (callback) {
callback(res);
} else {
if (res.msg != '操作成功' && res.msg != '') {
alert(res.msg);
}
if (res.url === '') {
window.location.reload();
} else {
window.location.href = res.url;
}
}
})
},
form_load: function (callback) {
$('#search-form1').submit(function (e) {
e.preventDefault();
$("#search-form1 input[name=page]").val(1).attr("data-value", 1);
common_obj.load_form(callback);
});
//点击底部页面分页
$("#page").on("click", ".pagination li a", function (e) {
e.preventDefault();
// var page = $(this).attr("href");
// page = page.split('?');
// page = page[1].substring(5);
var page = $(this).text();
$("#search-form input[name=page]").val(page).attr("data-value", page);
common_obj.load_form(callback);
});
//双日历插件
$('.daterangepicker-time-load').daterangepicker({
format: 'YYYY/MM/DD HH:mm',
separator: '-'
});
common_obj.load_file_upload();
//地图
if ($("form .map").length) {
window.addEventListener('message', function (event) {
// 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息
var loc = event.data;
//防止其他应用也会向该页面post信息,需判断module是否为'locationPicker'
if (loc && loc.module == 'locationPicker') {
$("input[name=lng]").val(loc.latlng.lng);
$("input[name=lat]").val(loc.latlng.lat);
$("input[name=address]").val(loc.poiaddress);
$(".map p.form-control-static").text(loc.poiaddress);
}
}, false);
}
//高德地图
//select2 加载
$('.select2_style').each(function () {
$(this).select2();
});
},
showLoading: function () {
$('.loading-wai').show();
$('#loading').show();
},
hideLoading: function () {
$('.loading-wai').hide();
$('#loading').hide();
},
load_file_upload: function () {
$(".more-img").on('click', ".img div span", function () {
$(this).parent().remove();
});
$(".one-img").on('click', ".img div span", function () {
$(this).parents(".one-img").find("input:hidden").val('');
$(this).parent().remove();
});
let i = 1;
$('form').find('.file-upload').each(function () {
$(this).attr('id', 'pick_form_' + i);
webuploader_obj.oss_webuploader_init('#pick_form_' + i);
i++;
});
//修改webuploader点击div样式
setTimeout(function () {
if ($("form .one-img").length) {
$("form .one-img").each(function () {
$('#' + $(this).find(".webuploader-picker").attr("id") + ' div:eq(1)').attr('style', 'position: absolute; top: 0px; left: 0px; width: 82px; height: 33px; overflow: hidden; bottom: auto; right: auto;');
})
}
if ($("form .more-img").length) {
$("form .more-img").each(function () {
$('#' + $(this).find(".webuploader-picker").attr("id") + ' div:eq(1)').attr('style', 'position: absolute; top: 0px; left: 0px; width: 82px; height: 33px; overflow: hidden; bottom: auto; right: auto;');
})
}
}, 100);
},
data_handle: function (callback) {
$("tbody").on('click', 'input[type=checkbox]', function () {
if ($(this).is(':checked') == true) {
$(this).attr('checked', true);
$(this).prop('checked', true);
} else {
$(this).attr('checked', false);
$(this).prop('checked', false);
}
var name = $('#check_all').attr('data-name');
var all_checkbox = $('input[name=' + name + ']').length;
var checked_checkbox = $('input[name=' + name + ']:checked').length;
if (checked_checkbox >= all_checkbox) {
$('#check_all').click();
} else {
$('#check_all').attr('checked', false);
$('#check_all').prop('checked', false);
}
});
//全选
$(document).on('change', '#check_all', function () {
var name = $(this).attr('data-name');
if ($(this).is(':checked') == true) { //选中
$('input[name=' + name + ']').prop('checked', true);
$('input[name=' + name + ']').attr('checked', true);
} else { //取消选中
$('input[name=' + name + ']').prop('checked', false);
$('input[name=' + name + ']').attr('checked', false);
}
});
//批量修改
$('.submit-all').click(function () {
var operate_value = $(this).parent().parent().find('select[name=operate]').val();
var cur = $(this).parent().parent().find("select[name=operate] option:selected");
var url = cur.attr('data-url'); //url
var model = cur.attr('data-model');
var table = cur.attr('data-table');
var field = cur.attr('data-field');
var value = cur.attr("data-value");
var where = cur.attr('data-where');
var childrenModel = cur.attr('data-childrenModel');
if (childrenModel == undefined) {
childrenModel = '';
}
var all_id = [];
switch (operate_value) {
case 'sort':
all_id = sort(cur);
break;
case 'update':
all_id = update(cur);
if (all_id == false) {
return false;
}
break;
default:
all_id = update(cur);
if (all_id == false) {
alert('无选项');
return false;
}
}
$.post(url, {
id: all_id, //多选的值
operate_value: operate_value,//下拉框类型
where: where,//多选数据字段
model: model,//模块
childrenModel: childrenModel,//子模块
table: table,//修改表
field: field,//修改字段
value: value//修改成的值
}, function (data) {
$('select[name=operate]').blur();
if (data.code == 0) {
if (data.msg) {
toastr.success(data.msg);
// alert(data.msg);
}
$('input[type=checkbox]').removeAttr('checked');
window.location.reload();
} else {
toastr.warning(data.msg);
// alert(data.msg);
return false;
}
}, 'json');
});
function sort(cur) {
var all_id = [];
var name = cur.attr('data-name');
$('input[name=' + name + ']').each(function () {
var array = {};
array['id'] = $(this).attr('data-id');
array[name] = $(this).val();
all_id.push(array);
})
all_id = JSON.stringify(all_id);
console.log(all_id);
return all_id;
}
function update(cur) {
var all_id = [];
var name = cur.attr('data-name');
$('input[name=' + name + '][checked]').each(function () {
all_id.push($(this).val());
});
if (all_id.length == 0) {
alert(cur.attr('data-info'));
return false;
}
if (cur.attr("data-text")) {
var check = confirm(cur.attr("data-text"));
if (check == false) {
return false
}
}
return all_id;
}
//操作
$('table').on("click", "td a[href=#deal]", function () {
$this = $(this);
if ($(this).attr("data-text")) {
var check = confirm($(this).attr("data-text"));
if (check == false) {
return false;
}
}
var url = $(this).attr('data-url');
var id = $(this).parent().attr('data-pid');
var table = $(this).attr('data-table');
var field = $(this).attr('data-field');
var value = $(this).attr("data-value");
var model = $(this).attr("data-model");
var childrenModel = $(this).attr('data-childrenModel');
if (childrenModel == undefined) {
childrenModel = '';
}
$.post(url, {
id: id,
table: table,
field: field,
value: value,
model: model,
childrenModel: childrenModel
}, function (data) {
if (data.code == 0) {
if (data.msg) {
toastr.success(data.msg);
// alert(data.msg);
}
window.location.reload();
} else {
toastr.warning(data.msg);
// alert(data.msg);
return false;
}
}, 'json');
});
$(document).on("click", "a[href=#common_click]", function () {
$this = $(this);
if ($(this).attr("data-text")) {
var check = confirm($(this).attr("data-text"));
if (check == false) {
return false;
}
}
var url = $(this).attr('data-url');
var id = $(this).parent().attr('data-pid');
var tablename = $(this).attr('data-tablename');
var fieldname = $(this).attr('data-fieldname');
var afterchange = $(this).attr("data-value");
$.post(url, {
id: id,
tablename: tablename,
fieldname: fieldname,
afterchange: afterchange
}, function (data) {
if (data.ret == 1) {
if (data.msg) {
toastr.success(data.msg);
// alert(data.msg);
}
window.location.reload();
} else {
toastr.warning(data.msg);
// alert(data.msg);
return false;
}
}, 'json');
});
common_obj.load_form(callback);
$('#search-form1').submit(function (e) {
e.preventDefault();
$("#search-form1 input[name=page]").val(1).attr("data-value", 1);
common_obj.load_form(callback);
});
//点击底部页面分页
//$("#page").on("click", ".pagination li a", function (e) {
// e.preventDefault();
// var page = $(this).attr("href");
// page = page.split('?');
// page = page[1].substring(5);
//
// $("#search-form input[name=page]").val(page).attr("data-value", page);
// common_obj.load_form(callback);
//});
//导出
$('#search-form input:button').click(function () {
window.location = $(this).attr("data-url");
});
},
load_form: function (callback) {
$('#search-form1 input:not(input:submit),#search-form1 select').each(function () {
$(this).attr("data-value", $(this).val());
//console.log($(this).val()); console.log($(this).attr("data-value"));
});
//return false;
var obj = {};
$.each($('#search-form1 input:not(input:submit):not(input:button),#search-form1 select'), function (i, n) {
var name = $(this).attr("name");
obj[name] = $(this).attr("data-value");
});
$.post('', obj, function (data) {
if (data.ret == 1) {
$("#data-table tbody").html(data.data);
if ($("#page").length) {
$("#page").html(data.attach.page)
}
if (data.attach.total_html != undefined) {
if ($('#search-form1').children('div:last-child').hasClass('total_html')) {
var html = '';
$.each(data.attach.total_html, function (key, value) {
html += value[0] + ":" + value[1] + " ";
});
html += '
';
//商品总数:2 商品总数:2
$('.total_html').html(html);
} else {
var html = '';
//商品总数:2 商品总数:2
$('#search-form1').append(html);
}
}
} else {
if (data.msg) {
alert(data.msg);
return false;
}
}
if (callback) {
callback(data);
}
}, 'json');
},
form_submit: function () {
//$('.daterangepicker-time').daterangepicker({
// format: 'YYYY/MM/DD HH:mm',
// separator: '-',
//});
$('#data-form').submit(function (e) {
e.preventDefault();
if (global_obj.check_form($('#data-form').find('*[notnull]'))) {
return false
}
common_obj.showLoading('加载中,请等待');
$.post($("#do_action").val(), $('#data-form').serialize(), function (data) {
common_obj.hideLoading();
setTimeout(function () {
if (data.code == 0) {
if (data.msg) {
alert(data.msg);
}
if ($('#do_jump').length) {
window.location.href = $('#do_jump').val();
} else {
let is_reload = $('input[name=is_reload]').val();
if (is_reload == 1) {
window.location.reload();
} else {
window.history.go(-1);
}
}
} else {
if (data.msg) {
alert(data.msg);
return false;
}
if (data.url) {
window.location.href = data.url;
}
}
}, 10);
});
});
},
}
var webuploader_obj = {
oss_webuploader_init: function (file_input_obj) {
//隐藏域名称(必填)
let file_name = (typeof $(file_input_obj).attr('data-name') === "undefined" || $(file_input_obj).attr('data-name') === "")
? 1 : $(file_input_obj).attr('data-name');
//可上传数量(必填)
let file_number = (typeof $(file_input_obj).attr('data-file-number') === "undefined" || $(file_input_obj).attr('data-file-number') === "")
? 1 : $(file_input_obj).attr('data-file-number');
//可上传类型
let file_type = $(file_input_obj).attr('data-file-type');
if (file_type === 'image') {
file_type = "gif,jpeg,jpg,bmp,png";
} else if (file_type === 'video') {
file_type = "avi,wmv,mkv,mp4,mov,rm,3gp,flv,mpg,rmvb";
} else if (file_type === 'audio') {
file_type = "mp3";
} else if (file_type === 'file') {
file_type = "txt,doc,docx,xls,xlsx,xmind";
} else {
file_type = (typeof $(file_input_obj).attr('data-file-type') === "undefined" || $(file_input_obj).attr('data-file-type') === "")
? 'jpg,png,gif,jpeg' : $(file_input_obj).attr('data-file-type');
}
//上传地址(非必填,默认为oss上传)
let upload_url = $(file_input_obj).attr('data-upload-url');
//上传文件大小限制 ,默认20M
let file_size_limit = (typeof $(file_input_obj).attr('data-file-size') === "undefined" || $(file_input_obj).attr('data-file-size') === "")
? 20971520 : $(file_input_obj).attr('data-file-size');
//是否原名上传 0:随机数上传 1:原名上传
let is_original_name = (typeof $(file_input_obj).attr('data-original-name') === "undefined" || $(file_input_obj).attr('data-original-name') === "")
? 0 : parseInt($(file_input_obj).attr('data-original-name'));
//上传文件名
let file_path = (typeof $(file_input_obj).attr('data-file-path') === "undefined" || $(file_input_obj).attr('data-file-path') === "")
? '' : ($(file_input_obj).attr('data-file-path'));
//原始数据
let original_value = (typeof $(file_input_obj).attr('data-original-value') === "undefined" || $(file_input_obj).attr('data-original-value') === "")
? [] : JSON.parse($(file_input_obj).attr('data-original-value'));
//是否必填
let is_required = (typeof $(file_input_obj).attr('data-is-require') === "undefined" || $(file_input_obj).attr('data-is-require') === "")
? 2 : $(file_input_obj).attr('data-is-require');
let required_text = (typeof $(file_input_obj).attr('data-require-text') === "undefined" || $(file_input_obj).attr('data-require-text') === "")
? '' : $(file_input_obj).attr('data-require-text');
let input_name = file_number === 1 ? file_name : file_name + '[]';
for (let value in original_value) {
if (original_value[value] !== "" && original_value[value] !== null) {
let html = returnHtmlByType(input_name, original_value[value]);
$(file_input_obj).parent().before("" + html + "
");
}
}
let label = '';
var uploader = WebUploader.create({
swf: './static/common/js/webuploader/Uploader.swf',// swf文件路径
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: {
id: file_input_obj,
label: '',
// label: '测试',
multiple: true
},
accept: {
extensions: file_type,
},
threads: 1,
//compress:false,//上传不压缩参数
resize: false,// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
disableGlobalDnd: true, // 禁掉全局的拖拽功能。这样不会出现图片拖进页面的时候,把图片打开。
fileNumLimit: 300, //最多上传张数
fileSizeLimit: file_size_limit,//验证文件总大小是否超出限制, 超出则不允许加入队列。
});
//判断已有文件数量进行判断上传按钮是否显示
let has_image_length = getImageList(file_input_obj);
if (has_image_length >= 1) {
$(file_input_obj).find('.fileinput-button').find('input').remove();
}
if (has_image_length >= file_number) {
$(file_input_obj).parent().hide();
}
//当文件被加入队列之前触发,此事件的handler返回值为false,则此文件不会被添加进入队列。
uploader.on('beforeFileQueued', function (file) {
let last_number = uploader.option('fileNumLimit') - getImageList(file_input_obj);
console.log(file)
console.log(last_number);
let html = ' ';
$(file_input_obj).parent().before(html);
});
let show_url_domian = '';
//上传地址(非必填,默认为oss上传)
if (typeof upload_url !== "undefined" && upload_url !== "") {
uploader.on('filesQueued', function (file, response) {
uploader.option('server', upload_url);
uploader.upload();
$.ajaxSettings.async = true;
});
// console.log(2221111);
} else {
uploader.on('filesQueued', function (file, response) {
let form_data = '';
$.ajaxSettings.async = false;
$.post('/base/oss/admin/Oss/getOssParam', {
is_original_name: is_original_name,
file_path: file_path
}, function (res) {
if (res.code === 0) {
var data = res.data;
form_data = data;
show_url_domian = data.showUrlDomain;
uploader.option('server', data.host)
} else {
alert('签名错误');
}
});
for (let single_file in file) {
let suffix = file[single_file].source.ext; //后缀
file[single_file].formData = {
'key': form_data.dir + '_' + single_file + '.' + suffix,
'policy': form_data.policy,
'OSSAccessKeyId': form_data.accessid,
'success_action_status': '200', //让服务端返回200,不然,默认会返回204
'callback': form_data.callback,
'signature': form_data.signature,
};
}
uploader.upload();
$.ajaxSettings.async = true;
});
}
uploader.on('uploadStart', function (file) {
if (typeof (arguments[1]) == 'undefined' || arguments[1] === '') {
uploader.option('formData', file.formData);
}
});
//上传过程中触发,携带上传进度。
uploader.on('uploadProgress', function (file, percentage) {
let width = 100 * percentage;
$('#' + file.id).html(" ");
});
// 文件上传成功,给item添加成功class, 用样式标记上传成功。
uploader.on('uploadSuccess', function (file, response) {
console.log('success');
if (typeof success_callback !== "undefined" && success_callback !== "") {
eval(success_callback + "(" + file + "," + response + ")");
return false;
}
let image_path = (show_url_domian === '') ? response.data.showUrlDomain : show_url_domian + response.object;
let input_name = file_number === 1 ? file_name : file_name + '[]';
let html = returnHtmlByType(input_name, image_path, file.id);
$("#" + file.id).html(html);
$("#" + file.id).nextAll('.video_url').find('input[name="video_url"]').val(image_path);
let has_image_length = getImageList(file_input_obj);
$(file_input_obj).find('.fileinput-button').find('input').remove();
if (has_image_length >= file_number) {
$(file_input_obj).parent().hide();
}
});
// 文件上传失败,显示上传出错。
uploader.on('uploadError', function (file, response) {
// console.log(response, 'error')
// var jsonData = eval('(' + response + ')');
// if (jsonData.status == 1) {
//
// } else {
// alert('文件上传失败,出现未知错误!');
// }
});
//当validate不通过时,会以派送错误事件的形式通知调用者
uploader.on('error', function (res) {
let array = [];
let size_limit = (uploader.option('fileSizeLimit') / 1024).toFixed(0);
if (size_limit > 1024) {
size_limit = (uploader.option('fileSizeLimit') / 1024 / 1024).toFixed(0) + 'M';
} else {
size_limit += 'kb';
}
array['Q_TYPE_DENIED'] = '上传文件类型不正确,可上传类型为:' + uploader.option('accept')[0]['extensions'];
array['Q_EXCEED_NUM_LIMIT'] = '上传文件太多,可上传数为:' + uploader.option('fileNumLimit');
array['Q_EXCEED_SIZE_LIMIT'] = '上传文件大大,可上传大小为:' + size_limit;
$('.ready_upload').parent().remove();
alert(array[res]);
});
//当一批文件添加进队列以后触发
uploader.on('filesQueued', function (files) {
let last_number = file_number - getImageList(file_input_obj);
// console.log(last_number);
// console.log(uploader.option('fileNumLimit'));
// console.log(getImageList(file_input_obj));
if (files.length > last_number) {
console.log(Object.keys(files).length);
for (let i = 0; i < Object.keys(files).length; i++) {
if (i >= last_number) {
$('#' + files[i].id).remove();
uploader.removeFile(files[i]);
}
}
//for (let file in files) {
// uploader.removeFile(files[file]);
//}
alert('上传文件太多,可上传数为:' + last_number)
}
});
//点击删除按钮,刷新按钮,显示全 可点击位置
$(file_input_obj).parent().parent().on('click', '.file-upload-list span', function () {
if (typeof $(this).attr('data-file-id') !== 'undefined' && $(this).attr('data-file-id') != '') {
uploader.removeFile($(this).attr('data-file-id'), true);
}
$(this).parents('.file-upload-list').parent().remove();
if (getImageList(file_input_obj) < 1) {
$(file_input_obj).find('.fileinput-button').append(label);
}
$(file_input_obj).parent().show();
uploader.refresh();
});
$(file_input_obj).parent().parent().on('click', 'label .carousel-del', function () {
if (typeof $(this).attr('data-file-id') !== 'undefined' && $(this).attr('data-file-id') != '') {
uploader.removeFile($(this).attr('data-file-id'), true);
}
$(this).parent().parent().find('.file-upload-list').parent().remove();
$(this).parent().parent().find('input[name="carousel_link_url[]"]').val("");
if (getImageList(file_input_obj) < 1) {
$(file_input_obj).find('.fileinput-button').append(label);
}
$(file_input_obj).parent().show();
uploader.refresh();
});
//获取已存在的文件数量
function getImageList(file_input_obj) {
return $(file_input_obj).parent().parent().find('.file-upload-list').length;
}
},
// 腾讯云上传
cos_webuploader_init: function (file_input_obj) {
//隐藏域名称(必填)
let file_name = (typeof $(file_input_obj).attr('data-name') === "undefined" || $(file_input_obj).attr('data-name') === "")
? 1 : $(file_input_obj).attr('data-name');
//可上传数量(必填)
let file_number = (typeof $(file_input_obj).attr('data-file-number') === "undefined" || $(file_input_obj).attr('data-file-number') === "")
? 1 : $(file_input_obj).attr('data-file-number');
//可上传类型
let file_type = $(file_input_obj).attr('data-file-type');
if (file_type === 'image') {
file_type = "gif,jpeg,jpg,bmp,png";
} else if (file_type === 'video') {
file_type = "avi,wmv,mkv,mp4,mov,rm,3gp,flv,mpg,rmvb";
} else if (file_type === 'audio') {
file_type = "mp3";
} else if (file_type === 'file') {
file_type = "txt,doc,docx,xls,xlsx,xmind";
} else {
file_type = (typeof $(file_input_obj).attr('data-file-type') === "undefined" || $(file_input_obj).attr('data-file-type') === "")
? 'jpg,png,gif,jpeg' : $(file_input_obj).attr('data-file-type');
}
//上传地址(非必填,默认为oss上传)
let upload_url = $(file_input_obj).attr('data-upload-url');
//上传文件大小限制 ,默认20M
let file_size_limit = (typeof $(file_input_obj).attr('data-file-size') === "undefined" || $(file_input_obj).attr('data-file-size') === "")
? 20971520 : $(file_input_obj).attr('data-file-size');
//是否原名上传 0:随机数上传 1:原名上传
let is_original_name = (typeof $(file_input_obj).attr('data-original-name') === "undefined" || $(file_input_obj).attr('data-original-name') === "")
? 0 : parseInt($(file_input_obj).attr('data-original-name'));
//上传文件名
let file_path = (typeof $(file_input_obj).attr('data-file-path') === "undefined" || $(file_input_obj).attr('data-file-path') === "")
? '' : ($(file_input_obj).attr('data-file-path'));
//原始数据
let original_value = (typeof $(file_input_obj).attr('data-original-value') === "undefined" || $(file_input_obj).attr('data-original-value') === "")
? [] : JSON.parse($(file_input_obj).attr('data-original-value'));
//是否必填
let is_required = (typeof $(file_input_obj).attr('data-is-require') === "undefined" || $(file_input_obj).attr('data-is-require') === "")
? 2 : $(file_input_obj).attr('data-is-require');
let required_text = (typeof $(file_input_obj).attr('data-require-text') === "undefined" || $(file_input_obj).attr('data-require-text') === "")
? '' : $(file_input_obj).attr('data-require-text');
let input_name = file_number === 1 ? file_name : file_name + '[]';
for (let value in original_value) {
if (original_value[value] !== "" && original_value[value] !== null) {
let html = returnHtmlByType(input_name, original_value[value]);
$(file_input_obj).parent().before("" + html + "
");
}
}
let label = '';
var uploader = WebUploader.create({
swf: './static/common/js/webuploader/Uploader.swf',// swf文件路径
// 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: {
id: file_input_obj,
label: '',
// label: '测试',
multiple: true
},
accept: {
extensions: file_type,
},
threads: 1,
//compress:false,//上传不压缩参数
resize: false,// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
disableGlobalDnd: true, // 禁掉全局的拖拽功能。这样不会出现图片拖进页面的时候,把图片打开。
fileNumLimit: 300, //最多上传张数
fileSizeLimit: file_size_limit,//验证文件总大小是否超出限制, 超出则不允许加入队列。
});
//判断已有文件数量进行判断上传按钮是否显示
let has_image_length = getImageList(file_input_obj);
if (has_image_length >= 1) {
$(file_input_obj).find('.fileinput-button').find('input').remove();
}
if (has_image_length >= file_number) {
$(file_input_obj).parent().hide();
}
//当文件被加入队列之前触发,此事件的handler返回值为false,则此文件不会被添加进入队列。
uploader.on('beforeFileQueued', function (file) {
let last_number = uploader.option('fileNumLimit') - getImageList(file_input_obj);
// console.log(file)
// console.log(last_number);
let html = ' ';
$(file_input_obj).parent().before(html);
});
let show_url_domian = '';
//上传地址(非必填,默认为oss上传)
if (typeof upload_url !== "undefined" && upload_url !== "") {
uploader.on('filesQueued', function (file, response) {
uploader.option('server', upload_url);
uploader.upload();
$.ajaxSettings.async = true;
});
// console.log(2221111);
} else {
uploader.on('filesQueued', function (file, response) {
console.log(file)
/*
file示例:
[{
ext:"jpeg",
id:"WU_FILE_0",
name:"eb041943e6b8487d8ad224f79d680537_th.jpeg",
size: 32985,
source: {
ext: "jpeg",
name: "eb041943e6b8487d8ad224f79d680537_th.jpeg"
},
type: "image/jpeg"
}]
*/
let form_data = '';
$.ajaxSettings.async = false;
$.post('/base/cos/admin/File/getCosParam', {
is_original_name: is_original_name,
file_path: file_path
}, function (res) {
console.log(res.data)
if (res.code === 0) {
var data = res.data;
form_data = data;
show_url_domian = data.show_url;
uploader.option('server', data.host)
for (let single_file in file) {
let suffix = file[single_file].source.ext;
let key = form_data.dir + '_' + single_file + '.' + suffix;
console.log(suffix,key)
let sign = CosAuth({
SecretId: data.tem_secret_id,
SecretKey: data.tem_secret_key,
Method: 'POST',
Pathname: '/',
})
// console.log(sign)
file[single_file].formData = {
'key': key,
// 'success_action_redirect': form_data.policy,
// 'OSSAccessKeyId': form_data.accessid,
'Signature': sign,
"success_action_status": 200,
'x-cos-security-token': data.token || ''
};
uploader.upload();
$.ajaxSettings.async = true;
}
} else {
alert('签名错误');
}
});
});
}
uploader.on('uploadStart', function (file) {
if (typeof (arguments[1]) == 'undefined' || arguments[1] === '') {
uploader.option('formData', file.formData);
}
});
//上传过程中触发,携带上传进度。
uploader.on('uploadProgress', function (file, percentage) {
let width = 100 * percentage;
$('#' + file.id).html(" ");
});
// 文件上传成功,给item添加成功class, 用样式标记上传成功。
uploader.on('uploadSuccess', function (file, response) {
console.log(777);
console.log(file);
console.log(response);
if (typeof success_callback !== "undefined" && success_callback !== "") {
eval(success_callback + "(" + file + "," + response + ")");
return false;
}
let image_path = (show_url_domian === '') ? response.data.showUrlDomain : show_url_domian + '/' + file.formData.key;
let input_name = file_number === 1 ? file_name : file_name + '[]';
let html = returnHtmlByType(input_name, image_path, file.id);
$("#" + file.id).html(html);
$("#" + file.id).nextAll('.video_url').find('input[name="video_url"]').val(image_path);
let has_image_length = getImageList(file_input_obj);
$(file_input_obj).find('.fileinput-button').find('input').remove();
if (has_image_length >= file_number) {
$(file_input_obj).parent().hide();
}
});
// 文件上传失败,显示上传出错。
uploader.on('uploadError', function (file, response) {
// console.log(response, 'error')
// var jsonData = eval('(' + response + ')');
// if (jsonData.status == 1) {
//
// } else {
// alert('文件上传失败,出现未知错误!');
// }
});
//当validate不通过时,会以派送错误事件的形式通知调用者
uploader.on('error', function (res) {
let array = [];
let size_limit = (uploader.option('fileSizeLimit') / 1024).toFixed(0);
if (size_limit > 1024) {
size_limit = (uploader.option('fileSizeLimit') / 1024 / 1024).toFixed(0) + 'M';
} else {
size_limit += 'kb';
}
array['Q_TYPE_DENIED'] = '上传文件类型不正确,可上传类型为:' + uploader.option('accept')[0]['extensions'];
array['Q_EXCEED_NUM_LIMIT'] = '上传文件太多,可上传数为:' + uploader.option('fileNumLimit');
array['Q_EXCEED_SIZE_LIMIT'] = '上传文件大大,可上传大小为:' + size_limit;
$('.ready_upload').parent().remove();
alert(array[res]);
});
//当一批文件添加进队列以后触发
uploader.on('filesQueued', function (files) {
let last_number = file_number - getImageList(file_input_obj);
// console.log(last_number);
// console.log(uploader.option('fileNumLimit'));
// console.log(getImageList(file_input_obj));
if (files.length > last_number) {
console.log(Object.keys(files).length);
for (let i = 0; i < Object.keys(files).length; i++) {
if (i >= last_number) {
$('#' + files[i].id).remove();
uploader.removeFile(files[i]);
}
}
//for (let file in files) {
// uploader.removeFile(files[file]);
//}
alert('上传文件太多,可上传数为:' + last_number)
}
});
//点击删除按钮,刷新按钮,显示全 可点击位置
$(file_input_obj).parent().parent().on('click', '.file-upload-list span', function () {
if (typeof $(this).attr('data-file-id') !== 'undefined' && $(this).attr('data-file-id') != '') {
uploader.removeFile($(this).attr('data-file-id'), true);
}
$(this).parents('.file-upload-list').parent().remove();
if (getImageList(file_input_obj) < 1) {
$(file_input_obj).find('.fileinput-button').append(label);
}
$(file_input_obj).parent().show();
uploader.refresh();
});
$(file_input_obj).parent().parent().on('click', 'label .carousel-del', function () {
if (typeof $(this).attr('data-file-id') !== 'undefined' && $(this).attr('data-file-id') != '') {
uploader.removeFile($(this).attr('data-file-id'), true);
}
$(this).parent().parent().find('.file-upload-list').parent().remove();
$(this).parent().parent().find('input[name="carousel_link_url[]"]').val("");
if (getImageList(file_input_obj) < 1) {
$(file_input_obj).find('.fileinput-button').append(label);
}
$(file_input_obj).parent().show();
uploader.refresh();
});
//获取已存在的文件数量
function getImageList(file_input_obj) {
return $(file_input_obj).parent().parent().find('.file-upload-list').length;
}
}
};
/**
* 根据类型返回html
* @param input_name
* @param value
* @param file_id
* @returns {string}
*/
function returnHtmlByType(input_name, value, file_id = '') {
if (value === "") {
return '';
}
let html = '';
console.log(value);
let file_type = checkUrlType(value);
if (file_type === 'image') {
html = " \n" +
"

\n" +
"
删除\n" +
"
\n" +
"
\n";
} else if (file_type === 'video') {
html = " \n" +
"" +
" 删除\n" +
" \n" +
"
\n";
} else if (file_type === 'audio') {
console.log(file_type);
html = " \n" +
"
" +
"
删除\n" +
"
\n" +
"
\n";
} else {
html = " \n";
}
return html;
}
/**
* 获取url类型 图片 视频 文件
* @param $url
* @returns {string|boolean}
*/
function checkUrlType($url) {
console.log($url);
if (!$url) return false;
let imgType = ["gif", "jpeg", "jpg", "bmp", "png"];
let videoType = ["avi", "wmv", "mkv", "mp4", "mov", "rm", "3gp", "flv", "mpg", "rmvb"];
let audioType = ["mp3"];
if (RegExp("\.(" + imgType.join("|") + ")$", "i").test($url.toLowerCase())) {
return 'image';
} else if (RegExp("\.(" + videoType.join("|") + ")$", "i").test($url.toLowerCase())) {
return 'video';
} else if (RegExp("\.(" + audioType.join("|") + ")$", "i").test($url.toLowerCase())) {
return 'audio';
} else {
return 'file';
}
}
var global_obj = {
check_form: function (obj) {
var flag = false;
obj.each(function () {
var is_tab = false;
if ($(this).parents().hasClass('tab-content')) {
is_tab = true;
}
if ($(this).hasClass('more-img')) {
if ($(this).find('img').length == 0) {
if ($(this).attr("notice") != undefined) {
alert($(this).attr("notice"));
}
flag = true;
return false;
}
} else {
if ($(this).val() == '' || $(this).val() == null) {
flag = true;
var $this = $(this);
if (is_tab == true) {
var _a = $(this).parents('.tab-content').prev().find('li').eq($(this).parents('.tab-pane').index()).find('a');
_a.tab('show');
_a.on('shown.bs.tab', function (e) {
$this.focus();
})
}
$this.focus();
if ($(this).attr("notice") != undefined) {
alert($(this).attr("notice"));
}
return false;
}
}
});
return flag;
}
};
function pjax_go_page(that) {
let page = parseFloat(that.parent().find('input').val());
if (isNaN(page)) {
alert('请输入跳转页数');
return false;
}
let href = that.attr('data-href');
window.location.href = href + '&page=' + page;
}