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 = ''; $('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 += '
  • '; // }); // $('#carousel_image_img').find('.carousel-indicators').html(html_1); // $('#carousel_image_img').find('.carousel-inner').html(html_2); //}); }); //js检验号码 function checkTel(that) { var position = getPosition(that); var regx = /[^0-9-]+/; var result = that.value.match(regx); if (result != null) { position = position - parseFloat(getStringLength(result[0])); } that.value = that.value.replace(/[^0-9-]+/, ''); setCaretPosition(that, position); } //获取字符串长度 function getStringLength(str) { ///获得字符串实际长度,中文2,英文1 ///要获得长度的字符串 var realLength = 0, len = str.length, charCode = -1; for (var i = 0; i < len; i++) { charCode = str.charCodeAt(i); if (charCode >= 0 && charCode <= 128) realLength += 1; else realLength += 2; } return realLength; } //获取当前div光标位置 function getCursortPosition(element) { var caretOffset = 0; var doc = element.ownerDocument || element.document; var win = doc.defaultView || doc.parentWindow; var sel; if (typeof win.getSelection != "undefined") {//谷歌、火狐 sel = win.getSelection(); if (sel.rangeCount > 0) {//选中的区域 var range = win.getSelection().getRangeAt(0); var preCaretRange = range.cloneRange();//克隆一个选中区域 preCaretRange.selectNodeContents(element);//设置选中区域的节点内容为当前节点 preCaretRange.setEnd(range.endContainer, range.endOffset); //重置选中区域的结束位置 caretOffset = preCaretRange.toString().length; } } else if ((sel = doc.selection) && sel.type != "Control") {//IE var textRange = sel.createRange(); var preCaretTextRange = doc.body.createTextRange(); preCaretTextRange.moveToElementText(element); preCaretTextRange.setEndPoint("EndToEnd", textRange); caretOffset = preCaretTextRange.text.length; } return caretOffset; }; //input/textarea获取光标位置 function getPosition(element) { var cursorPos = 0; if (document.selection) {//IE var selectRange = document.selection.createRange(); selectRange.moveStart('character', -element.value.length); cursorPos = selectRange.text.length; } else if (element.selectionStart || element.selectionStart == '0') { cursorPos = element.selectionStart; } return cursorPos; }; //设置div光标位置 function setCursortPosition(element, pos) { var range, selection; if (document.createRange)//Firefox, Chrome, Opera, Safari, IE 9+ { range = document.createRange();//创建一个选中区域 range.selectNodeContents(element);//选中节点的内容 if (element.innerHTML.length > 0) { range.setStart(element.childNodes[0], pos); //设置光标起始为指定位置 } range.collapse(true); //设置选中区域为一个点 selection = window.getSelection();//获取当前选中区域 selection.removeAllRanges();//移出所有的选中范围 selection.addRange(range);//添加新建的范围 } else if (document.selection)//IE 8 and lower { range = document.body.createTextRange();//Create a range (a range is a like the selection but invisible) range.moveToElementText(element);//Select the entire contents of the element with the range range.collapse(false);//collapse the range to the end point. false means collapse to end rather than the start range.select();//Select the range (make it the visible selection } }; // 设置input/textarea光标位置 function setCaretPosition(textDom, pos) { if (textDom.setSelectionRange) { // IE Support textDom.focus(); textDom.setSelectionRange(pos, pos); } else if (textDom.createTextRange) { // Firefox support var range = textDom.createTextRange(); range.collapse(true); range.moveEnd('character', pos); range.moveStart('character', pos); range.select(); } } var common_obj = { normal_post: function (url, callback) { common_obj.showLoading(); $.post(url, '', function (res) { if (callback) { callback(res); } else { if (res.msg != '操作成功' && res.msg != '') { alert(res.msg); } if (res.url === '') { window.location.reload(); } else { window.location.href = res.url; } } }) }, form_load: function (callback) { $('#search-form1').submit(function (e) { e.preventDefault(); $("#search-form1 input[name=page]").val(1).attr("data-value", 1); common_obj.load_form(callback); }); //点击底部页面分页 $("#page").on("click", ".pagination li a", function (e) { e.preventDefault(); // var page = $(this).attr("href"); // page = page.split('?'); // page = page[1].substring(5); var page = $(this).text(); $("#search-form input[name=page]").val(page).attr("data-value", page); common_obj.load_form(callback); }); //双日历插件 $('.daterangepicker-time-load').daterangepicker({ format: 'YYYY/MM/DD HH:mm', separator: '-' }); common_obj.load_file_upload(); //地图 if ($("form .map").length) { window.addEventListener('message', function (event) { // 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息 var loc = event.data; //防止其他应用也会向该页面post信息,需判断module是否为'locationPicker' if (loc && loc.module == 'locationPicker') { $("input[name=lng]").val(loc.latlng.lng); $("input[name=lat]").val(loc.latlng.lat); $("input[name=address]").val(loc.poiaddress); $(".map p.form-control-static").text(loc.poiaddress); } }, false); } //高德地图 //select2 加载 $('.select2_style').each(function () { $(this).select2(); }); }, showLoading: function () { $('.loading-wai').show(); $('#loading').show(); }, hideLoading: function () { $('.loading-wai').hide(); $('#loading').hide(); }, load_file_upload: function () { $(".more-img").on('click', ".img div span", function () { $(this).parent().remove(); }); $(".one-img").on('click', ".img div span", function () { $(this).parents(".one-img").find("input:hidden").val(''); $(this).parent().remove(); }); let i = 1; $('form').find('.file-upload').each(function () { $(this).attr('id', 'pick_form_' + i); webuploader_obj.oss_webuploader_init('#pick_form_' + i); i++; }); //修改webuploader点击div样式 setTimeout(function () { if ($("form .one-img").length) { $("form .one-img").each(function () { $('#' + $(this).find(".webuploader-picker").attr("id") + ' div:eq(1)').attr('style', 'position: absolute; top: 0px; left: 0px; width: 82px; height: 33px; overflow: hidden; bottom: auto; right: auto;'); }) } if ($("form .more-img").length) { $("form .more-img").each(function () { $('#' + $(this).find(".webuploader-picker").attr("id") + ' div:eq(1)').attr('style', 'position: absolute; top: 0px; left: 0px; width: 82px; height: 33px; overflow: hidden; bottom: auto; right: auto;'); }) } }, 100); }, data_handle: function (callback) { $("tbody").on('click', 'input[type=checkbox]', function () { if ($(this).is(':checked') == true) { $(this).attr('checked', true); $(this).prop('checked', true); } else { $(this).attr('checked', false); $(this).prop('checked', false); } var name = $('#check_all').attr('data-name'); var all_checkbox = $('input[name=' + name + ']').length; var checked_checkbox = $('input[name=' + name + ']:checked').length; if (checked_checkbox >= all_checkbox) { $('#check_all').click(); } else { $('#check_all').attr('checked', false); $('#check_all').prop('checked', false); } }); //全选 $(document).on('change', '#check_all', function () { var name = $(this).attr('data-name'); if ($(this).is(':checked') == true) { //选中 $('input[name=' + name + ']').prop('checked', true); $('input[name=' + name + ']').attr('checked', true); } else { //取消选中 $('input[name=' + name + ']').prop('checked', false); $('input[name=' + name + ']').attr('checked', false); } }); //批量修改 $('.submit-all').click(function () { var operate_value = $(this).parent().parent().find('select[name=operate]').val(); var cur = $(this).parent().parent().find("select[name=operate] option:selected"); var url = cur.attr('data-url'); //url var model = cur.attr('data-model'); var table = cur.attr('data-table'); var field = cur.attr('data-field'); var value = cur.attr("data-value"); var where = cur.attr('data-where'); var childrenModel = cur.attr('data-childrenModel'); if (childrenModel == undefined) { childrenModel = ''; } var all_id = []; switch (operate_value) { case 'sort': all_id = sort(cur); break; case 'update': all_id = update(cur); if (all_id == false) { return false; } break; default: all_id = update(cur); if (all_id == false) { alert('无选项'); return false; } } $.post(url, { id: all_id, //多选的值 operate_value: operate_value,//下拉框类型 where: where,//多选数据字段 model: model,//模块 childrenModel: childrenModel,//子模块 table: table,//修改表 field: field,//修改字段 value: value//修改成的值 }, function (data) { $('select[name=operate]').blur(); if (data.code == 0) { if (data.msg) { toastr.success(data.msg); // alert(data.msg); } $('input[type=checkbox]').removeAttr('checked'); window.location.reload(); } else { toastr.warning(data.msg); // alert(data.msg); return false; } }, 'json'); }); function sort(cur) { var all_id = []; var name = cur.attr('data-name'); $('input[name=' + name + ']').each(function () { var array = {}; array['id'] = $(this).attr('data-id'); array[name] = $(this).val(); all_id.push(array); }) all_id = JSON.stringify(all_id); console.log(all_id); return all_id; } function update(cur) { var all_id = []; var name = cur.attr('data-name'); $('input[name=' + name + '][checked]').each(function () { all_id.push($(this).val()); }); if (all_id.length == 0) { alert(cur.attr('data-info')); return false; } if (cur.attr("data-text")) { var check = confirm(cur.attr("data-text")); if (check == false) { return false } } return all_id; } //操作 $('table').on("click", "td a[href=#deal]", function () { $this = $(this); if ($(this).attr("data-text")) { var check = confirm($(this).attr("data-text")); if (check == false) { return false; } } var url = $(this).attr('data-url'); var id = $(this).parent().attr('data-pid'); var table = $(this).attr('data-table'); var field = $(this).attr('data-field'); var value = $(this).attr("data-value"); var model = $(this).attr("data-model"); var childrenModel = $(this).attr('data-childrenModel'); if (childrenModel == undefined) { childrenModel = ''; } $.post(url, { id: id, table: table, field: field, value: value, model: model, childrenModel: childrenModel }, function (data) { if (data.code == 0) { if (data.msg) { toastr.success(data.msg); // alert(data.msg); } window.location.reload(); } else { toastr.warning(data.msg); // alert(data.msg); return false; } }, 'json'); }); $(document).on("click", "a[href=#common_click]", function () { $this = $(this); if ($(this).attr("data-text")) { var check = confirm($(this).attr("data-text")); if (check == false) { return false; } } var url = $(this).attr('data-url'); var id = $(this).parent().attr('data-pid'); var tablename = $(this).attr('data-tablename'); var fieldname = $(this).attr('data-fieldname'); var afterchange = $(this).attr("data-value"); $.post(url, { id: id, tablename: tablename, fieldname: fieldname, afterchange: afterchange }, function (data) { if (data.ret == 1) { if (data.msg) { toastr.success(data.msg); // alert(data.msg); } window.location.reload(); } else { toastr.warning(data.msg); // alert(data.msg); return false; } }, 'json'); }); common_obj.load_form(callback); $('#search-form1').submit(function (e) { e.preventDefault(); $("#search-form1 input[name=page]").val(1).attr("data-value", 1); common_obj.load_form(callback); }); //点击底部页面分页 //$("#page").on("click", ".pagination li a", function (e) { // e.preventDefault(); // var page = $(this).attr("href"); // page = page.split('?'); // page = page[1].substring(5); // // $("#search-form input[name=page]").val(page).attr("data-value", page); // common_obj.load_form(callback); //}); //导出 $('#search-form input:button').click(function () { window.location = $(this).attr("data-url"); }); }, load_form: function (callback) { $('#search-form1 input:not(input:submit),#search-form1 select').each(function () { $(this).attr("data-value", $(this).val()); //console.log($(this).val()); console.log($(this).attr("data-value")); }); //return false; var obj = {}; $.each($('#search-form1 input:not(input:submit):not(input:button),#search-form1 select'), function (i, n) { var name = $(this).attr("name"); obj[name] = $(this).attr("data-value"); }); $.post('', obj, function (data) { if (data.ret == 1) { $("#data-table tbody").html(data.data); if ($("#page").length) { $("#page").html(data.attach.page) } if (data.attach.total_html != undefined) { if ($('#search-form1').children('div:last-child').hasClass('total_html')) { var html = '
    '; $.each(data.attach.total_html, function (key, value) { html += value[0] + ":" + value[1] + "  "; }); html += '
    '; //商品总数:2  商品总数:2 $('.total_html').html(html); } else { var html = '
    '; $.each(data.attach.total_html, function (key, value) { html += value[0] + ":" + value[1] + "  "; }); html += '
    '; //商品总数:2  商品总数:2 $('#search-form1').append(html); } } } else { if (data.msg) { alert(data.msg); return false; } } if (callback) { callback(data); } }, 'json'); }, form_submit: function () { //$('.daterangepicker-time').daterangepicker({ // format: 'YYYY/MM/DD HH:mm', // separator: '-', //}); $('#data-form').submit(function (e) { e.preventDefault(); if (global_obj.check_form($('#data-form').find('*[notnull]'))) { return false } common_obj.showLoading('加载中,请等待'); $.post($("#do_action").val(), $('#data-form').serialize(), function (data) { common_obj.hideLoading(); setTimeout(function () { if (data.code == 0) { if (data.msg) { alert(data.msg); } if ($('#do_jump').length) { window.location.href = $('#do_jump').val(); } else { let is_reload = $('input[name=is_reload]').val(); if (is_reload == 1) { window.location.reload(); } else { window.history.go(-1); } } } else { if (data.msg) { alert(data.msg); return false; } if (data.url) { window.location.href = data.url; } } }, 10); }); }); }, } var webuploader_obj = { oss_webuploader_init: function (file_input_obj) { //隐藏域名称(必填) let file_name = (typeof $(file_input_obj).attr('data-name') === "undefined" || $(file_input_obj).attr('data-name') === "") ? 1 : $(file_input_obj).attr('data-name'); //可上传数量(必填) let file_number = (typeof $(file_input_obj).attr('data-file-number') === "undefined" || $(file_input_obj).attr('data-file-number') === "") ? 1 : $(file_input_obj).attr('data-file-number'); //可上传类型 let file_type = $(file_input_obj).attr('data-file-type'); if (file_type === 'image') { file_type = "gif,jpeg,jpg,bmp,png"; } else if (file_type === 'video') { file_type = "avi,wmv,mkv,mp4,mov,rm,3gp,flv,mpg,rmvb"; } else if (file_type === 'audio') { file_type = "mp3"; } else if (file_type === 'file') { file_type = "txt,doc,docx,xls,xlsx,xmind"; } else { file_type = (typeof $(file_input_obj).attr('data-file-type') === "undefined" || $(file_input_obj).attr('data-file-type') === "") ? 'jpg,png,gif,jpeg' : $(file_input_obj).attr('data-file-type'); } //上传地址(非必填,默认为oss上传) let upload_url = $(file_input_obj).attr('data-upload-url'); //上传文件大小限制 ,默认20M let file_size_limit = (typeof $(file_input_obj).attr('data-file-size') === "undefined" || $(file_input_obj).attr('data-file-size') === "") ? 20971520 : $(file_input_obj).attr('data-file-size'); //是否原名上传 0:随机数上传 1:原名上传 let is_original_name = (typeof $(file_input_obj).attr('data-original-name') === "undefined" || $(file_input_obj).attr('data-original-name') === "") ? 0 : parseInt($(file_input_obj).attr('data-original-name')); //上传文件名 let file_path = (typeof $(file_input_obj).attr('data-file-path') === "undefined" || $(file_input_obj).attr('data-file-path') === "") ? '' : ($(file_input_obj).attr('data-file-path')); //原始数据 let original_value = (typeof $(file_input_obj).attr('data-original-value') === "undefined" || $(file_input_obj).attr('data-original-value') === "") ? [] : JSON.parse($(file_input_obj).attr('data-original-value')); //是否必填 let is_required = (typeof $(file_input_obj).attr('data-is-require') === "undefined" || $(file_input_obj).attr('data-is-require') === "") ? 2 : $(file_input_obj).attr('data-is-require'); let required_text = (typeof $(file_input_obj).attr('data-require-text') === "undefined" || $(file_input_obj).attr('data-require-text') === "") ? '' : $(file_input_obj).attr('data-require-text'); let input_name = file_number === 1 ? file_name : file_name + '[]'; for (let value in original_value) { if (original_value[value] !== "" && original_value[value] !== null) { let html = returnHtmlByType(input_name, original_value[value]); $(file_input_obj).parent().before("
    " + html + "
    "); } } let label = '
    ' + label + '', // label: '测试', multiple: true }, accept: { extensions: file_type, }, threads: 1, //compress:false,//上传不压缩参数 resize: false,// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传! disableGlobalDnd: true, // 禁掉全局的拖拽功能。这样不会出现图片拖进页面的时候,把图片打开。 fileNumLimit: 300, //最多上传张数 fileSizeLimit: file_size_limit,//验证文件总大小是否超出限制, 超出则不允许加入队列。 }); //判断已有文件数量进行判断上传按钮是否显示 let has_image_length = getImageList(file_input_obj); if (has_image_length >= 1) { $(file_input_obj).find('.fileinput-button').find('input').remove(); } if (has_image_length >= file_number) { $(file_input_obj).parent().hide(); } //当文件被加入队列之前触发,此事件的handler返回值为false,则此文件不会被添加进入队列。 uploader.on('beforeFileQueued', function (file) { let last_number = uploader.option('fileNumLimit') - getImageList(file_input_obj); console.log(file) console.log(last_number); let html = '
    \n' + '
    准备上传
    \n' + '
    '; $(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("
    \n" + "
    \n" + "
    "); }); // 文件上传成功,给item添加成功class, 用样式标记上传成功。 uploader.on('uploadSuccess', function (file, response) { console.log('success'); if (typeof success_callback !== "undefined" && success_callback !== "") { eval(success_callback + "(" + file + "," + response + ")"); return false; } let image_path = (show_url_domian === '') ? response.data.showUrlDomain : show_url_domian + response.object; let input_name = file_number === 1 ? file_name : file_name + '[]'; let html = returnHtmlByType(input_name, image_path, file.id); $("#" + file.id).html(html); $("#" + file.id).nextAll('.video_url').find('input[name="video_url"]').val(image_path); let has_image_length = getImageList(file_input_obj); $(file_input_obj).find('.fileinput-button').find('input').remove(); if (has_image_length >= file_number) { $(file_input_obj).parent().hide(); } }); // 文件上传失败,显示上传出错。 uploader.on('uploadError', function (file, response) { // console.log(response, 'error') // var jsonData = eval('(' + response + ')'); // if (jsonData.status == 1) { // // } else { // alert('文件上传失败,出现未知错误!'); // } }); //当validate不通过时,会以派送错误事件的形式通知调用者 uploader.on('error', function (res) { let array = []; let size_limit = (uploader.option('fileSizeLimit') / 1024).toFixed(0); if (size_limit > 1024) { size_limit = (uploader.option('fileSizeLimit') / 1024 / 1024).toFixed(0) + 'M'; } else { size_limit += 'kb'; } array['Q_TYPE_DENIED'] = '上传文件类型不正确,可上传类型为:' + uploader.option('accept')[0]['extensions']; array['Q_EXCEED_NUM_LIMIT'] = '上传文件太多,可上传数为:' + uploader.option('fileNumLimit'); array['Q_EXCEED_SIZE_LIMIT'] = '上传文件大大,可上传大小为:' + size_limit; $('.ready_upload').parent().remove(); alert(array[res]); }); //当一批文件添加进队列以后触发 uploader.on('filesQueued', function (files) { let last_number = file_number - getImageList(file_input_obj); // console.log(last_number); // console.log(uploader.option('fileNumLimit')); // console.log(getImageList(file_input_obj)); if (files.length > last_number) { console.log(Object.keys(files).length); for (let i = 0; i < Object.keys(files).length; i++) { if (i >= last_number) { $('#' + files[i].id).remove(); uploader.removeFile(files[i]); } } //for (let file in files) { // uploader.removeFile(files[file]); //} alert('上传文件太多,可上传数为:' + last_number) } }); //点击删除按钮,刷新按钮,显示全 可点击位置 $(file_input_obj).parent().parent().on('click', '.file-upload-list span', function () { if (typeof $(this).attr('data-file-id') !== 'undefined' && $(this).attr('data-file-id') != '') { uploader.removeFile($(this).attr('data-file-id'), true); } $(this).parents('.file-upload-list').parent().remove(); if (getImageList(file_input_obj) < 1) { $(file_input_obj).find('.fileinput-button').append(label); } $(file_input_obj).parent().show(); uploader.refresh(); }); $(file_input_obj).parent().parent().on('click', 'label .carousel-del', function () { if (typeof $(this).attr('data-file-id') !== 'undefined' && $(this).attr('data-file-id') != '') { uploader.removeFile($(this).attr('data-file-id'), true); } $(this).parent().parent().find('.file-upload-list').parent().remove(); $(this).parent().parent().find('input[name="carousel_link_url[]"]').val(""); if (getImageList(file_input_obj) < 1) { $(file_input_obj).find('.fileinput-button').append(label); } $(file_input_obj).parent().show(); uploader.refresh(); }); //获取已存在的文件数量 function getImageList(file_input_obj) { return $(file_input_obj).parent().parent().find('.file-upload-list').length; } }, // 腾讯云上传 cos_webuploader_init: function (file_input_obj) { //隐藏域名称(必填) let file_name = (typeof $(file_input_obj).attr('data-name') === "undefined" || $(file_input_obj).attr('data-name') === "") ? 1 : $(file_input_obj).attr('data-name'); //可上传数量(必填) let file_number = (typeof $(file_input_obj).attr('data-file-number') === "undefined" || $(file_input_obj).attr('data-file-number') === "") ? 1 : $(file_input_obj).attr('data-file-number'); //可上传类型 let file_type = $(file_input_obj).attr('data-file-type'); if (file_type === 'image') { file_type = "gif,jpeg,jpg,bmp,png"; } else if (file_type === 'video') { file_type = "avi,wmv,mkv,mp4,mov,rm,3gp,flv,mpg,rmvb"; } else if (file_type === 'audio') { file_type = "mp3"; } else if (file_type === 'file') { file_type = "txt,doc,docx,xls,xlsx,xmind"; } else { file_type = (typeof $(file_input_obj).attr('data-file-type') === "undefined" || $(file_input_obj).attr('data-file-type') === "") ? 'jpg,png,gif,jpeg' : $(file_input_obj).attr('data-file-type'); } //上传地址(非必填,默认为oss上传) let upload_url = $(file_input_obj).attr('data-upload-url'); //上传文件大小限制 ,默认20M let file_size_limit = (typeof $(file_input_obj).attr('data-file-size') === "undefined" || $(file_input_obj).attr('data-file-size') === "") ? 20971520 : $(file_input_obj).attr('data-file-size'); //是否原名上传 0:随机数上传 1:原名上传 let is_original_name = (typeof $(file_input_obj).attr('data-original-name') === "undefined" || $(file_input_obj).attr('data-original-name') === "") ? 0 : parseInt($(file_input_obj).attr('data-original-name')); //上传文件名 let file_path = (typeof $(file_input_obj).attr('data-file-path') === "undefined" || $(file_input_obj).attr('data-file-path') === "") ? '' : ($(file_input_obj).attr('data-file-path')); //原始数据 let original_value = (typeof $(file_input_obj).attr('data-original-value') === "undefined" || $(file_input_obj).attr('data-original-value') === "") ? [] : JSON.parse($(file_input_obj).attr('data-original-value')); //是否必填 let is_required = (typeof $(file_input_obj).attr('data-is-require') === "undefined" || $(file_input_obj).attr('data-is-require') === "") ? 2 : $(file_input_obj).attr('data-is-require'); let required_text = (typeof $(file_input_obj).attr('data-require-text') === "undefined" || $(file_input_obj).attr('data-require-text') === "") ? '' : $(file_input_obj).attr('data-require-text'); let input_name = file_number === 1 ? file_name : file_name + '[]'; for (let value in original_value) { if (original_value[value] !== "" && original_value[value] !== null) { let html = returnHtmlByType(input_name, original_value[value]); $(file_input_obj).parent().before("
    " + html + "
    "); } } let label = '
    ' + label + '', // label: '测试', multiple: true }, accept: { extensions: file_type, }, threads: 1, //compress:false,//上传不压缩参数 resize: false,// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传! disableGlobalDnd: true, // 禁掉全局的拖拽功能。这样不会出现图片拖进页面的时候,把图片打开。 fileNumLimit: 300, //最多上传张数 fileSizeLimit: file_size_limit,//验证文件总大小是否超出限制, 超出则不允许加入队列。 }); //判断已有文件数量进行判断上传按钮是否显示 let has_image_length = getImageList(file_input_obj); if (has_image_length >= 1) { $(file_input_obj).find('.fileinput-button').find('input').remove(); } if (has_image_length >= file_number) { $(file_input_obj).parent().hide(); } //当文件被加入队列之前触发,此事件的handler返回值为false,则此文件不会被添加进入队列。 uploader.on('beforeFileQueued', function (file) { let last_number = uploader.option('fileNumLimit') - getImageList(file_input_obj); // console.log(file) // console.log(last_number); let html = '
    \n' + '
    准备上传
    \n' + '
    '; $(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("
    \n" + "
    \n" + "
    "); }); // 文件上传成功,给item添加成功class, 用样式标记上传成功。 uploader.on('uploadSuccess', function (file, response) { console.log(777); console.log(file); console.log(response); if (typeof success_callback !== "undefined" && success_callback !== "") { eval(success_callback + "(" + file + "," + response + ")"); return false; } let image_path = (show_url_domian === '') ? response.data.showUrlDomain : show_url_domian + '/' + file.formData.key; let input_name = file_number === 1 ? file_name : file_name + '[]'; let html = returnHtmlByType(input_name, image_path, file.id); $("#" + file.id).html(html); $("#" + file.id).nextAll('.video_url').find('input[name="video_url"]').val(image_path); let has_image_length = getImageList(file_input_obj); $(file_input_obj).find('.fileinput-button').find('input').remove(); if (has_image_length >= file_number) { $(file_input_obj).parent().hide(); } }); // 文件上传失败,显示上传出错。 uploader.on('uploadError', function (file, response) { // console.log(response, 'error') // var jsonData = eval('(' + response + ')'); // if (jsonData.status == 1) { // // } else { // alert('文件上传失败,出现未知错误!'); // } }); //当validate不通过时,会以派送错误事件的形式通知调用者 uploader.on('error', function (res) { let array = []; let size_limit = (uploader.option('fileSizeLimit') / 1024).toFixed(0); if (size_limit > 1024) { size_limit = (uploader.option('fileSizeLimit') / 1024 / 1024).toFixed(0) + 'M'; } else { size_limit += 'kb'; } array['Q_TYPE_DENIED'] = '上传文件类型不正确,可上传类型为:' + uploader.option('accept')[0]['extensions']; array['Q_EXCEED_NUM_LIMIT'] = '上传文件太多,可上传数为:' + uploader.option('fileNumLimit'); array['Q_EXCEED_SIZE_LIMIT'] = '上传文件大大,可上传大小为:' + size_limit; $('.ready_upload').parent().remove(); alert(array[res]); }); //当一批文件添加进队列以后触发 uploader.on('filesQueued', function (files) { let last_number = file_number - getImageList(file_input_obj); // console.log(last_number); // console.log(uploader.option('fileNumLimit')); // console.log(getImageList(file_input_obj)); if (files.length > last_number) { console.log(Object.keys(files).length); for (let i = 0; i < Object.keys(files).length; i++) { if (i >= last_number) { $('#' + files[i].id).remove(); uploader.removeFile(files[i]); } } //for (let file in files) { // uploader.removeFile(files[file]); //} alert('上传文件太多,可上传数为:' + last_number) } }); //点击删除按钮,刷新按钮,显示全 可点击位置 $(file_input_obj).parent().parent().on('click', '.file-upload-list span', function () { if (typeof $(this).attr('data-file-id') !== 'undefined' && $(this).attr('data-file-id') != '') { uploader.removeFile($(this).attr('data-file-id'), true); } $(this).parents('.file-upload-list').parent().remove(); if (getImageList(file_input_obj) < 1) { $(file_input_obj).find('.fileinput-button').append(label); } $(file_input_obj).parent().show(); uploader.refresh(); }); $(file_input_obj).parent().parent().on('click', 'label .carousel-del', function () { if (typeof $(this).attr('data-file-id') !== 'undefined' && $(this).attr('data-file-id') != '') { uploader.removeFile($(this).attr('data-file-id'), true); } $(this).parent().parent().find('.file-upload-list').parent().remove(); $(this).parent().parent().find('input[name="carousel_link_url[]"]').val(""); if (getImageList(file_input_obj) < 1) { $(file_input_obj).find('.fileinput-button').append(label); } $(file_input_obj).parent().show(); uploader.refresh(); }); //获取已存在的文件数量 function getImageList(file_input_obj) { return $(file_input_obj).parent().parent().find('.file-upload-list').length; } } }; /** * 根据类型返回html * @param input_name * @param value * @param file_id * @returns {string} */ function returnHtmlByType(input_name, value, file_id = '') { if (value === "") { return ''; } let html = ''; console.log(value); let file_type = checkUrlType(value); if (file_type === 'image') { html = "
    \n" + " \n" + " 删除\n" + " \n" + "
    \n"; } else if (file_type === 'video') { html = "
    \n" + "" + " 删除\n" + " \n" + "
    \n"; } else if (file_type === 'audio') { console.log(file_type); html = "
    \n" + "" + " 删除\n" + " \n" + "
    \n"; } else { html = "
    \n" + "
    " + value + "
    " + " 删除\n" + " \n" + "
    \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; }