1639 lines
54 KiB
JavaScript
1639 lines
54 KiB
JavaScript
/**
|
||
* 去字符串空格
|
||
*/
|
||
function trim(str) {
|
||
return str.replace(/(^\s*)|(\s*$)/g, '');
|
||
};
|
||
|
||
function ltrim(str) {
|
||
return str.replace(/(^\s*)/g, '');
|
||
};
|
||
|
||
function rtrim(str) {
|
||
return str.replace(/(\s*$)/g, '');
|
||
};
|
||
|
||
/**
|
||
* 判断开始字符是否是XX
|
||
*/
|
||
function startWith(source, str) {
|
||
var reg = new RegExp("^" + str);
|
||
return reg.test(source);
|
||
};
|
||
|
||
/**
|
||
* 判断结束字符是否是XX
|
||
*/
|
||
function endWith(source, str) {
|
||
var reg = new RegExp(str + "$");
|
||
return reg.test(source);
|
||
};
|
||
|
||
/**
|
||
* iframe自适应高度
|
||
*
|
||
* @param iframe
|
||
*/
|
||
function autoIframeHeight(iframe) {
|
||
iframe.style.height = iframe.contentWindow.document.body.scrollHeight + "px";
|
||
};
|
||
|
||
/**
|
||
* 设置iframe高度
|
||
*
|
||
* @param iframe
|
||
*/
|
||
function setIframeHeight(iframe, height) {
|
||
iframe.height = height;
|
||
};
|
||
|
||
var commfile = function (mappernamespace, id) {
|
||
this.showUpload = function () {
|
||
var dialog = top.ext.modalDialog({
|
||
title: "上传文件",
|
||
url: ext.contextPath + "/base/fileupload.do?mappernamespace=" + mappernamespace + "&masterid=" + id,
|
||
width: 600,
|
||
height: 400,
|
||
onClose: function () {
|
||
new commfile(mappernamespace, id).loadfile();
|
||
}
|
||
});
|
||
};
|
||
|
||
this.loadfile = function () {
|
||
$.post(ext.contextPath + "/base/getFileList.do?mappernamespace=" + mappernamespace + "&masterid=" + id, function (data) {
|
||
var filehtml = "";
|
||
$.each(data, function (index, item) {
|
||
filehtml += "<div id='" + item.id + "'><img src='" + ext.contextPath + "/CSS/ext_icons/attach.png'/> " +
|
||
"<a class='linkbutton' href='" + ext.contextPath + "/base/downloadfile.do?mappernamespace=" + mappernamespace + "&id=" + item.id + "'>" + item.filename + "</a> " +
|
||
"<a class='linkbutton' style='color:red' href='javascript:new commfile(\"" + mappernamespace + "\",\"" + id + "\").deletefile(\"" + item.id + "\")'>删除</a></div>";
|
||
});
|
||
$('#fileList').html(filehtml);
|
||
}, 'json');
|
||
};
|
||
|
||
this.deletefile = function (itemid) {
|
||
top.$.messager.confirm('提示', '确定删除此文件?', function (r) {
|
||
if (r) {
|
||
$.post(ext.contextPath + "/base/deletefile.do?mappernamespace=" + mappernamespace + "&id=" + itemid, function (data) {
|
||
top.$.messager.alert("提示", data, "info", function () {
|
||
if (data.indexOf("成功") > 0) {
|
||
$("#" + itemid).remove();
|
||
}
|
||
});
|
||
});
|
||
}
|
||
});
|
||
};
|
||
|
||
};
|
||
|
||
|
||
/**
|
||
* 选择人员
|
||
* @param recvname 用户名称字段名
|
||
* @param recvid 用户名称id字段名
|
||
* @param iframeId 当前窗口Id,由父窗口传递过来
|
||
*/
|
||
function selectUsers(recvname, recvid, iframeId) {
|
||
var dialog = parent.ext.modalDialog({
|
||
title: '选择人员',
|
||
width: 600,
|
||
height: 480,
|
||
closeOnEscape: true,
|
||
url: ext.contextPath + '/user/userForSelect.do?iframeId=' + iframeId + '&recvid=' + recvid,
|
||
buttons: [
|
||
{
|
||
text: '选中',
|
||
handler: function () {
|
||
dialog.find('iframe').get(0).contentWindow.addToSelectMulti();
|
||
}
|
||
}, {
|
||
text: '全选',
|
||
handler: function () {
|
||
dialog.find('iframe').get(0).contentWindow.addToSelectAll();
|
||
}
|
||
}, {
|
||
text: '清除',
|
||
handler: function () {
|
||
dialog.find('iframe').get(0).contentWindow.removeFromSelectAll();
|
||
}
|
||
}, {
|
||
text: '确定',
|
||
iconCls: 'icon-ok',
|
||
handler: function () {
|
||
var res = dialog.find('iframe').get(0).contentWindow.selectOK();
|
||
if (res != null) {
|
||
dialog.dialog('destroy');
|
||
var recvuser = res.split(";");
|
||
var recvidstr = "";
|
||
var recvnamestr = "";
|
||
for (var i = 0; i < (recvuser.length - 1); i++) {//leng-1去空格
|
||
recvidstr += recvuser[i].split(",")[0] + ",";
|
||
recvnamestr += recvuser[i].split(",")[1] + ",";
|
||
}
|
||
if (recvidstr.length > 1) {
|
||
recvidstr = recvidstr.substring(0, recvidstr.length - 1);
|
||
}
|
||
if (recvnamestr.length > 1) {
|
||
recvnamestr = recvnamestr.substring(0, recvnamestr.length - 1);
|
||
}
|
||
$("#" + recvname).textbox('setValue', recvnamestr);//easyui textbox赋值jquery不一样
|
||
$("#" + recvid).val(recvidstr);
|
||
|
||
}
|
||
|
||
}
|
||
}, {
|
||
text: '取消',
|
||
iconCls: 'icon-cancel',
|
||
handler: function () {
|
||
dialog.dialog('destroy');
|
||
|
||
}
|
||
}]
|
||
});
|
||
}
|
||
|
||
/**
|
||
* 选择人员--单选
|
||
* @param recvname 用户名称字段名
|
||
* @param recvid 用户名称id字段名
|
||
* @param iframeId 当前窗口Id,由父窗口传递过来
|
||
*/
|
||
function selectSingleUser(recvname, recvid, iframeId) {
|
||
var dialog = parent.ext.modalDialog({
|
||
title: '选择人员',
|
||
width: 440,
|
||
height: 480,
|
||
closeOnEscape: true,
|
||
url: ext.contextPath + '/user/userForSingleSelect.do?iframeId=' + iframeId + '&recvid=' + recvid,
|
||
buttons: [
|
||
{
|
||
text: '确定',
|
||
iconCls: 'icon-ok',
|
||
handler: function () {
|
||
var res = dialog.find('iframe').get(0).contentWindow.selectOK();
|
||
if (res != null) {
|
||
dialog.dialog('destroy');
|
||
var recvuser = res.split(",");
|
||
$("#" + recvname).textbox('setValue', recvuser[1]);//easyui textbox赋值jquery不一样
|
||
$("#" + recvid).val(recvuser[0]);
|
||
|
||
}
|
||
|
||
}
|
||
}, {
|
||
text: '取消',
|
||
iconCls: 'icon-cancel',
|
||
handler: function () {
|
||
dialog.dialog('destroy');
|
||
|
||
}
|
||
}]
|
||
});
|
||
}
|
||
|
||
Date.prototype.Format = function (fmt) {
|
||
var o = {
|
||
"M+": this.getMonth() + 1, //月份
|
||
"d+": this.getDate(), //日
|
||
"h+": this.getHours(), //小时
|
||
"m+": this.getMinutes(), //分
|
||
"s+": this.getSeconds(), //秒
|
||
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
|
||
"S": this.getMilliseconds() //毫秒
|
||
};
|
||
if (/(y+)/.test(fmt))
|
||
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
||
for (var k in o)
|
||
if (new RegExp("(" + k + ")").test(fmt))
|
||
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
||
return fmt;
|
||
}
|
||
|
||
/**
|
||
* 获取当前时间
|
||
*/
|
||
function getNowTime() {
|
||
const myDate = new Date;
|
||
const year = myDate.getFullYear(); //获取当前年
|
||
const mon = myDate.getMonth() + 1; //获取当前月
|
||
const day = myDate.getDate(); //获取当前日
|
||
const h = myDate.getHours();//获取当前小时数(0-23)
|
||
const m = myDate.getMinutes();//获取当前分钟数(0-59)
|
||
const s = myDate.getSeconds();//获取当前秒
|
||
|
||
const nowTime = year + "-" + (mon < 10 ? "0" + mon : mon) + "-" + (day < 10 ? "0" + day : day) + " " + (h < 10 ? "0" + h : h) + ":" + (m < 10 ? "0" + m : m) + ":" + (s < 10 ? "0" + s : s);
|
||
return nowTime;
|
||
}
|
||
|
||
/**
|
||
* 比较日期大小 1 sdt日期大(sdt在edt后面) -1 sdt日期小(sdt在edt前面) 0 sdt日期与edt一样大
|
||
*/
|
||
function getCompareTime(sdt, edt) {
|
||
var start_time = sdt;
|
||
var subsidy_start_time = new Date(start_time.replace("-", "/").replace("-", "/"));
|
||
var end_time = edt;
|
||
var subsidy_end_time = new Date(end_time.replace("-", "/").replace("-", "/"));
|
||
if (subsidy_start_time.getTime() > subsidy_end_time.getTime()) {
|
||
return "1";
|
||
} else if (subsidy_start_time.getTime() == subsidy_end_time.getTime()) {
|
||
return "0";
|
||
} else if (subsidy_start_time.getTime() < subsidy_end_time.getTime()) {
|
||
return "-1";
|
||
}
|
||
|
||
return null;
|
||
}
|
||
|
||
/**
|
||
* 日期计算
|
||
*/
|
||
function getPlusTime(date, dateval, type) {
|
||
var d = new Date(date);
|
||
|
||
var sec = d.getSeconds();
|
||
var min = d.getMinutes();
|
||
var hour = d.getHours();
|
||
|
||
if (type == 'min') {
|
||
d.setMinutes(d.getMinutes() + Number(dateval));
|
||
let nowmon = d.getMonth() + 1;
|
||
if (Number(nowmon) < 10) {
|
||
nowmon = "0" + nowmon;
|
||
}
|
||
let nowday = d.getDate();
|
||
if (Number(nowday) < 10) {
|
||
nowday = "0" + nowday;
|
||
}
|
||
let nowhour = d.getHours();
|
||
if (Number(nowhour) < 10) {
|
||
nowhour = "0" + nowhour;
|
||
}
|
||
let nowmin = d.getMinutes();
|
||
if (Number(nowmin) < 10) {
|
||
nowmin = "0" + nowmin;
|
||
}
|
||
return d.getFullYear() + "-" + nowmon + "-" + nowday + " " + nowhour + ":" + nowmin + ":" + sec;
|
||
} else if (type == 'hour') {
|
||
d.setHours(d.getHours() + Number(dateval));
|
||
let nowmon = d.getMonth() + 1;
|
||
if (Number(nowmon) < 10) {
|
||
nowmon = "0" + nowmon;
|
||
}
|
||
let nowday = d.getDate();
|
||
if (Number(nowday) < 10) {
|
||
nowday = "0" + nowday;
|
||
}
|
||
let nowhour = d.getHours();
|
||
if (Number(nowhour) < 10) {
|
||
nowhour = "0" + nowhour;
|
||
}
|
||
return d.getFullYear() + "-" + nowmon + "-" + nowday + " " + nowhour + ":" + min + ":" + sec;
|
||
} else if (type == 'day') {
|
||
d.setDate(d.getDate() + Number(dateval));
|
||
let nowmon = d.getMonth() + 1;
|
||
if (Number(nowmon) < 10) {
|
||
nowmon = "0" + nowmon;
|
||
}
|
||
let nowday = d.getDate();
|
||
if (Number(nowday) < 10) {
|
||
nowday = "0" + nowday;
|
||
}
|
||
return d.getFullYear() + "-" + nowmon + "-" + nowday + " " + hour + ":" + min + ":" + sec;
|
||
} else if (type == 'month') {
|
||
d.setMonth(d.getMonth() + Number(dateval));
|
||
let nowmon = d.getMonth() + 1;
|
||
if (Number(nowmon) < 10) {
|
||
nowmon = "0" + nowmon;
|
||
}
|
||
let nowday = d.getDate();
|
||
if (Number(nowday) < 10) {
|
||
nowday = "0" + nowday;
|
||
}
|
||
return d.getFullYear() + "-" + nowmon + "-" + nowday + " " + hour + ":" + min + ":" + sec;
|
||
} else if (type == 'year') {
|
||
d.setFullYear(d.getFullYear() + Number(dateval));
|
||
let nowmon = d.getMonth() + 1;
|
||
if (Number(nowmon) < 10) {
|
||
nowmon = "0" + nowmon;
|
||
}
|
||
let nowday = d.getDate();
|
||
if (Number(nowday) < 10) {
|
||
nowday = "0" + nowday;
|
||
}
|
||
return d.getFullYear() + "-" + nowmon + "-" + nowday + " " + hour + ":" + min + ":" + sec;
|
||
}
|
||
|
||
return null;
|
||
}
|
||
|
||
function getMonthMaxDay(nowTime) {
|
||
let nextMonth = getPlusTime(nowTime, "1", "month").substring(0, 7) + "-01";
|
||
let endday = getPlusTime(nextMonth, "-1", "day").substring(8, 10);
|
||
return endday;
|
||
}
|
||
|
||
/**
|
||
* 输出数字添加千分符
|
||
*/
|
||
function numOutput(num) {
|
||
var numpart = String(num).split(".");//将数字通过jq split用小数点分隔为数组对象
|
||
numpart[0] = numpart[0].replace(new RegExp('(\\d)(?=(\\d{3})+$)', 'ig'), "$1,");
|
||
//将数组对象第一个数据(整数部分)通过正则表达式每三位用逗号分隔
|
||
return numpart.join(".");//把数组通过join方法用.进行拼接
|
||
}
|
||
|
||
/**
|
||
* 播读语音
|
||
*/
|
||
function speakText(text) {
|
||
let to_speak = window.speechSynthesis;
|
||
to_speak = new SpeechSynthesisUtterance(text);
|
||
window.speechSynthesis.speak(to_speak);
|
||
}
|
||
|
||
/**
|
||
* @param scope 范围 today yesterday week prevweek month prevmonth
|
||
* @param datestr 如果为null,则直接取当前时间
|
||
* @return result (Array)
|
||
*/
|
||
function getDateStartEnd(scope, datestr) {
|
||
datestr = datestr == null ? new Date() : datestr;
|
||
|
||
var nowdate = new Date(datestr);
|
||
//今天时间
|
||
var year = nowdate.getFullYear();
|
||
var month = nowdate.getMonth() + 1;
|
||
var day = nowdate.getDate();
|
||
var today = nowdate.Format("yyyy-MM-dd");
|
||
|
||
|
||
//昨天时间
|
||
var dd = new Date(nowdate);
|
||
dd.setDate(dd.getDate() - 1);
|
||
var yesterday = dd.Format("yyyy-MM-dd");
|
||
|
||
|
||
// 获得本周时间 (周一到当天的时间)
|
||
var thisWeekStart; //本周周一的时间
|
||
if (nowdate.getDay() == 0) { //周天的情况
|
||
thisWeekStart = (new Date(today)).getTime() - ((nowdate.getDay()) + 6) * 86400000;
|
||
} else {
|
||
thisWeekStart = (new Date(today)).getTime() - ((nowdate.getDay()) - 1) * 86400000;
|
||
}
|
||
var weekStartDate = new Date(thisWeekStart).Format("yyyy-MM-dd");
|
||
var weekEndDate = nowdate.Format("yyyy-MM-dd");
|
||
|
||
|
||
//获得上周时间
|
||
var prevWeekStart = thisWeekStart - 7 * 86400000;//上周周一的时间
|
||
var prevWeekEnd = thisWeekStart - 1 * 86400000;//上周周日的时间
|
||
var prevweekStartDate = new Date(prevWeekStart).Format("yyyy-MM-dd");
|
||
var prevweekEndDate = new Date(prevWeekEnd).Format("yyyy-MM-dd");
|
||
|
||
|
||
//获得本月时间
|
||
var currentYear = nowdate.getFullYear();
|
||
var currentMonth = nowdate.getMonth();
|
||
var monthStartDate = new Date(currentYear, currentMonth, 1).Format("yyyy-MM-dd");
|
||
var monthEndDate = weekEndDate;
|
||
|
||
|
||
//获得上月时间
|
||
var currentYear = nowdate.getFullYear();
|
||
var currentMonth = nowdate.getMonth();
|
||
var prevCurrentYear = 0, prevCurrentMonth = 0;
|
||
if (currentMonth == 1) {
|
||
prevCurrentYear = currentYear - 1;
|
||
prevCurrentMonth = 12;
|
||
} else {
|
||
prevCurrentYear = currentYear;
|
||
prevCurrentMonth = currentMonth - 1;
|
||
}
|
||
var prevmonthLastday = (new Date(currentYear, currentMonth, 1)).getTime() - 86400000;
|
||
var prevmonthStartDate = new Date(prevCurrentYear, prevCurrentMonth, 1).Format("yyyy-MM-dd");
|
||
var prevmonthEndDate = new Date(prevmonthLastday).Format("yyyy-MM-dd");
|
||
|
||
|
||
var result = new Array();
|
||
if (scope == "today") {
|
||
result[0] = today + " 00:00:00";
|
||
result[1] = today + " 23:59:59";
|
||
} else if (scope == "yesterday") {
|
||
result[0] = yesterday + " 00:00:00";
|
||
result[1] = yesterday + " 23:59:59";
|
||
} else if (scope == "week") {
|
||
result[0] = weekStartDate + " 00:00:00";
|
||
result[1] = weekEndDate + " 23:59:59";
|
||
} else if (scope == "prevweek") {
|
||
result[0] = prevweekStartDate + " 00:00:00";
|
||
result[1] = prevweekEndDate + " 23:59:59";
|
||
} else if (scope == "month") {
|
||
result[0] = monthStartDate + " 00:00:00";
|
||
result[1] = monthEndDate + " 23:59:59";
|
||
} else if (scope == "prevmonth") {
|
||
result[0] = prevmonthStartDate + " 00:00:00";
|
||
result[1] = prevmonthEndDate + " 23:59:59";
|
||
}
|
||
|
||
return result;
|
||
}
|
||
|
||
/**
|
||
* @param tips 提示内容
|
||
* @param time 秒
|
||
*/
|
||
function showTips(tips, time) {
|
||
var windowWidth = document.documentElement.clientWidth;
|
||
var height = $(document).height();
|
||
var loadingDiv = "<div id='loadingDiv' style='position:absolute;top:0;left:0;width:100%;height:" + height + "px;background:#ccc;opacity:0.4;display:none'></div>";
|
||
var tipsDiv = '<div class="tipsClass">' + tips + '</div>';
|
||
$('body').append(loadingDiv + tipsDiv);
|
||
$('#loadingDiv').show();
|
||
$('div.tipsClass').css({
|
||
'top': height / 2 + 'px',
|
||
'left': (windowWidth / 2) - (tips.length * 13 / 2) + 'px',
|
||
'position': 'absolute',
|
||
'padding': '10px',
|
||
'background': '#fff',
|
||
'font-size': 12 + 'px',
|
||
'margin': '0 auto',
|
||
'text-align': 'center',
|
||
'width': 'auto',
|
||
'border': '2px solid #95B8E7'
|
||
}).show();
|
||
|
||
setTimeout(function () {
|
||
$('#loadingDiv').fadeOut();
|
||
$('div.tipsClass').fadeOut();
|
||
}, (time * 1000));
|
||
}
|
||
|
||
/**
|
||
* //测量点可视化图标路径 0:正常,1:错误,2:故障
|
||
* */
|
||
var Scada_Mp_Pic = new Array(3)
|
||
Scada_Mp_Pic[0] = "/IMG/mpoint_pic/lg.png"
|
||
Scada_Mp_Pic[1] = "/IMG/mpoint_pic/lr.png"
|
||
Scada_Mp_Pic[2] = "/IMG/mpoint_pic/ly.png"
|
||
|
||
function getMpPic() {
|
||
var str = "";
|
||
for (i = 0; i < Scada_Mp_Pic.length; i++) {
|
||
if (str != "") {
|
||
str += ",";
|
||
}
|
||
str += "{\"id\":\"" + i + "\",\"path\":\"" + Scada_Mp_Pic[i] + "\"}";
|
||
}
|
||
str = "[" + str + "]";
|
||
return str;
|
||
}
|
||
|
||
function initMenu() {
|
||
var menu = $('#menu');
|
||
if (sessionStorage.menu != undefined) {
|
||
$('#menu').html(sessionStorage.menu);
|
||
if (sessionStorage.m1 != undefined) {
|
||
$('#' + sessionStorage.m1).addClass('treeview active menu-open')
|
||
}
|
||
if (sessionStorage.m2 != undefined) {
|
||
$('#' + sessionStorage.m2).addClass('treeview active menu-open')
|
||
}
|
||
if (sessionStorage.m3 != undefined) {
|
||
$('#' + sessionStorage.m3).addClass('treeview active menu-open')
|
||
}
|
||
//return;
|
||
} else {
|
||
$.post(ext.contextPath + "/user/showMenuListByCu.do", {}, function (result) {
|
||
var bigScreenHtml = '<li class="treeview">' +
|
||
'<a href="#">' +
|
||
'<i class="fa fa-desktop"></i> <span>大屏展示</span>' +
|
||
'<span class="pull-right-container">' +
|
||
'<i class="fa fa-angle-left pull-right"></i>' +
|
||
'</span>' +
|
||
'</a>' +
|
||
'<ul class="treeview-menu">' +
|
||
'<li><a href="javascript:void(0);" onclick="window.open(\'' + ext.contextPath + '/jsp/bigScreen.jsp\', \'_blank\');"><i class="fa fa-circle-o"></i> 水厂大屏</a></li>' +
|
||
'<li><a href="javascript:void(0);" onclick="window.open(\'' + ext.contextPath + '/jsp/bigScreen2.jsp\', \'_blank\');"><i class="fa fa-circle-o"></i> 区域管线大屏</a></li>' +
|
||
'<li><a href="javascript:void(0);" onclick="window.open(\'' + ext.contextPath + '/jsp/bigScreen3.jsp\', \'_blank\');"><i class="fa fa-circle-o"></i> 排污户大屏</a></li>' +
|
||
'</ul>' +
|
||
'</li>';
|
||
result = result + bigScreenHtml;
|
||
$('#menu').html(result);
|
||
sessionStorage.setItem("menu", result);
|
||
if (sessionStorage.m1 != undefined) {
|
||
$('#' + sessionStorage.m1).addClass('treeview active menu-open')
|
||
}
|
||
if (sessionStorage.m2 != undefined) {
|
||
$('#' + sessionStorage.m2).addClass('treeview active menu-open')
|
||
}
|
||
if (sessionStorage.m3 != undefined) {
|
||
$('#' + sessionStorage.m3).addClass('treeview active menu-open')
|
||
}
|
||
|
||
});
|
||
}
|
||
var sidebar = $('.initMenuScroll');
|
||
initMenuScroll(sidebar);
|
||
$(window).resize(function () {
|
||
initMenuScroll(sidebar);
|
||
});
|
||
}
|
||
|
||
function initMenuScroll(menu) {
|
||
//菜单滚动条
|
||
var windowHeight = $(window).height();
|
||
var mainheaderHeight = $('.main-header').outerHeight(true);
|
||
var userpanelHeight = $('.user-panel').outerHeight(true);
|
||
var sidebarformHeight = $('.sidebar-form').outerHeight(true);
|
||
//最大高度计算
|
||
var menuHeight = windowHeight - mainheaderHeight - userpanelHeight - sidebarformHeight;
|
||
menu.slimScroll({
|
||
height: menuHeight,
|
||
color: '#fff',
|
||
});
|
||
}
|
||
|
||
/** 获取浏览器当前缩放比例
|
||
* @returns 100为100%
|
||
*/
|
||
function detectZoom() {
|
||
var ratio = 0,
|
||
screen = window.screen,
|
||
ua = navigator.userAgent.toLowerCase();
|
||
|
||
if (window.devicePixelRatio !== undefined) {
|
||
ratio = window.devicePixelRatio;
|
||
} else if (~ua.indexOf('msie')) {
|
||
if (screen.deviceXDPI && screen.logicalXDPI) {
|
||
ratio = screen.deviceXDPI / screen.logicalXDPI;
|
||
}
|
||
} else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {
|
||
ratio = window.outerWidth / window.innerWidth;
|
||
}
|
||
|
||
if (ratio) {
|
||
ratio = Math.round(ratio * 100);
|
||
}
|
||
|
||
return ratio;
|
||
};
|
||
|
||
function initBody() {
|
||
//还原是否隐藏菜单
|
||
/*if(sessionStorage.bodyClass!=undefined){
|
||
$('body').addClass(sessionStorage.bodyClass);
|
||
}*/
|
||
}
|
||
|
||
function doforward(url, m1, m2, m3) {
|
||
url = ext.contextPath + '/' + url;
|
||
sessionStorage.setItem("bodyClass", $('body')[0].className)
|
||
sessionStorage.setItem("m1", m1);
|
||
sessionStorage.setItem("m2", m2);
|
||
sessionStorage.setItem("m3", m3);
|
||
// console.info(url);
|
||
location.replace(url);
|
||
};
|
||
/**获取当前菜单信息*/
|
||
|
||
/*
|
||
function getMenuInfo() {
|
||
if (sessionStorage.m3 != undefined) {
|
||
var m3 = sessionStorage.m3;
|
||
$.post(ext.contextPath + "/user/getMenuInfo.do", { id: m3 }, function (result) {
|
||
if (result.length == 0) {
|
||
$('#head_title').html('首页');
|
||
} else {
|
||
var res = result[0].name + '<small>' + result[0].description + '</small>';
|
||
$('#head_title').html(res);
|
||
$('#head_firstlevel').attr('onclick', 'refreshPage(\'' + ext.contextPath + '/' + result[0].location + '\')');
|
||
$('#head_firstlevel').append(result[0].name);
|
||
$('#head_firstlevel').children("i").attr("class", "glyphicon glyphicon-refresh");
|
||
}
|
||
|
||
|
||
}, 'json');
|
||
}
|
||
|
||
};
|
||
*/
|
||
function getMenuInfo() {
|
||
var menuId = "";
|
||
if (sessionStorage.m3 != undefined && sessionStorage.m3 != '') {
|
||
menuId = sessionStorage.m3;
|
||
} else if (sessionStorage.m2 != undefined && sessionStorage.m2 != '') {
|
||
menuId = sessionStorage.m2;
|
||
} else {
|
||
if (sessionStorage.m1 != undefined && sessionStorage.m1 != '') {
|
||
menuId = sessionStorage.m1;
|
||
} else {
|
||
try {
|
||
//通过父界面获取子界面菜单id
|
||
$(".tab-content", parent.document).children(".active").each(function () {
|
||
var iframeID = $(this).attr("id").split('_');
|
||
if (iframeID.length > 1) {
|
||
menuId = iframeID[1];
|
||
}
|
||
});
|
||
} catch (err) {
|
||
menuId = '';
|
||
console.log(err.message);
|
||
}
|
||
}
|
||
}
|
||
if (menuId != '') {
|
||
$.post(ext.contextPath + "/user/getMenuInfo.do", {id: menuId}, function (result) {
|
||
if (result.length == 0) {
|
||
$('#head_title').html('首页');
|
||
|
||
$('#head_firstlevel').attr('onclick', 'refreshPage(\'' + ext.contextPath + '/Login/main.do\')');
|
||
$('#head_firstlevel').children("i").attr("class", "glyphicon glyphicon-refresh");
|
||
|
||
} else {
|
||
var res = result[0].name + '<small>' + result[0].description + '</small>';
|
||
$('#head_title').html(res);
|
||
$('#head_firstlevel').attr('onclick', 'refreshPage(\'' + ext.contextPath + '/' + result[0].location + '\')');
|
||
$('#head_firstlevel').append(result[0].name);
|
||
$('#head_firstlevel').children("i").attr("class", "glyphicon glyphicon-refresh");
|
||
}
|
||
|
||
|
||
}, 'json');
|
||
}
|
||
|
||
|
||
};
|
||
|
||
/**
|
||
* 显示主页
|
||
* */
|
||
function goToMainPage() {
|
||
sessionStorage.setItem("m1", '');
|
||
sessionStorage.setItem("m2", '');
|
||
sessionStorage.setItem("m3", '');
|
||
location.replace(ext.contextPath);
|
||
}
|
||
|
||
/**
|
||
* 刷新页面
|
||
* */
|
||
function refreshPage(url) {
|
||
sessionStorage.setItem("bodyClass", $('body')[0].className)
|
||
location.replace(url);
|
||
};
|
||
|
||
function clearSession() {
|
||
sessionStorage.clear();
|
||
//清理菜单记录
|
||
/*sessionStorage.setItem("m1", '');
|
||
sessionStorage.setItem("m2", '');
|
||
sessionStorage.setItem("m3", '');*/
|
||
|
||
};
|
||
|
||
/**
|
||
* bootstrapTable 调整初始化显示
|
||
* */
|
||
function adjustBootstrapTableView(id) {
|
||
setDataCardView(id);
|
||
//$(".bs-checkbox").css({'text-align':'center','vertical-align':'middle'})
|
||
$("#" + id).find('input[type="checkbox"]').iCheck({
|
||
checkboxClass: 'icheckbox_flat-blue',
|
||
radioClass: 'iradio_flat-blue'
|
||
//长岗专用
|
||
/*checkboxClass: 'icheckbox_square-blue',
|
||
radioClass: 'iradio_square-blue',*/
|
||
});
|
||
|
||
//操作
|
||
var checkAll = $("#" + id + " input[name='btSelectAll']"); //全选的input
|
||
var checkboxs = $("#" + id + " input[name='btSelectItem']"); //所有单选的input
|
||
|
||
checkAll.on('ifChecked ifUnchecked', function (event) {
|
||
if (event.type == 'ifChecked') {
|
||
checkboxs.iCheck('check');
|
||
} else {
|
||
checkboxs.iCheck('uncheck');
|
||
}
|
||
});
|
||
checkboxs.on('ifChecked ifUnchecked', function (event) { //ifCreated 事件应该在插件初始化之前绑定
|
||
var index = $(this).parents('tr').attr("data-index");
|
||
if (event.type == 'ifChecked') {
|
||
$("#" + id).bootstrapTable('check', index);
|
||
} else {
|
||
$("#" + id).bootstrapTable('uncheck', index);
|
||
}
|
||
});
|
||
checkboxs.on('ifChanged', function (event) {
|
||
if (checkboxs.filter(':checked').length == checkboxs.length) {
|
||
checkAll.prop('checked', true);
|
||
} else {
|
||
checkAll.prop('checked', false);
|
||
}
|
||
checkAll.iCheck('update');
|
||
});
|
||
$(".bs-checkbox").css({'text-align': 'center', 'vertical-align': 'middle'})
|
||
}
|
||
|
||
/**
|
||
* bootstrapTable封装好的视图切换方法
|
||
* */
|
||
function setDataCardView(id) {
|
||
var options = $("#" + id).bootstrapTable('getOptions');
|
||
if ($(window).width() < 768) {
|
||
if (options.cardView === false) {
|
||
$("#" + id).bootstrapTable('toggleView');
|
||
}
|
||
} else {
|
||
if (options.cardView === true) {
|
||
$("#" + id).bootstrapTable('toggleView');
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 依赖于adminLTE
|
||
* id存放alert的div
|
||
* type为提醒类型 d-danger i-info w-warning s-success
|
||
* text 提醒内容
|
||
*
|
||
* */
|
||
function showAlert(type, text, id) {
|
||
if (id == null || id == "") id = 'alertDiv';
|
||
var ht = "";
|
||
switch (type) {
|
||
case 'd':
|
||
ht = '<div class="alert alert-danger alert-dismissible">' +
|
||
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' +
|
||
' <h4><i class="icon fa fa-ban"></i> ' + text + '</h4>' +
|
||
'</div>';
|
||
break;
|
||
case 'i':
|
||
ht = '<div class="alert alert-info alert-dismissible">' +
|
||
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' +
|
||
' <h4><i class="icon fa fa-info"></i> ' + text + '</h4>' +
|
||
'</div>';
|
||
break;
|
||
case 'w':
|
||
ht = '<div class="alert alert-warning alert-dismissible">' +
|
||
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' +
|
||
' <h4><i class="icon fa fa-warning"></i> ' + text + '</h4>' +
|
||
'</div>';
|
||
break;
|
||
case 's':
|
||
ht = '<div class="alert alert-success alert-dismissible">' +
|
||
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' +
|
||
' <h4><i class="icon fa fa-success"></i> ' + text + '</h4>' +
|
||
'</div>';
|
||
break;
|
||
default:
|
||
ht = '<div class="alert alert-warning alert-dismissible">' +
|
||
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' +
|
||
' <h4><i class="icon fa fa-warning"></i> ' + text + '</h4>' +
|
||
'</div>';
|
||
|
||
}
|
||
$('#' + id).html(ht);
|
||
setTimeout(function () {
|
||
$('#' + id).empty();
|
||
}, 3000);
|
||
var $objTr = $("#" + id); //找到要定位的地方
|
||
var objTr = $objTr[0]; //转化为dom对象
|
||
$objTr.parents('.modal').animate({scrollTop: objTr.offsetTop}, "fast");
|
||
}
|
||
|
||
/**
|
||
* 打开modal
|
||
*
|
||
* */
|
||
function openModal(modalId) {
|
||
$('#' + modalId).modal({
|
||
backdrop: 'static',
|
||
keyboard: false
|
||
});
|
||
//同一个modal可能在一个页面多个地方调用,所以要清空之前的
|
||
$('#' + modalId).on("hidden.bs.modal", function () {
|
||
$(this).removeData("bs.modal");
|
||
//modal重复打开会导致前面的滚动条失去作用
|
||
$('.modal').css("overflow", "auto");
|
||
});
|
||
$('#' + modalId).on('shown.bs.modal', function () {
|
||
// 执行一些动作...
|
||
//将多次弹出的modal窗口关闭
|
||
var modalDom = $('body').children('#' + modalId);
|
||
//console.info($(modalDom).length);
|
||
if (modalDom.length > 0) {
|
||
$(modalDom).remove();
|
||
for (var i = 0; i < modalDom.length; i++) {
|
||
$('body').children('.modal-backdrop').first().remove();
|
||
}
|
||
|
||
}
|
||
})
|
||
};
|
||
|
||
/**
|
||
* 关闭modal
|
||
*
|
||
* */
|
||
function closeModal(modalId) {
|
||
$('#' + modalId).modal("hide");
|
||
|
||
};
|
||
var mySkins = [
|
||
'skin-blue',
|
||
'skin-black',
|
||
'skin-red',
|
||
'skin-yellow',
|
||
'skin-purple',
|
||
'skin-green',
|
||
'skin-blue-light',
|
||
'skin-black-light',
|
||
'skin-red-light',
|
||
'skin-yellow-light',
|
||
'skin-purple-light',
|
||
'skin-green-light',
|
||
'skin-app-style'
|
||
];
|
||
var myBgs = [
|
||
'bg-light-blue',
|
||
'bg-black',
|
||
'bg-red',
|
||
'bg-yellow',
|
||
'bg-purple',
|
||
'bg-green',
|
||
'bg-light-blue',
|
||
'bg-black',
|
||
'bg-red',
|
||
'bg-yellow',
|
||
'bg-purple',
|
||
'bg-green'
|
||
];
|
||
|
||
/**
|
||
* 设置某一行背景色
|
||
* */
|
||
function markRow(tableId, id) {
|
||
var rows = $("#" + tableId).bootstrapTable('getData');
|
||
//con
|
||
$.each(rows, function (index, value) {
|
||
if (rows[index].id == id) {
|
||
$("#" + tableId).find("tr").each(function () {
|
||
var area = $(this).attr("data-index");
|
||
//console.info(area)
|
||
if (area == index) {
|
||
var bodyClass = $("body").attr("class");
|
||
var bgClass = myBgs[0];
|
||
$.each(myBgs, function (index_, value_) {
|
||
if (bodyClass.indexOf(value_.substring(2, value_.length)) != -1) {
|
||
bgClass = myBgs[index_];
|
||
}
|
||
});
|
||
$(this).addClass(bgClass);
|
||
//$(this).css("background-color","#00c0ef");//将指定行背景设置为浅绿色
|
||
$('#' + tableId + ' tbody').find("tr").first().before(this);
|
||
}
|
||
});
|
||
}
|
||
})
|
||
}
|
||
|
||
var defaultThemeCls = "skin-blue";
|
||
|
||
function changeSkin(cls) {
|
||
$.each(mySkins, function (i) {
|
||
$('body').removeClass(mySkins[i])
|
||
})
|
||
|
||
$('body').addClass(cls)
|
||
//store('skin', cls)
|
||
//return false
|
||
}
|
||
|
||
/**
|
||
* 默认
|
||
* event阻止冒泡
|
||
* */
|
||
function stopBubbleDefaultEvent() {
|
||
var event = window.event || arguments.callee.caller.arguments[0];
|
||
stopBubble(event);
|
||
}
|
||
|
||
/**
|
||
* event阻止冒泡
|
||
* */
|
||
function stopBubble(e) {
|
||
//如果提供了事件对象,则这是一个非IE浏览器
|
||
if (e && e.stopPropagation) {
|
||
e.stopPropagation(); //因此它支持W3C的stopPropagation()方法
|
||
} else {
|
||
window.event.cancelBubble = true; //否则,我们需要使用IE的方式来取消事件冒泡
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 通用的打开下载对话框方法,没有测试过具体兼容性
|
||
* @param url 下载地址,也可以是一个blob对象,必选
|
||
* @param saveName 保存文件名,可选
|
||
*/
|
||
function openDownloadDialog(url, saveName) {
|
||
if (typeof url == 'object' && url instanceof Blob) {
|
||
url = URL.createObjectURL(url); // 创建blob地址
|
||
}
|
||
var aLink = document.createElement('a');
|
||
aLink.href = url;
|
||
aLink.download = saveName || ''; // HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效
|
||
var event;
|
||
if (window.MouseEvent) event = new MouseEvent('click');
|
||
else {
|
||
event = document.createEvent('MouseEvents');
|
||
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
||
}
|
||
aLink.dispatchEvent(event);
|
||
}
|
||
|
||
/**
|
||
* 获取pdf链接
|
||
* @param htmlStr html页面字符结果
|
||
* */
|
||
var doExportPDF = function (htmlStr) {
|
||
$.post(ext.contextPath + '/base/getPDFUrl.do', {htmlStr: htmlStr}, function (data) {
|
||
openDownloadDialog(ext.basePath.replace(ext.contextPath, "") + "/" + data.res, "");
|
||
}, 'json');
|
||
}
|
||
/**
|
||
* 适配select2到表单
|
||
*/
|
||
var fixSelect2ToForm = function (id) {
|
||
$("#" + id).next().css({'height': '34px', 'line-height': '34px'});
|
||
$("#" + id).next().find(".select2-selection--single ").css({'height': '34px', 'line-height': '34px'});
|
||
$("#" + id).next().find(".select2-selection__arrow ").css({'margin-top': '3px'});
|
||
}
|
||
/**
|
||
* 适配select2到工具栏
|
||
*/
|
||
var fixSelect2ToTool = function (id) {
|
||
$("#" + id).next().find(".select2-selection--single").css({'height': '30px', 'paddingTop': '4px'});
|
||
}
|
||
/**
|
||
* 巡检记录颜色标注集合
|
||
*/
|
||
var myColors = [
|
||
'#00c0ef',
|
||
'#0073b7',
|
||
'#3c8dbc',
|
||
'#39cccc',
|
||
'#f39c12',
|
||
'#ff851b',
|
||
'#00a65a',
|
||
'#01ff70',
|
||
'#dd4b39',
|
||
'#605ca8'
|
||
];
|
||
/**
|
||
* 水球图形状
|
||
*/
|
||
var bucketPath = 'path://M209.09,56.997c-0.034-16.849-42.416-30.501-94.707-30.501c-52.291,0-94.662,13.652-94.697,30.501l-0.001,0v165.872c0,22.25,42.398,40.3,94.688,40.3c52.31,0,94.718-18.05,94.718-40.3L209.09,56.997L209.09,56.997z';
|
||
|
||
|
||
$(function () {
|
||
//initBody();
|
||
getMenuInfo();
|
||
$("#menu_search_form").attr("onsubmit", "return false;");
|
||
$("#searchForm").attr("onsubmit", "return false;");
|
||
$("#search_name").keyup(function () {
|
||
if (event.keyCode == 13) {
|
||
event.preventDefault();
|
||
//回车执行查询
|
||
dosearch();
|
||
event.stopPropagation();
|
||
}
|
||
});
|
||
$("#search_name_menu").keyup(function () {
|
||
if (event.keyCode == 13) {
|
||
event.preventDefault();
|
||
//回车执行查询
|
||
searchMenu();
|
||
event.stopPropagation();
|
||
}
|
||
});
|
||
//FastClick.attach(document.body);
|
||
|
||
//弹窗关闭触发方法
|
||
/*$(".modal").on("hidden.bs.modal", function() {
|
||
$('.modal').css("overflow","auto");
|
||
});*/
|
||
});
|
||
|
||
/**
|
||
* 判断浏览器为手机端登录还是PC端,true为PC端,false为手机端
|
||
* @returns {Boolean}
|
||
*/
|
||
function IsPC() {
|
||
var userAgentInfo = navigator.userAgent;
|
||
var Agents = ["Android", "iPhone",
|
||
"SymbianOS", "Windows Phone",
|
||
"iPad", "iPod"];
|
||
var flag = true;
|
||
for (var v = 0; v < Agents.length; v++) {
|
||
if (userAgentInfo.indexOf(Agents[v]) > 0) {
|
||
flag = false;
|
||
break;
|
||
}
|
||
}
|
||
return flag;
|
||
}
|
||
|
||
/**
|
||
* 判断是否为APP进入网页,true为是,flase为否
|
||
* @returns {Boolean}
|
||
*/
|
||
function IsApp() {
|
||
var u = navigator.userAgent;
|
||
|
||
var flag = false;
|
||
var Agents = ["Android", "iPhone",
|
||
"SymbianOS", "Windows Phone",
|
||
"iPad", "iPod"];
|
||
for (var v = 0; v < Agents.length; v++) {
|
||
if (u.indexOf('iPhone') > -1 && u.indexOf('Safari') < 0) {
|
||
flag = true;
|
||
break;
|
||
} else if (u.indexOf('Android') > -1 && u.indexOf('wv') > -1) {
|
||
flag = true;
|
||
break;
|
||
} else {
|
||
|
||
}
|
||
}
|
||
//alert(flag);
|
||
return flag;
|
||
}
|
||
|
||
//限制输入内容为数字(小数)
|
||
function LimitNumber(num) {
|
||
|
||
num.value = num.value.replace(/[^\d^\.]+/g, '');
|
||
}
|
||
|
||
//ie添加Array.from方法
|
||
if (!Array.from) {
|
||
Array.from = (function () {
|
||
var toStr = Object.prototype.toString;
|
||
var isCallable = function (fn) {
|
||
return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
|
||
};
|
||
var toInteger = function (value) {
|
||
var number = Number(value);
|
||
if (isNaN(number)) {
|
||
return 0;
|
||
}
|
||
if (number === 0 || !isFinite(number)) {
|
||
return number;
|
||
}
|
||
return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
|
||
};
|
||
var maxSafeInteger = Math.pow(2, 53) - 1;
|
||
var toLength = function (value) {
|
||
var len = toInteger(value);
|
||
return Math.min(Math.max(len, 0), maxSafeInteger);
|
||
};
|
||
|
||
// The length property of the from method is 1.
|
||
return function from(arrayLike/*, mapFn, thisArg */) {
|
||
// 1. Let C be the this value.
|
||
var C = this;
|
||
|
||
// 2. Let items be ToObject(arrayLike).
|
||
var items = Object(arrayLike);
|
||
|
||
// 3. ReturnIfAbrupt(items).
|
||
if (arrayLike == null) {
|
||
throw new TypeError("Array.from requires an array-like object - not null or undefined");
|
||
}
|
||
|
||
// 4. If mapfn is undefined, then let mapping be false.
|
||
var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
|
||
var T;
|
||
if (typeof mapFn !== 'undefined') {
|
||
// 5. else
|
||
// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
|
||
if (!isCallable(mapFn)) {
|
||
throw new TypeError('Array.from: when provided, the second argument must be a function');
|
||
}
|
||
|
||
// 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
|
||
if (arguments.length > 2) {
|
||
T = arguments[2];
|
||
}
|
||
}
|
||
|
||
// 10. Let lenValue be Get(items, "length").
|
||
// 11. Let len be ToLength(lenValue).
|
||
var len = toLength(items.length);
|
||
|
||
// 13. If IsConstructor(C) is true, then
|
||
// 13. a. Let A be the result of calling the [[Construct]] internal method
|
||
// of C with an argument list containing the single item len.
|
||
// 14. a. Else, Let A be ArrayCreate(len).
|
||
var A = isCallable(C) ? Object(new C(len)) : new Array(len);
|
||
|
||
// 16. Let k be 0.
|
||
var k = 0;
|
||
// 17. Repeat, while k < len… (also steps a - h)
|
||
var kValue;
|
||
while (k < len) {
|
||
kValue = items[k];
|
||
if (mapFn) {
|
||
A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
|
||
} else {
|
||
A[k] = kValue;
|
||
}
|
||
k += 1;
|
||
}
|
||
// 18. Let putStatus be Put(A, "length", len, true).
|
||
A.length = len;
|
||
// 20. Return A.
|
||
return A;
|
||
};
|
||
}());
|
||
}
|
||
|
||
//添加千分位符合
|
||
function toThousands(num) {
|
||
var nums = num;
|
||
var re = /\d{1,3}(?=(\d{3})+$)/g;
|
||
var n1 = 0;
|
||
if (nums != null && nums != '' && nums != undefined) {
|
||
n1 = nums.toString().replace(/^(\d+)((\.\d+)?)$/, function (s, s1, s2) {
|
||
return s1.replace(re, "$&,") + s2;
|
||
});
|
||
}
|
||
return n1;
|
||
/*var num = (num || 0).toString(), result = '';
|
||
while (num.length > 3) {
|
||
result = ',' + num.slice(-3) + result;
|
||
num = num.slice(0, num.length - 3);
|
||
}
|
||
if (num) { result = num + result; }
|
||
return result;*/
|
||
}
|
||
|
||
//验证是否为数字
|
||
function isNumber(value) {
|
||
var patrn = /^(-)?\d+(\.\d+)?$/;
|
||
if (patrn.exec(value) == null || value == "") {
|
||
return false
|
||
} else {
|
||
return true
|
||
}
|
||
}
|
||
|
||
/*
|
||
功能:datepicker时间控件时间段选择初始化
|
||
|
||
参数:beginSelector:开始时间input的id;endSelector:结束时间input的id,
|
||
说明:1.时间格式:yyyy-mm-dd
|
||
*/
|
||
function DatePicker(beginSelector, endSelector) {
|
||
//开始时间
|
||
$(beginSelector).datepicker({
|
||
todayBtn: "linked",
|
||
autoclose: true,
|
||
todayHighlight: true,
|
||
endDate: new Date(),
|
||
format: 'yyyy-mm-dd',
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (e) {
|
||
var startTime = e.date;
|
||
$(endSelector).datepicker('setStartDate', startTime);
|
||
});
|
||
//结束时间
|
||
$(endSelector).datepicker({
|
||
todayBtn: "linked",
|
||
autoclose: true,
|
||
todayHighlight: true,
|
||
endDate: new Date(),
|
||
format: 'yyyy-mm-dd',
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (e) {
|
||
var endTime = e.date;
|
||
$(beginSelector).datepicker('setEndDate', endTime);
|
||
});
|
||
}
|
||
|
||
function DatePickerNotNow(beginSelector, endSelector) {
|
||
//开始时间
|
||
$(beginSelector).datepicker({
|
||
todayBtn: "linked",
|
||
autoclose: true,
|
||
todayHighlight: true,
|
||
format: 'yyyy-mm-dd',
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (e) {
|
||
var startTime = e.date;
|
||
$(endSelector).datepicker('setStartDate', startTime);
|
||
});
|
||
//结束时间
|
||
$(endSelector).datepicker({
|
||
todayBtn: "linked",
|
||
autoclose: true,
|
||
todayHighlight: true,
|
||
format: 'yyyy-mm-dd',
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (e) {
|
||
var endTime = e.date;
|
||
$(beginSelector).datepicker('setEndDate', endTime);
|
||
});
|
||
}
|
||
|
||
/*
|
||
功能:datepicker时间控件时间段选择初始化
|
||
|
||
参数:beginSelector:开始时间input的id;endSelector:结束时间input的id,
|
||
说明:1.时间格式:yyyy-mm
|
||
*/
|
||
function DatePickerMonth(beginSelector, endSelector) {
|
||
//开始时间
|
||
$(beginSelector).datepicker({
|
||
todayBtn: "linked",
|
||
autoclose: true,
|
||
todayHighlight: true,
|
||
endDate: new Date(),
|
||
startView: 1,//开始显示时间类型 0:天;1:月;2:年;
|
||
minViewMode: 1,//最小显示时间类型 0:天;1:月;2:年;
|
||
format: 'yyyy-mm',
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (e) {
|
||
var startTime = e.date;
|
||
$(endSelector).datepicker('setStartDate', startTime);
|
||
});
|
||
//结束时间
|
||
$(endSelector).datepicker({
|
||
todayBtn: "linked",
|
||
autoclose: true,
|
||
todayHighlight: true,
|
||
endDate: new Date(),
|
||
startView: 1,//开始显示时间类型 0:天;1:月;2:年;
|
||
minViewMode: 1,//最小显示时间类型 0:天;1:月;2:年;
|
||
format: 'yyyy-mm',
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (e) {
|
||
var endTime = e.date;
|
||
$(beginSelector).datepicker('setEndDate', endTime);
|
||
});
|
||
}
|
||
|
||
// //时间戳转日期
|
||
function getLocalTime2(nS) {
|
||
var out = new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/, ' ');
|
||
// let date = new Date(parseInt(nS) * 1000);
|
||
// let year = date.getFullYear();
|
||
// let mon = date.getMonth() + 1;
|
||
// let day = date.getDate();
|
||
// let h = date.getHours();
|
||
// let m = date.getDate();
|
||
// let s = date.getSeconds();
|
||
//
|
||
// let out = year + "-" + (mon < 10 ? "0" + mon : mon) + "-" + (day < 10 ? "0" + day : day) + " " + (h < 10 ? "0" + h : h) + ":" + (m < 10 ? "0" + m : m) + ":" + (s < 10 ? "0" + s : s);
|
||
|
||
return out;
|
||
}
|
||
|
||
function getLocalTime(nS) {
|
||
var now = new Date(nS * 1000),
|
||
y = now.getFullYear(),
|
||
m = ("0" + (now.getMonth() + 1)).slice(-2),
|
||
d = ("0" + now.getDate()).slice(-2);
|
||
return '${y}-${m}-${d} ${now.toTimeString().substr(0, 8)}';
|
||
}
|
||
|
||
function createDatetimepicker(id, type) {
|
||
switch (type) {
|
||
case "I":
|
||
$("#" + id).datetimepicker({
|
||
language: 'zh-CN',
|
||
format: 'yyyy-mm-dd hh:ii:ss',
|
||
startView: "month", //初始化视图
|
||
minView: 0,
|
||
maxView: "year",
|
||
minuteStep: 1,//分钟间隔1分钟
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
}).on('changeDate', function () {
|
||
|
||
});
|
||
break;
|
||
case "H":
|
||
$("#" + id).datetimepicker({
|
||
language: 'zh-CN',
|
||
format: 'yyyy-mm-dd hh:ii',
|
||
startView: "month", //初始化视图
|
||
minView: 1,
|
||
maxView: "year",
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
}).on('changeDate', function () {
|
||
|
||
});
|
||
break;
|
||
case "D":
|
||
$("#" + id).datetimepicker({
|
||
language: 'zh-CN',
|
||
format: 'yyyy-mm-dd',
|
||
startView: "month", //初始化视图
|
||
minView: 2,
|
||
maxView: "year",
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
}).on('changeDate', function () {
|
||
|
||
});
|
||
break;
|
||
case "M":
|
||
$("#" + id).datetimepicker({
|
||
language: 'zh-CN',
|
||
format: 'yyyy-mm',
|
||
startView: "year", //初始化视图
|
||
minView: 3,
|
||
maxView: "year",
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
}).on('changeDate', function () {
|
||
|
||
});
|
||
break;
|
||
case "Y":
|
||
$("#" + id).datetimepicker({
|
||
language: 'zh-CN',
|
||
format: 'yyyy',
|
||
startView: "decade", //初始化视图
|
||
minView: 4,
|
||
maxView: "year",
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
}).on('changeDate', function () {
|
||
|
||
});
|
||
break;
|
||
default:
|
||
$("#" + id).datetimepicker({
|
||
language: 'zh-CN',
|
||
format: 'yyyy-mm-dd hh:ii:ss',
|
||
startView: "month", //初始化视图
|
||
minView: 0,
|
||
maxView: "year",
|
||
minuteStep: 1,//分钟间隔1分钟
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
}).on('changeDate', function () {
|
||
|
||
});
|
||
}
|
||
}
|
||
|
||
/* 功能:DateTimePicker时间控件时间段选择初始化
|
||
参数:beginSelector:开始时间input的id;endSelector:结束时间input的id,type:时间类型
|
||
|
||
说明:1.时间格式:•yyyy-mm-dd hh:ii
|
||
*/
|
||
function createDatetimepickerTwo(beginSelector, endSelector, type) {
|
||
switch (type) {
|
||
case "I":
|
||
//开始时间
|
||
$("#" + beginSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy-mm-dd hh:ii:ss',
|
||
startView: "month", //初始化视图
|
||
minView: 0,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + endSelector).datetimepicker('setStartDate', $("#" + beginSelector).val())
|
||
});
|
||
//结束时间
|
||
$("#" + endSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy-mm-dd hh:ii:ss',
|
||
startView: "month", //初始化视图
|
||
minView: 0,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + beginSelector).datetimepicker('setEndDate', $("#" + endSelector).val())
|
||
|
||
});
|
||
break;
|
||
case "H":
|
||
//开始时间
|
||
$("#" + beginSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy-mm-dd hh:ii',
|
||
startView: "month", //初始化视图
|
||
minView: 1,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + endSelector).datetimepicker('setStartDate', $("#" + beginSelector).val())
|
||
});
|
||
//结束时间
|
||
$("#" + endSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy-mm-dd hh:ii',
|
||
startView: "month", //初始化视图
|
||
minView: 1,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + beginSelector).datetimepicker('setEndDate', $("#" + endSelector).val())
|
||
});
|
||
break;
|
||
case "D":
|
||
//开始时间
|
||
$("#" + beginSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy-mm-dd',
|
||
startView: "month", //初始化视图
|
||
minView: 2,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + endSelector).datetimepicker('setStartDate', $("#" + beginSelector).val())
|
||
});
|
||
//结束时间
|
||
$("#" + endSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy-mm-dd',
|
||
startView: "month", //初始化视图
|
||
minView: 2,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + beginSelector).datetimepicker('setEndDate', $("#" + endSelector).val())
|
||
});
|
||
break;
|
||
case "M":
|
||
//开始时间
|
||
$("#" + beginSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy-mm',
|
||
startView: "year", //初始化视图
|
||
minView: 3,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + endSelector).datetimepicker('setStartDate', $("#" + beginSelector).val())
|
||
});
|
||
//结束时间
|
||
$("#" + endSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy-mm',
|
||
startView: "year", //初始化视图
|
||
minView: 3,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + beginSelector).datetimepicker('setEndDate', $("#" + endSelector).val())
|
||
});
|
||
break;
|
||
case "Y":
|
||
//开始时间
|
||
$("#" + beginSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy',
|
||
startView: "decade", //初始化视图
|
||
minView: 4,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + endSelector).datetimepicker('setStartDate', $("#" + beginSelector).val())
|
||
});
|
||
//结束时间
|
||
$("#" + endSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy',
|
||
startView: "decade", //初始化视图
|
||
minView: 4,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + beginSelector).datetimepicker('setEndDate', $("#" + endSelector).val())
|
||
});
|
||
break;
|
||
default:
|
||
//开始时间
|
||
$("#" + beginSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy-mm-dd hh:ii:ss',
|
||
startView: "month", //初始化视图
|
||
minView: 0,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + endSelector).datetimepicker('setStartDate', $("#" + beginSelector).val())
|
||
});
|
||
//结束时间
|
||
$("#" + endSelector).datetimepicker({
|
||
todayBtn: true,
|
||
clearBtn: true,
|
||
autoclose: true,
|
||
todayHighlight: 1,//今天高亮
|
||
endDate: new Date(),
|
||
minuteStep: 5, //分钟间隔为5分
|
||
format: 'yyyy-mm-dd hh:ii:ss',
|
||
startView: "month", //初始化视图
|
||
minView: 0,
|
||
maxView: "year",
|
||
language: 'zh-CN'
|
||
}).on('changeDate', function (ev) {
|
||
$("#" + beginSelector).datetimepicker('setEndDate', $("#" + endSelector).val())
|
||
|
||
});
|
||
}
|
||
}
|
||
|
||
|
||
//获取当月最后一天
|
||
function getMonthMaxDay(input) {
|
||
// const input = "2020-06"
|
||
const arr = input.split('-');
|
||
const maxDay = new Date(arr[0], arr[1], 0).getDate(); // 获取当月最后一日
|
||
|
||
return maxDay;
|
||
} |