//连锁机构类型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 = '
';
$("#" + 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=底部间距
}