初始化项目

This commit is contained in:
root
2024-04-01 09:20:31 +08:00
commit fefd704e6e
4694 changed files with 1869737 additions and 0 deletions

View 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;
}

View 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
}

View 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);
}
})
}

File diff suppressed because it is too large Load Diff

View 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;
}

View File

@@ -0,0 +1,8 @@
function toHelper(parameter){
window.top.addTab('userhelp', '帮助中心');
window.setTimeout(function () {
window.top.document.getElementById('userhelp').contentWindow.zTreeOnAsyncSuccess(parameter);
},500)
}

View 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;
}

View 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;
}

View 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;
}

View 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);
}

View 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;
}

View 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>&nbsp;供电公司&nbsp;</label>&nbsp;' + lineMap.gdname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;变电站&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.subname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;&nbsp;母线&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.subvname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;IP地址&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.ip + '<br/>' +
'<label>&nbsp;&nbsp;PT变比&nbsp;&nbsp;</label>&nbsp;' + lineMap.pt1/1000 +'/'+ lineMap.pt2/1000 +'<br/>' +
'<label>&nbsp;&nbsp;CT变比&nbsp;&nbsp;</label>&nbsp;' + lineMap.ct1 +'/' + lineMap.ct2 + '<br/>' +
'<label>&nbsp;生产厂家&nbsp;</label>&nbsp;' + lineMap.manufacturer + '<br/>' +
'<label>&nbsp;终端状态&nbsp;</label>&nbsp;<font color="'+ fontState +'">' + strState + '</font><br/>' +
'<label>&nbsp;通讯状态&nbsp;</label>&nbsp;<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>&nbsp;供电公司&nbsp;</label>&nbsp;' + lineMap.gdname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;变电站&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.subname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;&nbsp;母线&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.subvname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;IP地址&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.ip + '<br/>' +
'<label>&nbsp;&nbsp;PT变比&nbsp;&nbsp;</label>&nbsp;' + lineMap.pt1/1000 +'/'+ lineMap.pt2/1000 +'<br/>' +
'<label>&nbsp;&nbsp;CT变比&nbsp;&nbsp;</label>&nbsp;' + lineMap.ct1 +'/'+ lineMap.ct2 + '<br/>' +
'<label>&nbsp;生产厂家&nbsp;</label>&nbsp;' + lineMap.manufacturer + '<br/>' +
'<label>&nbsp;终端状态&nbsp;</label>&nbsp;<font color="'+ fontState +'">' + strState + '</font><br/>' +
'<label>&nbsp;通讯状态&nbsp;</label>&nbsp;<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);
}
}
}

View 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
*/

View 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;
}