mirror of
https://gitee.com/lauix/HFish
synced 2025-05-10 20:08:12 +08:00
890 lines
30 KiB
Go
890 lines
30 KiB
Go
window.onresize = function () {
|
|
main1.resize();
|
|
main2.resize();
|
|
main3.resize();
|
|
main4.resize();
|
|
main5.resize();
|
|
main6.resize();
|
|
worldMap.resize();
|
|
};
|
|
|
|
var main1 = echarts.init(document.getElementById('main1'), 'dark');
|
|
var main2 = echarts.init(document.getElementById('main2'), 'dark');
|
|
var main3 = echarts.init(document.getElementById('main3'), 'dark');
|
|
var main4 = echarts.init(document.getElementById('main4'), 'dark');
|
|
var main5 = echarts.init(document.getElementById('main5'));
|
|
var main6 = echarts.init(document.getElementById('main6'));
|
|
var worldMap = echarts.init(document.getElementById('worldMap'));
|
|
|
|
|
|
function main1_data() {
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/data/get/china",
|
|
dataType: "json",
|
|
success: function (e) {
|
|
var d = e.data;
|
|
|
|
var listx = [];
|
|
|
|
for (var i = 0; i < d.regionList.length; i++) {
|
|
listx.push(d.regionList[i].name);
|
|
}
|
|
|
|
var option = {
|
|
tooltip: {
|
|
trigger: 'item',
|
|
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
|
},
|
|
legend: {
|
|
bottom: 10,
|
|
left: 'center',
|
|
data: listx,
|
|
textStyle: {
|
|
color: "#fff"
|
|
}
|
|
},
|
|
series: [{
|
|
name: '来源地区',
|
|
type: 'pie',
|
|
radius: '60%',
|
|
center: ['50%', '40%'],
|
|
label: {
|
|
normal: {
|
|
show: false,
|
|
position: 'center'
|
|
}
|
|
},
|
|
data: d.regionList,
|
|
itemStyle: {
|
|
emphasis: {
|
|
shadowBlur: 10,
|
|
shadowOffsetX: 0,
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
}
|
|
}
|
|
}]
|
|
};
|
|
|
|
|
|
main1.setOption(option);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function main2_data() {
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/data/get/country",
|
|
dataType: "json",
|
|
success: function (e) {
|
|
var d = e.data;
|
|
|
|
var listx = [];
|
|
|
|
for (var i = 0; i < d.regionList.length; i++) {
|
|
listx.push(d.regionList[i].name);
|
|
}
|
|
|
|
var option = {
|
|
tooltip: {
|
|
trigger: 'item',
|
|
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
|
},
|
|
legend: {
|
|
bottom: 10,
|
|
left: 'center',
|
|
data: listx,
|
|
textStyle: {
|
|
color: "#fff"
|
|
}
|
|
},
|
|
series: [{
|
|
name: '来源国家',
|
|
type: 'pie',
|
|
radius: '60%',
|
|
center: ['50%', '40%'],
|
|
label: {
|
|
normal: {
|
|
show: false,
|
|
position: 'center'
|
|
}
|
|
},
|
|
data: d.regionList,
|
|
itemStyle: {
|
|
emphasis: {
|
|
shadowBlur: 10,
|
|
shadowOffsetX: 0,
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
}
|
|
}
|
|
}]
|
|
};
|
|
|
|
main2.setOption(option);
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
|
|
function main3_data() {
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/data/get/ip",
|
|
dataType: "json",
|
|
success: function (e) {
|
|
var d = e.data;
|
|
|
|
var option = {
|
|
tooltip: {
|
|
trigger: 'item',
|
|
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
|
},
|
|
series: [{
|
|
name: 'IP分布',
|
|
type: 'pie',
|
|
radius: '30%',
|
|
center: ['50%', '50%'],
|
|
data: d.ipList,
|
|
itemStyle: {
|
|
emphasis: {
|
|
shadowBlur: 10,
|
|
shadowOffsetX: 0,
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
}
|
|
}
|
|
}]
|
|
};
|
|
|
|
main3.setOption(option);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function main4_data() {
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/data/get/type",
|
|
dataType: "json",
|
|
success: function (e) {
|
|
var d = e.data;
|
|
|
|
var dataN = [];
|
|
var dataV = [];
|
|
|
|
for (var i = d.typeList.length - 1; i >= 0; i--) {
|
|
dataN.push(d.typeList[i].name);
|
|
dataV.push(d.typeList[i].value);
|
|
}
|
|
|
|
var option = {
|
|
tooltip: {},
|
|
xAxis: {
|
|
type: 'value',
|
|
show: false
|
|
},
|
|
yAxis: {
|
|
type: 'category',
|
|
data: dataN,
|
|
axisLine: {
|
|
lineStyle: {
|
|
color: '#67c8fd'
|
|
}
|
|
}
|
|
},
|
|
grid: {
|
|
left: '0%',
|
|
right: '0%',
|
|
bottom: '0%',
|
|
top: '3%',
|
|
containLabel: true
|
|
},
|
|
series: [{
|
|
data: dataV,
|
|
type: 'bar',
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
position: 'inside',
|
|
color: '#fff'
|
|
}
|
|
},
|
|
itemStyle: {
|
|
normal: {
|
|
color: '#49b2c0'
|
|
}
|
|
}
|
|
}]
|
|
};
|
|
|
|
main4.setOption(option);
|
|
}
|
|
});
|
|
}
|
|
|
|
function main5_data() {
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/data/get/account",
|
|
dataType: "json",
|
|
success: function (e) {
|
|
var d = e.data;
|
|
|
|
var option = {
|
|
|
|
tooltip: {
|
|
show: true
|
|
},
|
|
series: [{
|
|
name: '账号',
|
|
type: "wordCloud",
|
|
gridSize: 6,
|
|
shape: 'circle',
|
|
sizeRange: [12, 50],
|
|
width: '100%',
|
|
height: '80%',
|
|
textStyle: {
|
|
normal: {
|
|
color: function () {
|
|
return 'rgb(' + [
|
|
Math.round(Math.random() * 160),
|
|
Math.round(Math.random() * 160),
|
|
Math.round(Math.random() * 160)
|
|
].join(',') + ')';
|
|
}
|
|
},
|
|
emphasis: {
|
|
shadowBlur: 10,
|
|
shadowColor: '#333'
|
|
}
|
|
},
|
|
data: d
|
|
}]
|
|
|
|
};
|
|
|
|
main5.setOption(option);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function main6_data() {
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/data/get/password",
|
|
dataType: "json",
|
|
success: function (e) {
|
|
var d = e.data;
|
|
|
|
var option = {
|
|
|
|
tooltip: {
|
|
show: true
|
|
},
|
|
series: [{
|
|
name: '密码',
|
|
type: "wordCloud",
|
|
gridSize: 6,
|
|
shape: 'circle',
|
|
sizeRange: [12, 50],
|
|
width: '100%',
|
|
height: '80%',
|
|
textStyle: {
|
|
normal: {
|
|
color: function () {
|
|
return 'rgb(' + [
|
|
Math.round(Math.random() * 160),
|
|
Math.round(Math.random() * 160),
|
|
Math.round(Math.random() * 160)
|
|
].join(',') + ')';
|
|
}
|
|
},
|
|
emphasis: {
|
|
shadowBlur: 10,
|
|
shadowColor: '#333'
|
|
}
|
|
},
|
|
data: d
|
|
}]
|
|
|
|
};
|
|
|
|
main6.setOption(option);
|
|
}
|
|
});
|
|
}
|
|
|
|
function mainInfo() {
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/data/get/info",
|
|
dataType: "json",
|
|
success: function (e) {
|
|
var d = e.data;
|
|
|
|
var _h = '';
|
|
|
|
var result = d.result;
|
|
for (var i = 0; i < result.length; i++) {
|
|
_h += ' <tr class="data_list">';
|
|
_h += ' <td>' + filterXSS(result[i].type) + '</td>';
|
|
_h += ' <td>' + filterXSS(result[i].agent) + '</td>';
|
|
_h += ' <td>' + filterXSS(result[i].ip) + '</td>';
|
|
_h += ' <td>' + filterXSS(result[i].country) + ' ' + filterXSS(result[i].region) + '</td>';
|
|
_h += ' <td>' + filterXSS(formatDate(result[i].create_time)).split(" ")[1] + '</td>';
|
|
_h += ' </tr>';
|
|
}
|
|
|
|
$("#info_list").append(_h);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function mainWs() {
|
|
var wsuri = "ws://" + window.location.host + "/data/ws";
|
|
var sock = new WebSocket(wsuri);
|
|
|
|
sock.onopen = function () {
|
|
console.log("connected to " + wsuri);
|
|
};
|
|
|
|
sock.onclose = function (e) {
|
|
console.log("connection closed (" + e.code + ")");
|
|
};
|
|
|
|
sock.onmessage = function (e) {
|
|
var data = JSON.parse(e.data);
|
|
|
|
if (data.data.type === "center_data") {
|
|
var d = data.data.data;
|
|
|
|
var _h = '';
|
|
|
|
_h += ' <tr class="data_list">';
|
|
_h += ' <td>' + filterXSS(d.type) + '</td>';
|
|
_h += ' <td>' + filterXSS(d.agent) + '</td>';
|
|
_h += ' <td>' + filterXSS(d.ipx) + '</td>';
|
|
_h += ' <td>' + filterXSS(d.country) + ' ' + filterXSS(d.region) + '</td>';
|
|
_h += ' <td>' + filterXSS(formatDate(d.time)).split(" ")[1] + '</td>';
|
|
_h += ' </tr>';
|
|
|
|
$(".data_list").before(_h);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
function main7_data() {
|
|
|
|
function randomData() {
|
|
return Math.round(Math.random() * 300);
|
|
}
|
|
|
|
var geoCoordMap = {
|
|
"阿富汗": [67.709953, 33.93911],
|
|
"安哥拉": [17.873887, -11.202692],
|
|
"阿尔巴尼亚": [20.168331, 41.153332],
|
|
"阿联酋": [53.847818, 23.424076],
|
|
"阿根廷": [-63.61667199999999, -38.416097],
|
|
"亚美尼亚": [45.038189, 40.069099],
|
|
"法属南半球和南极领地": [69.348557, -49.280366],
|
|
"澳大利亚": [133.775136, -25.274398],
|
|
"奥地利": [14.550072, 47.516231],
|
|
"阿塞拜疆": [47.576927, 40.143105],
|
|
"布隆迪": [29.918886, -3.373056],
|
|
"比利时": [4.469936, 50.503887],
|
|
"贝宁": [2.315834, 9.30769],
|
|
"布基纳法索": [-1.561593, 12.238333],
|
|
"孟加拉国": [90.356331, 23.684994],
|
|
"保加利亚": [25.48583, 42.733883],
|
|
"巴哈马": [-77.39627999999999, 25.03428],
|
|
"波斯尼亚和黑塞哥维那": [17.679076, 43.915886],
|
|
"白俄罗斯": [27.953389, 53.709807],
|
|
"伯利兹": [-88.49765, 17.189877],
|
|
"百慕大": [-64.7505, 32.3078],
|
|
"玻利维亚": [-63.58865299999999, -16.290154],
|
|
"巴西": [-51.92528, -14.235004],
|
|
"文莱": [114.727669, 4.535277],
|
|
"不丹": [90.433601, 27.514162],
|
|
"博茨瓦纳": [24.684866, -22.328474],
|
|
"中非共和国": [20.939444, 6.611110999999999],
|
|
"加拿大": [-106.346771, 56.130366],
|
|
"瑞士": [8.227511999999999, 46.818188],
|
|
"智利": [-71.542969, -35.675147],
|
|
"中国": [104.195397, 35.86166],
|
|
"象牙海岸": [-5.547079999999999, 7.539988999999999],
|
|
"喀麦隆": [12.354722, 7.369721999999999],
|
|
"刚果民主共和国": [21.758664, -4.038333],
|
|
"刚果共和国": [15.827659, -0.228021],
|
|
"哥伦比亚": [-74.297333, 4.570868],
|
|
"哥斯达黎加": [-83.753428, 9.748916999999999],
|
|
"古巴": [-77.781167, 21.521757],
|
|
"北塞浦路斯": [33.429859, 35.126413],
|
|
"塞浦路斯": [33.429859, 35.126413],
|
|
"捷克共和国": [15.472962, 49.81749199999999],
|
|
"德国": [10.451526, 51.165691],
|
|
"吉布提": [42.590275, 11.825138],
|
|
"丹麦": [9.501785, 56.26392],
|
|
"多明尼加共和国": [-70.162651, 18.735693],
|
|
"阿尔及利亚": [1.659626, 28.033886],
|
|
"厄瓜多尔": [-78.18340599999999, -1.831239],
|
|
"埃及": [30.802498, 26.820553],
|
|
"厄立特里亚": [39.782334, 15.179384],
|
|
"西班牙": [-3.74922, 40.46366700000001],
|
|
"爱沙尼亚": [25.013607, 58.595272],
|
|
"埃塞俄比亚": [40.489673, 9.145000000000001],
|
|
"芬兰": [25.748151, 61.92410999999999],
|
|
"斐": [178.065032, -17.713371],
|
|
"福克兰群岛": [-59.523613, -51.796253],
|
|
"法国": [2.213749, 46.227638],
|
|
"加蓬": [11.609444, -0.803689],
|
|
"英国": [-3.435973, 55.378051],
|
|
"格鲁吉亚": [-82.9000751, 32.1656221],
|
|
"加纳": [-1.023194, 7.946527],
|
|
"几内亚": [-9.696645, 9.945587],
|
|
"冈比亚": [-15.310139, 13.443182],
|
|
"几内亚比绍": [-15.180413, 11.803749],
|
|
"赤道几内亚": [10.267895, 1.650801],
|
|
"希腊": [21.824312, 39.074208],
|
|
"格陵兰": [-42.604303, 71.706936],
|
|
"危地马拉": [-90.23075899999999, 15.783471],
|
|
"法属圭亚那": [-53.125782, 3.933889],
|
|
"圭亚那": [-58.93018, 4.860416],
|
|
"洪都拉斯": [-86.241905, 15.199999],
|
|
"克罗地亚": [15.2, 45.1],
|
|
"海地": [-72.285215, 18.971187],
|
|
"匈牙利": [19.503304, 47.162494],
|
|
"印尼": [113.921327, -0.789275],
|
|
"印度": [78.96288, 20.593684],
|
|
"爱尔兰": [-8.24389, 53.41291],
|
|
"伊朗": [53.688046, 32.427908],
|
|
"伊拉克": [43.679291, 33.223191],
|
|
"冰岛": [-19.020835, 64.963051],
|
|
"以色列": [34.851612, 31.046051],
|
|
"意大利": [12.56738, 41.87194],
|
|
"牙买加": [-77.297508, 18.109581],
|
|
"约旦": [36.238414, 30.585164],
|
|
"日本": [138.252924, 36.204824],
|
|
"哈萨克斯坦": [66.923684, 48.019573],
|
|
"肯尼亚": [37.906193, -0.023559],
|
|
"吉尔吉斯斯坦": [74.766098, 41.20438],
|
|
"柬埔寨": [104.990963, 12.565679],
|
|
"韩国": [127.766922, 35.907757],
|
|
"科索沃": [20.902977, 42.6026359],
|
|
"科威特": [47.481766, 29.31166],
|
|
"老挝": [102.495496, 19.85627],
|
|
"黎巴嫩": [35.862285, 33.854721],
|
|
"利比里亚": [-9.429499000000002, 6.428055],
|
|
"利比亚": [17.228331, 26.3351],
|
|
"斯里兰卡": [80.77179699999999, 7.873053999999999],
|
|
"莱索托": [28.233608, -29.609988],
|
|
"立陶宛": [23.881275, 55.169438],
|
|
"卢森堡": [6.129582999999999, 49.815273],
|
|
"拉脱维亚": [24.603189, 56.879635],
|
|
"摩洛哥": [-7.092619999999999, 31.791702],
|
|
"摩尔多瓦": [28.369885, 47.411631],
|
|
"马达加斯加": [46.869107, -18.766947],
|
|
"墨西哥": [-102.552784, 23.634501],
|
|
"马其顿": [21.745275, 41.608635],
|
|
"马里": [-3.996166, 17.570692],
|
|
"缅甸": [95.956223, 21.913965],
|
|
"黑山": [19.37439, 42.708678],
|
|
"蒙古": [103.846656, 46.862496],
|
|
"莫桑比克": [35.529562, -18.665695],
|
|
"毛里塔尼亚": [-10.940835, 21.00789],
|
|
"马拉维": [34.301525, -13.254308],
|
|
"马来西亚": [101.975766, 4.210484],
|
|
"纳米比亚": [18.49041, -22.95764],
|
|
"新喀里多尼亚": [165.618042, -20.904305],
|
|
"尼日尔": [8.081666, 17.607789],
|
|
"尼日利亚": [8.675277, 9.081999],
|
|
"尼加拉瓜": [-85.207229, 12.865416],
|
|
"荷兰": [5.291265999999999, 52.132633],
|
|
"挪威": [8.468945999999999, 60.47202399999999],
|
|
"尼泊尔": [84.12400799999999, 28.394857],
|
|
"新西兰": [174.885971, -40.900557],
|
|
"阿曼": [55.923255, 21.512583],
|
|
"巴基斯坦": [69.34511599999999, 30.375321],
|
|
"巴拿马": [-80.782127, 8.537981],
|
|
"秘鲁": [-75.015152, -9.189967],
|
|
"菲律宾": [121.774017, 12.879721],
|
|
"巴布亚新几内亚": [143.95555, -6.314992999999999],
|
|
"波兰": [19.145136, 51.919438],
|
|
"波多黎各": [-66.590149, 18.220833],
|
|
"北朝鲜": [127.510093, 40.339852],
|
|
"葡萄牙": [-8.224454, 39.39987199999999],
|
|
"巴拉圭": [-58.443832, -23.442503],
|
|
"卡塔尔": [51.183884, 25.354826],
|
|
"罗马尼亚": [24.96676, 45.943161],
|
|
"俄罗斯": [105.318756, 61.52401],
|
|
"卢旺达": [29.873888, -1.940278],
|
|
"西撒哈拉": [-12.885834, 24.215527],
|
|
"沙特阿拉伯": [45.079162, 23.885942],
|
|
"苏丹": [30.217636, 12.862807],
|
|
"南苏丹": [31.3069788, 6.876991899999999],
|
|
"塞内加尔": [-14.452362, 14.497401],
|
|
"所罗门群岛": [160.156194, -9.64571],
|
|
"塞拉利昂": [-11.779889, 8.460555],
|
|
"萨尔瓦多": [-88.89653, 13.794185],
|
|
"索马里兰": [46.8252838, 9.411743399999999],
|
|
"索马里": [46.199616, 5.152149],
|
|
"塞尔维亚共和国": [21.005859, 44.016521],
|
|
"苏里南": [-56.027783, 3.919305],
|
|
"斯洛伐克": [19.699024, 48.669026],
|
|
"斯洛文尼亚": [14.995463, 46.151241],
|
|
"瑞典": [18.643501, 60.12816100000001],
|
|
"斯威士兰": [31.465866, -26.522503],
|
|
"叙利亚": [38.996815, 34.80207499999999],
|
|
"乍得": [18.732207, 15.454166],
|
|
"多哥": [0.824782, 8.619543],
|
|
"泰国": [100.992541, 15.870032],
|
|
"塔吉克斯坦": [71.276093, 38.861034],
|
|
"土库曼斯坦": [59.556278, 38.969719],
|
|
"东帝汶": [125.727539, -8.874217],
|
|
"特里尼达和多巴哥": [-61.222503, 10.691803],
|
|
"突尼斯": [9.537499, 33.886917],
|
|
"土耳其": [35.243322, 38.963745],
|
|
"坦桑尼亚联合共和国": [34.888822, -6.369028],
|
|
"乌干达": [32.290275, 1.373333],
|
|
"乌克兰": [31.16558, 48.379433],
|
|
"乌拉圭": [-55.765835, -32.522779],
|
|
"美国": [-95.712891, 37.09024],
|
|
"乌兹别克斯坦": [64.585262, 41.377491],
|
|
"委内瑞拉": [-66.58973, 6.42375],
|
|
"越南": [108.277199, 14.058324],
|
|
"瓦努阿图": [166.959158, -15.376706],
|
|
"西岸": [35.3027226, 31.9465703],
|
|
"也门": [48.516388, 15.552727],
|
|
"南非": [22.937506, -30.559482],
|
|
"赞比亚": [27.849332, -13.133897],
|
|
"津巴布韦": [29.154857, -19.015438],
|
|
'新疆': [87.500966, 43.983832],
|
|
'西藏': [90.959657, 29.881987],
|
|
'青海': [101.703679, 36.733408],
|
|
'甘肃': [103.764176, 36.198433],
|
|
'内蒙古': [111.711808, 40.98898],
|
|
'宁夏': [106.192619, 38.605171],
|
|
'四川': [103.984944, 30.712171],
|
|
'云南': [102.733927, 25.025991],
|
|
'陕西': [112.521289, 38.025365],
|
|
'山西': [108.84183, 34.510421],
|
|
'重庆': [106.413387, 29.689402],
|
|
'贵州': [106.560565, 26.756654],
|
|
'广西': [108.326706, 22.99805],
|
|
'海南': [110.129641, 20.14162],
|
|
'广东': [113.183592, 23.202287],
|
|
'澳门': [113.551538, 22.109432],
|
|
'香港': [114.066662, 22.588638],
|
|
'台湾': [121.49917, 25.12653],
|
|
'福建': [119.107522, 26.193691],
|
|
'江西': [115.722419, 28.882959],
|
|
'湖南': [112.778851, 28.363482],
|
|
'湖北': [114.177046, 30.743959],
|
|
'安徽': [117.120614, 31.943998],
|
|
'浙江': [119.990592, 30.361806],
|
|
'江苏': [118.665986, 32.194658],
|
|
'河南': [113.441154, 34.8448],
|
|
'山东': [116.973435, 36.763019],
|
|
'上海': [121.315197, 31.314325],
|
|
'河北': [114.397814, 38.170754],
|
|
'天津': [117.194203, 39.180291],
|
|
'北京': [116.384722, 39.977552],
|
|
'辽宁': [123.412489, 41.875105],
|
|
'吉林': [125.252219, 43.850841],
|
|
'黑龙江': [126.503235, 45.865719]
|
|
};
|
|
|
|
var convertData = function (data) {
|
|
var res = [];
|
|
for (var i = 0; i < data.length; i++) {
|
|
var dataItem = data[i];
|
|
var fromCoord = geoCoordMap[dataItem[0].name];
|
|
var toCoord = geoCoordMap[dataItem[1].name];
|
|
if (fromCoord && toCoord) {
|
|
res.push([{
|
|
coord: fromCoord,
|
|
value: dataItem[0].value
|
|
},
|
|
{
|
|
coord: toCoord
|
|
}
|
|
]);
|
|
}
|
|
}
|
|
return res;
|
|
};
|
|
|
|
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/data/get/word",
|
|
dataType: "json",
|
|
success: function (e) {
|
|
var d = e.data;
|
|
|
|
var geoCoordArry = [];
|
|
for (var item in geoCoordMap) {
|
|
geoCoordArry.push(item);
|
|
}
|
|
|
|
var attckData = [];
|
|
for (var i = 0; i < d.length; i++) {
|
|
|
|
if (geoCoordArry.indexOf(d[i].name) > -1) {
|
|
var acctckJson = [
|
|
{
|
|
"name": d[i].name,
|
|
"value": d[i].value
|
|
},
|
|
{
|
|
"name": attckCity
|
|
}
|
|
];
|
|
|
|
attckData.push(acctckJson)
|
|
}
|
|
}
|
|
|
|
var series = [];
|
|
[
|
|
[attckCity, attckData]
|
|
].forEach(function (item, i) {
|
|
series.push({
|
|
name: '攻击线1',
|
|
type: "lines",
|
|
zlevel: 2,
|
|
effect: {
|
|
show: true,
|
|
color: "#0bc7f3",
|
|
period: 4, //箭头指向速度,值越小速度越快
|
|
trailLength: 0.02, //特效尾迹长度[0,1]值越大,尾迹越长重
|
|
symbol: "arrow", //箭头图标
|
|
symbolSize: 5 //图标大小
|
|
},
|
|
lineStyle: {
|
|
normal: {
|
|
color: '#0bc7f3',
|
|
width: 1, //尾迹线条宽度
|
|
opacity: 0, //尾迹线条透明度
|
|
curveness: 0.3 //尾迹线条曲直度
|
|
}
|
|
},
|
|
data: convertData(item[1])
|
|
}, {
|
|
type: "effectScatter",
|
|
coordinateSystem: "geo",
|
|
zlevel: 2,
|
|
rippleEffect: {
|
|
//涟漪特效
|
|
period: 4, //动画时间,值越小速度越快
|
|
brushType: "stroke", //波纹绘制方式 stroke, fill
|
|
scale: 4 //波纹圆环最大限制,值越大波纹越大
|
|
},
|
|
symbol: "circle",
|
|
symbolSize: function (val) {
|
|
return 4 + val[2] / 1000; //圆环大小
|
|
},
|
|
itemStyle: {
|
|
normal: {
|
|
show: true,
|
|
},
|
|
emphasis: {
|
|
show: true,
|
|
color: "#FF6A6A"
|
|
}
|
|
},
|
|
data: item[1].map(function (dataItem) {
|
|
return {
|
|
name: dataItem[0].name,
|
|
value: geoCoordMap[dataItem[0].name].concat([dataItem[0].value])
|
|
};
|
|
})
|
|
},
|
|
//被攻击点
|
|
{
|
|
type: "scatter",
|
|
coordinateSystem: "geo",
|
|
zlevel: 2,
|
|
rippleEffect: {
|
|
period: 4,
|
|
brushType: "stroke",
|
|
scale: 4
|
|
},
|
|
label: {
|
|
normal: {
|
|
show: true,
|
|
color: "red",
|
|
position: "right",
|
|
formatter: "{b}",
|
|
},
|
|
emphasis: {
|
|
show: true,
|
|
color: "#FF6A6A"
|
|
}
|
|
},
|
|
symbol: "pin",
|
|
symbolSize: 25,
|
|
itemStyle: {
|
|
normal: {
|
|
show: true,
|
|
color: "red",
|
|
},
|
|
emphasis: {
|
|
show: true,
|
|
color: "#FF6A6A"
|
|
}
|
|
},
|
|
data: [{
|
|
name: item[0],
|
|
value: geoCoordMap[item[0]].concat([100]),
|
|
visualMap: false
|
|
}]
|
|
}
|
|
);
|
|
});
|
|
|
|
var worldMapOpt = {
|
|
tooltip: {
|
|
trigger: "item",
|
|
backgroundColor: "#1540a1",
|
|
borderColor: "#FFFFCC",
|
|
showDelay: 0,
|
|
hideDelay: 0,
|
|
enterable: true,
|
|
transitionDuration: 0,
|
|
extraCssText: "z-index:100",
|
|
formatter: function (params, ticket, callback) {
|
|
var res = "";
|
|
var name = params.name;
|
|
var value = typeof(params.value[params.seriesIndex + 1]) == "undefined" ? 0 : params.value[params.seriesIndex + 1];
|
|
res =
|
|
"<span style='color:#fff;'>" +
|
|
name +
|
|
"</span><br/>数据:" +
|
|
value;
|
|
return res;
|
|
}
|
|
},
|
|
visualMap: {
|
|
//图例值控制
|
|
show: false,
|
|
type: 'piecewise',
|
|
pieces: [{
|
|
max: 80,
|
|
color: '#00e200'
|
|
},
|
|
{
|
|
min: 80,
|
|
max: 120,
|
|
color: '#f5ff00'
|
|
},
|
|
{
|
|
min: 120,
|
|
color: '#ff0500'
|
|
}
|
|
],
|
|
calculable: true
|
|
},
|
|
geo: {
|
|
map: "world",
|
|
show: true,
|
|
label: {
|
|
emphasis: {
|
|
show: false
|
|
}
|
|
},
|
|
roam: true,
|
|
layoutCenter: ["50%", "50%"], //地图位置
|
|
layoutSize: "190%",
|
|
itemStyle: {
|
|
normal: {
|
|
show: 'true',
|
|
color: "#04284e", //地图背景色
|
|
borderColor: "#5bc1c9" //省市边界线
|
|
},
|
|
emphasis: {
|
|
show: 'true',
|
|
color: "rgba(37, 43, 61, .5)" //悬浮背景
|
|
}
|
|
}
|
|
},
|
|
legend: {
|
|
orient: 'vertical',
|
|
top: '30',
|
|
left: 'center',
|
|
align: 'right',
|
|
textStyle: {
|
|
color: '#fff',
|
|
fontSize: 20
|
|
},
|
|
itemWidth: 50,
|
|
itemHeight: 30,
|
|
selectedMode: 'multiple'
|
|
},
|
|
series: series
|
|
};
|
|
|
|
worldMap.setOption(worldMapOpt);
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
function init_chart() {
|
|
main1_data();
|
|
main2_data();
|
|
main3_data();
|
|
main4_data();
|
|
main5_data();
|
|
main6_data();
|
|
main7_data();
|
|
}
|
|
|
|
init_chart();
|
|
mainInfo();
|
|
mainWs();
|
|
|
|
setInterval(init_chart, 60000);
|
|
|
|
// ==================================
|
|
|
|
function getTime() {
|
|
var date = new Date();
|
|
var year = date.getFullYear(); //年 ,从 Date 对象以四位数字返回年份
|
|
var month = date.getMonth() + 1; //月 ,从 Date 对象返回月份 (0 ~ 11) ,date.getMonth()比实际月份少 1 个月
|
|
var day = date.getDate(); //日 ,从 Date 对象返回一个月中的某一天 (1 ~ 31)
|
|
var hours = date.getHours(); //小时 ,返回 Date 对象的小时 (0 ~ 23)
|
|
var minutes = date.getMinutes(); //分钟 ,返回 Date 对象的分钟 (0 ~ 59)
|
|
var seconds = date.getSeconds(); //秒 ,返回 Date 对象的秒数 (0 ~ 59)
|
|
if (month >= 1 && month <= 9) {
|
|
month = "0" + month;
|
|
}
|
|
if (day >= 0 && day <= 9) {
|
|
day = "0" + day;
|
|
}
|
|
if (hours >= 0 && hours <= 9) {
|
|
hours = "0" + hours;
|
|
}
|
|
if (minutes >= 0 && minutes <= 9) {
|
|
minutes = "0" + minutes;
|
|
}
|
|
if (seconds >= 0 && seconds <= 9) {
|
|
seconds = "0" + seconds;
|
|
}
|
|
var currentFormatDate = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
|
|
|
|
$("#timex").text(currentFormatDate);
|
|
}
|
|
|
|
function formatDate(d) {
|
|
var datex = new Date(d).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '');
|
|
return datex
|
|
}
|
|
|
|
setInterval(getTime, 1000);
|