ChengDa_English/SGGL/FineUIPro.Web/common/main.aspx

996 lines
46 KiB
Plaintext
Raw Normal View History

2022-03-15 17:36:38 +08:00
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="main.aspx.cs" Inherits="FineUIPro.Web.common.main" %>
<!DOCTYPE html>
<html>
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="initial-scale=scale,maximum-scale=scale,minimum-scale=scale,user-scalable=no" />
<title>首页</title>
<link href="../res/indexv1/iconfont/iconfont.css" rel="stylesheet" />
<link href="../res/indexv1/css/video-7.15.0.min.css" rel="stylesheet" />
<link href="../res/indexv1/css/index1.css" rel="stylesheet" />
<style type="text/css">
html {
min-height: 700px;
}
</style>
</head>
<body>
<div class="sd-index1-body">
<div class="sd-body">
<div class="sd-body-left">
<div class="sd-section">
<div class="sd-section-title ellipsis">人员统计</div>
<div class="sd-section-content">
<div class="sd-section1-inner">
<div class="sd-user-calc">
<div class="sd-user-calc-left">
<div class="sd-user-calc-item">
<div class="sd-user-calc-label">
<span>管理人员</span>
</div>
<div class="sd-user-calc-value"><span class="sd-security-ratio-value--blue" runat="server" id="divGLPerson">0</span><span>个</span></div>
</div>
<div class="sd-user-calc-item">
<div class="sd-user-calc-label">
<span>作业人员</span>
</div>
<div class="sd-user-calc-value"><span class="sd-security-ratio-value--blue" runat="server" id="divZYPerson">0</span><span>个</span></div>
</div>
</div>
<div class="sd-user-calc-right">
<canvas id="circleId" data-value="0" class="sd-user-calc-circle" width="110" height="110"></canvas>
</div>
</div>
</div>
</div>
</div>
<div class="sd-section">
<div class="sd-section-title ellipsis">产值统计</div>
<div class="sd-section-content">
<div class="sd-section2-inner">
<div class="sd-output-box" id="outputId"></div>
</div>
</div>
</div>
<div class="sd-section">
<div class="sd-section-title ellipsis">进度统计</div>
<div class="sd-section-content sd-section-content-scroll">
<div class="sd-section3-inner" id='section3-inner-div'>
<div class="el-scrollbar">
<div class="sd-rate-list el-scrollbar__wrap">
</div>
<div class="el-scrollbar__bar is-vertical">
<div class="el-scrollbar__thumb" style="transform: translateY(0%); height: 20.5682%;"></div>
</div>
<div class="el-scrollbar__bar is-horizontal">
<div class="el-scrollbar__thumb" style="transform: translateX(0%);"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sd-body-center">
<div class="sd-body-menus">
<div class="sd-body-menu">
<div class="sd-body-menu-label">在建项目(个)</div>
<div class="sd-body-menu-value sd-body-menu-value--yellow" runat="server" id="divProjectNum">0</div>
</div>
<div class="sd-body-menu">
<div class="sd-body-menu-label">
<div class="sd-body-menu-label-first">年度累计</div>
<div class="sd-body-menu-label-sec">施工计划产值(亿元)</div>
</div>
<div class="sd-body-menu-value" runat="server" id="divYearPlanOutPutValue">--</div>
</div>
<div class="sd-body-menu">
<div class="sd-body-menu-label">
<div class="sd-body-menu-label-first">年度累计</div>
<div class="sd-body-menu-label-sec">施工实际产值(亿元)</div>
</div>
<div class="sd-body-menu-value" runat="server" id="divYearActualOutPutValue">--</div>
</div>
<div class="sd-body-menu">
<div class="sd-body-menu-label">
<div class="sd-body-menu-label-first">年度累计</div>
<div class="sd-body-menu-label-sec">签订合同额(亿元)</div>
</div>
<div class="sd-body-menu-value" runat="server" id="divHTAmount">0</div>
</div>
<div class="sd-body-menu">
<div class="sd-body-menu-label">
<div class="sd-body-menu-label-first">年度累计</div>
<div class="sd-body-menu-label-sec">施工分包合同(个)</div>
</div>
<div class="sd-body-menu-value sd-body-menu-value--yellow" runat="server" id="divHTNum">0</div>
</div>
</div>
<div class="sd-body-map">
<div class="sd-body-map-switch-btn"><span>中国地图</span><i class="iconfont icon-switch"></i></div>
<div class="js-echarts-map">
<div class="map">
<div class="sd-map" style="width: 100%; height: 650px;"></div>
</div>
</div>
</div>
</div>
<div class="sd-body-right">
<div class="sd-section">
<div class="sd-section-title ellipsis">安全统计</div>
<div class="sd-section-content">
<div class="sd-section4-inner">
<div class="sd-security">
<div class="sd-security-label">安全人工时</div>
<div class="sd-security-value" runat="server" id="divSafeWorkTime">0</div>
</div>
<div class="sd-security-ratios">
<div class="sd-security-ratio">
<div class="sd-security-ratio-value">
<span
class="sd-security-ratio-value--yellow" runat="server" id="divAllRectify">0</span><span>个</span>
</div>
<div class="sd-security-ratio-label">问题总数</div>
</div>
<div class="sd-security-ratio">
<div class="sd-security-ratio-value">
<span
class="sd-security-ratio-value--blue" runat="server" id="divRectifyRate">0</span><span>%</span>
</div>
<div class="sd-security-ratio-label">整改率</div>
</div>
</div>
</div>
</div>
</div>
<div class="sd-section">
<div class="sd-section-title ellipsis">质量统计</div>
<div class="sd-section-content">
<div class="sd-section5-inner">
<div class="sd-quality">
<div class="sd-quality-num">
问题总数<span runat="server" id="divCQMSAllNum">0</span><em>个</em>
</div>
</div>
<div class="sd-quality-circles">
<div class="sd-quality-circle">
<!-- <canvas id="circleId1" data-value="35.7" width="116" height="116"></canvas> -->
<canvas id="circleId1" data-value="0" width="100" height="100"></canvas>
<div class="sd-quality-circle-name">整改率</div>
</div>
<div class="sd-quality-circle">
<!-- <canvas id="circleId2" data-value="98.2" width="116" height="116"></canvas> -->
<canvas id="circleId2" data-value="0" width="100" height="100"></canvas>
<div class="sd-quality-circle-name">合格率</div>
</div>
</div>
</div>
</div>
</div>
<div class="sd-section">
<div class="sd-section-title ellipsis">视频监控</div>
<div class="sd-section-content">
<div class="sd-section6-inner">
<div class="sd-video-play">
<video preload="none" class="sd-video video-js vjs-big-play-centered" controls poster="">
<source src="https://c.sedin.com/sggl/FileUpload/HazardRegister/2021-08/9c174c0e-8beb-4b41-858b-4b29f66bde97.mp4">
</source>
</video>
<div class="sd-video-desc">
<span>实时线路线路1</span>
<span>2020-10-10 12:40:26</span>
</div>
</div>
<div class="sd-video-items">
<div class="sd-video-item">
<div class="sd-video-item-num sd-video-item-num--blue">6</div>
<div class="sd-video-item-desc">总数</div>
</div>
<div class="sd-video-item">
<div class="sd-video-item-num sd-video-item-num--green">4</div>
<div class="sd-video-item-desc">在线</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
<script type="text/javascript" src="../res/indexv1/js/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../res/indexv1/js/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="../res/indexv1/js/hScrollPane.js"></script>
<script type="text/javascript" src="../res/indexv1/js/echarts-5.2.0.min.js"></script>
<script type="text/javascript" src="../res/indexv1/js/video-7.15.0.min.js"></script>
<script type="text/javascript" src="../res/indexv1/js/draw-circle.js"></script>
<script type="text/javascript" src="../res/indexv1/js/china.js"></script>
<script type="text/javascript" src="../res/indexv1/js/world.js"></script>
<script type="text/javascript">
var onDutyRate = '<%=OnDutyRate %>'
var cRectificationRate = '<%=CRectificationRate %>'
var cQualifiedRate = '<%=CQualifiedRate %>'
function getValues() {
$('#circleId').attr('data-value', onDutyRate);
$('#circleId1').attr('data-value', cRectificationRate);
$('#circleId2').attr('data-value', cQualifiedRate);
}
getValues();
</script>
<script type="text/javascript">
var xAxisDataBarEchart = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
var monthPlanOutPutValue = JSON.parse('<%=MonthPlanOutPutValue %>')
var monthActualOutPutValue = JSON.parse('<%=MonthActualOutPutValue %>')
var seriesBarEchart =[
{
name: '计划值',
type: 'bar',
barWidth: 12,
data: monthPlanOutPutValue,
},
{
name: '实际值',
type: 'bar',
barWidth: 12,
data: monthActualOutPutValue,
},
]
function initBarEchart() {
var chartDom = document.getElementById('outputId');
var myChart = echarts.init(chartDom);
var option;
option = {
dataZoom: [{
type: 'slider',
show: true,
startValue: 0,
endValue: 5,
height: '3',
backgroundColor: 'rgba(47,69,84,0)',
fillerColor: 'rgba(47,69,84,0)',
bottom: '0%',
zoomLock: true,
moveOnMouseWheel: true,
brushSelect: true,
showDetail: false,
}],
color: ['#12CDA2', '#FFC277', '#00AAFF'],
grid: {
top: '5%',
left: '3%',
right: '1%',
bottom: '3%',
containLabel: true
},
tooltip: {
trigger: 'axis',
showDelay: 0,
axisPointer: {
type: 'shadow'
}
},
xAxis: {
data: xAxisDataBarEchart,
axisLabel: {
color: '#00beff',
},
axisTick: {
show: false,
},
axisLine: {
onZero: true,
lineStyle: {
color: '#00beff',
width: 1,
}
},
boundaryGap: true
},
yAxis: {
type: 'value',
axisLabel: {
show: true,
color: '#00beff',
},
axisTick: {
show: false,
},
splitLine: {
show: true,
lineStyle: {
type: 'dashed',
color: '#0D3C65',
},
},
splitNumber: 5,
},
series: seriesBarEchart
};
option && myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();
});
}
function initCircle() {
// 一个环形
var circleOneOption = {
drawing_elem: 'circleId',
bordercolor: '#12cda2',
borderwidth: 1,
percentfontsize: 22,
unitfontsize: 18,
lineWidth: 16,
addLeft: 4,
percentfontcolor: "#12cda2",
unitfontcolor: '#12cda2',
forecolor: '#12cda2',
unitadd: 1,
title: '在岗率',
titlefontcolor: '#12cda2',
titlefontsize: 9,
}
var $itemPW = $('.sd-section .sd-user-calc');
var itemPW = $itemPW.width()
var $itemPPW = $('.sd-section .sd-user-calc .sd-user-calc-left');
var itemPPW = $itemPPW.width()
var itemPPWPadding = ($itemPPW.innerWidth() - itemPPW) / 2
var itemPPWW = $('.sd-section .sd-user-calc .sd-user-calc-left .sd-user-calc-item').eq(0).innerWidth()
// 通过改变差值来决定圈的宽度,itemWMin为最新值
var itemW = (itemPW - itemPPWPadding - itemPPWW) / 3 * 2;
var itemWMin = 120
if (itemW > itemWMin) {
$('#circleId').attr('width', itemW).attr('height', itemW);
circleOneOption.percentfontsize = (itemW * 22 / itemWMin).toFixed() - 0
circleOneOption.unitfontsize = (itemW * 18 / itemWMin).toFixed() - 0
circleOneOption.titlefontsize = 16
}
console.log(itemPW, itemW, circleOneOption)
drawCircle(circleOneOption);
// 两个环形
var circleTwoOption = {
drawing_elem: 'circleId1',
percentfontsize: 22,
unitfontsize: 18,
lineWidth: 10,
addLeft: 4,
percentfontcolor: "#ffb260",
bgcolor: '#0F2164',
forecolor: '#ffb260',
unitfontcolor: '#1ab1ff',
lineGap: 'round',
unitadd: -1,
}
var $itemInner = $('.sd-section5-inner')
var $itemInnerTop = $('.sd-section5-inner .sd-quality')
var heightTemp = $itemInner.height() - $itemInnerTop.height()
var $itemTW = $('.sd-quality-circles');
var itemTW = ($itemTW.width() / 2 / 3 * 2).toFixed() - 20
var itemTH = $itemTW.height()
console.log(itemTW, heightTemp)
if (itemTW > heightTemp) {
itemTW = heightTemp
}
// 通过改变差值来决定圈的宽度
var itemW = itemTW
var itemWMin = 100
if (itemW > itemWMin) {
$('#circleId1').attr('width', itemW).attr('height', itemW);
circleTwoOption.percentfontsize = (itemW * 22 / itemWMin).toFixed() - 0
circleTwoOption.unitfontsize = (itemW * 18 / itemWMin).toFixed() - 0
}
var circleThreeOption = {
drawing_elem: 'circleId2',
percentfontsize: 22,
unitfontsize: 18,
lineWidth: 10,
addLeft: 4,
percentfontcolor: "#12cda2",
bgcolor: '#0F2164',
forecolor: '#12cda2',
unitfontcolor: '#1ab1ff',
lineGap: 'round',
unitadd: -1,
}
if (itemW > itemWMin) {
$('#circleId2').attr('width', itemW).attr('height', itemW);
circleThreeOption.percentfontsize = (itemW * 22 / itemWMin).toFixed() - 0
circleThreeOption.unitfontsize = (itemW * 18 / itemWMin).toFixed() - 0
}
console.log(itemTW, itemTH, itemW, circleThreeOption)
drawCircle(circleTwoOption);
drawCircle(circleThreeOption);
}
// 地图点
var mapProjectPoint = JSON.parse('<%=ProjectInfo %>')
function initMapEchart() {
// 1. 实例化对象
myMapChart = echarts.init(document.querySelector(".sd-map"));
// 2. 指定配置和数据
var chinaMapCoordCity = ["上海", "东莞", "东营", "中山", "临汾", "临沂", "丹东", "丽水", "乌鲁木齐", "佛山", "保定", "兰州", "包头", "北京", "北海", "南京", "南宁", "南昌", "南通"
, "厦门", "台州", "合肥", "呼和浩特", "咸阳", "哈尔滨", "唐山", "嘉兴", "大同", "大连", "天津", "太原", "威海", "宁波", "宝鸡"
, "宿迁", "常州", "广州", "廊坊", "延安", "张家口", "徐州", "德州", "惠州", "成都", "扬州", "承德", "拉萨", "无锡", "日照"
, "昆明", "杭州", "枣庄", "柳州", "株洲", "武汉", "汕头", "江门", "沈阳", "沧州", "河源", "泉州", "泰安", "泰州", "济南", "济宁"
, "海口", "淄博", "淮安", "深圳", "清远", "温州", "渭南", "湖州", "湘潭", "滨州", "潍坊", "烟台", "玉溪", "珠海", "盐城", "盘锦"
, "石家庄", "福州", "秦皇岛", "绍兴", "聊城", "肇庆", "舟山", "苏州", "莱芜", "菏泽", "营口", "葫芦岛", "衡水", "衢州", "西宁"
, "西安", "贵阳", "连云港", "邢台", '郑州', '鄂尔多斯', '重庆', '金华', '铜川', '银川', '镇江', '长春', '长沙', '长治', '阳泉', '青岛', '韶关']
var chinaMapCity = ["新疆", "内蒙古", "黑龙江", "吉林", '辽宁', '北京', '天津', '河北', '山西', '山东', '宁夏', '青海', '甘肃', '河南', '陕西', '江苏', '安徽'
, "湖北", "四川", "上海", "浙江", '西藏', '湖南', '重庆', '江西', '贵州', '云南', '福建', '台湾', '广东', '广西', '香港', '澳门', '海南', '南海诸岛']
var chinaMapCityColor = {
"新疆": '#D5EAFF',
"内蒙古": '#D5EAFF',
"黑龙江": '#D7EDE1',
"吉林": '#FEFFD8',
'辽宁': '#FEDDE8',
'北京': '#D7EDE1',
'天津': '#D7EDE1',
'河北': '#FEFFD8',
'山西': '#D7EDE1',
'山东': '#D7EDE1',
'宁夏': '#FEDDE8',
'青海': '#FEDDE8',
'甘肃': '#FEFFD8',
'河南': '#FEDDE8',
'陕西': '#FEDDE8',
'江苏': '#D5EAFF',
'安徽': '#FEDDE8',
"湖北": '#FEFFD8',
"四川": '#D7EDE1',
"上海": '#FEFFD8',
"浙江": '#FEDDE8',
'西藏': '#FEFFD8',
'湖南': '#D5EAFF',
'重庆': '#FEDDE8',
'江西': '#D7EDE1',
'贵州': '#FEFFD8',
'云南': '#FEDDE8',
'福建': '#D5EAFF',
'台湾': '#FEDDE8',
'广东': '#FEDDE8',
'广西': '#D7EDE1',
'香港': '#FEDDE8',
'澳门': '#FEDDE8',
'海南': '#FEDDE8',
'南海诸岛': '#EEEEEE'
}
// 2. 指定配置和数据
var geoCoordMap = {
上海: [121.4648, 31.2891],
东莞: [113.8953, 22.901],
东营: [118.7073, 37.5513],
中山: [113.4229, 22.478],
临汾: [111.4783, 36.1615],
临沂: [118.3118, 35.2936],
丹东: [124.541, 40.4242],
丽水: [119.5642, 28.1854],
乌鲁木齐: [87.9236, 43.5883],
佛山: [112.8955, 23.1097],
保定: [115.0488, 39.0948],
兰州: [103.5901, 36.3043],
包头: [110.3467, 41.4899],
北京: [116.4551, 40.2539],
北海: [109.314, 21.6211],
南京: [118.8062, 31.9208],
南宁: [108.479, 23.1152],
南昌: [116.0046, 28.6633],
南通: [121.1023, 32.1625],
厦门: [118.1689, 24.6478],
台州: [121.1353, 28.6688],
合肥: [117.29, 32.0581],
呼和浩特: [111.4124, 40.4901],
咸阳: [108.4131, 34.8706],
哈尔滨: [127.9688, 45.368],
唐山: [118.4766, 39.6826],
嘉兴: [120.9155, 30.6354],
大同: [113.7854, 39.8035],
大连: [122.2229, 39.4409],
天津: [117.4219, 39.4189],
太原: [112.3352, 37.9413],
威海: [121.9482, 37.1393],
宁波: [121.5967, 29.6466],
宝鸡: [107.1826, 34.3433],
宿迁: [118.5535, 33.7775],
常州: [119.4543, 31.5582],
广州: [113.5107, 23.2196],
廊坊: [116.521, 39.0509],
延安: [109.1052, 36.4252],
张家口: [115.1477, 40.8527],
徐州: [117.5208, 34.3268],
德州: [116.6858, 37.2107],
惠州: [114.6204, 23.1647],
成都: [103.9526, 30.7617],
扬州: [119.4653, 32.8162],
承德: [117.5757, 41.4075],
拉萨: [91.1865, 30.1465],
无锡: [120.3442, 31.5527],
日照: [119.2786, 35.5023],
昆明: [102.9199, 25.4663],
杭州: [119.5313, 29.8773],
枣庄: [117.323, 34.8926],
柳州: [109.3799, 24.9774],
株洲: [113.5327, 27.0319],
武汉: [114.3896, 30.6628],
汕头: [117.1692, 23.3405],
江门: [112.6318, 22.1484],
沈阳: [123.1238, 42.1216],
沧州: [116.8286, 38.2104],
河源: [114.917, 23.9722],
泉州: [118.3228, 25.1147],
泰安: [117.0264, 36.0516],
泰州: [120.0586, 32.5525],
济南: [117.1582, 36.8701],
济宁: [116.8286, 35.3375],
海口: [110.3893, 19.8516],
淄博: [118.0371, 36.6064],
淮安: [118.927, 33.4039],
深圳: [114.5435, 22.5439],
清远: [112.9175, 24.3292],
温州: [120.498, 27.8119],
渭南: [109.7864, 35.0299],
湖州: [119.8608, 30.7782],
湘潭: [112.5439, 27.7075],
滨州: [117.8174, 37.4963],
潍坊: [119.0918, 36.524],
烟台: [120.7397, 37.5128],
玉溪: [101.9312, 23.8898],
珠海: [113.7305, 22.1155],
盐城: [120.2234, 33.5577],
盘锦: [121.9482, 41.0449],
石家庄: [114.4995, 38.1006],
福州: [119.4543, 25.9222],
秦皇岛: [119.2126, 40.0232],
绍兴: [120.564, 29.7565],
聊城: [115.9167, 36.4032],
肇庆: [112.1265, 23.5822],
舟山: [122.2559, 30.2234],
苏州: [120.6519, 31.3989],
莱芜: [117.6526, 36.2714],
菏泽: [115.6201, 35.2057],
营口: [122.4316, 40.4297],
葫芦岛: [120.1575, 40.578],
衡水: [115.8838, 37.7161],
衢州: [118.6853, 28.8666],
西宁: [101.4038, 36.8207],
西安: [109.1162, 34.2004],
贵阳: [106.6992, 26.7682],
连云港: [119.1248, 34.552],
邢台: [114.8071, 37.2821],
邯郸: [114.4775, 36.535],
郑州: [113.4668, 34.6234],
鄂尔多斯: [108.9734, 39.2487],
重庆: [107.7539, 30.1904],
金华: [120.0037, 29.1028],
铜川: [109.0393, 35.1947],
银川: [106.3586, 38.1775],
镇江: [119.4763, 31.9702],
长春: [125.8154, 44.2584],
长沙: [113.0823, 28.2568],
长治: [112.8625, 36.4746],
阳泉: [113.4778, 38.0951],
青岛: [120.4651, 36.3373],
韶关: [113.7964, 24.7028],
};
var series = [
{
name: "china map",
type: "effectScatter",
coordinateSystem: "geo",
rippleEffect: {
brushType: "stroke",
},
itemStyle: {
normal: {
color: "#FFFC00",
},
},
data: mapProjectPoint
},
];
var regions = []
regions.push({
name: "南海诸岛",
itemStyle: {
normal: {
// opacity: 0,
},
},
label: {
color: "#ffffff"
}
})
//#region
for (var key in chinaMapCityColor) {
if (key == '南海诸岛') {
continue
}
regions.push({
name: key,
itemStyle: {
// areaColor: chinaMapCityColor[key],
// color: '#333333'
areaColor: '#2648A6',
//borderColor: chinaMapCityColor[key],
borderColor: 'rgba(8, 157, 212, 0.5)',
borderWidth: 1,
shadowBlur: 10,
}
})
}
// #endregion
console.log(regions)
var option = {
tooltip: {
trigger: "item",
formatter: function (params, ticket, callback) {
if (params.seriesType == "effectScatter") {
// return '标注区域:' + params.data.name;
return params.data.name;
}
},
textStyle: {
color: '#ffffff',
},
borderColor: 'rgba(71,71,226,1)',
backgroundColor: 'rgba(71,71,226,1)'
},
geo: {
top: '12%',
// layoutCenter: ['30%', '80%'],
show: true,
map: "china",
label: {
show: true, // 显示地图上城市名称
color: "#fff",
emphasis: {
show: true,
color: "#fff",
},
},
roam: false,
// aspectScale: 1,
zoom: 1.1,
itemStyle: {
normal: {
areaColor: "#2648A6", // 地图颜色
borderColor: "#089DD4",
borderWidth: 1,
// shadowBlur: 1,
shadowColor: "#1B3783",
shadowOffsetX: -11,
shadowOffsetY: 5,
opacity: 0.6,
},
emphasis: {
areaColor: "rgb(38 72 166 / 50%)",
//areaColor: '#FFDF33'
},
},
regions: regions,
},
series: series,
};
myMapChart.getZr().on('click', function (params) {
console.log('params', params)
});
myMapChart.on('click', function (param) {
//这个params可以获取你要的图中的当前点击的项的参数
console.log('myMapChart', param)
if (param.seriesType == "effectScatter" && param.data != null) {
var gotoUrl = param.data.url || 'indexProject.aspx'
top.window.location.href = '../' + gotoUrl
}
});
myMapChart.clear();
myMapChart.setOption(option);
window.addEventListener("resize", function () {
myMapChart.resize();
});
}
// 地图点
var mapProjectPoint_1 = JSON.parse('<%=ProjectInfo %>')
function initWorldMapEchart() {
// 1. 实例化对象
var myMapChart = echarts.init(document.querySelector(".sd-map"));
//
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.36988
var max = 480, min = 9; // todo
var maxSize4Pin = 100, minSize4Pin = 20;
var convertData = function (data) {
var res = [];
for (var i = 0; i < data.length; i++) {
var geoCoord = geoCoordMap[data[i].name];
if (geoCoord) {
res.push({
name: data[i].name,
value: geoCoord.concat(data[i].value),
});
}
}
return res;
};
var option = {
title: {
show: false,
top: 10,
text: '地图标题',
subtext: '',
x: 'center',
textStyle: {
color: '#ccc',
},
},
tooltip: {
trigger: 'item',
formatter: function (params) {
return params.name
},
textStyle: {
color: '#ffffff',
},
borderColor: 'rgba(71,71,226,1)',
backgroundColor: 'rgba(71,71,226,1)'
},
legend: {
show: false,
orient: 'vertical',
y: 'bottom',
x: 'right',
data: ['量'],
textStyle: {
color: '#fff',
},
},
visualMap: {
show: false,
min: 0,
max: 500,
left: 'left',
top: 'bottom',
text: ['高', '低'], // 文本,默认为数值文本
calculable: true,
seriesIndex: [1],
inRange: {},
},
geo: {
//top: '20%',
map: 'world',
zoom: 1.2,
show: true,
roam: false,
label: {
normal: {
show: true,
color: '#ffffff',
formatter: function (val) {
var area_content = ''
if (val && val.name) {
var tempN = mapProjectPoint_1.filter(x => x.cityname == val.name)
if (tempN.length > 0) {
area_content = val.name
}
}
return area_content
}
},
emphasis: {
show: false,
},
},
itemStyle: {
normal: {
areaColor: '#3a7fd5',
borderColor: '#0a53e9', //线
shadowColor: '#092f8f', //外发光
shadowBlur: 20,
},
emphasis: {
areaColor: '#0a2dae', //悬浮区背景
},
},
},
series: [
{
symbolSize: 5,
label: {
normal: {
formatter: '{b}',
position: 'right',
show: false,//是否显示地名
},
emphasis: {
show: true,
},
},
itemStyle: {
normal: {
color: '#fff',
},
},
name: 'light',
type: 'scatter',
coordinateSystem: 'geo',
//data: convertData(data_tmp),
data: mapProjectPoint_1
},
{
type: 'map',
map: 'china',
geoIndex: 0,
aspectScale: 0.75, //长宽比
showLegendSymbol: false, // 存在legend时显示
label: {
normal: {
show: false,
},
emphasis: {
show: false,
textStyle: {
color: '#fff',
},
},
},
roam: false,
itemStyle: {
normal: {
areaColor: '#031525',
borderColor: '#FFFFFF',
},
emphasis: {
areaColor: '#2B91B7',
},
},
animation: false,
data: mapProjectPoint_1,
//data: data_tmp,
},
{
name: 'Top 5',
type: 'effectScatter',
coordinateSystem: 'geo',
rippleEffect: {
brushType: "stroke",
},
label: {
normal: {
show: false,
textStyle: {
color: '#fff',
fontSize: 9,
},
formatter: function (value) {
return value.data.value[2];
},
},
},
itemStyle: {
normal: {
color: '#dfae10', //标志颜色
},
},
data: mapProjectPoint_1,
showEffectOn: 'render',
rippleEffect: {
brushType: 'stroke',
},
hoverAnimation: true,
zlevel: 1,
},
],
};
myMapChart.clear();
myMapChart.setOption(option);
}
$(".el-scrollbar__wrap").html("<%=projectJDHtml %>");
var Box_Height = $(".el-scrollbar").outerHeight();
var content_Height = $(".el-scrollbar__wrap").outerHeight();
var bar_Height = $(".is-vertical").outerHeight();
var isMouseDown = false;
var distance = 0;
if (content_Height > Box_Height) {
//滚动条初始高度;
var n = Box_Height / content_Height * bar_Height
$(".is-vertical .el-scrollbar__thumb").css("height", n)
$(".is-vertical").mousedown(down);
$(window).mousemove(move);
$(window).mouseup(up);
function down(event) {
isMouseDown = true;
}
function move(event) {
event.preventDefault();
distance = event.pageY - $(".is-vertical").offset().top;
if (isMouseDown == true) {
scroll(distance)
}
}
function up() {
isMouseDown = false;
$(".el-scrollbar").find(".is-vertical").css('opacity', 0);
}
}
function scroll(distance) {
if (distance < 0) {
distance = 0
} else if (distance > bar_Height - $(".is-vertical .el-scrollbar__thumb").outerHeight()) {
distance = bar_Height - $(".is-vertical .el-scrollbar__thumb").outerHeight();
}
$(".is-vertical .el-scrollbar__thumb").css("top", distance)
// 滚动距离 = 滑块移动距离 ÷ 窗口高度 x 页面长度
var scroll_distance = parseInt(distance / Box_Height * content_Height)
$(".el-scrollbar__wrap").css("margin-top", -scroll_distance)
}
function initScroll() {
$(".el-scrollbar").hover(function () {
var $this = $(this)
$this.find(".is-vertical").css('opacity', 1);
}, function () {
if (isMouseDown) {
return
}
var $this = $(this)
$this.find(".is-vertical").css('opacity', 0);
})
// 滚轮事件;
$(".el-scrollbar").bind('mousewheel', function (event, delta) {
event.preventDefault()
var dir = delta > 0 ? 'Up' : 'Down',
vel = delta
distance = $(".is-vertical .el-scrollbar__thumb").offset().top - $(".el-scrollbar").offset().top;
vel > 0 ? distance -= 10 : distance += 10
scroll(distance);
});
}
function initEvent() {
$(document).on('click', '.sd-body-map .sd-body-map-switch-btn', function () {
var $this = $(this), $item = $this.find('span')
var txt = $item.text()
if (txt == '中国地图') {
$item.text('世界地图')
initWorldMapEchart()
} else {
$item.text('中国地图')
initMapEchart()
}
})
}
$(function () {
initCircle()
initBarEchart()
initMapEchart()
if (content_Height > Box_Height) {
initScroll()
}
initEvent()
});
</script>
</html>