初始化项目
This commit is contained in:
38
pqs9000/src/main/webapp/jspJS/utils/barUtil.js
Normal file
38
pqs9000/src/main/webapp/jspJS/utils/barUtil.js
Normal file
@@ -0,0 +1,38 @@
|
||||
var barUpperLimit7;
|
||||
var barUpperLimit6;
|
||||
var barUpperLimit12;
|
||||
var barRouteZero=0;
|
||||
var barRouteIncline=30;
|
||||
var lineFeed="\n";
|
||||
var noLineFeed="";
|
||||
|
||||
if(screen.availWidth===1536){//####################1920*1080 125%
|
||||
barUpperLimit6=10;
|
||||
barUpperLimit7=11;
|
||||
barUpperLimit12=22;
|
||||
}else if(screen.availWidth===1920){//####################1920*1080 100%
|
||||
barUpperLimit6=12;
|
||||
barUpperLimit7=13;
|
||||
barUpperLimit12=25;
|
||||
}else if(1300<screen.availWidth&screen.availWidth<1500){//####################包括1366*768 1360*768 1680*1050的125%三种分辨率
|
||||
barUpperLimit6=9;
|
||||
barUpperLimit7=9;
|
||||
barUpperLimit12=22;
|
||||
}else if(screen.availWidth===1680){//####################1680*1050 100%
|
||||
barUpperLimit6=11;
|
||||
barUpperLimit7=12;
|
||||
barUpperLimit12=22;
|
||||
}else if(screen.availWidth===1600){//####################1600*900 100%
|
||||
barUpperLimit6=10;
|
||||
barUpperLimit7=11;
|
||||
barUpperLimit12=22;
|
||||
}else if(screen.availWidth===1280){//####################1280*1024 100%
|
||||
barUpperLimit6=9;
|
||||
barUpperLimit7=10;
|
||||
barUpperLimit12=20;
|
||||
barRouteIncline=40;
|
||||
}else{//其他分辨率暂时给默认值10
|
||||
barUpperLimit6=10;
|
||||
barUpperLimit7=10;
|
||||
barUpperLimit12=20;
|
||||
}
|
||||
76
pqs9000/src/main/webapp/jspJS/utils/common.js
Normal file
76
pqs9000/src/main/webapp/jspJS/utils/common.js
Normal file
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* 获取url参数
|
||||
* @param name 参数名
|
||||
* @returns 值
|
||||
*/
|
||||
function getQueryString(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||||
var result = window.location.search.substr(1).match(reg);
|
||||
return result ? decodeURIComponent(result[2]) : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化时间(需要Date类型)
|
||||
* @param name 参数名
|
||||
* @returns 值
|
||||
*/
|
||||
function formatTime(data,type) {
|
||||
if (data == null) {
|
||||
return '/';
|
||||
} else {
|
||||
var date = new Date(data);
|
||||
var y = date.getFullYear();// 年
|
||||
var MM = date.getMonth() + 1;// 月
|
||||
MM = MM < 10 ? ('0' + MM) : MM;
|
||||
var c = date.getDate();// 日
|
||||
c = c < 10 ? ('0' + c) : c;
|
||||
var h = date.getHours();// 时
|
||||
h = h < 10 ? ('0' + h) : h;
|
||||
var m = date.getMinutes();// 分
|
||||
m = m < 10 ? ('0' + m) : m;
|
||||
var s = date.getSeconds();// 秒
|
||||
s = s < 10 ? ('0' + s) : s;
|
||||
}
|
||||
if(type == 1){
|
||||
//精确到秒
|
||||
return y + '-' + MM + '-' + c + ' ' + h + ':' + m + ':' + s;
|
||||
}else {
|
||||
return y + '-' + MM + '-' + c;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//验证输入框输入长度
|
||||
function valiteLength(value) {
|
||||
var i,sum;
|
||||
sum=0;
|
||||
for(i=0;i<value.length;i++){
|
||||
if ((value.charCodeAt(i)>=0) && (value.charCodeAt(i)<=64))
|
||||
sum=sum+1;
|
||||
else
|
||||
sum=sum+2;
|
||||
}
|
||||
if (sum > 64) {
|
||||
return '最多只能64个字符或者32个中文字';
|
||||
}else {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取当前年月
|
||||
*/
|
||||
|
||||
function getNowDate() {
|
||||
var myDate = new Date();
|
||||
var tYear = myDate.getFullYear();
|
||||
var tMonth = myDate.getMonth();
|
||||
|
||||
var m = tMonth + 1;
|
||||
if (m.toString().length == 1) {
|
||||
m = "0" + m;
|
||||
}
|
||||
|
||||
return tYear+"-"+m
|
||||
}
|
||||
967
pqs9000/src/main/webapp/jspJS/utils/devicePlateTree.js
Normal file
967
pqs9000/src/main/webapp/jspJS/utils/devicePlateTree.js
Normal file
@@ -0,0 +1,967 @@
|
||||
var path = window.location.href;// 获取界面路径
|
||||
path = filterXSS(path);
|
||||
var loadColor;
|
||||
|
||||
/*******************************************************************************
|
||||
* zTree操作deviceTree代码段
|
||||
******************************************************************************/
|
||||
// zTree属性配置
|
||||
var setting = {};
|
||||
var treeAllData;
|
||||
var pttype;
|
||||
var jcdxq;
|
||||
|
||||
function addDiyDom(treeId, treeNode) {
|
||||
if (treeNode.level != 4) {
|
||||
return;
|
||||
}
|
||||
var powerType = treeNode.powerType;
|
||||
if (powerType == 0) {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/gw.png'></input>";
|
||||
aObj.before(editStr);
|
||||
} else if (powerType == 1) {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/fgw.png'></input>";
|
||||
aObj.before(editStr);
|
||||
} else if (powerType == 2) {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/newgw.png'></input>";
|
||||
aObj.before(editStr);
|
||||
} else if (powerType == 3) {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/newfgw.png'></input>";
|
||||
aObj.before(editStr);
|
||||
} else if (powerType == 4) {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/ss.png'></input>";
|
||||
aObj.before(editStr);
|
||||
} else {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/pcc.png'></input>";
|
||||
aObj.before(editStr);
|
||||
}
|
||||
}
|
||||
|
||||
function pointSelected() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.getSelectedNodes();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
closeHigh();
|
||||
|
||||
if (nodes[0].level == 4 && path.indexOf("platereports") == -1) {
|
||||
nodes[0].highlight = !nodes[0].highlight;
|
||||
zTree.updateNode(nodes[0]);
|
||||
|
||||
var line_index = nodes[0].nodeIndex;
|
||||
pttype = nodes[0].pttype;
|
||||
|
||||
// if (path.indexOf("norm") != -1) {
|
||||
// document.getElementById("main_right").contentWindow.changeTree(pttype);
|
||||
// }
|
||||
$("#lineIndex").val(line_index);
|
||||
$("#lineName").val(nodes[0].name);
|
||||
var devname = nodes[0].getParentNode();
|
||||
var bdname = nodes[0].getParentNode().getParentNode();
|
||||
var gdname = nodes[0].getParentNode().getParentNode().getParentNode();
|
||||
jcdxq = gdname.name + '->' + bdname.name + devname.name + '->' + '->' + nodes[0].name;
|
||||
} else if (path.indexOf("platereports") != -1 && nodes[0].level == 4) {
|
||||
nodes[0].highlight = !nodes[0].highlight;
|
||||
zTree.updateNode(nodes[0]);
|
||||
|
||||
// 修改选中监测点的信息展示
|
||||
var devname = nodes[0].getParentNode();
|
||||
var bdname = nodes[0].getParentNode().getParentNode();
|
||||
var gdname = nodes[0].getParentNode().getParentNode().getParentNode();
|
||||
jcdxq = gdname.name + '->' + bdname.name + devname.name + '->' + '->' + nodes[0].name;
|
||||
|
||||
var line_index = nodes[0].nodeIndex;
|
||||
$("#lineIndex").val(line_index);
|
||||
$("#lineName").val(nodes[0].name);
|
||||
|
||||
var status = nodes[0].status;
|
||||
var state = nodes[0].state;
|
||||
pttype = nodes[0].pttype;
|
||||
if (state == 2) {
|
||||
$("#image").val("gray");
|
||||
} else if (state == 1) {
|
||||
$("#image").val("yellow");
|
||||
} else {
|
||||
if (status == 1) {
|
||||
$("#image").val("green");
|
||||
} else {
|
||||
$("#image").val("red");
|
||||
}
|
||||
}
|
||||
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("年份", endTime);
|
||||
var middlesrc = $("#middlesrc").val();
|
||||
if (middlesrc == "yxzt") {
|
||||
document.getElementById("main_right").src = "yxzt";
|
||||
} else if (middlesrc == "wtzb") {
|
||||
document.getElementById("main_right").src = "wtzb";
|
||||
} else if (middlesrc == "wtqs") {
|
||||
document.getElementById("main_right").src = "wtqs";
|
||||
// document.getElementById("main_right").contentWindow.changeTree(pttype);
|
||||
} else if (middlesrc == "zlpg") {
|
||||
document.getElementById("main_right").src = "zlpg";
|
||||
} else if (middlesrc == "sssj") {
|
||||
document.getElementById("main_right").src = "sssj";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function zTreeOnAsyncSuccess() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
|
||||
var nodes = zTree.getNodes();
|
||||
zTree.expandNode(nodes[0], true);
|
||||
|
||||
var childNodes = zTree.transformToArray(nodes[0]);
|
||||
|
||||
var i = 0;
|
||||
for (i = 0; i < childNodes.length; i++) {
|
||||
var type = childNodes[i].level;
|
||||
if (type == 4) {
|
||||
var devname = nodes[0].getParentNode();
|
||||
var bdname = nodes[0].getParentNode().getParentNode();
|
||||
var gdname = nodes[0].getParentNode().getParentNode().getParentNode();
|
||||
var proname = nodes[0].getParentNode().getParentNode().getParentNode().getParentNode();
|
||||
jcdxq = gdname.name + '->' + bdname.name + devname.name + '->' + '->' + nodes[0].name;
|
||||
|
||||
zTree.expandNode(gdname, true);
|
||||
zTree.expandNode(bdname, true);
|
||||
zTree.expandNode(devname, true);
|
||||
zTree.expandNode(childNodes[i], true);
|
||||
|
||||
var line_index = childNodes[i].nodeIndex;
|
||||
$("#lineIndex").val(line_index);
|
||||
$("#lineName").val(childNodes[i].name);
|
||||
|
||||
var status = childNodes[i].status;
|
||||
var state = childNodes[i].state;
|
||||
pttype = childNodes[i].pttype;
|
||||
if (state == 2) {
|
||||
$("#image").val("gray");
|
||||
} else if (state == 1) {
|
||||
$("#image").val("yellow");
|
||||
} else {
|
||||
if (status == 1) {
|
||||
$("#image").val("green");
|
||||
} else {
|
||||
$("#image").val("red");
|
||||
}
|
||||
}
|
||||
|
||||
// 关闭所有节点的高亮
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var allNodes = treeObj.transformToArray(treeObj.getNodes());
|
||||
for (var n = 0; n < allNodes.length; n++) {
|
||||
allNodes[n].highlight = false;
|
||||
treeObj.updateNode(allNodes[n]);
|
||||
}
|
||||
|
||||
// 高亮并展开搜索到的节点
|
||||
childNodes[i].highlight = true;
|
||||
treeObj.updateNode(childNodes[i]); // 更新节点,让高亮生效
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (path.indexOf("monitor") != -1) {
|
||||
var rsrc = $("#middlesrc").val();
|
||||
rsrc = filterXSS(rsrc);
|
||||
document.getElementById("main_right").src = rsrc;
|
||||
if (rsrc == "wtqs") {
|
||||
document.getElementById("main_right").contentWindow.changeTree(pttype);
|
||||
}
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 选中之前验证是否超过约定上限 超过弹框提示并不选中节点
|
||||
******************************************************************************/
|
||||
var limitMax = 1;
|
||||
var arrVerify;
|
||||
|
||||
function doVerify() {
|
||||
arrVerify = getAllSelected();
|
||||
}
|
||||
|
||||
function getAllSelected() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
return zTree.getCheckedNodes(true);
|
||||
}
|
||||
|
||||
function onVerify() {
|
||||
var isPt = 3;
|
||||
var arrPoint = getTreeSelected(1);
|
||||
|
||||
if (0 === arrPoint.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
var arr = getAllSelected();
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
|
||||
closeHigh();
|
||||
|
||||
if (limitMax > 0 && arrPoint.length > limitMax) {
|
||||
if (arrVerify.length == 0) {
|
||||
zTree.checkAllNodes(false);
|
||||
} else {
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
var index = $.inArray(arr[i], arrVerify);
|
||||
|
||||
if (index === -1) {
|
||||
zTree.checkNode(arr[i], false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
layer.msg("最多选择" + limitMax + "个监测点.");
|
||||
} else {
|
||||
for (var j = 0; j < arrVerify.length; j++) {
|
||||
arrVerify[j].highlight = false;
|
||||
zTree.updateNode(arrVerify[j]);
|
||||
}
|
||||
|
||||
for (var i = 0; i < arrPoint.length; i++) {
|
||||
arrPoint[i].highlight = true;
|
||||
zTree.updateNode(arrPoint[i]);
|
||||
if (arrPoint[i].pttype < isPt) {
|
||||
isPt = arrPoint[i].pttype;
|
||||
}
|
||||
}
|
||||
|
||||
if (arrPoint.length > 1) {
|
||||
document.getElementById("main_right").contentWindow.changeTree(isPt);
|
||||
} else {
|
||||
document.getElementById("main_right").contentWindow.changeTree(isPt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 设置高亮字体
|
||||
function setHighlight(treeId, treeNode) {
|
||||
return (!!treeNode.highlight) ? {
|
||||
color: "#000000",
|
||||
"font-weight": "bold"
|
||||
} : {
|
||||
color: "#666",
|
||||
"font-weight": "normal"
|
||||
};
|
||||
}
|
||||
|
||||
// 关闭所有高亮节点
|
||||
function closeHigh() {
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var allNodes = treeObj.transformToArray(treeObj.getNodes());// 关闭所有节点的高亮
|
||||
|
||||
for (var i = 0; i < allNodes.length; i++) {
|
||||
allNodes[i].highlight = false;
|
||||
treeObj.updateNode(allNodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// 模糊搜索name满足条件的节点
|
||||
function searchNode(value) {
|
||||
if (value == "")
|
||||
return;
|
||||
|
||||
var hiddenNodes = [];
|
||||
var ztreeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var keyword = $("#search_value").val();
|
||||
//显示上次搜索后隐藏的结点,注意:使用hideNodes()方法时需要引包jquery.ztree.exhide-3.5.min.js
|
||||
//ztreeObj.showNodes(hiddenNodes);
|
||||
//获取不符合条件的子父结点
|
||||
hiddenNodes = ztreeObj.getNodesByFilter(filterFunc);
|
||||
//隐藏不符合条件的子父结点,注意:使用hideNodes()方法时需要引包jquery.ztree.exhide-3.5.min.js
|
||||
ztreeObj.hideNodes(hiddenNodes);
|
||||
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = treeObj.getNodesByParamFuzzy("name", value);// 获取搜索的节点
|
||||
|
||||
closeHigh();
|
||||
|
||||
// treeObj.expandAll(false);// 展开第一层节点
|
||||
// treeObj.expandNode(treeObj.getNodes()[0], true);
|
||||
|
||||
// 高亮并展开搜索到的节点
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].highlight = true;
|
||||
treeObj.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
treeObj.expandNode(nodes[i].getParentNode(), true);
|
||||
}
|
||||
treeObj.selectNode(nodes[0]);
|
||||
|
||||
// treeObj.expandAll(true);
|
||||
|
||||
$("#serchB").css("display", "none");
|
||||
$("#resetB").css("display", "");
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找子结点,如果匹配模糊查询的关键字则返回false,否则返回true
|
||||
*/
|
||||
function searchChildren(pNode, keyword) {
|
||||
var childs = pNode.children;
|
||||
var isexit = true;
|
||||
|
||||
for (var i = 0; i < childs.length; i++) {
|
||||
if (childs[i].name.indexOf(keyword) != -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < childs.length; i++) {
|
||||
if (childs[i].isParent) {
|
||||
isexit = searchChildren(childs[i], keyword);
|
||||
if (!isexit) {
|
||||
return isexit;
|
||||
}
|
||||
} else {
|
||||
if (childs[i].name.indexOf(keyword) != -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return isexit;
|
||||
}
|
||||
|
||||
function searchParent(pNode, keyword) {
|
||||
var parent = pNode.getParentNode();
|
||||
var isexit = true;
|
||||
if (parent.name.indexOf(keyword) != -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (parent.getParentNode()) {
|
||||
isexit = searchParent(parent, keyword);
|
||||
if (!isexit) {
|
||||
return isexit;
|
||||
}
|
||||
} else {
|
||||
if (parent.name.indexOf(keyword) != -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return isexit;
|
||||
}
|
||||
|
||||
//查找不符合条件的结点
|
||||
//返回true表示需要隐藏,返回false表示不需要隐藏 。
|
||||
function filterFunc(node) {
|
||||
var keyword = $("#search_value").val();
|
||||
//如果当前结点或其子节点匹配模糊查询的关键字,则该结点不隐藏
|
||||
if (node.name.indexOf(keyword) != -1) {
|
||||
return false;
|
||||
}
|
||||
if (node.isParent) {
|
||||
var b = searchChildren(node, keyword);
|
||||
if (!b) {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
if (node.getParentNode() != null) {
|
||||
var b = searchParent(node, keyword);
|
||||
if (!b) {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* zTree操作deviceTree代码段结束
|
||||
******************************************************************************/
|
||||
// type-1:getCheckedNodes方法,type-2:getSelectedNodes方法
|
||||
function getTreeSelected(type) {
|
||||
var pointNodes = [];
|
||||
type = 2;
|
||||
if (type == 1) {
|
||||
var nodes = getAllSelected();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].level == 4) {
|
||||
pointNodes.push(nodes[i]);
|
||||
}
|
||||
}
|
||||
} else if (type == 2) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.getSelectedNodes();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
if (nodes[0].level == 4) {
|
||||
pointNodes.push(nodes[0]);
|
||||
}
|
||||
}
|
||||
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
function valueChange(value) {
|
||||
if (value == '') {
|
||||
closeHigh();
|
||||
}
|
||||
}
|
||||
|
||||
$(function () {
|
||||
getMonitorType();
|
||||
|
||||
var treeHeight = $(window).height() - 70;
|
||||
$("#tree").css("min-height", treeHeight);
|
||||
$("#tree").css("max-height", treeHeight);
|
||||
|
||||
if (path.indexOf("monitor") != -1 || path.indexOf("expmodel") != -1) {
|
||||
setting = {
|
||||
check: {
|
||||
enable: true,
|
||||
nocheckInherit: true
|
||||
},
|
||||
data: {
|
||||
simpleData: {
|
||||
enable: true
|
||||
}
|
||||
},
|
||||
view: {
|
||||
fontCss: setHighlight, // 高亮一定要设置,setHighlight是自定义方法
|
||||
addDiyDom: addDiyDom
|
||||
},
|
||||
callback: {
|
||||
onCheck: onVerify,
|
||||
beforeCheck: doVerify,
|
||||
onClick: pointSelected
|
||||
}
|
||||
};
|
||||
getNodeData(0);
|
||||
} else {
|
||||
setting = {
|
||||
check: {
|
||||
enable: true,
|
||||
nocheckInherit: true
|
||||
},
|
||||
data: {
|
||||
simpleData: {
|
||||
enable: true
|
||||
}
|
||||
},
|
||||
view: {
|
||||
fontCss: setHighlight // 高亮一定要设置,setHighlight是自定义方法
|
||||
},
|
||||
callback: {
|
||||
onCheck: onVerify,
|
||||
beforeCheck: doVerify,
|
||||
onClick: pointSelected
|
||||
}
|
||||
};
|
||||
initDiv();
|
||||
getData();
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
pointSelected();
|
||||
}
|
||||
});
|
||||
|
||||
function resetTree() {
|
||||
document.getElementById("search_value").value = "";
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
initTree(treeAllData);
|
||||
|
||||
if (path.indexOf("plateReports") != -1 || path.indexOf("expmodel") != -1) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (path.indexOf("percent") != -1) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (path.indexOf("normlimit") != -1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
} else {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
}
|
||||
|
||||
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
}
|
||||
|
||||
function initDiv() {
|
||||
document.getElementById("tree").style.height = document
|
||||
.getElementById("father").offsetHeight
|
||||
- document.getElementById("search").offsetHeight - 5 + "px";
|
||||
}
|
||||
|
||||
// 数据库获取终端树数据
|
||||
function getNodeData(type) {
|
||||
document.getElementById("search_value").value = "";
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/nodeplatetree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
if (type == 0) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (type == 1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
} else if (type == 2) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (type == 3) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取厂家终端树数据
|
||||
function getmancTree(type) {
|
||||
document.getElementById("search_value").value = "";
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/mancPlateTree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
if (type == 0) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (type == 1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
} else if (type == 2) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (type == 3) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取电压等级终端树数据
|
||||
function getscaleTree(type) {
|
||||
document.getElementById("search_value").value = "";
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/scalePlateTree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
if (type == 0) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (type == 1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
} else if (type == 2) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (type == 3) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取干扰源类型终端树数据
|
||||
function getloadTypeTree(type) {
|
||||
document.getElementById("search_value").value = "";
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/loadTypePlateTree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
if (type == 0) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (type == 1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
} else if (type == 2) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (type == 3) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取监测点性质终端树数据
|
||||
function getmonitorTree(type) {
|
||||
document.getElementById("search_value").value = "";
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/monitorTree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
if (type == 0) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (type == 1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
} else if (type == 2) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (type == 3) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getData() {
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/platetree",
|
||||
type: "post",
|
||||
async: false,
|
||||
dataType: "json",
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//获取装置类型设备树
|
||||
$("#datatype").on("change", function () {
|
||||
var i;
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
if (path.indexOf("platereports") != -1 || path.indexOf("expmodel") != -1) {
|
||||
if ($("option:selected", this).val() == 0) {
|
||||
getNodeData(0);
|
||||
} else if ($("option:selected", this).val() == 1) {
|
||||
getmancTree(0);
|
||||
} else if ($("option:selected", this).val() == 2) {
|
||||
getscaleTree(0);
|
||||
} else if ($("option:selected", this).val() == 3) {
|
||||
getloadTypeTree(0);
|
||||
} else if ($("option:selected", this).val() == 4) {
|
||||
getmonitorTree(0);
|
||||
}
|
||||
} else if (path.indexOf("percent") != -1) {
|
||||
if ($("option:selected", this).val() == 0) {
|
||||
getNodeData(2);
|
||||
} else if ($("option:selected", this).val() == 1) {
|
||||
getmancTree(2);
|
||||
} else if ($("option:selected", this).val() == 2) {
|
||||
getscaleTree(2);
|
||||
} else if ($("option:selected", this).val() == 3) {
|
||||
getloadTypeTree(2);
|
||||
} else if ($("option:selected", this).val() == 4) {
|
||||
getmonitorTree(2);
|
||||
}
|
||||
} else if (path.indexOf("normlimit") != -1) {
|
||||
if ($("option:selected", this).val() == 0) {
|
||||
getNodeData(3);
|
||||
} else if ($("option:selected", this).val() == 1) {
|
||||
getmancTree(3);
|
||||
} else if ($("option:selected", this).val() == 2) {
|
||||
getscaleTree(3);
|
||||
} else if ($("option:selected", this).val() == 3) {
|
||||
getloadTypeTree(3);
|
||||
} else if ($("option:selected", this).val() == 4) {
|
||||
getmonitorTree(3);
|
||||
}
|
||||
} else {
|
||||
if ($("option:selected", this).val() == 0) {
|
||||
getNodeData(1);
|
||||
} else if ($("option:selected", this).val() == 1) {
|
||||
getmancTree(1);
|
||||
} else if ($("option:selected", this).val() == 2) {
|
||||
getscaleTree(1);
|
||||
} else if ($("option:selected", this).val() == 3) {
|
||||
getloadTypeTree(1);
|
||||
} else if ($("option:selected", this).val() == 4) {
|
||||
getmonitorTree(1);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
/*******************************************************************************
|
||||
* 是否显示checkBox type-1:显示 type-2:不显示
|
||||
******************************************************************************/
|
||||
function triggerCheckBox(type) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.transformToArray(zTree.getNodes());
|
||||
var isShow = true;
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].nocheck = isShow;
|
||||
zTree.updateNode(nodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 初始化终端树时,设置其选中状态 如果传入的参数<=0,则全选 type-1:复选框 type-2:无复选框
|
||||
******************************************************************************/
|
||||
function setTreeSelected(type, selectNumber) {
|
||||
type = 2;
|
||||
var count = 0;
|
||||
//selectNumber = selectNumber <= 0 ? 1 : selectNumber;
|
||||
limitMax = selectNumber;
|
||||
|
||||
if (selectNumber < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.transformToArray(zTree.getNodes());
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].level == 4) {
|
||||
zTree.selectNode(nodes[i]);
|
||||
|
||||
if (type == 1) {
|
||||
zTree.checkNode(nodes[i], true, true);
|
||||
}
|
||||
|
||||
nodes[i].highlight = true;
|
||||
zTree.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
count++;
|
||||
|
||||
if (selectNumber > 0 && count == selectNumber) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化终端树
|
||||
function initTree(treeData) {
|
||||
if (treeData.length == 0) {
|
||||
layer.msg("数据库数据为空,终端树加载失败.");
|
||||
return;
|
||||
}
|
||||
|
||||
var datalist = [];
|
||||
for (var i = 0; i < treeData.length; i++) {
|
||||
var str = '';
|
||||
|
||||
str += '{' + "id:" + treeData[i].id;
|
||||
str += ',' + "name:'" + treeData[i].name + "'";
|
||||
str += ',' + "nodeIndex:" + treeData[i].nodeIndex;
|
||||
str += ',' + "nodeType:" + treeData[i].nodeType;
|
||||
str += ',' + "ppId:" + treeData[i].ppId;
|
||||
if (treeData[i].nodeType == "0") {
|
||||
str += ',' + "open:" + true;
|
||||
} else {
|
||||
str += ',' + "open:" + false;
|
||||
}
|
||||
str += ',' + "state:" + treeData[i].state;
|
||||
str += ',' + "status:" + treeData[i].status;
|
||||
str += ',' + "powerType:" + treeData[i].powerType;
|
||||
str += ',' + "pttype:" + treeData[i].pttype;
|
||||
str += ',' + "pId:" + treeData[i].pId + '}';
|
||||
datalist.push(str);
|
||||
}
|
||||
|
||||
datalist = eval('[' + datalist + ']');// string->json数组
|
||||
var zNodes = datalist;
|
||||
|
||||
for (var index = 0; index < zNodes.length; index++) {
|
||||
if (zNodes[index].nodeType == 0) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwbase.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwbase.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 1) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwprovince.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwprovince.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 2) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwpower.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwpower.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 3) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwsubstation.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwsubstation.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 4) {
|
||||
if (zNodes[index].state == 2) {
|
||||
zNodes[index].icon = "../images/img/gray.png";
|
||||
} else if (zNodes[index].state == 1) {
|
||||
zNodes[index].icon = "../images/img/yellow.png";
|
||||
} else {
|
||||
if (zNodes[index].status == 0) {
|
||||
zNodes[index].icon = "../images/img/red.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/green.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$.fn.zTree.init($("#tree"), setting, zNodes);
|
||||
}
|
||||
|
||||
function getMonitorType() {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
data: {},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
var name = data.body.name + "上报";
|
||||
loadColor = data.body.value;
|
||||
var option = $("<option value='4'>"
|
||||
+ name + "</option>");
|
||||
$('#datatype').append(option);
|
||||
}
|
||||
})
|
||||
}
|
||||
1047
pqs9000/src/main/webapp/jspJS/utils/deviceTree.js
Normal file
1047
pqs9000/src/main/webapp/jspJS/utils/deviceTree.js
Normal file
File diff suppressed because it is too large
Load Diff
38
pqs9000/src/main/webapp/jspJS/utils/getTime.js
Normal file
38
pqs9000/src/main/webapp/jspJS/utils/getTime.js
Normal file
@@ -0,0 +1,38 @@
|
||||
//获取当前日期,精确到日
|
||||
function getEndTime() {
|
||||
var now = new Date();
|
||||
var sep = "-";
|
||||
var year = now.getFullYear();
|
||||
var month = now.getMonth() + 1;
|
||||
if (month < 10) {
|
||||
month = "0" + month;
|
||||
}
|
||||
var date = now.getDate();
|
||||
if (date < 10) {
|
||||
date = "0" + date;
|
||||
}
|
||||
//拼接当前的日期
|
||||
var endTime = year + sep + month + sep + date;
|
||||
return endTime;
|
||||
}
|
||||
|
||||
//获取起始日期
|
||||
function getStartTime(endTime) {
|
||||
var sep = "-";
|
||||
var arr = endTime.split("-");
|
||||
var year = arr[0];
|
||||
var month = "01";
|
||||
var date = "01";
|
||||
var startTime = year + sep + month + sep + date;
|
||||
return startTime;
|
||||
}
|
||||
//获取起始日期
|
||||
function getMonthStartTime(endTime) {
|
||||
var sep = "-";
|
||||
var arr = endTime.split("-");
|
||||
var year = arr[0];
|
||||
var month = arr[1];
|
||||
var date = "01";
|
||||
var startTime = year + sep + month + sep + date;
|
||||
return startTime;
|
||||
}
|
||||
8
pqs9000/src/main/webapp/jspJS/utils/helper.js
Normal file
8
pqs9000/src/main/webapp/jspJS/utils/helper.js
Normal file
@@ -0,0 +1,8 @@
|
||||
function toHelper(parameter){
|
||||
window.top.addTab('userhelp', '帮助中心');
|
||||
|
||||
window.setTimeout(function () {
|
||||
window.top.document.getElementById('userhelp').contentWindow.zTreeOnAsyncSuccess(parameter);
|
||||
},500)
|
||||
}
|
||||
|
||||
360
pqs9000/src/main/webapp/jspJS/utils/historyUtils.js
Normal file
360
pqs9000/src/main/webapp/jspJS/utils/historyUtils.js
Normal file
@@ -0,0 +1,360 @@
|
||||
/*********************
|
||||
* add by yexb
|
||||
*主要对历史数据公共类抽取
|
||||
* ********************/
|
||||
// 右边统计类型tree节点增加数据(星型)
|
||||
var zNodes = [{
|
||||
id: 1,
|
||||
pId: 0,
|
||||
name: "电压趋势",
|
||||
open: true,
|
||||
checked: true,
|
||||
}, {
|
||||
id: 11,
|
||||
pId: 1,
|
||||
name: "相电压有效值",
|
||||
checked: true
|
||||
}, {
|
||||
id: 12,
|
||||
pId: 1,
|
||||
name: "线电压有效值"
|
||||
}, {
|
||||
id: 13,
|
||||
pId: 1,
|
||||
name: "电压偏差"
|
||||
}, {
|
||||
id: 15,
|
||||
pId: 1,
|
||||
name: "三相电压不平衡度"
|
||||
}, {
|
||||
id: 16,
|
||||
pId: 1,
|
||||
name: "电压不平衡"
|
||||
}, {
|
||||
id: 17,
|
||||
pId: 1,
|
||||
name: "电压总谐波畸变率"
|
||||
}, {
|
||||
id: 2,
|
||||
pId: 0,
|
||||
name: "电流趋势",
|
||||
}, {
|
||||
id: 21,
|
||||
pId: 2,
|
||||
name: "电流有效值",
|
||||
checked: true
|
||||
}, {
|
||||
id: 22,
|
||||
pId: 2,
|
||||
name: "电流总谐波畸变率"
|
||||
},{
|
||||
id: 23,
|
||||
pId: 2,
|
||||
name: "负序电流"
|
||||
}, {
|
||||
id: 3,
|
||||
pId: 0,
|
||||
name: "频率趋势",
|
||||
}, {
|
||||
id: 31,
|
||||
pId: 3,
|
||||
name: "频率"
|
||||
}, {
|
||||
id: 4,
|
||||
pId: 0,
|
||||
name: "谐波趋势",
|
||||
}, {
|
||||
id: 41,
|
||||
pId: 4,
|
||||
name: "谐波电压含有率"
|
||||
}, {
|
||||
id: 42,
|
||||
pId: 4,
|
||||
name: "谐波电流幅值"
|
||||
}, {
|
||||
id: 43,
|
||||
pId: 4,
|
||||
name: "间谐波电压含有率"
|
||||
},{
|
||||
id: 44,
|
||||
pId: 4,
|
||||
name: "谐波电压相角"
|
||||
},{
|
||||
id: 45,
|
||||
pId: 4,
|
||||
name: "谐波电流相角"
|
||||
},{
|
||||
id: 46,
|
||||
pId: 4,
|
||||
name: "谐波有功功率"
|
||||
},{
|
||||
id: 47,
|
||||
pId: 4,
|
||||
name: "谐波无功功率"
|
||||
},{
|
||||
id: 48,
|
||||
pId: 4,
|
||||
name: "谐波视在功率"
|
||||
}, {
|
||||
id: 5,
|
||||
pId: 0,
|
||||
name: "功率趋势",
|
||||
}, {
|
||||
id: 51,
|
||||
pId: 5,
|
||||
name: "三相有功功率"
|
||||
}, {
|
||||
id: 52,
|
||||
pId: 5,
|
||||
name: "三相无功功率"
|
||||
}, {
|
||||
id: 53,
|
||||
pId: 5,
|
||||
name: "三相视在功率"
|
||||
},{
|
||||
id: 54,
|
||||
pId: 5,
|
||||
name: "三相总有功功率"
|
||||
}, {
|
||||
id: 55,
|
||||
pId: 5,
|
||||
name: "三相总无功功率"
|
||||
}, {
|
||||
id: 56,
|
||||
pId: 5,
|
||||
name: "三相总视在功率"
|
||||
}, {
|
||||
id: 57,
|
||||
pId: 5,
|
||||
name: "视在功率因数"
|
||||
}, {
|
||||
id: 58,
|
||||
pId: 5,
|
||||
name: "位移功率因数"
|
||||
}, {
|
||||
id: 59,
|
||||
pId: 5,
|
||||
name: "总视在功率因数"
|
||||
}, {
|
||||
id: 60,
|
||||
pId: 5,
|
||||
name: "总位移功率因数"
|
||||
},{
|
||||
id: 6,
|
||||
pId: 0,
|
||||
name: "闪变趋势",
|
||||
}, {
|
||||
id: 61,
|
||||
pId: 6,
|
||||
name: "短时电压闪变"
|
||||
}, {
|
||||
id: 62,
|
||||
pId: 6,
|
||||
name: "长时电压闪变"
|
||||
}, {
|
||||
id: 63,
|
||||
pId: 6,
|
||||
name: "电压波动"
|
||||
}];
|
||||
// 右边统计类型tree节点增加数据(三角型和V)
|
||||
var zNode = [{
|
||||
id: 1,
|
||||
pId: 0,
|
||||
name: "电压趋势",
|
||||
open: true,
|
||||
checked: true,
|
||||
}, {
|
||||
id: 12,
|
||||
pId: 1,
|
||||
name: "线电压有效值",
|
||||
checked: true
|
||||
}, {
|
||||
id: 13,
|
||||
pId: 1,
|
||||
name: "电压偏差"
|
||||
}, {
|
||||
id: 17,
|
||||
pId: 1,
|
||||
name: "电压总谐波畸变率"
|
||||
}, {
|
||||
id: 2,
|
||||
pId: 0,
|
||||
name: "电流趋势",
|
||||
checked: true
|
||||
}, {
|
||||
id: 21,
|
||||
pId: 2,
|
||||
name: "电流有效值",
|
||||
checked: true
|
||||
}, {
|
||||
id: 22,
|
||||
pId: 2,
|
||||
name: "电流总谐波畸变率"
|
||||
},{
|
||||
id: 23,
|
||||
pId: 2,
|
||||
name: "负序电流"
|
||||
}, {
|
||||
id: 3,
|
||||
pId: 0,
|
||||
name: "频率趋势",
|
||||
}, {
|
||||
id: 31,
|
||||
pId: 3,
|
||||
name: "频率"
|
||||
}, {
|
||||
id: 4,
|
||||
pId: 0,
|
||||
name: "谐波趋势",
|
||||
}, {
|
||||
id: 41,
|
||||
pId: 4,
|
||||
name: "谐波电压含有率"
|
||||
}, {
|
||||
id: 42,
|
||||
pId: 4,
|
||||
name: "谐波电流幅值"
|
||||
}, {
|
||||
id: 43,
|
||||
pId: 4,
|
||||
name: "间谐波电压含有率"
|
||||
},{
|
||||
id: 44,
|
||||
pId: 4,
|
||||
name: "谐波电压相角"
|
||||
},{
|
||||
id: 45,
|
||||
pId: 4,
|
||||
name: "谐波电流相角"
|
||||
},{
|
||||
id: 46,
|
||||
pId: 4,
|
||||
name: "谐波有功功率"
|
||||
},{
|
||||
id: 47,
|
||||
pId: 4,
|
||||
name: "谐波无功功率"
|
||||
},{
|
||||
id: 48,
|
||||
pId: 4,
|
||||
name: "谐波视在功率"
|
||||
}, {
|
||||
id: 5,
|
||||
pId: 0,
|
||||
name: "功率趋势",
|
||||
}, {
|
||||
id: 54,
|
||||
pId: 5,
|
||||
name: "三相总有功功率"
|
||||
}, {
|
||||
id: 55,
|
||||
pId: 5,
|
||||
name: "三相总无功功率"
|
||||
}, {
|
||||
id: 56,
|
||||
pId: 5,
|
||||
name: "三相总视在功率"
|
||||
}, {
|
||||
id: 57,
|
||||
pId: 5,
|
||||
name: "视在功率因数"
|
||||
}, {
|
||||
id: 58,
|
||||
pId: 5,
|
||||
name: "位移功率因数"
|
||||
}, {
|
||||
id: 59,
|
||||
pId: 5,
|
||||
name: "总视在功率因数"
|
||||
}, {
|
||||
id: 60,
|
||||
pId: 5,
|
||||
name: "总位移功率因数"
|
||||
}, {
|
||||
id: 6,
|
||||
pId: 0,
|
||||
name: "闪变趋势",
|
||||
}, {
|
||||
id: 61,
|
||||
pId: 6,
|
||||
name: "短时电压闪变"
|
||||
}, {
|
||||
id: 62,
|
||||
pId: 6,
|
||||
name: "长时电压闪变"
|
||||
}, {
|
||||
id: 63,
|
||||
pId: 6,
|
||||
name: "电压波动"
|
||||
}];
|
||||
|
||||
/*********************
|
||||
* 开始时间与结束时间比较
|
||||
* 开始时间大于结束时间返回false
|
||||
* 开始时间小于结束时间返回true
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @returns
|
||||
********************/
|
||||
function compareTime(startTime, endTime) {
|
||||
if (startTime > endTime) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据两个日期,判断相差天数
|
||||
* @param sDate1 开始日期 如:2016-11-01
|
||||
* @param sDate2 结束日期 如:2016-11-02
|
||||
* @returns {number} 返回相差天数
|
||||
*/
|
||||
function daysBetween(sDate1, sDate2) {
|
||||
//Date.parse() 解析一个日期时间字符串,并返回1970/1/1 午夜距离该日期时间的毫秒数
|
||||
var time1 = Date.parse(new Date(sDate1.replace(/-/g, "/")));
|
||||
var time2 = Date.parse(new Date(sDate2.replace(/-/g, "/")));
|
||||
var nDays = Math.abs(Math.ceil(parseFloat(time2 - time1).toFixed(2) / (1000 * 3600 * 24)));
|
||||
return nDays;
|
||||
};
|
||||
|
||||
function dataAddOneDay(dataEnd) {
|
||||
var strdate = dataEnd; //日期字符串
|
||||
var isdate = new Date(strdate.replace(/-/g, "/")); //把日期字符串转换成日期格式
|
||||
isdate = new Date((isdate / 1000 + 86400) * 1000); //日期加1天
|
||||
// 把日期格式转换成字符串
|
||||
var year = isdate.getFullYear();
|
||||
var month = (isdate.getMonth() + 1).toString();
|
||||
var day = (isdate.getDate()).toString();
|
||||
if (month.length == 1) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (day.length == 1) {
|
||||
day = "0" + day;
|
||||
}
|
||||
var pdate = year + "-" + month + "-" + day;
|
||||
return pdate;
|
||||
}
|
||||
|
||||
//日期加天数的方法
|
||||
//dataStr日期字符串
|
||||
//dayCount 要增加的天数
|
||||
//return 增加n天后的日期字符串
|
||||
function dateAddDays(dataStr, dayCount) {
|
||||
var strdate = dataStr; //日期字符串
|
||||
var isdate = new Date(strdate.replace(/-/g, "/")); //把日期字符串转换成日期格式
|
||||
isdate = new Date((isdate / 1000 + (86400 * (dayCount - 1))) * 1000); //日期加1天
|
||||
// 把日期格式转换成字符串
|
||||
var year = isdate.getFullYear();
|
||||
var month = (isdate.getMonth() + 1).toString();
|
||||
var day = (isdate.getDate()).toString();
|
||||
if (month.length == 1) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (day.length == 1) {
|
||||
day = "0" + day;
|
||||
}
|
||||
var pdate = year + "-" + month + "-" + day;
|
||||
return pdate;
|
||||
}
|
||||
|
||||
|
||||
301
pqs9000/src/main/webapp/jspJS/utils/judgeAjaxStatus.js
Normal file
301
pqs9000/src/main/webapp/jspJS/utils/judgeAjaxStatus.js
Normal file
@@ -0,0 +1,301 @@
|
||||
$(document).ajaxSend(function(event, jqxhr, settings) {
|
||||
var url = settings.url;
|
||||
var index=url.indexOf('?');
|
||||
if(index!==-1){
|
||||
url=url.substring(0,index);
|
||||
}
|
||||
var timestamp=new Date().getTime();
|
||||
jqxhr.setRequestHeader('AuthToken', sm3Digest(url+timestamp));
|
||||
jqxhr.setRequestHeader('cnsjt', timestamp);
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getColor",
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
var root = document.querySelector(':root');
|
||||
root.setAttribute('style', '--primarycolor:' + data.body);
|
||||
}
|
||||
})
|
||||
$(document).ajaxError(
|
||||
function (event, xhr, options, exc) {
|
||||
if (xhr.status === 'undefined') {
|
||||
return;
|
||||
}
|
||||
switch (xhr.status) {
|
||||
case 300:
|
||||
// 未授权异常
|
||||
window.top.location.href = '/pqs9000/user/unauthorized';
|
||||
break;
|
||||
case 301:
|
||||
//被踢下线处理
|
||||
window.top.location.href = '/sso';
|
||||
break;
|
||||
case 404:
|
||||
window.top.location.href = '/pqs9000/business/404';
|
||||
break;
|
||||
case 501:
|
||||
window.top.location.href = '/sso/auth/urlXssError';
|
||||
break;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* 国密摘要算法(SM3)
|
||||
* @param str:raw string
|
||||
* @return the 256-bit hex string produced by SM3 from a raw string
|
||||
*/
|
||||
function sm3Digest(str) {
|
||||
//1. 转换为二进制数组
|
||||
var binArr = str2bin(str2rstr_utf8(str));
|
||||
//2. 填充
|
||||
var groupNum = alignSM3(binArr, str.length);
|
||||
//3. 迭代压缩
|
||||
var v = new Array(8);//初始值
|
||||
v[0] = 0x7380166f;
|
||||
v[1] = 0x4914b2b9;
|
||||
v[2] = 0x172442d7;
|
||||
v[3] = 0xda8a0600;
|
||||
v[4] = 0xa96f30bc;
|
||||
v[5] = 0x163138aa;
|
||||
v[6] = 0xe38dee4d;
|
||||
v[7] = 0xb0fb0e4e;
|
||||
//按 512bit 分组进行压缩
|
||||
for (var i = 0; i < groupNum; i++) {
|
||||
v = compress(v, binArr, i);
|
||||
}
|
||||
return word2str(v, '');
|
||||
}
|
||||
|
||||
/**
|
||||
* 将数组转换为字符串。数组长度不定,每个元素为 32bit 的数字。
|
||||
* @param words:数组,每个元素为 32bit 的数字
|
||||
* @param seperator:在每个数组元素转换得到的字符串之间的分隔符
|
||||
*/
|
||||
function word2str(words, seperator) {
|
||||
var prefix = Array(8).join('0');
|
||||
for (var i = 0; i < words.length; i++) {
|
||||
//若 hex 不足 8 位,则高位补 0
|
||||
words[i] = (prefix + (words[i] >>> 0).toString(16)).slice(-8);
|
||||
}
|
||||
|
||||
return words.join(seperator);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将字符串转换为二进制数组,默认字符串编码为 UTF-8,且范围在 0x00~0xFF 内。
|
||||
* 若某些字符的编码超过此范围,则会只保留最低字节。加密可正常进行,但加密结果有误。
|
||||
* 每个数组元素包含 4 个字符,即 32 bit。
|
||||
* @param 字符串
|
||||
* @return 数组,长度为(字符串长度 / 4),每个元素为 32bit 的数字
|
||||
*/
|
||||
function str2bin(str) {
|
||||
var binary = new Array(str.length >> 2);
|
||||
for (var i = 0; i < str.length * 8; i += 8) {
|
||||
binary[i >> 5] |= (str.charCodeAt(i / 8) & 0xFF) << (24 - i % 32);
|
||||
}
|
||||
return binary;
|
||||
}
|
||||
|
||||
/**
|
||||
* 对明文的二进制串进行填充
|
||||
* <pre>
|
||||
* | 满足 mod 512 = 448 | 固定 64 位 |
|
||||
* | 明文二进制 |填充部分|明文二进制串的长度的二进制表示|
|
||||
* xxxxxxxxxxxx 10.....0 0...........................xx
|
||||
* </pre>
|
||||
* @param arr:数组,每个元素为 32bit 的数字
|
||||
* @param strLen:明文字符串长度
|
||||
* @return 数组,每个元素为 32bit 的数字,数组长度为 16 的倍数(包括 16)
|
||||
*/
|
||||
function alignSM3(arr, strLen) {
|
||||
//在明文二进制串后面拼接 1000 0000
|
||||
arr[strLen >> 2] |= 0x80 << (24 - strLen % 4 * 8);
|
||||
var groupNum = ((strLen + 8) >> 6) + 1;//以 512bit 为一组,总的组数
|
||||
var wordNum = groupNum * 16;//一个 word 32bit,总的 word 数
|
||||
|
||||
for (var i = (strLen >> 2) + 1; i < wordNum; i++) {
|
||||
arr[i] = 0;
|
||||
}
|
||||
arr[wordNum - 1] = strLen * 8;//在末尾填上明文的二进制长度
|
||||
|
||||
return groupNum;
|
||||
}
|
||||
|
||||
/**
|
||||
* 压缩函数中的置换函数
|
||||
*/
|
||||
function p0(x) {
|
||||
return x ^ bitRol(x, 9) ^ bitRol(x, 17);
|
||||
}
|
||||
|
||||
/**
|
||||
* 压缩函数中的置换函数
|
||||
*/
|
||||
function p1(x) {
|
||||
return x ^ bitRol(x, 15) ^ bitRol(x, 23);
|
||||
}
|
||||
|
||||
/**
|
||||
* 循环左移
|
||||
*/
|
||||
function bitRol(input, n) {
|
||||
return (input << n) | (input >>> (32 - n));
|
||||
}
|
||||
|
||||
/**
|
||||
* 压缩函数
|
||||
*/
|
||||
function compress(v, binArr, i) {
|
||||
//将消息分组扩展成 132 个字
|
||||
var w1 = new Array(68);
|
||||
var w2 = new Array(64);
|
||||
for (var j = 0; j < 68; j++) {
|
||||
if (j < 16) {
|
||||
w1[j] = binArr[i * 16 + j];
|
||||
} else {
|
||||
w1[j] = p1(w1[j-16] ^ w1[j-9] ^ bitRol(w1[j-3], 15)) ^ bitRol(w1[j-13], 7) ^ w1[j-6];
|
||||
}
|
||||
}
|
||||
for (var j = 0; j < 64; j++) {
|
||||
w2[j] = w1[j] ^ w1[j+4];
|
||||
}
|
||||
|
||||
//压缩
|
||||
var a = v[0];
|
||||
var b = v[1];
|
||||
var c = v[2];
|
||||
var d = v[3];
|
||||
var e = v[4];
|
||||
var f = v[5];
|
||||
var g = v[6];
|
||||
var h = v[7];
|
||||
var ss1;
|
||||
var ss2;
|
||||
var tt1;
|
||||
var tt2;
|
||||
for (var j = 0; j < 64; j++) {
|
||||
ss1 = bitRol(addAll(bitRol(a, 12) , e , bitRol(t(j), j)), 7);
|
||||
ss2 = ss1 ^ bitRol(a, 12);
|
||||
tt1 = addAll(ff(a, b, c, j) , d , ss2 , w2[j]);
|
||||
tt2 = addAll(gg(e, f, g, j) , h , ss1 , w1[j]);
|
||||
d = c;
|
||||
c = bitRol(b, 9);
|
||||
b = a;
|
||||
a = tt1;
|
||||
h = g;
|
||||
g = bitRol(f, 19);
|
||||
f = e;
|
||||
e = p0(tt2);
|
||||
}
|
||||
v[0] ^= a;
|
||||
v[1] ^= b;
|
||||
v[2] ^= c;
|
||||
v[3] ^= d;
|
||||
v[4] ^= e;
|
||||
v[5] ^= f;
|
||||
v[6] ^= g;
|
||||
v[7] ^= h;
|
||||
return v;
|
||||
}
|
||||
|
||||
/**
|
||||
* 常量 T 随 j 的不同而不同
|
||||
*/
|
||||
function t(j) {
|
||||
if (0 <= j && j < 16) {
|
||||
return 0x79CC4519;
|
||||
} else if (j < 64) {
|
||||
return 0x7A879D8A;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 布尔函数,随 j 的变化取不同的表达式
|
||||
*/
|
||||
function ff(x, y, z, j) {
|
||||
if (0 <= j && j < 16) {
|
||||
return x ^ y ^ z;
|
||||
} else if (j < 64) {
|
||||
return (x & y) | (x & z) | (y & z);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 布尔函数,随 j 的变化取不同的表达式
|
||||
*/
|
||||
function gg(x, y, z, j) {
|
||||
if (0 <= j && j < 16) {
|
||||
return x ^ y ^ z;
|
||||
} else if (j < 64) {
|
||||
return (x & y) | (~x & z);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 两数相加
|
||||
* 避免某些 js 引擎的 32 位加法的 bug
|
||||
*/
|
||||
function safe_add(x, y) {
|
||||
var lsw = ( x & 0xFFFF ) + (y & 0xFFFF);
|
||||
var msw = ( x >> 16 ) + (y >> 16) + (lsw >> 16);
|
||||
return (msw << 16) | ( lsw & 0xFFFF );
|
||||
}
|
||||
|
||||
/**
|
||||
* 将所有参数相加
|
||||
*/
|
||||
function addAll() {
|
||||
var sum = 0;
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
sum = safe_add(sum, arguments[i]);
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
/**
|
||||
* UTF-16 --> UTF-8
|
||||
*/
|
||||
function str2rstr_utf8(input) {
|
||||
var output = "" ;
|
||||
var i = -1 ;
|
||||
var x, y ;
|
||||
|
||||
while(++ i < input.length) {
|
||||
//按 UTF-16 解码
|
||||
x = input.charCodeAt(i);
|
||||
y = i + 1 < input.length ? input .charCodeAt (i + 1) : 0 ;
|
||||
if( 0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF ) {
|
||||
x = 0x10000 + ((x & 0x03FF) << 10 ) + (y & 0x03FF);
|
||||
i++;
|
||||
}
|
||||
|
||||
//按 UTF-8 编码
|
||||
if( x <= 0x7F ) {
|
||||
output += String.fromCharCode(x);
|
||||
}
|
||||
else if(x <= 0x7FF) {
|
||||
output += String.fromCharCode(
|
||||
0xC0 | ((x >>> 6 ) & 0x1F),
|
||||
0x80 | ( x & 0x3F ));
|
||||
} else if(x <= 0xFFFF) {
|
||||
output += String.fromCharCode(
|
||||
0xE0 | ((x >>> 12) & 0x0F ),
|
||||
0x80 | ((x >>> 6 ) & 0x3F),
|
||||
0x80 | ( x & 0x3F ));
|
||||
} else if(x <= 0x1FFFFF) {
|
||||
output += String.fromCharCode(
|
||||
0xF0 | ((x >>> 18) & 0x07 ),
|
||||
0x80 | ((x >>> 12) & 0x3F),
|
||||
0x80 | ((x >>> 6 ) & 0x3F),
|
||||
0x80 | ( x & 0x3F ));
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
88
pqs9000/src/main/webapp/jspJS/utils/loading.js
Normal file
88
pqs9000/src/main/webapp/jspJS/utils/loading.js
Normal file
@@ -0,0 +1,88 @@
|
||||
//layui的loading效果****start
|
||||
function ityzl_SHOW_LOAD_LAYER() {
|
||||
return layer.msg('数据加载中...', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
area:'200px',
|
||||
time : 100000
|
||||
});
|
||||
}
|
||||
function ityzl_SHOW_LOAD_LAYERLONG() {
|
||||
return layer.msg('数据加载中...', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
area:'200px',
|
||||
time : 2000000
|
||||
});
|
||||
}
|
||||
|
||||
function ityzl_SHOW_LOAD_DOWNLOAD() {
|
||||
return layer.msg('正在下载,请稍后...', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
area:'200px',
|
||||
time : 100000
|
||||
});
|
||||
}
|
||||
|
||||
function ityzl_SHOW_LOAD_LAYER_WAVE() {
|
||||
return layer.msg('波形下载中', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
time : 100000
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function ityzl_SHOW_LOAD_LAYER_PARENT() {
|
||||
return parent.layer.msg('数据加载中...', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
time : 100000
|
||||
});
|
||||
}
|
||||
//layui的loading效果****end
|
||||
function ityzl_CLOSE_LOAD_LAYER_PARENT(index) {
|
||||
parent.layer.close(index);
|
||||
}
|
||||
//layui的loading效果****end
|
||||
function ityzl_CLOSE_LOAD_LAYER(index) {
|
||||
layer.close(index);
|
||||
}
|
||||
|
||||
function SHOW_LOAD_LAYER(layer) {
|
||||
return layer.msg('数据加载中...', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
time : 100000
|
||||
});
|
||||
}
|
||||
//layui的loading效果****end
|
||||
function CLOSE_LOAD_LAYER(layer,index) {
|
||||
layer.close(index);
|
||||
}
|
||||
|
||||
function time2String(){
|
||||
var date = new Date();
|
||||
var month = date.getMonth() + 1;
|
||||
var strDate = date.getDate();
|
||||
|
||||
if (month >= 1 && month <= 9) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (strDate >= 0 && strDate <= 9) {
|
||||
strDate = "0" + strDate;
|
||||
}
|
||||
var strTime = date.getFullYear().toString() + month.toString() + strDate.toString()
|
||||
+ date.getHours().toString() + date.getMinutes().toString()
|
||||
+ date.getSeconds().toString();
|
||||
|
||||
return strTime;
|
||||
}
|
||||
|
||||
437
pqs9000/src/main/webapp/jspJS/utils/offLineTree.js
Normal file
437
pqs9000/src/main/webapp/jspJS/utils/offLineTree.js
Normal file
@@ -0,0 +1,437 @@
|
||||
var path = window.location.href;// 获取界面路径
|
||||
path=filterXSS(path);
|
||||
/*******************************************************************************
|
||||
* zTree操作deviceTree代码段
|
||||
******************************************************************************/
|
||||
// zTree属性配置
|
||||
var setting = {};
|
||||
var pttype;
|
||||
|
||||
function pointSelected() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.getSelectedNodes();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
closeHigh();
|
||||
|
||||
if (nodes[0].level == 4 && nodes[0].nocheck
|
||||
&& path.indexOf("monitor") == -1) {
|
||||
nodes[0].highlight = !nodes[0].highlight;
|
||||
zTree.updateNode(nodes[0]);
|
||||
} else if (path.indexOf("monitor") != -1 && nodes[0].level == 4) {
|
||||
nodes[0].highlight = !nodes[0].highlight;
|
||||
zTree.updateNode(nodes[0]);
|
||||
|
||||
// 修改选中监测点的信息展示
|
||||
var subname = nodes[0].getParentNode();
|
||||
var provincename = nodes[0].getParentNode().getParentNode();
|
||||
var projectname = nodes[0].getParentNode().getParentNode().getParentNode();
|
||||
|
||||
$('#pointInfo').text(
|
||||
'所选监测点:' + projectname.name + '->' + provincename.name + '->' + subname.name + '->'
|
||||
+ nodes[0].name);
|
||||
|
||||
var line_index = nodes[0].nodeIndex;
|
||||
pttype = nodes[0].pttype;
|
||||
$("#lineIndex").val(line_index);
|
||||
$("#lineName").val(nodes[0].name);
|
||||
|
||||
$("#allstime").val("");
|
||||
$("#alletime").val("");
|
||||
$("#checkpieces").val("");
|
||||
$("#checkpiecee").val("");
|
||||
|
||||
var middlesrc = $("#middlesrc").val();
|
||||
if (middlesrc == "offwtqs") {
|
||||
document.getElementById("main_right").src = "offwtqs";
|
||||
document.getElementById("main_right").contentWindow.changeTree(pttype);
|
||||
} else if (middlesrc == "offxbpp") {
|
||||
document.getElementById("main_right").src = "offxbpp";
|
||||
} else if (middlesrc == "offword") {
|
||||
document.getElementById("main_right").src = "offword";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function zTreeOnAsyncSuccess() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
|
||||
var nodes = zTree.getNodes();
|
||||
zTree.expandNode(nodes[0], true);
|
||||
|
||||
var childNodes = zTree.transformToArray(nodes[0]);
|
||||
|
||||
var i = 0;
|
||||
for (i = 0; i < childNodes.length; i++) {
|
||||
var type = childNodes[i].level;
|
||||
if (type == 4) {
|
||||
var subname = childNodes[i].getParentNode();
|
||||
var provincename = childNodes[i].getParentNode().getParentNode();
|
||||
var projectname = childNodes[i].getParentNode().getParentNode().getParentNode();
|
||||
|
||||
zTree.expandNode(projectname, true);
|
||||
zTree.expandNode(provincename, true);
|
||||
zTree.expandNode(subname, true);
|
||||
zTree.expandNode(childNodes[i], true);
|
||||
|
||||
$('#pointInfo').text(
|
||||
'所选监测点:' + projectname.name + '->' + provincename.name + '->' + subname.name + '->'
|
||||
+ childNodes[i].name);
|
||||
|
||||
var line_index = childNodes[i].nodeIndex;
|
||||
pttype = childNodes[i].pttype;
|
||||
$("#lineIndex").val(line_index);
|
||||
$("#lineName").val(childNodes[i].name);
|
||||
|
||||
// 关闭所有节点的高亮
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var allNodes = treeObj.transformToArray(treeObj.getNodes());
|
||||
for (var n = 0; n < allNodes.length; n++) {
|
||||
allNodes[n].highlight = false;
|
||||
treeObj.updateNode(allNodes[n]);
|
||||
}
|
||||
|
||||
// 高亮并展开搜索到的节点
|
||||
childNodes[i].highlight = true;
|
||||
treeObj.updateNode(childNodes[i]); // 更新节点,让高亮生效
|
||||
|
||||
var middlesrc = $("#middlesrc").val();
|
||||
if (middlesrc == "offwtqs") {
|
||||
document.getElementById("main_right").contentWindow.changeTree(pttype);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 选中之前验证是否超过约定上限 超过弹框提示并不选中节点
|
||||
******************************************************************************/
|
||||
var limitMax = 1;
|
||||
var arrVerify;
|
||||
|
||||
function doVerify() {
|
||||
arrVerify = getAllSelected();
|
||||
}
|
||||
|
||||
function getAllSelected() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
return zTree.getCheckedNodes(true);
|
||||
}
|
||||
|
||||
function onVerify() {
|
||||
var arrPoint = getTreeSelected(1);
|
||||
|
||||
if (0 === arrPoint.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
var arr = getAllSelected();
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
|
||||
closeHigh();
|
||||
|
||||
if (arrPoint.length > limitMax) {
|
||||
if (arrVerify.length == 0) {
|
||||
zTree.checkAllNodes(false);
|
||||
} else {
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
var index = $.inArray(arr[i], arrVerify);
|
||||
|
||||
if (index === -1) {
|
||||
zTree.checkNode(arr[i], false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
layer.msg("最多选择" + limitMax + "个监测点.");
|
||||
} else {
|
||||
for (var j = 0; j < arrVerify.length; j++) {
|
||||
arrVerify[j].highlight = false;
|
||||
zTree.updateNode(arrVerify[j]);
|
||||
}
|
||||
|
||||
for (var i = 0; i < arrPoint.length; i++) {
|
||||
arrPoint[i].highlight = true;
|
||||
zTree.updateNode(arrPoint[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 设置高亮字体
|
||||
function setHighlight(treeId, treeNode) {
|
||||
return (!!treeNode.highlight) ? {
|
||||
color : "#000000",
|
||||
"font-weight" : "bold"
|
||||
} : {
|
||||
color : "#666",
|
||||
"font-weight" : "normal"
|
||||
};
|
||||
}
|
||||
|
||||
// 关闭所有高亮节点
|
||||
function closeHigh() {
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var allNodes = treeObj.transformToArray(treeObj.getNodes());// 关闭所有节点的高亮
|
||||
|
||||
for (var i = 0; i < allNodes.length; i++) {
|
||||
allNodes[i].highlight = false;
|
||||
treeObj.updateNode(allNodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// 模糊搜索name满足条件的节点
|
||||
function searchNode(value) {
|
||||
if (value == "")
|
||||
return;
|
||||
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = treeObj.getNodesByParamFuzzy("name", value);// 获取搜索的节点
|
||||
|
||||
closeHigh();
|
||||
|
||||
treeObj.expandAll(false);// 展开第一层节点
|
||||
treeObj.expandNode(treeObj.getNodes()[0], true);
|
||||
|
||||
// 高亮并展开搜索到的节点
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].highlight = true;
|
||||
treeObj.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
treeObj.expandNode(nodes[i].getParentNode(), true);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* zTree操作deviceTree代码段结束
|
||||
******************************************************************************/
|
||||
// type-1:getCheckedNodes方法,type-2:getSelectedNodes方法
|
||||
function getTreeSelected(type) {
|
||||
var pointNodes = [];
|
||||
|
||||
if (type == 1) {
|
||||
var nodes = getAllSelected();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].level == 4) {
|
||||
pointNodes.push(nodes[i]);
|
||||
}
|
||||
}
|
||||
} else if (type == 2) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.getSelectedNodes();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
if (nodes[0].level == 4) {
|
||||
pointNodes.push(nodes[0]);
|
||||
}
|
||||
}
|
||||
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
function valueChange(value) {
|
||||
if (value == '') {
|
||||
closeHigh();
|
||||
}
|
||||
}
|
||||
|
||||
$(function() {
|
||||
if (path.indexOf("offlinemonitor") != -1) {
|
||||
setting = {
|
||||
check : {
|
||||
enable : true,
|
||||
nocheckInherit : true
|
||||
},
|
||||
data : {
|
||||
simpleData : {
|
||||
enable : true
|
||||
}
|
||||
},
|
||||
view : {
|
||||
fontCss : setHighlight // 高亮一定要设置,setHighlight是自定义方法
|
||||
},
|
||||
callback : {
|
||||
onCheck : onVerify,
|
||||
beforeCheck : doVerify,
|
||||
onClick : pointSelected
|
||||
}
|
||||
};
|
||||
getData();
|
||||
// zTreeOnAsyncSuccess();
|
||||
} else {
|
||||
setting = {
|
||||
check : {
|
||||
enable : true,
|
||||
nocheckInherit : true
|
||||
},
|
||||
data : {
|
||||
simpleData : {
|
||||
enable : true
|
||||
}
|
||||
},
|
||||
view : {
|
||||
fontCss : setHighlight // 高亮一定要设置,setHighlight是自定义方法
|
||||
},
|
||||
callback : {
|
||||
onCheck : onVerify,
|
||||
beforeCheck : doVerify,
|
||||
onClick : pointSelected
|
||||
}
|
||||
};
|
||||
initDiv();
|
||||
getData();
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
}
|
||||
});
|
||||
|
||||
function initDiv() {
|
||||
document.getElementById("tree").style.height = document
|
||||
.getElementById("father").offsetHeight
|
||||
- document.getElementById("search").offsetHeight - 5 + "px";
|
||||
}
|
||||
|
||||
//数据库获取离线终端树数据
|
||||
function getData() {
|
||||
$.ajax({
|
||||
url : "/pqs9000/device/offLinetree",
|
||||
type : "post",
|
||||
async : false,
|
||||
dataType : "json",
|
||||
data : {},
|
||||
success : function(data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
initTree(data.body);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取离线终端树年份数据
|
||||
function getyearData() {
|
||||
$.ajax({
|
||||
url : "/pqs9000/device/yeartree",
|
||||
type : "post",
|
||||
async : false,
|
||||
dataType : "json",
|
||||
data : {},
|
||||
success : function(data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
initTree(data.body);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取离线终端树干扰源类型数据
|
||||
function gettypeData() {
|
||||
$.ajax({
|
||||
url : "/pqs9000/device/loadtypetree",
|
||||
type : "post",
|
||||
async : false,
|
||||
dataType : "json",
|
||||
data : {},
|
||||
success : function(data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
initTree(data.body);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 是否显示checkBox type-1:显示 type-2:不显示
|
||||
******************************************************************************/
|
||||
function triggerCheckBox(type) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.transformToArray(zTree.getNodes());
|
||||
var isShow = false;
|
||||
|
||||
if (type == 2) {
|
||||
isShow = true;
|
||||
}
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].nocheck = isShow;
|
||||
zTree.updateNode(nodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 初始化终端树时,设置其选中状态 如果传入的参数<=0,则默认置为1 type-1:复选框 type-2:无复选框
|
||||
******************************************************************************/
|
||||
function setTreeSelected(type, selectNumber) {
|
||||
var count = 0;
|
||||
selectNumber = selectNumber <= 0 ? 1 : selectNumber;
|
||||
limitMax = selectNumber;
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.transformToArray(zTree.getNodes());
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].level == 4) {
|
||||
zTree.selectNode(nodes[i]);
|
||||
|
||||
if (type == 1) {
|
||||
zTree.checkNode(nodes[i], true, true);
|
||||
}
|
||||
|
||||
nodes[i].highlight = true;
|
||||
zTree.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
count++;
|
||||
|
||||
if (count == selectNumber) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化终端树
|
||||
function initTree(treeData) {
|
||||
if (treeData.length == 0) {
|
||||
layer.msg("数据库数据为空,终端树加载失败.");
|
||||
return;
|
||||
}
|
||||
|
||||
var datalist = [];
|
||||
for (var i = 0; i < treeData.length; i++) {
|
||||
var str = '';
|
||||
|
||||
str += '{' + "id:" + treeData[i].id;
|
||||
str += ',' + "name:'" + treeData[i].name + "'";
|
||||
str += ',' + "nodeIndex:" + treeData[i].nodeIndex;
|
||||
str += ',' + "nodeType:" + treeData[i].nodeType;
|
||||
str += ',' + "ppId:" + treeData[i].ppId;
|
||||
if (treeData[i].nodeType == "0") {
|
||||
str += ',' + "open:" + true;
|
||||
} else {
|
||||
str += ',' + "open:" + false;
|
||||
}
|
||||
str += ',' + "pttype:" + treeData[i].pttype;
|
||||
str += ',' + "pId:" + treeData[i].pId + '}';
|
||||
datalist.push(str);
|
||||
}
|
||||
|
||||
datalist = eval('[' + datalist + ']');// string->json数组
|
||||
var zNodes = datalist;
|
||||
|
||||
$.fn.zTree.init($("#tree"), setting, zNodes);
|
||||
}
|
||||
245
pqs9000/src/main/webapp/jspJS/utils/plateUtils.js
Normal file
245
pqs9000/src/main/webapp/jspJS/utils/plateUtils.js
Normal file
@@ -0,0 +1,245 @@
|
||||
/*********************
|
||||
* add by denghhuajun
|
||||
*主要对历史数据公共类抽取
|
||||
* ********************/
|
||||
// 右边统计类型tree节点增加数据(星型)
|
||||
var reportNode = [{
|
||||
id: 1,
|
||||
pId: 0,
|
||||
name: "电度基本电能量",
|
||||
open: true,
|
||||
checked: true,
|
||||
},
|
||||
// {
|
||||
// id: 11,
|
||||
// pId: 1,
|
||||
// name: "有功电能",
|
||||
// checked: true
|
||||
// },
|
||||
{
|
||||
id: 111,
|
||||
pId: 1,
|
||||
name: "三相总有功电能",
|
||||
checked: true
|
||||
},
|
||||
// {
|
||||
// id: 12,
|
||||
// pId: 1,
|
||||
// name: "无功电能"
|
||||
// },
|
||||
{
|
||||
id: 121,
|
||||
pId: 1,
|
||||
name: "三相总无功电能"
|
||||
},
|
||||
// {
|
||||
// id: 13,
|
||||
// pId: 1,
|
||||
// name: "视在电能"
|
||||
// },
|
||||
{
|
||||
id: 131,
|
||||
pId: 1,
|
||||
name: "三相总视在电能"
|
||||
},
|
||||
// {
|
||||
// id: 14,
|
||||
// pId: 1,
|
||||
// name: "基波有功电能"
|
||||
// },
|
||||
{
|
||||
id: 141,
|
||||
pId: 1,
|
||||
name: "三相总基波有功电能"
|
||||
},
|
||||
// {
|
||||
// id: 15,
|
||||
// pId: 1,
|
||||
// name: "基波无功电能"
|
||||
// },
|
||||
{
|
||||
id: 151,
|
||||
pId: 1,
|
||||
name: "三相总基波无功电能"
|
||||
},
|
||||
// {
|
||||
// id: 16,
|
||||
// pId: 1,
|
||||
// name: "总谐波有功电能"
|
||||
// },
|
||||
{
|
||||
id: 161,
|
||||
pId: 1,
|
||||
name: "三相总谐波有功电能"
|
||||
},
|
||||
// {
|
||||
// id: 17,
|
||||
// pId: 1,
|
||||
// name: "总谐波无功电能"
|
||||
// },
|
||||
{
|
||||
id: 171,
|
||||
pId: 1,
|
||||
name: "三相总谐波无功电能"
|
||||
}];
|
||||
|
||||
var zNodes = [{
|
||||
id: 1,
|
||||
pId: 0,
|
||||
name: "电度基本电能量",
|
||||
open: true,
|
||||
checked: true,
|
||||
}, {
|
||||
id: 11,
|
||||
pId: 1,
|
||||
name: "有功电能",
|
||||
checked: true
|
||||
}, {
|
||||
id: 111,
|
||||
pId: 1,
|
||||
name: "三相总有功电能",
|
||||
checked: true
|
||||
}, {
|
||||
id: 12,
|
||||
pId: 1,
|
||||
name: "无功电能"
|
||||
}, {
|
||||
id: 121,
|
||||
pId: 1,
|
||||
name: "三相总无功电能"
|
||||
}, {
|
||||
id: 13,
|
||||
pId: 1,
|
||||
name: "视在电能"
|
||||
}, {
|
||||
id: 131,
|
||||
pId: 1,
|
||||
name: "三相总视在电能"
|
||||
}, {
|
||||
id: 14,
|
||||
pId: 1,
|
||||
name: "基波有功电能"
|
||||
}, {
|
||||
id: 141,
|
||||
pId: 1,
|
||||
name: "三相总基波有功电能"
|
||||
}, {
|
||||
id: 15,
|
||||
pId: 1,
|
||||
name: "基波无功电能"
|
||||
}, {
|
||||
id: 151,
|
||||
pId: 1,
|
||||
name: "三相总基波无功电能"
|
||||
}, {
|
||||
id: 16,
|
||||
pId: 1,
|
||||
name: "总谐波有功电能"
|
||||
}, {
|
||||
id: 161,
|
||||
pId: 1,
|
||||
name: "三相总谐波有功电能"
|
||||
}, {
|
||||
id: 17,
|
||||
pId: 1,
|
||||
name: "总谐波无功电能"
|
||||
}, {
|
||||
id: 171,
|
||||
pId: 1,
|
||||
name: "三相总谐波无功电能"
|
||||
}, {
|
||||
id: 2,
|
||||
pId: 0,
|
||||
name: "电度谐波电能量",
|
||||
}, {
|
||||
id: 21,
|
||||
pId: 2,
|
||||
name: "谐波有功电能",
|
||||
}, {
|
||||
id: 22,
|
||||
pId: 2,
|
||||
name: "谐波无功电能"
|
||||
}, {
|
||||
id: 3,
|
||||
pId: 0,
|
||||
name: "电度需量",
|
||||
}, {
|
||||
id: 31,
|
||||
pId: 3,
|
||||
name: "有功需量"
|
||||
}, {
|
||||
id: 32,
|
||||
pId: 3,
|
||||
name: "无功需量"
|
||||
}];
|
||||
|
||||
/*********************
|
||||
* 开始时间与结束时间比较
|
||||
* 开始时间大于结束时间返回false
|
||||
* 开始时间小于结束时间返回true
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @returns
|
||||
********************/
|
||||
function compareTime(startTime, endTime) {
|
||||
if (startTime > endTime) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据两个日期,判断相差天数
|
||||
* @param sDate1 开始日期 如:2016-11-01
|
||||
* @param sDate2 结束日期 如:2016-11-02
|
||||
* @returns {number} 返回相差天数
|
||||
*/
|
||||
function daysBetween(sDate1, sDate2) {
|
||||
//Date.parse() 解析一个日期时间字符串,并返回1970/1/1 午夜距离该日期时间的毫秒数
|
||||
var time1 = Date.parse(new Date(sDate1.replace(/-/g, "/")));
|
||||
var time2 = Date.parse(new Date(sDate2.replace(/-/g, "/")));
|
||||
var nDays = Math.abs(Math.ceil(parseFloat(time2 - time1).toFixed(2) / (1000 * 3600 * 24)));
|
||||
return nDays;
|
||||
};
|
||||
|
||||
function dataAddOneDay(dataEnd) {
|
||||
var strdate = dataEnd; //日期字符串
|
||||
var isdate = new Date(strdate.replace(/-/g, "/")); //把日期字符串转换成日期格式
|
||||
isdate = new Date((isdate / 1000 + 86400) * 1000); //日期加1天
|
||||
// 把日期格式转换成字符串
|
||||
var year = isdate.getFullYear();
|
||||
var month = (isdate.getMonth() + 1).toString();
|
||||
var day = (isdate.getDate()).toString();
|
||||
if (month.length == 1) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (day.length == 1) {
|
||||
day = "0" + day;
|
||||
}
|
||||
var pdate = year + "-" + month + "-" + day;
|
||||
return pdate;
|
||||
}
|
||||
|
||||
//日期加天数的方法
|
||||
//dataStr日期字符串
|
||||
//dayCount 要增加的天数
|
||||
//return 增加n天后的日期字符串
|
||||
function dateAddDays(dataStr, dayCount) {
|
||||
var strdate = dataStr; //日期字符串
|
||||
var isdate = new Date(strdate.replace(/-/g, "/")); //把日期字符串转换成日期格式
|
||||
isdate = new Date((isdate / 1000 + (86400 * (dayCount - 1))) * 1000); //日期加1天
|
||||
// 把日期格式转换成字符串
|
||||
var year = isdate.getFullYear();
|
||||
var month = (isdate.getMonth() + 1).toString();
|
||||
var day = (isdate.getDate()).toString();
|
||||
if (month.length == 1) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (day.length == 1) {
|
||||
day = "0" + day;
|
||||
}
|
||||
var pdate = year + "-" + month + "-" + day;
|
||||
return pdate;
|
||||
}
|
||||
|
||||
|
||||
477
pqs9000/src/main/webapp/jspJS/utils/positionOffset.js
Normal file
477
pqs9000/src/main/webapp/jspJS/utils/positionOffset.js
Normal file
@@ -0,0 +1,477 @@
|
||||
/************************************
|
||||
* 地图公共参数定义
|
||||
*************************************/
|
||||
var minLeave = 5;//地图最小展示级别
|
||||
var maxLeave = 15;//地图最大展示级别
|
||||
var defaultlevel = 12;//地图默认展示级别
|
||||
var point = new BMap.Point(104.038357, 30.669091); //地图加载中心点(成都电科院地址)
|
||||
|
||||
/************************************
|
||||
获取监测点经纬度信息加载到地图
|
||||
************************************/
|
||||
//创建图标
|
||||
var redIcon = new BMap.Icon("../images/img/pred.png", new BMap.Size(25, 25));
|
||||
var greenIcon = new BMap.Icon("../images/img/pgreen4.png", new BMap.Size(25, 25));
|
||||
var yellowIcon = new BMap.Icon("../images/img/pyellow.png", new BMap.Size(25, 25));
|
||||
var grayIcon = new BMap.Icon("../images/img/pgray.png", new BMap.Size(25, 25));
|
||||
var stationIcon = new BMap.Icon("../images/img/station.png", new BMap.Size(25, 25));
|
||||
var wingrayIcon = new BMap.Icon("../images/img/wingray.gif", new BMap.Size(40, 40));
|
||||
var winyellowIcon = new BMap.Icon("../images/img/winyellow.gif", new BMap.Size(40,40));
|
||||
var wingreenIcon = new BMap.Icon("../images/img/wingreen11.gif", new BMap.Size(40,40));
|
||||
var winredIcon = new BMap.Icon("../images/img/winred.gif", new BMap.Size(40, 40));
|
||||
//终端状态
|
||||
var redMarkerOptions = {icon:redIcon,enableDragging:false}
|
||||
var greenMarkerOptions = {icon:greenIcon,enableDragging:false}
|
||||
var yellowMarkerOptions = {icon:yellowIcon,enableDragging:false}
|
||||
var grayMarkerOptions = {icon:grayIcon,enableDragging:false}
|
||||
var stationOptions = {icon:stationIcon,enableDragging:false}
|
||||
var wingrayMarkerOptions = {icon:wingrayIcon,enableDragging:false}
|
||||
var winyellowMarkerOptions = {icon:winyellowIcon,enableDragging:false}
|
||||
var wingreenMarkerOptions = {icon:wingreenIcon,enableDragging:false}
|
||||
var winredMarkerOptions = {icon:winredIcon,enableDragging:false}
|
||||
|
||||
/************************************
|
||||
* 加载地里信息地图
|
||||
*************************************/
|
||||
function getGISMap(element,drgging,scrollwheel,leave) {
|
||||
defaultlevel = leave;//地图的放大等级
|
||||
|
||||
var map = new BMap.Map(element, {minZoom:minLeave,maxZoom: maxLeave, enableMapClick: false});//实例化地图
|
||||
map.centerAndZoom(point, defaultlevel);//设初始化地图
|
||||
/********************
|
||||
* 拖拽地图
|
||||
********************/
|
||||
if(drgging)
|
||||
map.enableDragging();//启用地图拖拽,默认启用
|
||||
else
|
||||
map.disableDragging();//禁用地图拖拽
|
||||
/********************
|
||||
* 地图滚轮
|
||||
*******************/
|
||||
if(scrollwheel)
|
||||
map.enableScrollWheelZoom();//启用滚轮放大缩小,默认禁用
|
||||
else
|
||||
map.disableScrollWheelZoom();//禁用滚轮放大缩小
|
||||
|
||||
map.disableContinuousZoom();//禁用连续缩放效果
|
||||
map.disableDoubleClickZoom();//禁用双击放大
|
||||
return map;
|
||||
}
|
||||
|
||||
/********************************************
|
||||
查询所有监测点信息
|
||||
*******************************************/
|
||||
function searchLineMaps(){
|
||||
var resultData = null;
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
async: false,
|
||||
url : "/pqs9200/overview/getLineMaps",
|
||||
dataType : "text",
|
||||
success : function(data) {
|
||||
resultData = $.parseJSON(data);
|
||||
}
|
||||
});
|
||||
|
||||
return resultData;
|
||||
}
|
||||
|
||||
/********************************************
|
||||
获取网络拓扑图信息
|
||||
*******************************************/
|
||||
function getGridTop(){
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "/pqs9200/overview/getGridTop",
|
||||
dataType : "text",
|
||||
success : function(data) {
|
||||
var info = $.parseJSON(data);
|
||||
//取数据失败,则进行不进行操作
|
||||
if (info.code == 500) {
|
||||
} else {
|
||||
if (info.body != null) {
|
||||
drawline(info.body);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/********************************************
|
||||
采用算法计算出变电站和监测点位信息
|
||||
***基础数据***变电站点***变电站跟监测点连线***监测点点位信息
|
||||
*******************************************/
|
||||
var subMarkers= [];subpointLines= [];pointMarkers= [];
|
||||
function drawElement(dataarr,map,iFlag){
|
||||
var gisInfo = new Object();//存放所有的地理信息地图
|
||||
subMarkers= [];subpointLines= [];pointMarkers= [];
|
||||
|
||||
//解析Map
|
||||
for(key in dataarr){
|
||||
var strkey = key.split(",");
|
||||
if(strkey.length == 3){
|
||||
//新增变电站的点
|
||||
var submarker = new BMap.Marker(new BMap.Point(strkey[1], strkey[2]), stationOptions); //创建变电站点
|
||||
submarker.name = strkey[0];//设置变电站名称
|
||||
var strTitle = '变电站名称:' + submarker.name;
|
||||
submarker.setTitle(strTitle);//设置标注的标题,当鼠标移至标注上时显示此标题
|
||||
|
||||
subMarkers.push(submarker);//把变电站信息放到集合中去
|
||||
//解析监测点信息
|
||||
var lineMaps = dataarr[key];
|
||||
for(var i = 0; i < lineMaps.length; i++){
|
||||
var pointmarker = getPoint(lineMaps[i],map,iFlag);
|
||||
pointMarkers.push(pointmarker);//把监测点信息放到集合中去
|
||||
var polyline = new BMap.Polyline([submarker.getPosition(),pointmarker.getPosition()], {strokeColor:"#006A6A", strokeWeight:2, strokeOpacity:0.5});//创建变电站-监测点折线
|
||||
polyline.setStrokeStyle("dashed");
|
||||
subpointLines.push(polyline);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//赋值
|
||||
gisInfo.subMarkers = subMarkers;
|
||||
gisInfo.subpointLines = subpointLines;
|
||||
gisInfo.pointMarkers = pointMarkers;
|
||||
|
||||
/************************************
|
||||
把所有元素打到地图上并且影藏
|
||||
************************************/
|
||||
for(var i = 0;i <subMarkers.length; i++){
|
||||
map.addOverlay(subMarkers[i]);
|
||||
subMarkers[i].hide();
|
||||
}
|
||||
|
||||
for(var i = 0;i < subpointLines.length; i++){
|
||||
map.addOverlay(subpointLines[i]);
|
||||
subpointLines[i].hide();
|
||||
}
|
||||
return gisInfo;
|
||||
}
|
||||
|
||||
/************************************
|
||||
获取监测点经纬度信息加载到地图上
|
||||
***监测点信息(lineMap)***生成类型(iFlag:0 概览界面;1 监测点界面)
|
||||
************************************/
|
||||
var dataPoint = 'monitor';
|
||||
function getPoint(lineMap,map,iFlag) {
|
||||
var point = new BMap.Point(lineMap.longitude, lineMap.latitude);
|
||||
//监测点点位信息;终端状态;终端状态颜色
|
||||
var marker,strState = '停运',fontState ='#808080';
|
||||
//通讯状态,通讯状态颜色
|
||||
var strStatus = '中断',fontStatus='#FF0000';
|
||||
/********************************
|
||||
终端状态: 2停运 灰色 128,128,128 #808080
|
||||
1热备用 金色 255,215,0 #FFD700
|
||||
0投运(正常的则判断通讯状态)
|
||||
通讯状态: 0正常 绿色 0,128,0 #08CF5A
|
||||
1中断 红色 255,0,0 #FF0000
|
||||
**********************************/
|
||||
switch(lineMap.devflag){
|
||||
case 0:
|
||||
strState = '投运';
|
||||
fontState='#08CF5A';
|
||||
//终端通讯状态(0:中断;1:正常)
|
||||
switch(lineMap.status){
|
||||
case 0:
|
||||
strStatus = '中断';
|
||||
fontStatus='#FF0000';
|
||||
if(lineMap.totalcount > 0)
|
||||
marker = new BMap.Marker(point, winredMarkerOptions);//假如终端出现了暂降事件
|
||||
else
|
||||
marker = new BMap.Marker(point, redMarkerOptions);
|
||||
break;
|
||||
case 1:
|
||||
strStatus = '正常';
|
||||
fontStatus='#08CF5A';
|
||||
if(lineMap.totalcount > 0)
|
||||
marker = new BMap.Marker(point, wingreenMarkerOptions);//假如终端出现了暂降事件
|
||||
else
|
||||
marker = new BMap.Marker(point, greenMarkerOptions);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
strState = '热备用';
|
||||
fontState='#FFD700';
|
||||
if(lineMap.totalcount > 0)
|
||||
marker = new BMap.Marker(point, winyellowMarkerOptions);//假如终端出现了暂降事件
|
||||
else
|
||||
marker = new BMap.Marker(point, yellowMarkerOptions);
|
||||
break;
|
||||
case 2:
|
||||
strState = '停运';
|
||||
fontState='#808080';
|
||||
if(lineMap.totalcount > 0)
|
||||
marker = new BMap.Marker(point, wingrayMarkerOptions);
|
||||
else
|
||||
marker = new BMap.Marker(point, grayMarkerOptions);
|
||||
break;
|
||||
}
|
||||
//设置marker其他属性
|
||||
marker.index = lineMap.lineindex;//存储监测点的id
|
||||
marker.name = lineMap.linename;//存储监测点的名称
|
||||
marker.devflag = lineMap.devflag;//存储监测点的状态
|
||||
marker.totalcount = lineMap.totalcount;//存储未处理事件
|
||||
|
||||
marker.lineMap = lineMap;//所存储的监测点信息
|
||||
|
||||
var strTitle = '监测点名称:' + lineMap.linename;
|
||||
if(lineMap.totalcount > 0){
|
||||
strTitle += '\n' + '未处理暂降事件:' + lineMap.totalcount + '(次)';
|
||||
}
|
||||
|
||||
//概览界面才有右击操作
|
||||
if(iFlag == 0){
|
||||
marker.addEventListener("rightclick", function (){
|
||||
if(lineMap.totalcount > 0){
|
||||
querySagEvents(lineMap.lineindex);//双击事件的执行代码
|
||||
}else{
|
||||
parent.layer.msg("该监测点未找到未处理暂降事件", {icon: 6,time:1000});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
marker.setTitle(strTitle);//设置标注的标题,当鼠标移至标注上时显示此标题
|
||||
/************************************
|
||||
设置弹出框相关内容
|
||||
************************************/
|
||||
//概览界面
|
||||
if(iFlag == 0){
|
||||
//组装TIP
|
||||
var showInfo = '<div class="mystyle" style="margin:0;line-height:19px;padding:2px;font-size:12px;font-family:"微软雅黑";font-weight:bold;">' +
|
||||
'<label> 供电公司 </label> ' + lineMap.gdname + '<br/>' +
|
||||
'<label> 变电站 </label> ' + lineMap.subname + '<br/>' +
|
||||
'<label> 母线 </label> ' + lineMap.subvname + '<br/>' +
|
||||
'<label> IP地址 </label> ' + lineMap.ip + '<br/>' +
|
||||
'<label> PT变比 </label> ' + lineMap.pt1/1000 +'/'+ lineMap.pt2/1000 +'<br/>' +
|
||||
'<label> CT变比 </label> ' + lineMap.ct1 +'/' + lineMap.ct2 + '<br/>' +
|
||||
'<label> 生产厂家 </label> ' + lineMap.manufacturer + '<br/>' +
|
||||
'<label> 终端状态 </label> <font color="'+ fontState +'">' + strState + '</font><br/>' +
|
||||
'<label> 通讯状态 </label> <font color="'+ fontStatus +'">' + strStatus + '</font><br/>' +
|
||||
'<div class="form-inline fr" style="margin:5px 0px 1px 2px;">'+
|
||||
'<button type="button" class="btn btn-primary btn-xs" onclick="openmonitor(\''+ lineMap.lineindex +'\')"> <i class="glyphicon glyphicon-screenshot"></i>查看监测点</button>'+
|
||||
'<button type="button" style="margin:0px 0px 0px 2px;" class="btn btn-primary btn-xs" onclick="openSagEvents(\''+ lineMap.lineindex +'\',\''+ lineMap.totalcount +'\')"> <i class="glyphicon glyphicon-warning-sign"></i>未处理事件('+ marker.totalcount +')</button>'+
|
||||
'</div>';
|
||||
|
||||
var searchInfoWindow = new BMapLib.SearchInfoWindow(map, showInfo, {
|
||||
title: '监测点名称:' + lineMap.linename, //标题
|
||||
width: 25, //宽度
|
||||
height: 265, //高度
|
||||
searchTypes: [],
|
||||
enableSendToPhone: false
|
||||
});
|
||||
marker.searchInfoWindow = searchInfoWindow;
|
||||
|
||||
//定义setTimeout执行方法
|
||||
var TimeFn = null;
|
||||
marker.addEventListener("click", function () {
|
||||
// 取消上次延时未执行的方法
|
||||
clearTimeout(TimeFn);
|
||||
//执行延时
|
||||
TimeFn = setTimeout(function(){
|
||||
searchInfoWindow.open(point);
|
||||
activesearchInfoWindow = searchInfoWindow;
|
||||
},250);
|
||||
});
|
||||
|
||||
marker.addEventListener("dblclick", function () {
|
||||
// 取消上次延时未执行的方法
|
||||
clearTimeout(TimeFn);
|
||||
//双击则弹到监测点界面
|
||||
if(window.top.document.getElementById(dataPoint) != null){
|
||||
window.top.addTab(dataPoint,'监测点');
|
||||
window.top.document.getElementById(dataPoint).contentWindow.zTreeOnAsyncSuccess(marker.index);
|
||||
} else if(window.top.document.getElementById('monitor') != null){
|
||||
window.top.addTab('monitor','监测点');
|
||||
window.top.document.getElementById('monitor').contentWindow.zTreeOnAsyncSuccess(marker.index);
|
||||
}else{
|
||||
window.top.addTab('monitor?line_index='+ marker.index,'监测点');
|
||||
dataPoint = 'monitor?line_index='+ marker.index;
|
||||
|
||||
window.parent.parent.document.getElementById('dataPoint').value=dataPoint;
|
||||
}
|
||||
});
|
||||
}
|
||||
//监测点界面
|
||||
else if(iFlag == 1){
|
||||
//组装TIP
|
||||
var showInfo = '<div class="mystyle" style="margin:0;line-height:19px;padding:2px;font-size:12px;font-family:"微软雅黑";font-weight:bold;">' +
|
||||
'<label> 供电公司 </label> ' + lineMap.gdname + '<br/>' +
|
||||
'<label> 变电站 </label> ' + lineMap.subname + '<br/>' +
|
||||
'<label> 母线 </label> ' + lineMap.subvname + '<br/>' +
|
||||
'<label> IP地址 </label> ' + lineMap.ip + '<br/>' +
|
||||
'<label> PT变比 </label> ' + lineMap.pt1/1000 +'/'+ lineMap.pt2/1000 +'<br/>' +
|
||||
'<label> CT变比 </label> ' + lineMap.ct1 +'/'+ lineMap.ct2 + '<br/>' +
|
||||
'<label> 生产厂家 </label> ' + lineMap.manufacturer + '<br/>' +
|
||||
'<label> 终端状态 </label> <font color="'+ fontState +'">' + strState + '</font><br/>' +
|
||||
'<label> 通讯状态 </label> <font color="'+ fontStatus +'">' + strStatus + '</font><br/>' +
|
||||
'<div class="form-inline fr" style="margin:5px 0px 1px 2px;">'+
|
||||
'<button type="button" class="btn btn-primary btn-xs" onclick="openEventStatis()"> <i class="glyphicon glyphicon-screenshot"></i>事件统计</button>'+
|
||||
'<button type="button" class="btn btn-primary btn-xs" style="margin:0px 0px 0px 5px;" onclick="openEventSys()"> <i class="glyphicon glyphicon-warning-sign"></i>事件分析</button>'+
|
||||
'<button type="button" class="btn btn-primary btn-xs" style="margin:0px 0px 0px 5px;" onclick="openDevRunning()"> <i class="glyphicon glyphicon-briefcase"></i>终端运行管理</button>'+
|
||||
'</div>';
|
||||
|
||||
var searchInfoWindow = new BMapLib.SearchInfoWindow(map, showInfo, {
|
||||
title: '监测点名称:' + lineMap.linename, //标题
|
||||
width: 280, //宽度
|
||||
height: 265, //高度
|
||||
searchTypes: [],
|
||||
enableSendToPhone: false
|
||||
});
|
||||
|
||||
marker.searchInfoWindow = searchInfoWindow;
|
||||
|
||||
marker.addEventListener("click", function () {
|
||||
searchInfoWindow.open(point);
|
||||
$.fn.zTree.getZTreeObj("tree").expandAll(false);
|
||||
zTreeOnAsyncSuccess(lineMap.lineindex);
|
||||
var nowIndex=$("#lineIndex").val();
|
||||
// pantoPoint(nowIndex);
|
||||
changeFlag(true);
|
||||
|
||||
activesearchInfoWindow = searchInfoWindow;
|
||||
activepoint = point;
|
||||
});
|
||||
}
|
||||
return marker;
|
||||
}
|
||||
|
||||
/************************************
|
||||
地图增加相应的元素
|
||||
***********************************/
|
||||
function controlMapElements(map){
|
||||
var zoom = map.getZoom();
|
||||
|
||||
var bs = map.getBounds();//获取可视区域
|
||||
for(var i=0;i<subMarkers.length;i++){
|
||||
if(zoom >=15){
|
||||
var subpoint = subMarkers[i].getPosition();
|
||||
var result = BMapLib.GeoUtils.isPointInRect(subpoint, bs);
|
||||
if(result == true){
|
||||
subMarkers[i].show();
|
||||
}
|
||||
}else{
|
||||
subMarkers[i].hide();
|
||||
}
|
||||
}
|
||||
|
||||
for(var i=0;i<subpointLines.length;i++){
|
||||
if(zoom >=15){
|
||||
var subpointarr = subpointLines[i].getPath();
|
||||
var result = true;
|
||||
for(var j=0;j<subpointarr.length;j++){
|
||||
result = BMapLib.GeoUtils.isPointInRect(subpointarr[j], bs);
|
||||
if(result == false)
|
||||
break;
|
||||
}
|
||||
if(result == true){
|
||||
subpointLines[i].show();
|
||||
}
|
||||
}else{
|
||||
subpointLines[i].hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/************************************
|
||||
对所有监测点进行偏移算法
|
||||
***********************************/
|
||||
function getDataOffset(data){
|
||||
var maparr={};
|
||||
var tmpmap = {};
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
//获取变电站名称(key,由变电站名称,经度,纬度组成:事例:变电站1,123.00,135.00)
|
||||
var key = data[i].subname + "," + data[i].longitude + "," + data[i].latitude;
|
||||
//假如key已经存在了
|
||||
if(tmpmap[key]){
|
||||
var tmpdata = tmpmap[key];
|
||||
tmpdata.push(data[i]);
|
||||
}else{
|
||||
var tmpdata= [];
|
||||
tmpdata.push(data[i]);
|
||||
tmpmap[key] = tmpdata;
|
||||
}
|
||||
}
|
||||
|
||||
//根据分组后的监测点进行偏移算法
|
||||
var r = 0.0035;
|
||||
for(tmpkey in tmpmap){
|
||||
var arr = tmpmap[tmpkey];
|
||||
var tmplength = arr.length;
|
||||
var dataarr = [];
|
||||
for(var i = 0;i < tmplength;i++){
|
||||
var info = arr[i];
|
||||
info.longitude =info.longitude + r*Math.cos(2*Math.PI*(i)/tmplength);
|
||||
info.latitude =info.latitude + r*Math.sin(2*Math.PI*(i)/tmplength);
|
||||
dataarr.push(info);
|
||||
}
|
||||
maparr[tmpkey] = dataarr;
|
||||
}
|
||||
return maparr;
|
||||
}
|
||||
|
||||
/************************************
|
||||
调用此方法则画范围分析
|
||||
***********************************/
|
||||
function getRangeAnalysis(map,markers){
|
||||
//假如只有一个监测点
|
||||
var marlength = markers.length;
|
||||
if(marlength > 0){
|
||||
//假如只有一个监测点
|
||||
if(marlength == 1){
|
||||
var marker = markers[0]; //获取marker
|
||||
var c = marker.getPosition();//获取圆心
|
||||
var circle = new BMap.Circle(c, 500);//测试圆
|
||||
//清除地图信息
|
||||
map.clearOverlays();
|
||||
//将圆添加到地图
|
||||
map.addOverlay(circle);
|
||||
//将点打到地图上
|
||||
map.addOverlay(marker);
|
||||
|
||||
map.centerAndZoom(c, 12);//设置地图等级
|
||||
setTimeout(function(){
|
||||
map.panTo(c);//地图移动到当前位置
|
||||
}, 2000);
|
||||
|
||||
}else{
|
||||
//获取最长距离
|
||||
var marker_start;//最长距离起始监测点
|
||||
var marker_end;//最长距离终点监测点
|
||||
var maxlenght = 0;//最长距离
|
||||
for(var i = 0; i < marlength;i++){
|
||||
marker1 = markers[i];
|
||||
for(var j = i + 1; j < marlength; j++){
|
||||
marker2 = markers[j];
|
||||
//根据几何算法算出两点的距离
|
||||
var length = BMapLib.GeoUtils.getDistance(marker1.getPosition(), marker2.getPosition());
|
||||
//假如距离大于之前长度则重新
|
||||
if(length > maxlenght){
|
||||
maxlenght = length;
|
||||
marker_start = marker1;
|
||||
marker_end = marker2;
|
||||
}
|
||||
}
|
||||
}
|
||||
//计算中心点经纬度
|
||||
var lng = ((marker_start.getPosition().lng + marker_end.getPosition().lng)/2).toFixed(5);
|
||||
var lat = ((marker_start.getPosition().lat + marker_end.getPosition().lat)/2).toFixed(5);
|
||||
var c = new BMap.Point(lng, lat); //圆心
|
||||
var circle = new BMap.Circle(c, maxlenght/2 + 500);//测试圆
|
||||
|
||||
//将点与圆形添加到地图上
|
||||
map.clearOverlays();
|
||||
map.addOverlay(circle);
|
||||
|
||||
for(var i = 0; i < marlength;i++){
|
||||
map.addOverlay(markers[i]);
|
||||
}
|
||||
|
||||
map.centerAndZoom(c, 12);//设置地图等级
|
||||
setTimeout(function(){
|
||||
map.panTo(c);//地图移动到当前位置
|
||||
}, 2000);
|
||||
}
|
||||
}
|
||||
}
|
||||
57
pqs9000/src/main/webapp/jspJS/utils/tableSort.js
Normal file
57
pqs9000/src/main/webapp/jspJS/utils/tableSort.js
Normal file
@@ -0,0 +1,57 @@
|
||||
/**
|
||||
* 电压等级排序自定义比较start
|
||||
*/
|
||||
jQuery.fn.dataTableExt.oSort['number-fate-asc'] = function(s1,s2) {
|
||||
s1 = s1.replace('kV','');
|
||||
s2 = s2.replace('kV','');
|
||||
return Number(s1)-Number(s2);
|
||||
};
|
||||
|
||||
jQuery.fn.dataTableExt.oSort['number-fate-desc'] = function(s1,s2) {
|
||||
s1 = s1.replace('kV','');
|
||||
s2 = s2.replace('kV','');
|
||||
return Number(s2)-Number(s1);
|
||||
};
|
||||
/**
|
||||
* 电压等级排序自定义比较end
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 百分比数值自定义比较(包含 暂无数据 / 两种特殊情况)start
|
||||
*/
|
||||
jQuery.fn.dataTableExt.oSort['special-fate-asc'] = function(s1,s2) {
|
||||
s1=s1+'';
|
||||
s2=s2+'';
|
||||
if(s1.indexOf('暂无数据')>-1 ){
|
||||
s1 = -1;
|
||||
}else if(s1.indexOf('/')>-1 ){
|
||||
s1 = -2;
|
||||
}
|
||||
if(s2.indexOf('暂无数据')>-1 ){
|
||||
s2 = -1;
|
||||
}else if(s2.indexOf('/')>-1){
|
||||
s2 = -2;
|
||||
}
|
||||
return Number(s1)-Number(s2);
|
||||
};
|
||||
|
||||
jQuery.fn.dataTableExt.oSort['special-fate-desc'] = function(s1,s2) {
|
||||
s1=s1+'';
|
||||
s2=s2+'';
|
||||
if(s1.indexOf('暂无数据')>-1 ){
|
||||
s1 = -1;
|
||||
}else if(s1.indexOf('/')>-1 ){
|
||||
s1 = -2;
|
||||
}
|
||||
if(s2.indexOf('暂无数据')>-1 ){
|
||||
s2 = -1;
|
||||
}else if(s2.indexOf('/')>-1){
|
||||
s2 = -2;
|
||||
}
|
||||
|
||||
return Number(s2)-Number(s1);
|
||||
};
|
||||
/**
|
||||
* 百分比数值自定义比较(包含 暂无数据 / 两种特殊情况)end
|
||||
*/
|
||||
549
pqs9000/src/main/webapp/jspJS/utils/timeControl.js
Normal file
549
pqs9000/src/main/webapp/jspJS/utils/timeControl.js
Normal file
@@ -0,0 +1,549 @@
|
||||
// 用户切换时间间隔,时间会发生变化
|
||||
$("#interval").change(function () {
|
||||
var interval = $(this).val();
|
||||
var endTime = $("#endTime").val();
|
||||
var startTime = getStartTime(interval, endTime);
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
judgeInterval(interval)
|
||||
});
|
||||
|
||||
//隐藏前进后退按钮
|
||||
function judgeInterval(interval) {
|
||||
if (interval === "自定义") {
|
||||
$("#present").css("display", "none");
|
||||
$("#before").css("display", "none");
|
||||
$("#next").css("display", "none");
|
||||
$("#startTime").removeProp("disabled");
|
||||
$("#endTime").removeProp("disabled");
|
||||
} else {
|
||||
$("#present").css("display", "inline-block");
|
||||
$("#before").css("display", "inline-block");
|
||||
$("#next").css("display", "inline-block");
|
||||
$("#startTime").prop("disabled", "true");
|
||||
$("#endTime").prop("disabled", "true");
|
||||
}
|
||||
}
|
||||
|
||||
$('.form_datetime').datetimepicker({
|
||||
minView: "month", //选择日期后,不会再跳转去选择时分秒
|
||||
language: 'zh-CN',
|
||||
format: 'yyyy-mm-dd',
|
||||
todayBtn: false,//今日按钮
|
||||
autoclose: 1,
|
||||
});
|
||||
|
||||
|
||||
//向前
|
||||
$("#before").click(function () {
|
||||
var interval = $("#interval").val();
|
||||
var startTime = $("#startTime").val();
|
||||
var endTime = $("#endTime").val();
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
var date = parseInt(startTime.substring(8, 10));
|
||||
|
||||
if (interval == "月份") {
|
||||
// 换年份
|
||||
if (month == 1) {
|
||||
year = year - 1;
|
||||
startTime = year + "-12-01";
|
||||
endTime = year + "-12-31";
|
||||
} else if (month <= 10) {
|
||||
month = month - 1;
|
||||
startTime = year + "-0" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
} else {
|
||||
month = month - 1;
|
||||
startTime = year + "-" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
} else if (interval == "周") {
|
||||
//根据开始时间推
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() - 7);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
end.setDate(start.getDate() + 6);
|
||||
endTime = formatTime(end);
|
||||
} else if (interval == "季度") {
|
||||
// 换年份
|
||||
if (month == 1) {
|
||||
year = year - 1;
|
||||
startTime = year + "-10-01";
|
||||
endTime = year + "-12-31";
|
||||
} else {
|
||||
// 还是本年
|
||||
month = month - 3;
|
||||
startTime = year + "-0" + month + "-01";
|
||||
month = month + 2;
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
}
|
||||
} else if (interval == "自定义") {
|
||||
|
||||
} else if (interval == "年份") {
|
||||
year = year - 1;
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-12-31";
|
||||
} else if (interval == "半年") {
|
||||
if (month <= 6) {
|
||||
year = year - 1;
|
||||
startTime = year + "-07-01";
|
||||
endTime = year + "-12-31";
|
||||
}else{
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-06-30";
|
||||
}
|
||||
}else if(interval == "天"){
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() -1);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
endTime = formatTime(end);
|
||||
}
|
||||
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
// 判断向后键的状态
|
||||
var temp = getEndTime();
|
||||
judgeNext(temp, endTime);
|
||||
});
|
||||
// 当前
|
||||
$("#present").click(function () {
|
||||
var interval = $("#interval").val();
|
||||
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime(interval, endTime);
|
||||
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
// 判断向后键的状态
|
||||
var temp = getEndTime();
|
||||
judgeNext(temp, endTime);
|
||||
});
|
||||
|
||||
// 向后
|
||||
function back() {
|
||||
var interval = $("#interval").val();
|
||||
var startTime = $("#startTime").val();
|
||||
// 获取年份
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
// 获取月份
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
var date = parseInt(startTime.substring(8, 10));
|
||||
var endTime = $("#endTime").val();
|
||||
var now = new Date();
|
||||
// 获取当前年份
|
||||
var presentY = now.getFullYear();
|
||||
// 获取当前月份
|
||||
var presentM = now.getMonth() + 1;
|
||||
// 获取当前日期
|
||||
var presentD = now.getDate();
|
||||
if (interval == "月份") {
|
||||
if (month == 12) {
|
||||
year = year + 1;
|
||||
// 年份进位后,大于当前的年份,是不科学的
|
||||
if (presentY < year) {
|
||||
startTime = presentY + "-12-01";
|
||||
if (presentD < 10) {
|
||||
endTime = presentY + "-12" + "-0" + presentD;
|
||||
} else {
|
||||
endTime = presentY + "-12" + "-" + presentD;
|
||||
}
|
||||
// 年份进位后,等于当前的年份
|
||||
} else if (presentY == year) {
|
||||
startTime = year + "-01-01";
|
||||
if (presentM > 1) {
|
||||
endTime = year + "-01-31";
|
||||
} else {
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-01" + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-01" + "-" + presentD;
|
||||
}
|
||||
}
|
||||
// 年份进位后,依旧小于当前的年份
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-01-31";
|
||||
}
|
||||
} else {
|
||||
month = month + 1;
|
||||
// 年份等于当前年份
|
||||
if (presentY == year) {
|
||||
// 月份超过当前月份,是不科学的
|
||||
if (month >= presentM) {
|
||||
if (presentM < 10) {
|
||||
startTime = year + "-0" + presentM + "-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-" + presentM + "-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (month < 10) {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
} else {
|
||||
startTime = year + "-" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
// 年份小于当前的年份
|
||||
} else {
|
||||
if (month < 10) {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
} else {
|
||||
startTime = year + "-" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (interval == "季度") {
|
||||
// 前进需要年份进位
|
||||
if (month == 10) {
|
||||
year = year + 1;
|
||||
// 年份进位后大于当前年份是不科学的
|
||||
if (year > presentY) {
|
||||
startTime = presentY + "-10-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
} else if (year == presentY) {
|
||||
startTime = year + "-01-01";
|
||||
// 当前月份大约3月份
|
||||
if (presentM > 3) {
|
||||
endTime = year + "-03-31";
|
||||
} else {
|
||||
// 当前月份也在第一季度里
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-03-31";
|
||||
}
|
||||
} else {
|
||||
month = month + 3;
|
||||
// 季度进位后,超过当前月份是不科学的
|
||||
if (year == presentY) {
|
||||
if (month >= presentM) {
|
||||
// 当季度进位后大于当前月,以当前月的时间显示季度
|
||||
if (presentM > 0 && presentM < 4) {// 第一季度
|
||||
startTime = year + "-01-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else if (presentM > 3 && presentM < 7) {// 第二季度
|
||||
startTime = year + "-04-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else if (presentM > 6 && presentM < 10) {// 第三季度
|
||||
startTime = year + "-07-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {// 第四季度
|
||||
startTime = year + "-10-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (month == 10) {
|
||||
startTime = year + "-" + month + "-01";
|
||||
} else {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
}
|
||||
month = month + 2;
|
||||
if (month >= presentM) {
|
||||
endTime = getEndTime();
|
||||
;
|
||||
} else {
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (month == 10) {
|
||||
startTime = year + "-" + month + "-01";
|
||||
month = month + 2;
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
} else {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
month = month + 2;
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (interval == "自定义") {
|
||||
|
||||
} else if (interval == "周") {
|
||||
//根据开始时间推
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() + 7);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
end.setDate(start.getDate() + 6);
|
||||
endTime = formatTime(end);
|
||||
|
||||
if (parseInt((end - new Date()) / 1000 / 60) > 24) { //相差小时大于24小时,即超过当天,置为当天日期
|
||||
endTime = formatTime(new Date());
|
||||
}
|
||||
} else if (interval == "年份") {
|
||||
year = year + 1;
|
||||
// 年份进位后大于当前年份,是不科学的
|
||||
if (year >= presentY) {
|
||||
startTime = presentY + "-01-01";
|
||||
if (presentM < 10) {
|
||||
if (presentD < 10) {
|
||||
endTime = presentY + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = presentY + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {
|
||||
endTime = presentY + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-12-31";
|
||||
}
|
||||
} else if (interval == "半年") {
|
||||
// 前进需要年份进位
|
||||
if (month > 6) {
|
||||
year = year + 1;
|
||||
// 年份进位后大于当前年份是不科学的
|
||||
if (year >= presentY) {
|
||||
startTime = presentY + "-01-01";
|
||||
if(presentM > 6){
|
||||
endTime = year + "-06-30";
|
||||
}else{
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-06-30";
|
||||
}
|
||||
} else {
|
||||
if (year == presentY) {
|
||||
startTime = presentY + "-07-01";
|
||||
// 进位后大于当前月,以当前月的时间显示
|
||||
if (presentM < 10) {
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
}else{
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-07-01";
|
||||
endTime = year + "-12-31";
|
||||
}
|
||||
}
|
||||
}else if(interval == "天"){
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() + 1);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
endTime = formatTime(end);
|
||||
}
|
||||
// 判断向后键的状态
|
||||
var temp = getEndTime();
|
||||
judgeNext(temp, endTime);
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
}
|
||||
|
||||
$("#next").click(function () {
|
||||
back();
|
||||
});
|
||||
|
||||
// 判断next按钮的状态
|
||||
function judgeNext(temp, endTime) {
|
||||
if (temp == endTime) {
|
||||
$("#next").attr("class", "njcn btn");
|
||||
$("#next").unbind();
|
||||
} else {
|
||||
restoreNext();
|
||||
}
|
||||
}
|
||||
|
||||
// 恢复向后键的所有时间(点击事件、button变化事件)
|
||||
function restoreNext() {
|
||||
var $events = $._data($("#next")[0], "events");
|
||||
if ($events && $events["click"]) {
|
||||
|
||||
} else {
|
||||
$("#next").attr("class", "njcn btn btn-primary");
|
||||
$("#next").bind("click", function () {
|
||||
back();
|
||||
})
|
||||
}
|
||||
if ($events && $events["mouseover"]) {
|
||||
|
||||
} else {
|
||||
$("#next").bind("mouseover", function () {
|
||||
$(this).attr("class", "njcn btn");
|
||||
})
|
||||
}
|
||||
if ($events && $events["mouseout"]) {
|
||||
|
||||
} else {
|
||||
$("#next").bind("mouseout", function () {
|
||||
$(this).attr("class", "njcn btn btn-primary");
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 获取月份的天数
|
||||
function getDays(year, month) {
|
||||
var max = new Date(year, month, 0).getDate();
|
||||
return max;
|
||||
}
|
||||
|
||||
// 时间格式化
|
||||
function formatTime(time) {
|
||||
return time.getFullYear() + '-' + ((time.getMonth() + 1) < 10 ? '0' : '') + (time.getMonth() + 1) + '-' + (time.getDate() < 10 ? '0' : '') + time.getDate();
|
||||
}
|
||||
|
||||
$(function () {
|
||||
var interval = $("#interval").val();
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime(interval, endTime);
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
$("#next").attr("class", "njcn btn");
|
||||
$("#next").unbind();
|
||||
// 除了自定义其他时间间隔用户可以选择日期
|
||||
if (interval === "自定义") {
|
||||
$("#present").css("display", "none");
|
||||
$("#before").css("display", "none");
|
||||
$("#next").css("display", "none");
|
||||
$("#startTime").removeProp("disabled");
|
||||
$("#endTime").removeProp("disabled");
|
||||
} else {
|
||||
$("#present").css("display", "inline-block");
|
||||
$("#before").css("display", "inline-block");
|
||||
$("#next").css("display", "inline-block");
|
||||
$("#startTime").prop("disabled", "true");
|
||||
$("#endTime").prop("disabled", "true");
|
||||
}
|
||||
});
|
||||
|
||||
// 获取当前日期,精确到日
|
||||
function getEndTime() {
|
||||
var now = new Date();
|
||||
var sep = "-";
|
||||
var year = now.getFullYear();
|
||||
var month = now.getMonth() + 1;
|
||||
if (month < 10) {
|
||||
month = "0" + month;
|
||||
}
|
||||
var date = now.getDate();
|
||||
if (date < 10) {
|
||||
date = "0" + date;
|
||||
}
|
||||
// 拼接当前的日期
|
||||
var endTime = year + sep + month + sep + date;
|
||||
return endTime;
|
||||
}
|
||||
|
||||
// 获取起始日期
|
||||
function getStartTime(interval, endTime) {
|
||||
var now = new Date();
|
||||
var sep = "-";
|
||||
var arr = endTime.split("-");
|
||||
var year = arr[0];
|
||||
var month = arr[1];
|
||||
var date = arr[2];
|
||||
// 按月份间隔
|
||||
if (interval == "月份") {
|
||||
date = "01";
|
||||
// 按季度间隔
|
||||
} else if (interval == "季度") {
|
||||
if (month > 0 & month < 4) {// 第一季度
|
||||
month = "01";
|
||||
date = "01";
|
||||
} else if (month > 3 && month < 7) {// 第二季度
|
||||
month = "04";
|
||||
date = "01";
|
||||
} else if (month > 6 && month < 10) {// 第三季度
|
||||
month = "07";
|
||||
date = "01";
|
||||
} else {// 第四季度
|
||||
month = 10;
|
||||
date = "01";
|
||||
}
|
||||
} else if (interval == "年份") {
|
||||
month = "01";
|
||||
date = "01";
|
||||
} else if (interval == "半年") {
|
||||
if (month < 7){
|
||||
month = "01";
|
||||
date = "01";
|
||||
}else{
|
||||
month = "07";
|
||||
date = "01";
|
||||
}
|
||||
} else if (interval == '周') {
|
||||
var start = new Date(year, month - 1, date);
|
||||
var dayOfWeek = (start.getDay() == 0) ? 7 : start.getDay(); // 如果为周日,则置为7天
|
||||
start.setDate(start.getDate() - dayOfWeek + 1);// 计算开始时间
|
||||
|
||||
if (formatTime(new Date()) != endTime) { // 如果结束时间不是当前时间
|
||||
var end = new Date(start);
|
||||
end.setDate(end.getDate() + 6);
|
||||
$("#endTime").val(formatTime(end));
|
||||
}
|
||||
|
||||
return formatTime(start);
|
||||
}else if(interval == '天'){
|
||||
var start = new Date(year, month - 1, date);
|
||||
return formatTime(start);
|
||||
}
|
||||
|
||||
var startTime = year + sep + month + sep + date;
|
||||
return startTime;
|
||||
}
|
||||
Reference in New Issue
Block a user