/*全局自适应高度*/ /*全局自适应高度*/ function autoFlashHeight(){ function getObjHeight(select) { return select.length > 0 ? select.height() : 0; } /*侧栏高度*/ var sBar1 = getObjHeight($(".sjs-bar-1")); var sBar2 = getObjHeight($(".sjs-bar-2")); var sBar3 = getObjHeight($(".sjs-bar-3")); var sBar4 = getObjHeight($(".sjs-bar-4")); var sBar5 = getObjHeight($(".sjs-bar-5")); /*侧栏高度*/ var cHeader = getObjHeight($(".c-header")); var sBar = getObjHeight($(".sjs-bar")); var sBart = getObjHeight($(".sjs-bart")); var sBarz = getObjHeight($(".side-bar")); var pBarz = getObjHeight($(".toolsbar-f")); var bdtopc = getObjHeight($(".body-height-top")); var bcontent = getObjHeight($(".bcontent-wrap")); $(".sjs-height-0").height($(window).height()-cHeader-90+53); $(".sjs-height-1").height($(window).height()-cHeader-bcontent-90+53); $(".sjs-height-2").height($(window).height()-cHeader-sBarz-120); $(".sjs-height-3").height($(window).height()-cHeader-sBar-492+25+150);/*492*/ $(".sjs-height-4").height($(window).height()-cHeader-pBarz-110+75); $(".sjs-height-5").height($(window).height()-cHeader-sBar-492+55);/*492*/ $(".sjs-height-6").height($(window).height()-cHeader-34-sBar1); $(".sp-wrap").height(bcontent-30); /*侧栏高度*/ $(".sjs-sh-1").height($(window).height()-cHeader-sBar1-92+55); $(".sjs-sh-2").height($(window).height()-cHeader-sBar2-92+55); $(".sjs-sh-3").height($(window).height()-cHeader-sBar3-92+55); $(".sjs-sh-4").height($(window).height()-cHeader-sBar4-92+55); $(".sjs-sh-5").height($(window).height()-cHeader-sBar5-92+55); for (const sh of $('.sjs-sh')) { $(sh).height($(window).height()-cHeader-getObjHeight($('.sjs-bar', sh.parentNode))-getObjHeight($('.sjs-bottom', sh.parentNode))-92+55); } /*工程变更添加清单高度*/ $(".sjs-biangeng-height").height($(window).height()/3.3); }; $(window).resize(autoFlashHeight); /*全局自适应高度结束*/ $(function(){ /*侧滑*/ $(".open-sidebar").click(function(){ $(".slide-sidebar").animate({width:"800"}).addClass("open"); }); $("body").click(function(event){ var e = event || window.event; //浏览器兼容性 if(!$(event.target).is('a')) { var elem = event.target || e.srcElement; while (elem) { //循环判断至跟节点,防止点击的是div子元素 if (elem.className == "open-sidebar" || elem.className == 'slide-sidebar open') { return false; } elem = elem.parentNode; } $(".slide-sidebar").animate({width:"0"}).removeClass("open")// 关闭处理 } }); /*侧滑*/ /*工具提示*/ $(function () { $('[data-toggle="tooltip"]').tooltip() }); /*侧栏菜单*/ $(".bg-nav > li > a").click(function() { var self = $(this); var subMenu = $(this).siblings('ul.sub-menu'); if(subMenu.length > 0) { if(subMenu.is(":visible")) { self.find('.menu-arrow').removeClass('fa-angle-up').addClass('fa-angle-down'); subMenu.slideUp('fast'); self.parent().removeClass('active'); }else{ self.parent().addClass('active'); self.find('.menu-arrow').removeClass('fa-angle-down').addClass('fa-angle-up'); subMenu.slideDown('fast'); } } }); // 数据提交 $("#submit-form").click(function() { $("#save-form").submit(); }); // modal弹窗拖动 // $(document).on("show.bs.modal", ".modal", function() { // $(this).draggable({ // handle: ".modal-header" // 只能点击头部拖动 // }); // $(this).css("overflow", "hidden"); // }); // 动态生成datepicker $('body').on('focus', ".datepicker-here", function (e) { if ($(this).data("datepicker") != "1") { $(this).datepicker(); } $(this).data("datepicker", "1"); }); }); /** * 提示框 * * @param string message * @param string type * @param string icon * @return void */ function toast(message, type, icon) { var toast = $(".toast"); toast.addClass(type); toast.children('.message').html(message); var iconClass = 'fa-' + icon; toast.children('.icon').addClass(iconClass); toast.fadeIn(500); setTimeout(function() { toast.fadeOut('fast'); toast.children('.message').text(''); toast.children('.icon').removeClass(iconClass); }, 3000); } /** * 动态请求数据 * @param {String} url - 请求链接 * @param data - 提交数据 * @param {function} successCallback - 返回成功回调 * @param {function} errorCallBack - 返回失败回调 */ const postData = function (url, data, successCallback, errorCallBack, showWaiting = true) { if (showWaiting) showWaitingView(); $.ajax({ type:"POST", url: url, data: {'data': JSON.stringify(data)}, dataType: 'json', cache: false, timeout: 60000, beforeSend: function(xhr) { let csrfToken = Cookies.get('csrfToken'); xhr.setRequestHeader('x-csrf-token', csrfToken); }, success: function(result){ if (result.err === 0) { if (successCallback) { successCallback(result.data); } } else if (result.err === 2) { toastr.error('error: ' + result.msg); setTimeout(function () { window.location.href = '/login'; },1000); } else { toastr.error('error: ' + result.msg); if (errorCallBack) { errorCallBack(result.msg); } } if (showWaiting) closeWaitingView(); }, error: function(jqXHR, textStatus, errorThrown){ toastr.error('error: ' + textStatus + " " + errorThrown); if (errorCallBack) { errorCallBack(); } if (showWaiting) closeWaitingView(); } }); }; /** * 动态请求数据(压缩数据) * @param {String} url - 请求链接 * @param data - 提交数据 * @param {function} successCallback - 返回成功回调 * @param {function} errorCallBack - 返回失败回调 */ const postDataCompress = function (url, data, successCallback, errorCallBack, htype = 'progress') { if (htype === 'wait') showWaitingView(); if (htype === 'progress') showProgress(); $.ajax({ type:"POST", url: url, data: {'data': LZString.compressToUTF16(JSON.stringify(data))}, dataType: 'json', cache: false, timeout: 80000, // 导入清单Excel(10w行)预计需要时间 beforeSend: function(xhr) { let csrfToken = Cookies.get('csrfToken'); xhr.setRequestHeader('x-csrf-token', csrfToken); }, success: function(result){ if (htype === 'progress') doneProgress(); if (result.err === 0) { if (successCallback) { successCallback(result.data); } } else if (result.err === 2) { toastr.error('error: ' + result.msg); setTimeout(function () { window.location.href = '/login'; },1000); } else { toastr.error('error: ' + result.msg); if (errorCallBack) { errorCallBack(result.msg); } } if (htype === 'wait') closeWaitingView(); if (htype === 'progress') closeProgress(); }, error: function(jqXHR, textStatus, errorThrown){ toastr.error('error: ' + textStatus + " " + errorThrown); if (errorCallBack) { errorCallBack(); } if (htype === 'wait') closeWaitingView(); if (htype === 'progress') closeProgress(); } }); }; /** * 动态请求数据 * @param {String} url - 请求链接 * @param data - 提交数据 * @param {function} successCallback - 返回成功回调 * @param {function} errorCallBack - 返回失败回调 */ const postDataWithFile = function (url, formData, successCallback, errorCallBack, showWaiting = true) { if (showWaiting) showWaitingView(); if (formData.getAll('file[]').length > 10) { toastr.error('文件数量不能多于10个'); if (showWaiting) closeWaitingView(); return } $.ajax({ type:"POST", url: url, data: formData, dataType: 'json', cache: false, // 告诉jQuery不要去设置Content-Type请求头 contentType: false, // 告诉jQuery不要去处理发送的数据 processData: false, timeout: 60000, beforeSend: function(xhr) { let csrfToken = Cookies.get('csrfToken'); xhr.setRequestHeader('x-csrf-token', csrfToken); }, success: function(result){ if (result.err === 0) { if (successCallback) { successCallback(result.data); } } else if (result.err === 2) { toastr.error('error: ' + result.msg); setTimeout(function () { window.location.href = '/login'; },1000); } else { toastr.error('error: ' + result.msg); if (errorCallBack) { errorCallBack(); } } if (showWaiting) closeWaitingView(); }, error: function(jqXHR, textStatus, errorThrown){ toastr.error('error: ' + textStatus + " " + errorThrown); if (errorCallBack) { errorCallBack(); } if (showWaiting) closeWaitingView(); } }); }; const postDataWithFileProgress = function (url, formData, successCallback, errorCallBack) { showUploadFileProgress(); $.ajax({ type:"POST", url: url, data: formData, dataType: 'json', cache: false, // 告诉jQuery不要去设置Content-Type请求头 contentType: false, // 告诉jQuery不要去处理发送的数据 processData: false, beforeSend: function(xhr) { let csrfToken = Cookies.get('csrfToken'); xhr.setRequestHeader('x-csrf-token', csrfToken); }, success: function(result){ doneProgress(); if (result.err === 0) { if (successCallback) { successCallback(result.data); } } else if (result.err === 2) { toastr.error('error: ' + result.msg); setTimeout(function () { window.location.href = '/login'; },1000); } else { toastr.error('error: ' + result.msg); if (errorCallBack) { errorCallBack(); } } closeProgress(); }, error: function(jqXHR, textStatus, errorThrown){ toastr.error('error: ' + textStatus + " " + errorThrown); if (errorCallBack) { errorCallBack(); } closeProgress(); }, xhr: function() { var xhr = new XMLHttpRequest(); //使用XMLHttpRequest.upload监听上传过程,注册progress事件,打印回调函数中的event事件 xhr.upload.addEventListener('progress', function (e) { console.log(e); //loaded代表上传了多少 //total代表总数为多少 var progressRate = (e.loaded / e.total) * 95; //通过设置进度条的宽度达到效果 setUploadFileProgress(progressRate); }) return xhr; } }); } /** * 获取url中参数 * @param variable * @returns {*} */ function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i
' + options.loadingTips + '
'; var _LoadingHtml = '
' +'
Loading...
'; //呈现loading效果 $("body").append(_LoadingHtml); //获取loading提示框宽高 var _LoadingTipsH = document.getElementById("loadingTips").clientHeight, _LoadingTipsW = document.getElementById("loadingTips").clientWidth; //计算距离,让loading提示框保持在屏幕上下左右居中 var _LoadingTop = _PageHeight > _LoadingTipsH ? (_PageHeight - _LoadingTipsH) / 2 : 0, _LoadingLeft = _PageWidth > _LoadingTipsW ? (_PageWidth - _LoadingTipsW) / 2 : 0; $("#loadingTips").css({ "left": _LoadingLeft + "px", "top": _LoadingTop + "px" }); //监听页面加载状态 document.onreadystatechange = PageLoaded; //当页面加载完成后执行 function PageLoaded() { if (document.readyState == "complete") { var loadingMask = $('#loadingPage'); setTimeout(function () { loadingMask.animate({ "opacity": 0 }, options.delayTime, function () { $(this).hide(); }); }, options.sleep); } } }, end: function () { $("#loadingPage").remove(); }, progressStop:true, progressStart:async function(title="导出文件",autoBar = false){ if($("#progressModal").length == 0){ let phtml = ``; $("body").append(phtml); }else { $("#progress_modal_title").text(title); $("#progress_modal_body").text(`正在${title}`); } $("#progress_modal_bar").css('width','0%'); $("#progressModal").modal('show'); if(autoBar == true){//假的进度条 $.bootstrapLoading.progressStop = false; let width = 0; while ($.bootstrapLoading.progressStop == false){ await setTimeoutSync(null,1000); width += 5; if(width > 90) width -= 50; $("#progress_modal_bar").css('width',`${width}%`); } } }, progressEnd:function () { $("#progress_modal_bar").css('width','100%'); $.bootstrapLoading.progressStop = true; $("#progressModal").modal('hide'); } }; // 光标插入button内容 $.fn.extend({ insertAtCaret: function(myValue){ var $t=$(this)[0]; if (document.selection) { this.focus(); sel = document.selection.createRange(); sel.text = myValue; this.focus(); } else if ($t.selectionStart || $t.selectionStart == '0') { var startPos = $t.selectionStart; var endPos = $t.selectionEnd; var scrollTop = $t.scrollTop; $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length); this.focus(); $t.selectionStart = startPos + myValue.length; $t.selectionEnd = startPos + myValue.length; $t.scrollTop = scrollTop; } else { this.value += myValue; this.focus(); } } }); Number.prototype.format2Str = function (pattern) { var strarr = this?this.toString().split('.'):['0']; var fmtarr = pattern?pattern.split('.'):['']; var retstr=''; // 整数部分 var str = strarr[0]; var fmt = fmtarr[0]; var i = str.length-1; var comma = false; for(var f=fmt.length-1;f>=0;f--){ switch(fmt.substr(f,1)){ case '#': if(i>=0 ) retstr = str.substr(i--,1) + retstr; break; case '0': if(i>=0) retstr = str.substr(i--,1) + retstr; else retstr = '0' + retstr; break; case ',': comma = true; retstr=','+retstr; break; } } if(i>=0){ if(comma){ var l = str.length; for(;i>=0;i--){ retstr = str.substr(i,1) + retstr; if(i>0 && ((l-i)%3)==0) retstr = ',' + retstr; } } else retstr = str.substr(0,i+1) + retstr; } retstr = retstr+'.'; // 处理小数部分 str=strarr.length>1?strarr[1]:''; fmt=fmtarr.length>1?fmtarr[1]:''; i=0; for(var f=0;f