var filtUndefined = function(data) {
var ret = [];
for (var i = 0; i < data.length; i++) {
try {
var obj = JSON.parse(data[i]);
ret.push(obj);
} catch (e) {
}
}
return ret;
};
var dtLocalLang = {
"sProcessing" : "处理中...",
"lengthMenu" : '显示 项结果',
"sZeroRecords" : "没有匹配结果",
"sInfo" : "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
"sInfoEmpty" : "显示第 0 至 0 项结果,共 0 项",
"sInfoFiltered" : "(由 _MAX_ 项结果过滤)",
"sInfoPostFix" : "",
"sSearch" : "搜索:",
"sUrl" : "",
"sEmptyTable" : "表中数据为空",
"sLoadingRecords" : "载入中...",
"sInfoThousands" : ",",
"oPaginate" : {
"sFirst" : "首页",
"sPrevious" : "上页",
"sNext" : "下页",
"sLast" : "末页"
},
"oAria" : {
"sSortAscending" : ": 以升序排列此列",
"sSortDescending" : ": 以降序排列此列"
}
};
var nodeLogActionToCategory = function(action) {
switch (action) {
case 'getNodeSessionID':
case 'login':
case 'getNodeRole':
return "登录类";
case 'listAllAuthRole':
case 'listUnAuthRole':
case 'countRole':
case 'applyNodeRole':
case 'authNodeRole':
case 'deleteRole':
return "用户类";
case 'listLocalNodeLog':
case 'listLocalContractLog':
case 'listLocalNodeLogPie':
case 'listLocalNodeLogLine':
case 'listLocalContractLogPie':
case 'listLocalContractLogLine':
case 'onGetHashCount':
case 'onQueryDataByHash':
return "日志类";
case 'loadNodeConfig':
case 'updateLicence':
case 'listNodes':
case 'changeNodeName':
case 'changeYJSPath':
case 'changeNodeCenter':
case 'getPeerID':
case 'getNodeID':
case 'uploadLicence':
case 'connectTo':
return "维护类";
case 'startContract':
case 'initcodeManage':
case 'listContractProcess':
case 'startContractBatched':
case 'startContractConfig':
case 'killContractProcess':
case 'killAllContract':
case 'switchProject':
case 'stopContract':
case 'staticVerify':
case 'staticVerifyContractByPath':
case 'executeContract':
case 'dumpContract':
case 'loadMemory':
case 'changeDumpPeriod':
case 'getDumpPeriod':
case 'startSync':
case 'stopSync':
case 'changeSyncType':
case 'getSyncType':
case 'recoverBySync':
return "合约类";
case 'deleteFile':
case 'uploadFile':
case 'downloadContract':
case 'listProjects':
case 'listProject':
case 'listFile':
case 'createFile':
case 'uploadRequest':
case 'changePublic':
case 'listMemoryFiles':
case 'saveFile':
return "文件类";
default:{
console.log(action);
return "其他类";
}
}
};
var drawLocalNodeLogPie = function(data) {
$("#auditLocalNodeLogPie")
.html(
"
");
var result = {};
for (var i = 0; i < data.length; i++) {
var obj = JSON.parse(data[i]);
var ca = nodeLogActionToCategory(obj.action);
if (result[ca] == undefined) {
result[ca] = obj.times;
} else
result[ca] += obj.times;
}
global.result = result;
var dataList = [];
var valDataList = [];
for ( var key in result) {
dataList.push(key);
var l = {};
l.name = key
l.value = result[key];
valDataList.push(l);
}
var myChart = echarts.init($("#auditLocalNodeLogDivCanv")[0],'walden');
var option222 = {
tooltip : {
trigger : 'item',
formatter : '{a} {b}: {c} ({d}%)'
},
legend : {
orient : 'vertical',
left : 10,
data : dataList
},
series : [ {
name : '访问操作',
type : 'pie',
radius : [ '50%', '70%' ],
avoidLabelOverlap : false,
label : {
normal : {
show : false,
position : 'center'
},
emphasis : {
show : true,
textStyle : {
fontSize : '15',
fontWeight : 'bold'
}
}
},
labelLine : {
normal : {
show : false
}
},
data : valDataList
} ]
};
myChart.setOption(option222);
};
var contractLogActionToCategory = function(action) {
switch (action) {
case 'startContract':
return "启动";
case 'stopContract':
return "终止";
case 'staticVerify':
return "静态分析";
case 'executeContract':
return "执行";
case 'changeDumpPeriod':
case 'getDumpPeriod':
case 'loadMemory':
case 'dumpContract':
case 'startSync':
case 'stopSync':
case 'changeSyncType':
case 'getSyncType':
case 'recoverBySync':
return "同步机制";
default:
console.log(action);
return "其他类";
}
};
var drawLocalContractLogPie = function(data) {
$("#auditLocalContractLogPie")
.html(
"");
var result = {};
for (var i in data) {
var ca = contractLogActionToCategory(i);
if (result[ca] == undefined) {
result[ca] = data[i];
} else
result[ca]+= data[i];
}
global.result = result;
var dataList = [];
var valDataList = [];
for ( var key in result) {
dataList.push(key);
var l = {};
l.name = key
l.value = result[key];
valDataList.push(l);
}
var myChart = echarts.init($("#auditLocalContractLogDivCanv")[0],'walden');
var option222 = {
tooltip : {
trigger : 'item',
formatter : '{a} {b}: {c} ({d}%)'
},
legend : {
orient : 'vertical',
left : 10,
data : dataList
},
series : [ {
name : '访问操作',
type : 'pie',
radius : [ '50%', '70%' ],
avoidLabelOverlap : false,
label : {
normal : {
show : false,
position : 'center'
},
emphasis : {
show : true,
textStyle : {
fontSize : '15',
fontWeight : 'bold'
}
}
},
labelLine : {
normal : {
show : false
}
},
data : valDataList
} ]
};
myChart.setOption(option222);
};
var auditConf = {
firstRowHeight : '200px'
};
var drawLocalNodeLogLine = function(id,data) {
if ($("#a" + id).css("height") == "0px") {
console.log("drawLogBar: ignore");
return;
}
$("#" + id).html(
"");
var myChart = echarts.init($("#" + id + "Canv")[0], 'walden');
var xAxisData = data.xAxis;
var data1 = data.yAxis;
var option = {
title : {
subtext : '次数'
},
tooltip : {
trigger : 'axis'
},
legend : {
data : [ '操作次数' ],
y : 'bottom',
},
toolbox : {
show : true,
feature : {
dataZoom : {
yAxisIndex : 'none'
},
dataView : {
readOnly : false
},
magicType : {
type : [ 'line', 'bar' ]
},
restore : {},
saveAsImage : {}
}
},
xAxis : {
type : 'category',
boundaryGap : false,
data : xAxisData
},
yAxis : {
type : 'value',
axisLabel : {
formatter : '{value}次'
}
},
series : [ {
name : '操作次数',
type : 'line',
data : data1,
markPoint : {
data : [ {
type : 'max',
name : '最大值'
}, {
type : 'min',
name : '最小值'
} ]
},
} ]
};
myChart.setOption(option);
};
var drawLocalContractLogLine = function(id,data) {
if ($("#a" + id).css("height") == "0px") {
console.log("drawLogBar: ignore");
return;
}
$("#" + id).html(
"");
var myChart = echarts.init($("#" + id + "Canv")[0], 'walden');
var xAxisData = data.xAxis;
var data1 = data.yAxis;
var option = {
title : {
subtext : '次数'
},
tooltip : {
trigger : 'axis'
},
legend : {
data : [ '操作次数' ],
y : 'bottom',
},
toolbox : {
show : true,
feature : {
dataZoom : {
yAxisIndex : 'none'
},
dataView : {
readOnly : false
},
magicType : {
type : [ 'line', 'bar' ]
},
restore : {},
saveAsImage : {}
}
},
xAxis : {
type : 'category',
boundaryGap : false,
data : xAxisData
},
yAxis : {
type : 'value',
axisLabel : {
formatter : '{value}次'
}
},
series : [ {
name : '操作次数',
type : 'line',
data : data1,
markPoint : {
data : [ {
type : 'max',
name : '最大值'
}, {
type : 'min',
name : '最小值'
} ]
},
} ]
};
myChart.setOption(option);
};
var contractInstanceToCategory = function(action) {
switch (action) {
case 'Sole':
return "单点类型合约";
case 'RequestOnce':
case 'ResponseOnce':
case 'RequestAllResponseFirst':
case 'RequestAllResponseHalf':
case 'RequestAllResponseAll':
return "集群类型合约";
default:
return "其他类";
}
};
var drawContractInstanceTypeTimesPie = function(table) {
if ($("#ciTimesPieDiv").css("height") == "0px") {
console.log("drawContractInstanceTimesPie: ignore");
return;
}
$("#ciTimesPieDiv")
.html(
"");
var result = {};
for (var i = 0; i < table.length; i++) {
var obj = table[i];
var ca = contractInstanceToCategory(obj.type);
if (result[ca] == undefined) {
result[ca] = obj.times;
} else
result[ca] += obj.times;
}
global.result = result;
var dataList = [];
var valDataList = [];
for ( var key in result) {
dataList.push(key);
var l = {};
l.name = key
l.value = result[key];
valDataList.push(l);
}
var myChart = echarts.init($("#ciTimesPieDivCanv")[0], 'walden');
var option222 = {
tooltip : {
trigger : 'item',
formatter : '{a} {b}: {c} ({d}%)'
},
legend : {
orient : 'vertical',
left : 10,
data : dataList
},
series : [ {
name : '各类合约实例调用次数',
type : 'pie',
radius : [ '50%', '70%' ],
avoidLabelOverlap : false,
label : {
normal : {
show : false,
position : 'center'
},
emphasis : {
show : true,
textStyle : {
fontSize : '15',
fontWeight : 'bold'
}
}
},
labelLine : {
normal : {
show : false
}
},
data : valDataList
} ]
};
myChart.setOption(option222);
};