|
|
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> ";
|
|
|
});
|
|
|
html += '</div>';
|
|
|
//商品总数:<span class='text-danger'>2</span> 商品总数:<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> ";
|
|
|
});
|
|
|
html += '</div></div>';
|
|
|
//商品总数:<span class='text-danger'>2</span> 商品总数:<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;
|
|
|
}
|
|
|
|