You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1471 lines
60 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 = '<div class="modal fade modal_frame" style="display: block" id="' + id.replace("#", "") + '" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">';
$.get(href, {}, function (res) {
html += res;
html += '</div>';
$('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 += ' <li data-target="#myCarousel" data-slide-to="0" ';
// if (this_image == now_image) {
// html_1 += 'class="active"';
// }
// html_1 += '></li>';
//
// html_2 += ' <div class="item';
// if (this_image == now_image) {
// html_2 += 'active';
// }
// html_2 += '"><img src="' + this_image + '" "> </div>';
// });
// $('#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) {
///<summary>获得字符串实际长度中文2英文1</summary>
///<param name="str">要获得长度的字符串</param>
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 = '<div class="input-group m-bot15">';
$.each(data.attach.total_html, function (key, value) {
html += value[0] + "<span class='text-danger'>" + value[1] + "</span>&nbsp;&nbsp;";
});
html += '</div>';
//商品总数:<span class='text-danger'>2</span>&nbsp;&nbsp;商品总数:<span class='text-danger'>2</span>
$('.total_html').html(html);
} else {
var html = '<div class="form-group total_html"><div class="input-group m-bot15">';
$.each(data.attach.total_html, function (key, value) {
html += value[0] + "<span class='text-danger'>" + value[1] + "</span>&nbsp;&nbsp;";
});
html += '</div></div>';
//商品总数:<span class='text-danger'>2</span>&nbsp;&nbsp;商品总数:<span class='text-danger'>2</span>
$('#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("<div class='col-sm-1'>" + html + "</div>");
}
}
let label = '<input type="hidden" name="' + file_name + '"';
if (parseInt(is_required) === 1) {
label += ' notnull notice="' + required_text + '"';
}
label += 'value="">';
var uploader = WebUploader.create({
swf: './static/common/js/webuploader/Uploader.swf',// swf文件路径
// 选择文件的按钮。可选。
// 内部根据当前运行是创建可能是input元素也可能是flash.
pick: {
id: file_input_obj,
label: '<div class="btn fileinput-button"><div class="fs_20 input_add"></div>' + label + '</div>',
// 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 = ' <div class="col-sm-1" id="' + file.id + '">\n' +
' <div class="ready_upload">准备上传</div>\n' +
' </div>';
$(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(" <div class=\"percent_all\">\n" +
" <div class='percent_ing' style='width: " + width + "px;'></div>\n" +
" </div>");
});
// 文件上传成功给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("<div class='col-sm-1'>" + html + "</div>");
}
}
let label = '<input type="hidden" name="' + file_name + '"';
if (parseInt(is_required) === 1) {
label += ' notnull notice="' + required_text + '"';
}
label += 'value="">';
var uploader = WebUploader.create({
swf: './static/common/js/webuploader/Uploader.swf',// swf文件路径
// 选择文件的按钮。可选。
// 内部根据当前运行是创建可能是input元素也可能是flash.
pick: {
id: file_input_obj,
label: '<div class="btn fileinput-button"><div class="fs_20 input_add"></div>' + label + '</div>',
// 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 = ' <div class="col-sm-1" id="' + file.id + '">\n' +
' <div class="ready_upload">准备上传</div>\n' +
' </div>';
$(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(" <div class=\"percent_all\">\n" +
" <div class='percent_ing' style='width: " + width + "px;'></div>\n" +
" </div>");
});
// 文件上传成功给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 = " <div class='file-upload-list'>\n" +
" <img class='image-bigger' src='" + value + "'>\n" +
" <span data-file-id='" + file_id + "' >删除</span>\n" +
" <input type='hidden' name='" + input_name + "' value='" + value + "'>\n" +
" </div>\n";
} else if (file_type === 'video') {
html = " <div class='file-upload-list'>\n" +
"<video src='" + value + "' controls=\"controls\">your browser does not support the video tag</video>" +
" <span data-file-id='" + file_id + "'>删除</span>\n" +
" <input type='hidden' name='" + input_name + "' value='" + value + "'>\n" +
" </div>\n";
} else if (file_type === 'audio') {
console.log(file_type);
html = " <div class='file-upload-list'>\n" +
"<audio src='" + value + "' controls=\"controls\">your browser does not support the video tag</audio>" +
" <span data-file-id='" + file_id + "'>删除</span>\n" +
" <input type='hidden' name='" + input_name + "' value='" + value + "'>\n" +
" </div>\n";
} else {
html = " <div class='file-upload-list'>\n" +
" <a href='" + value + "'> <div class=\"file_list\">" + value + "</div></a>" +
" <span data-file-id='" + file_id + "'>删除</span>\n" +
" <input type='hidden' name='" + input_name + "' value='" + value + "'>\n" +
" </div>\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;
}