//连锁机构类型1 为总店 function ifLsjg() { if (getUserBean().lsjglx == '1') { return true; } else { return false; } } /* * 加载表格传入后代参数元素 * tableId 表格id * searchInfo 下拉框以及高级筛选参数条件 格式如下 * eg: searchInfo={ * //高级筛选自定义条件, getAdvancedFilterHtml根据parm拼装,具体内容在expParam.js中 * advancedFilterContent:getAdvancedFilterHtml(param) * //时间 本天 本周 本月 * timeFrame:{"today":"今天","thisWeek":"本周","thisMonth":"本月","custom":"自定义"}, * //下拉框一和下拉框二 * selectContext:[{"库房名称":JSON.parse(kfyfList),notNull:true},{"库房业务":JSON.parse(KFYW)},] * } * */ function loadTableParaElement(tableId, searchInfo, sfls) { var init = ''; var lsw = '40%'; var lsInput = ""; if (ifLsjg() && sfls == '1') { init = "style='width:49%;display: inline;'"; var userBean = getUserBean(); var lsInput = ""; } var input = '
' + '
' + lsInput + '' + '' + '
'; $("#" + tableId).before(input); bindClearMultiCodeSymbols(); // 拼出select下拉框 var selectContext = searchInfo.selectContext; if (selectContext) { var select = '
'; for (var i = 0; i < selectContext.length; i++) { var context = selectContext[i]; select += ''; } $("#toolbarDemo").append(select); $("#searchInputvalue").data("selectContext", selectContext); } if (ifLsjg()) { // select += "
"; var lsxx = ""; $("#toolbarDemo").append(lsxx); } $("#searchInputvalue").keydown(debounce(function (e) { if (e.keyCode === 13) { $("#querySolrOrSql").click(); } },300)).bind('input',debounce(function (e) { var curValue = $(this).val() + ''; if (curValue.length > 10 && isNumeric(curValue)){ $(this).trigger({ type: 'keydown', which: 13, // 13 是回车键的键码 (Enter) keyCode: 13 // 兼容性属性 }) } })); // 时间范围下拉框 var timeFrame = searchInfo.timeFrame; if (timeFrame) { if (timeFrame['today']) timeFrame['today'] = '按日期'; if (timeFrame['thisMonth']) timeFrame['thisMonth'] = '按月份'; if (timeFrame['thisWeek']) timeFrame['thisWeek'] = '一周内'; var timeOptions = '
"; if ($("#toolbarDemo").find(".layui-col-md7").length == 0) { $("#toolbarDemo").append('
'); } var dateRangeHtml = ''; dateRangeHtml = '
' + '
' + ' ' + '  - ' + ' ' + '
' + '
'; $("#toolbarDemo").find(".layui-col-md7").find(".layui-col-md11").append(timeOptions).append(dateRangeHtml); // 拼input框 var inputContext = searchInfo.inputContext, inputHtml = ''; if (inputContext) { inputContext.forEach(function (input) { for (var inputKey in input) { inputHtml += '
' + '' + '' + '
' } }); if (inputHtml) { $('#toolbarDemo').find('.layui-col-md11.layui-col-sm11.layui-col-xs11').children().first().before(inputHtml); } } } var smallBox = searchInfo.smallBox; // 拼写高级筛选框 var advancedFilterContent = searchInfo.advancedFilterContent if (advancedFilterContent && !searchInfo.boxAdvancedFilterContent) { var advancedFilter = "
" + "
" advancedFilterPopup(advancedFilterContent, advancedFilter); } // 选项弹框(单/复选框) var boxAdvancedFilterContent = searchInfo.boxAdvancedFilterContent; if (boxAdvancedFilterContent) { var boxAdvancedFilter = "
" + "
" boxAdvancedFilterPopup(boxAdvancedFilterContent, boxAdvancedFilter, smallBox); } // 查询按钮 $("#toolbarDemo").append('
' + '' + '
'); $("body").append(''); setTimeout(selectTriggerSearch, 500) $('#searchInputvalue').focus() var timeFrame = $("#timeFrame option:selected").val(); var name = $("#dateRange").data('searchInfo',searchInfo).attr('name'); if (timeFrame) { dateTypeShow(timeFrame, name); $('#dateRange').removeData("dateRange") } } /* * 下拉框选择触发表格查询 * */ function selectTriggerSearch() { if ($('#select0').length > 0) { var $allDd = $('#select0').next().find('dd'); $allDd.click(function () { $('#querySolrOrSql').click() }); } if ($('#select1').length > 0) { var $allDd = $('#select1').next().find('dd'); $allDd.click(function () { $('#querySolrOrSql').click() }); } if ($('#select2').length > 0) { var $allDd = $('#select2').next().find('dd'); $allDd.click(function () { $('#querySolrOrSql').click() }); } if ($('#select3').length > 0) { var $allDd = $('#select3').next().find('dd'); $allDd.click(function () { $('#querySolrOrSql').click() }); } } /** * 单复选项框弹出 */ function boxAdvancedFilterPopup(boxFilterContent, boxAdvancedFilter, smallBox) { var $select = $("#toolbarDemo").find(".layui-col-md7").find(".layui-col-md11"); if ($select.find(".layui-col-md3").length < 4 || smallBox == '1') {//部分页面自行调整了前几项 所以不再加到后面 $select.append(boxAdvancedFilter); } else { $select.after(boxAdvancedFilter); } $('#boxAdvancedFilter').click(function () { var boxIndex = layer.open({ type: 4 , area: boxFilterContent[1] , offset: 'b' , closeBtn: 0 , shadeClose: true , shade: [0.1, '#ffffff'] , tips: [3, '#ffffff'] , content: [boxFilterContent[0], '#boxAdvancedFilter'] , success: function () { var $formBox = $('.layui-form-box'); // 设置筛选弹出框定位朝下 var $layerTips = $formBox.parents('.layui-layer-tips'); var $boxAdvancedFilter = $('#boxAdvancedFilter'); var top = $boxAdvancedFilter.offset().top; var height = $boxAdvancedFilter.height(); $layerTips.css('top',top + height + 'px'); $formBox.parents('.layui-layer-tips').css('box-shadow', '0 0 5px 1px #c8c9cc'); $formBox.parent().next().css({ 'top': '-16px', 'transform': 'rotate(90deg)', 'border-right-color': '#e9e9eb' }); var right = $formBox.parent().next().css('display', 'none').css('right'); $formBox.parent().after('
'); layui.form.render(); var fields = $('#boxAdvancedFilter').data('fields'); layui.form.val('boxFormFilter', (fields ? fields : {})); // 监听表单数据变化 var radioOrCheckBox = false; layui.form.on('radio', function (data) { if (boxFilterContent.length > 2) { var boxParams = boxFilterContent[2]; var curBox = boxParams.find(function (item) { return item.name === data.elem.name; }); if (curBox && curBox.name === data.elem.name && curBox.children) { if (curBox.children.value && curBox.children.value.includes(data.value)) { curBox.children.names.forEach(function (name) { $('input[name="' + name + '"]').prop('disabled',true).prop('checked', false); }); }else { curBox.children.names.forEach(function (name) { $('input[name="' + name + '"]').prop('disabled',false); }); } layui.form.render('radio'); } } radioOrCheckBox = true; $('#boxFilter').click(); }); var checkBoxName = ''; layui.form.on('checkbox', function (data) { checkBoxName = $(data.elem).attr('name').split('-')[1]; radioOrCheckBox = true; $('#boxFilter').click(); }); //监听提交 layui.form.on('submit(boxFilter)', function (data) { var $boxAdvancedFilter = $('#boxAdvancedFilter'); var fields = data.field, boxParams = {}; $boxAdvancedFilter.data('fields', fields) for (var field in fields) { if (fields.hasOwnProperty(field)) { // 复选框以数组形式传参 if (field.indexOf('checkbox') > -1) { var name = field.split('-')[1]; if (boxParams[name]) { boxParams[name] += (',' + fields[field]); } else { boxParams[name] = fields[field] } } else { boxParams[field] = fields[field]; } } } if (!boxParams[checkBoxName]) boxParams[checkBoxName] = ''; $boxAdvancedFilter.data('boxParams', boxParams); $('#querySolrOrSql').click(); var allContent = []; $('.box-popup-row').each(function (index, item) { var name = $(item).children().eq(0).text(), content = ''; var $checked = $(item).find('.layui-form-checked'); if ($checked.length > 0) { $checked.each(function (index, checked) { content += (',' + $(checked).find('span').text()); }); } var $radioed = $(item).find('.layui-form-radioed'); if ($radioed.length > 0) { $radioed.each(function (index, radioed) { content += (',' + $(radioed).find('div').text()); }); } var $selectInput = $(item).find('.layui-form-select input'); if ($selectInput.length > 0) { var valContent = $selectInput.val(); if (valContent) { content += (',' + valContent); } } if (content) { allContent.push(name + ':' + content.substring(1)); } }).find('.boxAdvanced-filter-input').each(function (index, item) { var name = $(item).parent().prev().text(); var value = $(item).val(); var name1 = $(item).attr('name'); if (name1.indexOf('1') > -1) { if (value) allContent[allContent.length - 1] = allContent[allContent.length - 1] + ' - ' + value; } else { if (value) allContent.push(name + ':' + value); } }); if (allContent.length > 0) { $boxAdvancedFilter.empty().append('筛选 ' + allContent.join('/') + ''); } else { $boxAdvancedFilter.empty().append(' 筛选'); } if (radioOrCheckBox) { radioOrCheckBox = false; return false; } if (boxIndex) layer.close(boxIndex); return false; }); $('#boxClear').unbind('click').bind('click', function () { var $boxAdvancedFilter = $('#boxAdvancedFilter'); var boxParams = $boxAdvancedFilter.data('boxParams'); for (var boxParamsKey in boxParams) { boxParams[boxParamsKey] = ''; } $boxAdvancedFilter.data('boxParams', boxParams).removeData('fields'); $('#querySolrOrSql').click(); $boxAdvancedFilter.empty().append(' 筛选'); }); if ($('.box-date-range').length > 0) { $('.box-date-range').each(function (index, element) { laydate.render({ elem: '#' + element.id //数组格式为 2.6.6 开始新增,之前版本直接配置 true 或任意分割字符即可 , range: ['#' + $(element).find('input').first().attr('id'), '#' + $(element).find('input').last().attr('id')] }); }); } // 下拉搜索点击确定后出发搜索 $('.drop-down-search').find('.layui-anim.layui-anim-upbit').find('dd').click(function () { radioOrCheckBox = true; $('#boxFilter').click(); }) } }); }).mouseenter(function () { var i = $(this); var text = i.text(); if (i.prop("scrollWidth") > i.outerWidth()) { $('body').append( '
' + '
' + '' + text + '
' + '
' ); $('.boxAdvanced-filter-show').offset($(this).offset()).click(function () { $('#boxAdvancedFilter').click(); }).mouseleave(function () { $(this).remove(); }); } }); } /* * 加载高级筛选弹出框 * */ function advancedFilterPopup(advancedFilterContent, advancedFilter) { // 判断是否下拉框 没下拉框自己创建div.layui-col-md7和div.layui-col-md11 if ($("#toolbarDemo").find(".layui-col-md7").length == 0) { $("#toolbarDemo").append('
'); $("#toolbarDemo").find(".layui-col-md7").find(".layui-col-md11").append(advancedFilter); } else if ($("#toolbarDemo").find(".layui-col-md7").find(".layui-col-md11").find(".layui-col-md3").length == 4) { $("#toolbarDemo").find(".layui-col-md7").append(advancedFilter); } else { $("#toolbarDemo").find(".layui-col-md7").find(".layui-col-md11").append(advancedFilter); } $("#advancedFilter").click(function () { layer.open({ title: '高级筛选', type: 1, content: advancedFilterContent, offset: '10px', area: ['450px', '400px'], btn: '确定', success: function (layero, index) { // 给高级刷选时间赋值 timeAssignment(); if ($("tbody").find("layui-form-select").length == 0) { layui.form.render(); } if ($("#busStartDate").length != 0) { var startFormat = { trigger: "click", done: function (value, date, endDate) { var select = 'dd[lay-value="custom"]'; $('#timeFrame').siblings("div.layui-form-select").find('dl').find(select).click(); } }; startFormat.elem = "#busStartDate"; if ($("#busStartDate").attr("name") == "dateTime") { startFormat.type = "datetime"; } var endFormat = { trigger: "click", done: function (value, date, endDate) { var select = 'dd[lay-value="custom"]'; $('#timeFrame').siblings("div.layui-form-select").find('dl').find(select).click(); } }; endFormat.elem = "#busEndtDate"; if ($("#busEndtDate").attr("name") == "dateTime") { endFormat.type = "datetime"; } laydate.render(startFormat); laydate.render(endFormat); //去页面取高级筛选的参数 var searchPv2 = $('#searchParm').val(); if (searchPv2 != null && searchPv2 != undefined && searchPv2 != "") { var searchP = JSON.parse(searchPv2); var timeFrame = $("#timeFrame option:selected").val(); if (timeFrame && timeFrame != 'custom') { delete searchP.busStartDate; delete searchP.busEndtDate; } for (var k in searchP) { var $allTd = layero.find("table").find("tbody").find("tr").find("td"); //获得所有inpt var $allInput = $allTd.children("input"); for (var k = 0; k < $allInput.length; k++) { var $ipt = $allInput[k]; var iptId = $ipt.id; //取得页面取到的参数对应的值 var searchVal = searchP[iptId]; //如果有值就给样式 if (searchVal != "" && searchVal != undefined && searchVal != null) { $("#" + iptId).val(searchVal); $("#" + iptId).css("border", "1px solid #F3B014"); } } //取得所有的select var $allSelect = $allTd.find("select"); for (var k = 0; k < $allSelect.length; k++) { var $set = $allSelect[k]; var setId = $set.id; var searchVal = searchP[setId]; if (searchVal != "" && searchVal != undefined && searchVal != null) { var select = 'dd[lay-value="' + searchVal + '"]'; $('#' + setId).siblings("div.layui-form-select").find('dl').find(select).click(); $("#" + setId).next().find("input").css("border", "1px solid #F3B014"); // $("#" + setId).css("border", "1px solid #F3B014"); } } } } } }, yes: function (index, layero) { var startDate = $('#busStartDate').val(); if (startDate) { if (!checkDate()) { return; } } //获取表格里面所有的input的值 以id为key,组成键值对 var allInputData = {}; var $allTd = layero.find("table").find("tbody").find("tr").find("td"); var $allInput = $allTd.children("input[type='text']"); for (var i = 0; i < $allInput.length; i++) { var $input = $allInput[i]; allInputData[$input.id] = $input.value; } var $allSelect = $allTd.find("select"); if ($allSelect.length != 0) { for (var i = 0; i < $allSelect.length; i++) { var $select = $allSelect.eq(i); var $option = $select.find("option:selected"); allInputData[$select[0]['id']] = $option.val(); } } var $inputCheckbox = $allTd.find("input[type='checkbox']") if ($inputCheckbox.length != 0) { for (var i = 0; i < $inputCheckbox.length; i++) { var $checkBox = $inputCheckbox.eq(i); allInputData[$checkBox[0].id] = 0; if ($checkBox.next().hasClass("layui-form-checked")) { allInputData[$checkBox[0].id] = 1; } } } allInputData = $.extend(false, $("#advancedFilter").data("allInputData"), allInputData); $("#advancedFilter").data("allInputData", allInputData); layer.close(index); } }); }); } /** * 给高级筛选里面时间赋值 */ function timeAssignment() { if ($("#busStartDate").length != 0 || $("#busEndtDate").length != 0) { $("#busStartDate").val(""); if ($("#busEndtDate").length != 0) { $("#busEndtDate").val(""); } var timeFrame = $("#timeFrame option:selected").val(); if (timeFrame == "today") { var myDate = new Date(); var today = fmtDate(myDate); $("#busStartDate").val(today); $("#busEndtDate").val(today); } else if (timeFrame == "thisWeek") { $("#busStartDate").val(showWeekFirstDay()); $("#busEndtDate").val(showWeekLastDay()); } else if (timeFrame == "thisMonth") { $("#busStartDate").val(showMonthFirstDay()); $("#busEndtDate").val(showMonthLastDay()); } else if (timeFrame === "thisYear") { $("#busStartDate").val(showYearFirstDay()); $("#busEndtDate").val(showYearLastDay()); } } } /* * 点击查询请求后台获取数据 * 其中不是以solr搜索普通查询数据格式是键值对,输入框key为input,下拉框分别按照位子定义可以分别为select0和select1等 * */ function checkDate() { // 获取日历开始日期和结速日期 var startDate = $('#busStartDate').val(); var endDate = $('#busEndtDate').val(); // 起始日期和结束日期不能为空 if (!startDate && !endDate) { layer.msg("请设定日期!", {icon: 2}) return false; } if ($("#busStartDate").val().length != 0 && $("#busEndtDate").length != 0 && $("#busEndtDate").val().length != 0) { if ($("#busStartDate").val() > $("#busEndtDate").val()) { layer.msg("起始日期必须早于结束时期!", {icon: 2}) return false; } } return true; } /* * 获取所有的参数以json形式返回 * 在layui table中的重新加载reload方法中where属性中调用 * 新增 parJSON 入参 * */ function getConditionsPara(timeOnlyMonth,parJSON) { dateTypeAssignment(); var timeFrame = $("#timeFrame option:selected").val(); var myDate = new Date(); if (timeFrame === "timeRange") { timeFrame = ""; } else if (['today', 'thisWeek', 'thisMonth', 'thisYears', 'custom'].includes(timeFrame)) { timeFrame = $('#dateRange').data('dateRange'); } else if (timeFrame === "thisYear") { timeFrame = {"busStartDate": showYearFirstDay(), "busEndtDate": showYearLastDay()}; } else if (timeFrame === "qianbannian") { timeFrame = {"busStartDate": getAppointTime(6), "busEndtDate": getAppointTime(0)}; } else if (timeFrame === "lastmonth") { timeFrame = {"busStartDate": getAppointTime(1), "busEndtDate": getAppointTime(0)}; } else if (timeFrame === "threeMonth") { $('#dateRange').hide(); var threeMonthsAgo = myDate.getTime() - 3 * 30 * 24 * 60 * 60 * 1000; var date = new Date(threeMonthsAgo); var formattedDate = date.toISOString().split('T')[0]; timeFrame = {"busStartDate": formattedDate, busEndtDate: fmtDate(myDate)}; } else if (timeFrame === "halfYear") { $('#dateRange').hide(); var year = myDate.getFullYear(); var month = myDate.getMonth() + 1; var day = myDate.getDate(); if (month < 6) { year = year - 1; month = month - 6 + 12; } else { month = month - 6; } if (month <= 9) { month = "0" + month; } if (day <= 9) { day = "0" + day; } var date = year + "-" + month + "-" + day; timeFrame = {"busStartDate": date, busEndtDate: fmtDate(myDate)}; } else if (timeFrame === "oneYear") { $('#dateRange').hide(); var year = myDate.getFullYear() - 1; var month = myDate.getMonth() + 1; var day = myDate.getDate(); if (month <= 9) { month = "0" + month; } if (day <= 9) { day = "0" + day; } var date = year + "-" + month + "-" + day; timeFrame = {"busStartDate": date, busEndtDate: fmtDate(myDate)}; } var allInputData = $("#advancedFilter").data("allInputData"); var allInputDatas = $.extend(false, allInputData); if (!allInputDatas) { allInputDatas = {}; } allInputDatas.input = $("#searchInputvalue").val(); for (var i = 0; i < 4; i++) { if ($("#dropDown" + i).length == 1) { if ($("#select" + i).val() != "key") { allInputDatas["select" + i] = $("#select" + i + " option:selected").val(); } else { allInputDatas["select" + i] = ""; } } } // input获取值 $('#toolbarDemo').find('.layui-col-md11.layui-col-sm11.layui-col-xs11').find('.layui-input-context').each(function (index, input) { var name = $(input).attr('name'); allInputDatas[name] = $(input).val().trim(); }); // 将查询条件存储起来 if ($("#searchParm")) { $("#searchParm").val(JSON.stringify(allInputDatas)); } // 判断高级筛选时间是否为空,为空则使用下拉框定义好的时间 if (!allInputDatas.busStartDate && timeFrame) { allInputDatas.busStartDate = timeFrame.busStartDate; } if (!allInputDatas.busEndtDate && timeFrame) { allInputDatas.busEndtDate = timeFrame.busEndtDate; } // 判断是否新的时间 if (timeFrame === 'thisYears' && $('#dateRange').length > 0) { allInputDatas.busStartDate = $('#busStartDate').val(); allInputDatas.busEndtDate = $('#busEndtDate').val(); $('#dateRange').show(); } // 判断是否有时间范围下拉框 if ($("#timeFrame").length != 0) { // 判断时间是否为空 if (!allInputDatas.busStartDate && !allInputDatas.busEndtDate && timeFrame !== 'all') { layer.msg("请选择时间范围或高级筛选时间!", {icon: 2}) throw new Error('请选择时间范围或高级筛选时间!'); } // 判断时间是否仅支持一个月 if (timeOnlyMonth) { var DayNum; if (allInputDatas.busEndtDate) { DayNum = DateDiff(allInputDatas.busStartDate, allInputDatas.busEndtDate); } else { DayNum = DateDiff(allInputDatas.busStartDate, new Date().Format("yyyy-MM-dd")); } if (DayNum > 30) { layer.msg("查询日期范围不能大于一个月,请重新选择!", {icon: 2}) return; } } } // 判断时间是否为空 if (['today', 'thisWeek', 'thisMonth', 'thisYears', 'custom'].includes(timeFrame) && !allInputDatas.busStartDate && !allInputDatas.busEndtDate) { layer.msg("请选择时间范围或高级筛选时间!", {icon: 2}) throw new Error('请选择时间范围或高级筛选时间!'); } //增加 无需日期范围 限制查询条件 if(!parJSON || parJSON.isDateRangeValid !== false){ if (datedifference(allInputDatas.busStartDate, allInputDatas.busEndtDate) > 370) { layer.msg("日期范围不能超过一年!", {icon: 2}) throw new Error('日期范围不能超过一年!'); } } if (allInputDatas.busStartDate && allInputDatas.busStartDate.indexOf('2022') > -1 && allInputDatas.busEndtDate && allInputDatas.busEndtDate.indexOf('2023') > -1) { layer.msg("2022年2023年数据不能跨年查询。请重新调整搜索时间!", {icon: 2}) throw new Error('2022年2023年数据不能跨年查询。请重新调整搜索时间!'); } if (timeFrame === 'all') { allInputDatas.busStartDate = ''; allInputDatas.busEndtDate = ''; } // 附加到input中,用于给跳转页面保存参数 $("#querySolrOrSql").data("jumpPara", allInputDatas); // 获取单/复选框参数 var boxParams = $('#boxAdvancedFilter').data('boxParams') if (boxParams !== undefined) allInputDatas = Object.assign({}, allInputDatas, boxParams); // 查询后,查询条件高亮 if (typeof (searchRollback) == "function") { searchRollback(allInputDatas); } if (allInputDatas.busStartDate) { forbidNext(allInputDatas.busStartDate); } return allInputDatas; } /*下拉框必定要选择条件,不能为空*/ function notNull() { var selectContext = $("#searchInputvalue").data("selectContext"); var value = ""; // 未选中的条件名称 if (selectContext) { for (var i = 0; i < selectContext.length; i++) { var context = selectContext[i]; // 获取当前下拉框的名称 for (var key in context) { if (key != "notNull" && key != 'laySearch') { value = key; break; } } for (var key in context) { if (key == "notNull" && context[key]) { if ($("#select" + i).val() == "key") { LayerMsg("请选择" + value, 0); return true; } } } } } } /* * 判断开始日期和结束日期天数差 * */ function DateDiff(sDate1, sDate2) { var arrDate, objDate1, objDate2, intDays; arrDate = sDate1.split("-"); objDate1 = new Date(arrDate[1] + '-' + arrDate[2] + '-' + arrDate[0]); arrDate = sDate2.split("-"); objDate2 = new Date(arrDate[1] + '-' + arrDate[2] + '-' + arrDate[0]); intDays = parseInt(Math.abs(objDate1 - objDate2) / 1000 / 60 / 60 / 24); return intDays; } /** * 查询后,查询条件高亮 * @param searchP 查询条件 */ function searchRollback(searchP) { // 初始化所有下拉框以及高级按钮边框颜色 $("#select0").next().find("input").css("border", "1px solid #CCC") $("#select1").next().find("input").css("border", "1px solid #CCC") $("#select2").next().find("input").css("border", "1px solid #CCC") $("#select3").next().find("input").css("border", "1px solid #CCC") $("#timeFrame").next().find("input").css("border", "1px solid #CCC") $("#searchInputvalue").css("border", "1px solid #CCC") $("#advancedFilter").css("color", "#999999"); // 高级筛选有数据高亮 var adv = $("#advancedFilter").data("allInputData"); for (var key in adv) { if (adv[key]) { $("#advancedFilter").css("color", "#F3B014"); break; } } // 判断时间范围高亮 var tf = $("#timeFrame option:selected").val(); if (tf != "timeRange") { $("#timeFrame").next().find("input").css("border", "1px solid #F3B014"); } for (var k in searchP) { if ("input" == k) { if (searchP[k] != "") { $("#searchInputvalue").css("border", "1px solid #F3B014"); } continue; } if ((k == "select0" || k == "select1" || k == "select2" || k == "select3") && searchP[k] != "") { $("#" + k).next().find("input").css("border", "1px solid #F3B014"); } } } //判断日期是否为一个月 function onlyMonth() { var allInputDatas = $("#advancedFilter").data("allInputData"); // 判断时间是否仅支持一个月 var DayNum = ''; if (allInputDatas) { if (allInputDatas.busStartDate && allInputDatas.busEndtDate) { DayNum = DateDiff(allInputDatas.busStartDate, allInputDatas.busEndtDate); } else { layer.msg("查询开始日期和结束日期不能为空!") return true; } if (DayNum > 30) { layer.msg("查询日期范围不能大于一个月,请重新选择!") return true; } } return false; } /* * 判断选择自定义弹出高级筛选 * */ function popUp() { var select = 'dd[lay-value="custom"]'; var $custom = $('#timeFrame').siblings("div.layui-form-select").find('dl').find(select); if (!$custom.data("flag")) { //falg为true表示已加载过 $custom.data("flag", true); $custom.click(function () { var text = $(".layui-layer-title").text(); if (text !== "高级筛选") { $('#dateRange').show(); if ($('#boxAdvancedFilter').length === 0) { $("#advancedFilter").click(); } else { $('#dateRange').show(); } } }) var $dls = $('#timeFrame').siblings("div.layui-form-select").find('dd'); $dls.click(function () { var layValue = $(this).attr('lay-value'); var name = $("#dateRange").attr('name'); dateTypeShow(layValue, name); $('#querySolrOrSql').click() }); } } /** * 根据不同类型的日期来显示 */ function dateTypeShow(layValue, name, notReload, oldBusStartDate, oldBusEndDate) { var $dateRange = $('#dateRange'); var searchInfo = $dateRange.data('searchInfo'); var limit = $dateRange.attr('limit'); switch (layValue) { case 'today': // 按日 $dateRange.removeClass('layui-col-md4 layui-col-sm4 layui-col-xs4').addClass('layui-col-md2 layui-col-sm2 layui-col-xs2'); $dateRange.empty().append('
' + '
' + '
' + ' ' + '
' + '
' + '
').show(); var today = fmtDate(new Date()); var dateParams = { elem: '#dayDate' , format: 'yyyy-MM-dd' , done: function (value) { dateRangeAssignment(value, value); setTimeout(function () { $('#querySolrOrSql').click(); }) } } if (limit !== 'false') { dateParams.max = today; } laydate.render(dateParams); if (!notReload) { dateRangeAssignment(today, today); $('#dayDate').val(today); } else { $('#dayDate').val(oldBusStartDate); dateRangeAssignment(oldBusStartDate, oldBusStartDate); } // 前一天事件 $dateRange.find('.layui-icon-prev').parent().bind('click', function () { var $dayDate = $('#dayDate'); var dayDate = $dayDate.val(), beforeDay = ''; if (dayDate) { beforeDay = getYesterdayDateString(convertToDate(dayDate)); } else { beforeDay = fmtDate(new Date()); } $dayDate.val(beforeDay) dateRangeAssignment(beforeDay, beforeDay); $('#querySolrOrSql').click(); }); // 获取明天的日期 $dateRange.find('.layui-icon-next').parent().bind('click', function () { var $dayDate = $('#dayDate'); var dayDate = $dayDate.val(), afterDay = ''; if (dayDate && limit !== 'false') { if (dayDate.replaceAll('-', '') - 0 >= today.replaceAll('-', '') - 0) { return; } } if (dayDate) { afterDay = getTomorrowDate(convertToDate(dayDate)); } else { afterDay = fmtDate(new Date()); } $dayDate.val(afterDay) dateRangeAssignment(afterDay, afterDay); $('#querySolrOrSql').click(); }); break; case 'thisWeek': // 一周 $dateRange.removeClass('layui-col-md2 layui-col-sm2 layui-col-xs2').addClass('layui-col-md4 layui-col-sm4 layui-col-xs4'); $dateRange.empty().append( '
' + ' ' + '  - ' + ' ' + '
' ).hide(); var weekFirst = getSevenDaysAgoDate(); var weekLast = fmtDate(new Date()); var rangeDate = laydate.render({ elem: '#dateRangeDetail' //数组格式为 2.6.6 开始新增,之前版本直接配置 true 或任意分割字符即可 , range: ['#busStartDate', '#busEndtDate'] , done: function (value, date, endDate) { var dates = value.split(' - '); dateRangeAssignment(dates[0], dates[1]); setTimeout(function () { $('#querySolrOrSql').click(); }) } }); var weekFristArr = weekFirst.split('-'); rangeDate.config.min = { year: weekFristArr[0] - 0, month: weekFristArr[1] - 0, date: weekFristArr[2] - 0 }; var weekLastArr = weekLast.split('-'); rangeDate.config.max = { year: weekLastArr[0] - 0, month: weekLastArr[1] - 0, date: weekLastArr[2] - 0 }; if (!notReload) { // 传入赋值以及和日期显示数据赋值 dateRangeAssignment(weekFirst, weekLast); $('#busStartDate').val(weekFirst) $('#busEndtDate').val(weekLast) } else { $('#busStartDate').val(oldBusStartDate) $('#busEndtDate').val(oldBusEndDate) dateRangeAssignment(oldBusStartDate, oldBusEndDate); } break case 'thisMonth': //按月 $dateRange.removeClass('layui-col-md4 layui-col-sm4 layui-col-xs4').addClass('layui-col-md2 layui-col-sm2 layui-col-xs2'); $dateRange.empty().append('
' + '
' + '
' + ' ' + '
' + '
' + '
').show(); var dateParams = { elem: '#monthDate' , type: 'month' , format: 'yyyy-MM-dd' , done: function (value) { // 判断时间是否为空 var maxDate = getLastDayCurrentMonth(value); if (value) { dateRangeAssignment(value + '-01', value + '-' + maxDate); }else { dateRangeAssignment(value, value); } setTimeout(function () { $('#querySolrOrSql').click(); }) } } if (limit !== 'false') { dateParams.max = showMonthLastDay(); } laydate.render(dateParams); if (!notReload) { var monthFirst = showMonthFirstDay(); var monthLast = showMonthLastDay(); dateRangeAssignment(monthFirst, monthLast); $('#monthDate').val(monthFirst.substring(0, 7)); } else { $('#monthDate').val(oldBusStartDate.substring(0, 7)); dateRangeAssignment(oldBusStartDate, oldBusEndDate); } // 上一个月事件 var curMonth = fmtDate(new Date()).substring(0, 7); $dateRange.find('.layui-icon-prev').parent().bind('click', function () { var $dayDate = $('#monthDate'); var dayDate = $dayDate.val(), beforeDay = ''; if (dayDate) { beforeDay = getLastMonthDate(convertToDate(dayDate + '-01')); } else { beforeDay = curMonth; } $dayDate.val(beforeDay) var maxDate = getLastDayCurrentMonth(beforeDay); dateRangeAssignment(beforeDay + '-01', beforeDay + '-' + maxDate); $('#querySolrOrSql').click(); }); // 下一个月的日期 $dateRange.find('.layui-icon-next').parent().bind('click', function () { var $dayDate = $('#monthDate'); var dayDate = $dayDate.val(), afterDay = ''; if (dayDate && limit !== 'false') { if (dayDate.replaceAll('-', '') - 0 >= curMonth.replaceAll('-', '') - 0) { return; } } if (dayDate) { afterDay = getNextMonthDate(convertToDate(dayDate + '-01')); } else { afterDay = curMonth; } $dayDate.val(afterDay) var maxDate = getLastDayCurrentMonth(afterDay); dateRangeAssignment(afterDay + '-01', afterDay + '-' + maxDate); $('#querySolrOrSql').click(); }); break; case 'thisYears': // 年月 $dateRange.removeClass('layui-col-md2 layui-col-sm2 layui-col-xs2').addClass('layui-col-md4 layui-col-sm4 layui-col-xs4'); $dateRange.empty().append( '
' + ' ' + '  - ' + ' ' + '
' ).show(); var monthFirst = showMonthFirstDay(); var dateParams = { elem: '#dateRangeDetail' , type: 'month' //数组格式为 2.6.6 开始新增,之前版本直接配置 true 或任意分割字符即可 , range: ['#busStartDate', '#busEndtDate'] , done: function (value, date, endDate) { var dates = value.split(' - '); var maxDate = getLastDayCurrentMonth(dates[1]); if (dates[0]) { dateRangeAssignment(dates[0] + '-01', dates[1] + '-' + maxDate); }else { dateRangeAssignment('',''); } setTimeout(function () { $('#querySolrOrSql').click(); }) } } if (limit !== 'false') { dateParams.max = showMonthLastDay(); } laydate.render(dateParams); if (!notReload) { $('#busStartDate,#busEndtDate').val(monthFirst.substring(0, 7)); dateRangeAssignment(monthFirst, showMonthLastDay()); } else { $('#busStartDate').val(oldBusStartDate.substring(0, 7)); $('#busEndtDate').val(oldBusEndDate.substring(0, 7)); dateRangeAssignment(oldBusStartDate, oldBusEndDate); } break; case 'custom': //自定义 $dateRange.removeClass('layui-col-md2 layui-col-sm2 layui-col-xs2').addClass('layui-col-md4 layui-col-sm4 layui-col-xs4'); $dateRange.empty().append('
' + '
' + ' ' + '  - ' + ' ' + '
' + '
' ).show(); var dateParams = { elem: '#customDate' //数组格式为 2.6.6 开始新增,之前版本直接配置 true 或任意分割字符即可 , range: ['#busStartDate', '#busEndtDate'] , done: function (value) { var dates = value.split(' - '); dateRangeAssignment(dates[0], dates[1]); setTimeout(function () { $('#querySolrOrSql').click(); }) } } if (limit !== 'false') { dateParams.max = fmtDate(new Date()); } if (searchInfo.dateType === 'datetime'){ dateParams.type = 'datetime'; dateParams.format = 'yyyy-MM-dd HH:mm:ss'; if (dateParams.max) dateParams.max += ' 23:59:59'; } laydate.render(dateParams); var today = fmtDate(new Date()); if (searchInfo.dateType === 'datetime') today += ' 00:00:00'; if (oldBusStartDate && oldBusEndDate) { $('#busStartDate').val(oldBusStartDate); if (limit !== 'false' && oldBusEndDate.replaceAll('-', '') - 0 > today.replaceAll('-', '') - 0) oldBusEndDate = today; $('#busEndtDate').val(oldBusEndDate); dateRangeAssignment(oldBusStartDate, oldBusEndDate); } else { var allInputData = $('#dateRange').data("dateRange"); if (allInputData && allInputData.busStartDate && allInputData.busEndtDate) { if (searchInfo.dateType === 'datetime') { allInputData.busStartDate += ' 00:00:00'; allInputData.busEndtDate += ' 23:59:59'; } $('#busStartDate').val(allInputData.busStartDate); if (limit !== 'false' && allInputData.busEndtDate.replaceAll('-', '') - 0 > today.replaceAll('-', '') - 0) allInputData.busEndtDate = today; $('#busEndtDate').val(allInputData.busEndtDate); dateRangeAssignment(allInputData.busStartDate, allInputData.busEndtDate); } else { if (searchInfo.dateType === 'datetime') { $('#busStartDate').val(today); $('#busEndtDate').val(fmtDate(new Date()) + ' 23:59:59'); dateRangeAssignment(today, fmtDate(new Date()) + ' 23:59:59'); }else { $('#busStartDate,#busEndtDate').val(today); dateRangeAssignment(today, today); } } } break; case 'all': // 差所有数据 $dateRange.hide(); break } } /** * 获取当前月份的最后一天日期 */ function getLastDayCurrentMonth(yearMonth) { if (yearMonth && yearMonth.indexOf('-') > -1) { var arrs = yearMonth.split('-'); return new Date(arrs[0], arrs[1], "0").getDate(); } return '31'; } /** * 给开始日期和结束日期赋值 */ function dateRangeAssignment(busStartDate, busEndtDate) { var allInputData = $("#dateRange").data("dateRange"); if (!allInputData) allInputData = {}; allInputData.busStartDate = busStartDate; allInputData.busEndtDate = busEndtDate; $('#dateRange').data("dateRange", allInputData); } /** * 如果日期为空,给日期赋值 */ function dateTypeAssignment() { var allInputData = $('#dateRange').data("dateRange"); if (!allInputData) { var timeFrame = $("#timeFrame option:selected").val(); var busStartDate = $('#busStartDate').val(); var busEndtDate = $('#busEndtDate').val(); if (timeFrame === "today") { var myDate = new Date(); var today = fmtDate(myDate); if (busStartDate && busEndtDate) { dateRangeAssignment(busStartDate, busEndtDate); $('#dayDate').val(busStartDate); } else { dateRangeAssignment(today, today); } } else if (timeFrame === "thisWeek") { if (busStartDate && busEndtDate) { dateRangeAssignment(busStartDate, busEndtDate); } else { dateRangeAssignment(getSevenDaysAgoDate(), fmtDate(myDate)); } } else if (timeFrame === "thisMonth") { if (busStartDate && busEndtDate) { dateRangeAssignment(busStartDate, busEndtDate); $('#monthDate').val(busStartDate.substring(0, 7)) } else { dateRangeAssignment(showMonthFirstDay(), showMonthLastDay()); } } else if (timeFrame === "thisYears") { if (busStartDate && busEndtDate) { dateRangeAssignment(busStartDate, busEndtDate); $('#busStartDate').val(busStartDate.substring(0, 7)) $('#busEndtDate').val(busEndtDate.substring(0, 7)) } else { var monthFirst = showMonthFirstDay(); dateRangeAssignment(monthFirst.substring(0, 7), monthFirst.substring(0, 7)); } } else if (timeFrame === 'custom') { if (busStartDate && busEndtDate) { dateRangeAssignment(busStartDate, busEndtDate); $('#busStartDate').val(busStartDate) $('#busEndtDate').val(busEndtDate) } else { var today = fmtDate(new Date()); dateRangeAssignment(today, today); } } } } /* *超长省略的时候鼠标移过全部内容显示到title属性 * */ function showTitleSylte(tableId) { var oldTitle = null; var $div = $("#" + tableId).next().find("tbody").find("td").children("div"); $div.unbind(); $div.bind('mouseover mouseout mousemove', function (event) { var left = event.pageX, top = event.pageY; var ele = event.target; var $divs = $(this).find("div"); var title = $(this).text(); var type = event.originalEvent.type; if (type == 'mouseover') { var div = document.createElement('div'); div.innerHTML = $(this).find("span").text(); var fs = $(this).find("span").css("font-size"); div.id = 'textWidth'; div.style.fontSize = fs; div.style.margin = '0'; div.style.padding = '0'; div.style.float = 'left'; $("body").append(div); var $textWidth = $("#textWidth"); var thisWidth = $(this).width(); var textWidth = $textWidth.width(); $textWidth.remove(); // 判断是否超长 todo 不管是否超长都需要title if (thisWidth < textWidth) { oldTitle = title; ele.title = ''; if (title != null) { var showEle = $('
', {text: title, class: 'showTitleBox'}).css({ position: 'absolute', top: top + 10, left: left, border: '1px solid #CCC', borderRadius: '5px', "font-size": "15px", background: "white", "z-index": 9 }) showEle.appendTo('body'); } } } else if (type == 'mouseout') { $('.showTitleBox').remove(); } else if (type == 'mousemove') { $('.showTitleBox').css({ top: top + 10, left: left }) } }) } /** * 获取七天前的日期 * @returns {string} */ function getSevenDaysAgoDate() { let currentDate = new Date(); currentDate.setDate(currentDate.getDate() - 6); let year = currentDate.getFullYear(); let month = (currentDate.getMonth() + 1).toString().padStart(2, '0'); let day = currentDate.getDate().toString().padStart(2, '0'); return year + '-' + month + '-' + day; } /** * yyyy-MM-dd 转 Date类型 * @param dateString * @returns {Date} */ function convertToDate(dateString) { var parts = dateString.split('-'); var year = parseInt(parts[0], 10); var month = parseInt(parts[1], 10) - 1; // 月份是从0开始的,所以减去1 var day = parseInt(parts[2], 10); return new Date(year, month, day); } /** * 获取昨天的日期 * @param curDate * @returns {string} */ function getYesterdayDateString(curDate) { let yesterday = new Date(curDate); yesterday.setDate(yesterday.getDate() - 1); let year = yesterday.getFullYear(); let month = ('0' + (yesterday.getMonth() + 1)).slice(-2); // 月份是从0开始的 let day = ('0' + yesterday.getDate()).slice(-2); return year + '-' + month + '-' + day; } /** * 获取明天的日期 * @param curDate * @returns {string} */ function getTomorrowDate(curDate) { let tomorrow = new Date(curDate); tomorrow.setDate(tomorrow.getDate() + 1); let year = tomorrow.getFullYear(); let month = ('0' + (tomorrow.getMonth() + 1)).slice(-2); // 月份是从0开始的 let day = ('0' + tomorrow.getDate()).slice(-2); return year + '-' + month + '-' + day; } /** * 获取上一个月 * @param curDate * @returns {string} */ function getLastMonthDate(curDate) { curDate.setMonth(curDate.getMonth() - 1); // 设置为上个月 let year = curDate.getFullYear(); let month = ('0' + (curDate.getMonth() + 1)).slice(-2); // 月份是从0开始的 return year + '-' + month; } /** * 获取下一个月 * @param curDate * @returns {string} */ function getNextMonthDate(curDate) { curDate.setMonth(curDate.getMonth() + 1); // 设置为上个月 let year = curDate.getFullYear(); let month = ('0' + (curDate.getMonth() + 1)).slice(-2); // 月份是从0开始的 return year + '-' + month; } /** * 禁止下一个日期 */ function forbidNext(curDate) { var timeFrame = $("#timeFrame option:selected").val() var limit = $('#dateRange').attr('limit'); if (timeFrame === 'today') { if (limit !== 'false') { if (fmtDate(new Date()).replaceAll('-', '') - 0 <= curDate.replaceAll('-', '') - 0) { $('#dateRange').find('.layui-icon-next').css({'color': '#d2d2d2', 'cursor': 'not-allowed'}); } else { $('#dateRange').find('.layui-icon-next').css({'color': '#999999','cursor': 'pointer'}); } } } else if (timeFrame === 'thisMonth') { if (limit !== 'false') { var maxMonth = fmtDate(new Date()).replaceAll('-', '').substring(0, 6) - 0; curDate = curDate.replaceAll('-', '').substring(0, 6) - 0; if (maxMonth <= curDate) { $('#dateRange').find('.layui-icon-next').css({'color': '#d2d2d2', 'cursor': 'not-allowed'}); } else { $('#dateRange').find('.layui-icon-next').css({'color': '#999999','cursor': 'pointer'}); ; } } } } /** * 判断字符串是否纯数字 * @param str 入参 * @returns {boolean} */ function isNumeric(str) { return /^\d+$/.test(str); } /** * 计算表格高度 * @param isTab 是否为Tab页中的表格 * @returns {number} */ function calcTableHeight(isTab,table_id) { if(!table_id){ table_id = 'table_id'; } var headerTop = $("#"+table_id+"").siblings(".layui-table-view")[0].offsetTop; return window.innerHeight - (headerTop ? headerTop : 0)- ( isTab ? 0 : 10); // 10=底部间距 }