1. <!DOCTYPE html>
  2. <html>
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <title></title>
  7. <link href="https://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
  8. <link rel="stylesheet" type="text/css" href="css/bootstrap-datetimepicker.min.css" />
  9. <link rel="stylesheet" type="text/css" href="css/bootstrap-switch.css" />
  10. <link rel="stylesheet" href="css/index.css" />
  11. <script src="js/jquery.min.js"></script>
  12. <script src="https://cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
  13. <script src="js/bootstrap-datetimepicker.min.js"></script>
  14. <script src="js/bootstrap-switch.min.js"></script>
  15. <script src="js/bootstrap-datetimepicker.zh-CN.js"></script>
  16. <script src="js/echarts.min.js"></script>
  17. </head>
  18.  
  19. <body>
  20. <div class="perfor_container">
  21. <div class="perfor_bg">
  22. <img class="title_img" src="data:images/title@2x.png" style="width: 354px;" />
  23. <div class="perfor_content">
  24. <div class="perfor_nav">
  25. <ul class="areaSelect">
  26.  
  27. <li class="didian"><img src="data:images/didian@2x.png" /><span>全网<span class="Xarrows"></span></span>
  28. </li>
  29. <div class="area">
  30. <!--二级导航-->
  31. <ul class="areaAll hide1">
  32. <li class="areaSelected" data-id="1">业务数据</li>
  33. <li data-id="2">分组</li>
  34. </ul>
  35.  
  36. <!--三级导航-->
  37. <div class="areaThird">
  38. <ul class="areaRegion innerbox hide1">
  39. <li data-id="1" class="innerbox">华南</li>
  40. <li data-id="2" class="innerbox">华北</li>
  41. <li data-id="3" class="innerbox">华东</li>
  42. <li data-id="4" class="innerbox">中西</li>
  43. </ul>
  44. <ul class="areaGrouping innerbox hide1">
  45. <li>分组一</li>
  46. <li>分组一</li>
  47. <li>分组一</li>
  48. <li>分组一</li>
  49. <li>分组一</li>
  50. <li>分组一</li>
  51. <li>分组一</li>
  52. <li>分组一</li>
  53. <li>分组一</li>
  54. <li>分组一</li>
  55. </ul>
  56. </div>
  57. <!--四级导航-->
  58. <div class="areaFourthly">
  59. <ul class="huanan innerbox hide1">
  60. <li>金华区01</li>
  61. <li>台州区</li>
  62. <li>皖南区</li>
  63. <li>金华区</li>
  64. <li>台州区</li>
  65. <li>皖南区</li>
  66. <li>金华区</li>
  67. <li>台州区</li>
  68. <li>皖南区</li>
  69. <li>金华区</li>
  70. <li>台州区</li>
  71. <li>皖南区</li>
  72. <li>金华区</li>
  73. <li>台州区</li>
  74. <li>皖南区</li>
  75. <li>金华区</li>
  76. <li>台州区</li>
  77. <li>皖南区</li>
  78. <li>金华区</li>
  79. <li>台州区</li>
  80. <li>皖南区</li>
  81. <li>金华区</li>
  82. <li>台州区</li>
  83. <li>皖南区</li>
  84. </ul>
  85. <ul class="huabei innerbox hide1">
  86. <li>海南区01</li>
  87. <li>潮汕区</li>
  88. <li>赣南区</li>
  89. <li>赣北区</li>
  90. <li>海南区</li>
  91. <li>潮汕区</li>
  92. <li>赣南区</li>
  93. <li>赣北区</li>
  94. <li>海南区</li>
  95. <li>潮汕区</li>
  96. <li>赣南区</li>
  97. <li>赣北区</li>
  98. <li>海南区</li>
  99. <li>潮汕区</li>
  100. <li>赣南区</li>
  101. <li>赣北区</li>
  102. <li>海南区</li>
  103. <li>潮汕区</li>
  104. <li>赣南区</li>
  105. <li>赣北区</li>
  106. </ul>
  107. <ul class="huadong innerbox hide1">
  108. <li>山西区01</li>
  109. <li>冀州区</li>
  110. <li>黑龙江区</li>
  111. <li>济南区</li>
  112. <li>海南区</li>
  113. <li>潮汕区</li>
  114. <li>赣南区</li>
  115. <li>赣北区</li>
  116. <li>海南区</li>
  117. <li>潮汕区</li>
  118. <li>赣南区</li>
  119. <li>赣北区</li>
  120. <li>海南区</li>
  121. <li>潮汕区</li>
  122. <li>赣南区</li>
  123. <li>赣北区</li>
  124. </ul>
  125. <ul class="zhongxi innerbox hide1">
  126. <li>湘南区01</li>
  127. <li>豫北区</li>
  128. <li>陕西区</li>
  129. <li>宁夏区</li>
  130. <li>海南区</li>
  131. <li>潮汕区</li>
  132. <li>赣南区</li>
  133. <li>赣北区</li>
  134. <li>海南区</li>
  135. <li>潮汕区</li>
  136. <li>赣南区</li>
  137. <li>赣北区</li>
  138. <li>海南区</li>
  139. <li>潮汕区</li>
  140. <li>赣南区</li>
  141. <li>赣北区</li>
  142. </ul>
  143. </div>
  144.  
  145. </div>
  146. </ul>
  147. <div class="dateSelect">
  148. <!--<img src="data:images/shijian@2x.png" />--><input size="16" type="text" id="datetimeStart" readonly class="form_datetime" value=""></div>
  149. <div id="bNav" class="bNav">
  150. <ul class="perforNav">
  151. <li class="navSelected">重货产品:</li>
  152. <li>陆运零担</li>
  153. <li>物流普运</li>
  154. <li>重货包裹</li>
  155. <li>小票零担</li>
  156. <li>重货快运</li>
  157. <li>重货专运</li>
  158. <li>专线普运</li>
  159. </ul>
  160. </div>
  161. </div>
  162. <div class="dataChart">
  163. <ul class="column1 chart_ul">
  164. <li class="chart_li">
  165. <p>今日情況</p>
  166. <div class="todaySur">
  167. <div>
  168. <h3>今日收入</h3>
  169. <h1><span>2560</span><span></span></h1>
  170. <p><span>年度峰值:3560万</span> <span>3月5日</span></p>
  171. </div>
  172. <div>
  173. <h3>今日运单总重量</h3>
  174. <h1><span>2560</span><span>T</span></h1>
  175. <p><span>年度峰值:3560T</span> <span>3月5日</span></p>
  176. </div>
  177. </div>
  178. </li>
  179. <li class="chart_li">
  180. <p>日收入趋势(万)</p>
  181. <div id="echarts01"></div>
  182. </li>
  183. <li class="chart_li">
  184. <p class="dayNumber"><span class="daySelected">日均完成量</span><span>平均重量</span></p>
  185. <div id="echarts02"></div>
  186. </li>
  187. </ul>
  188. <ul class="column2 chart_ul">
  189. <li style="height: 360px;" class="chart_li">
  190. <div>
  191. <p style="float: left;">业务数据和排名</p>
  192. <ul class="yearSwitch" data-id="1">
  193. <li class="year"></li>
  194. <li class="month"></li>
  195. <li class="mask"></li>
  196. </ul>
  197. <!--<input name="status" type="checkbox" data-size="small">-->
  198. </div>
  199. <div class="business">
  200. <div class="businessDetail">
  201. <div><canvas id="canvas" width="230" height="150"></div>
  202. <ul class="business_detail">
  203. <li>
  204. <span>
  205. <p>月累计货量</p>
  206. <h2>187562</h2>
  207. </span>
  208. <span>
  209. <p>月累计收入</p>
  210. <h2>61434</h2>
  211. </span>
  212. </li>
  213. <li>
  214. <span>
  215. <p>日均货量</p>
  216. <h2>5917</h2>
  217. </span>
  218. <span>
  219. <p>差值</p>
  220. <h2>5917</h2>
  221. </span>
  222. </li>
  223. </ul>
  224. </div>
  225. <div class="business-rank">
  226. <div class="selectRank"><span class="selectedRank">前10</span><span>后10</span></div>
  227. <ul class="businessRank">
  228. <li><span>排名</span><span>区域</span><span>完成比</span></li>
  229. <ul>
  230. <li><span>1</span><span>常州区</span><span>124.5%</span></li>
  231. <li><span>2</span><span>常州区</span><span>124.5%</span></li>
  232. <li><span>3</span><span>常州区</span><span>124.5%</span></li>
  233. <li><span>4</span><span>常州区</span><span>124.5%</span></li>
  234. <li><span>5</span><span>常州区</span><span>124.5%</span></li>
  235. <li><span>6</span><span>常州区</span><span>124.5%</span></li>
  236. <li><span>7</span><span>常州区</span><span>124.5%</span></li>
  237. <li><span>8</span><span>常州区</span><span>124.5%</span></li>
  238. <li><span>9</span><span>常州区</span><span>124.5%</span></li>
  239. <li><span>10</span><span>常州区</span><span>124.5%</span></li>
  240. </ul>
  241. </ul>
  242. </div>
  243. </div>
  244. </li>
  245. <li class="chart_li">
  246. <div class="monthlyIncome">
  247. <span class="selectIncome" data-id="1">月度收入</span>
  248. <span data-id="2">月度单价</span>
  249. <span data-id="3">月度投保率</span>
  250. <span data-id="4">月度待营比</span>
  251. </div>
  252. <div id="echarts03"></div>
  253. </li>
  254. </ul>
  255. <ul class="column3 chart_ul">
  256. <li class="chart_li">
  257. <p>月度趋势</p>
  258. <div id="echarts04"></div>
  259. </li>
  260. <li class="chart_li">
  261. <p>月度公斤段占比(货量)</p>
  262. <div id="echarts05"></div>
  263. </li>
  264. </ul>
  265. </div>
  266.  
  267. </div>
  268.  
  269. </div>
  270.  
  271. </div>
  272.  
  273. <script type="text/javascript">$(document).ready(function() {
  274. //添加角落的边框
  275. $(".dataChart .chart_ul .chart_li").append('<div class="angle"><div class="angleSZ"></div><div class="angleSY"></div><div class="angleXZ"></div><div class="angleXY"></div></div>')
  276.  
  277. $("#datetimeStart").val(getNowFormatDate());
  278. //图表所需要的数据
  279.  
  280. //图表一数据,为数值
  281. var data1 = [10, 20, 30, 40, 50, 60, 70, 80, 50, 100, 30, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130],
  282. //图表二数据,都为数值
  283. data2 = [6000, 7000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000],
  284. //图表三数据,都为百分比
  285. data3 = [12, 5, 1.2, 5, 1.2, 50, 1.2, 2, 100, 5, 3, 3],
  286. //图表四数据,都为百分比
  287. data4 = {
  288. data01: [1, 2, 3, 20, 60, 3, 40, 6, 30],
  289. data02: [8, 9, 10, 8, 9, 10, 8, 9, 10]
  290. },
  291. //图表五的数据,均为百分比
  292. data5 = {
  293. data01: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
  294. data02: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
  295. data03: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
  296. data04: [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
  297. };
  298.  
  299. eCharts(data1, data2, data3, data4, data5);
  300.  
  301. function eCharts(data1, data2, data3, data4, data5) {
  302. //echarts图表
  303. //图标顺序从上到下,从左到右
  304. var dom01 = document.getElementById("echarts01");
  305. var dom02 = document.getElementById("echarts02");
  306. var dom03 = document.getElementById("echarts03");
  307. var dom04 = document.getElementById("echarts04");
  308. var dom05 = document.getElementById("echarts05");
  309.  
  310. var myChart01 = echarts.init(dom01);
  311. var myChart02 = echarts.init(dom02);
  312. var myChart03 = echarts.init(dom03);
  313. var myChart04 = echarts.init(dom04);
  314. var myChart05 = echarts.init(dom05);
  315.  
  316. //图表自适应页面
  317. window.addEventListener("resize", function() {
  318. myChart01.resize();
  319. myChart02.resize();
  320. myChart03.resize();
  321. myChart04.resize();
  322. myChart05.resize();
  323. });
  324.  
  325. var app = {};
  326. option = null;
  327. var tyleChart3;
  328.  
  329. chart1();
  330. chart2();
  331. chart3();
  332. chart4();
  333. chart5();
  334.  
  335. //图表二导航点击
  336. $(".dayNumber span").click(function() {
  337. $(".dayNumber span").removeClass("daySelected");
  338. $(this).addClass("daySelected");
  339. data2 = [6000, 5000, 5000, 5000, 5000, 5000, 5000, 1000, 5000, 3000, 4000, 2000],
  340. chart2();
  341. });
  342.  
  343. //图表三导航点击
  344. $(".monthlyIncome span").click(function() {
  345. var id = this.dataset.id;
  346. $(".monthlyIncome span").removeClass("selectIncome");
  347. $(this).addClass("selectIncome");
  348. data3 = [12, 5, 1.2, 5, 1.2, 20, 1.2, 2, 9, 5, 3, 5];
  349. if(id == 1 || id == 2) {
  350. data3 = [12, 5, 1.2, 5, 1.2, 50, 1.2, 2, 100, 5, 3, 3];
  351. tyleChart3 = 1;
  352. chart3();
  353. } else {
  354. tyleChart3 = 0;
  355. chart3();
  356. }
  357. });
  358.  
  359. function chart1() {
  360. //图表一
  361. option = {
  362. //添加横线滚动条
  363. dataZoom: {
  364. type: 'inside',
  365. start: 0, //默认为0
  366. end: 100 - 1500 / 31, //默认为100
  367. },
  368. //底部滚动条
  369. /*dataZoom: {
  370. start: 0, //默认为0
  371. end: 60 - 1500 / 31, //默认为100
  372. type: 'slider',
  373. show: true,
  374. xAxisIndex: [0],
  375. handleSize: 0, //滑动条的 左右2个滑动条的大小
  376. height: 6, //组件高度
  377. left: 20, //左边的距离
  378. right: 20, //右边的距离
  379. bottom: 30, //右边的距离
  380. handleColor: '#CBBCDB', //h滑动图标的颜色
  381. handleStyle: {
  382. borderColor: "#CBBCDB",
  383. borderWidth: "1",
  384. shadowBlur: 2,
  385. background: "#CBBCDB",
  386. shadowColor: "#CBBCDB",
  387. },
  388. fillerColor: new echarts.graphic.LinearGradient(1, 0, 0, 0, [{
  389. //给颜色设置渐变色 前面4个参数,给第一个设置1,第四个设置0 ,就是水平渐变
  390. //给第一个设置0,第四个设置1,就是垂直渐变
  391. offset: 0,
  392. color: 'rgba(255,255,255,.4)'
  393. }, {
  394. offset: 1,
  395. color: 'rgba(255,255,255,.4)'
  396. }]),
  397. backgroundColor: 'rgba(37, 46, 100, 0.45)', //两边未选中的滑动条区域的颜色
  398. showDataShadow: false, //是否显示数据阴影 默认auto
  399. showDetail: false, //即拖拽时候是否显示详细数值信息 默认true
  400. handleIcon: 'M-292,322.2c-3.2,0-6.4-0.6-9.3-1.9c-2.9-1.2-5.4-2.9-7.6-5.1s-3.9-4.8-5.1-7.6c-1.3-3-1.9-6.1-1.9-9.3c0-3.2,0.6-6.4,1.9-9.3c1.2-2.9,2.9-5.4,5.1-7.6s4.8-3.9,7.6-5.1c3-1.3,6.1-1.9,9.3-1.9c3.2,0,6.4,0.6,9.3,1.9c2.9,1.2,5.4,2.9,7.6,5.1s3.9,4.8,5.1,7.6c1.3,3,1.9,6.1,1.9,9.3c0,3.2-0.6,6.4-1.9,9.3c-1.2,2.9-2.9,5.4-5.1,7.6s-4.8,3.9-7.6,5.1C-285.6,321.5-288.8,322.2-292,322.2z',
  401. filterMode: 'filter',
  402. },*/
  403. grid: {
  404. x: 30,
  405. y: 10,
  406. x2: 30,
  407. y2: 70,
  408. top: 10,
  409. height: 150,
  410. borderWidth: 1
  411. },
  412. tooltip: {
  413. trigger: 'axis',
  414. textStyle: {
  415. color: '#999'
  416. }
  417. },
  418. //全局字体颜色
  419. textStyle: {
  420. color: '#B3B3B3'
  421. },
  422. itemStyle: {
  423. color: '#666'
  424. },
  425. //X轴参数设置
  426. xAxis: {
  427. type: 'category',
  428. boundaryGap: false,
  429. data: [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24],
  430. axisLine: {
  431. lineStyle: {
  432. color: "#414B71",
  433. width: 1.5,
  434. },
  435. },
  436. /*axisLabel: {
  437. interval: 0
  438. },*/
  439. axisTick: {
  440. show: false,
  441. },
  442. },
  443. //Y轴参数设置
  444. yAxis: [{
  445. type: 'value',
  446. //data: [0, 30, 60, 90, 120, 150, ],
  447. axisLine: {
  448. lineStyle: {
  449. color: "#414B71",
  450. width: 1.5,
  451. },
  452. },
  453. axisLabel: {
  454. interval: 0
  455. },
  456. axisTick: {
  457. show: false,
  458. },
  459. splitLine: {
  460. show: false,
  461. }
  462. }],
  463. //服务数据
  464. series: [{
  465. name: '目标占比',
  466. type: 'line',
  467. smooth: true,
  468. stack: '总量',
  469. data: data1,
  470. itemStyle: {
  471. normal: {
  472. color: '#6FA9D9',
  473. lineStyle: {
  474. color: '#6FA9D9'
  475. }
  476. }
  477. },
  478. },
  479.  
  480. ]
  481. };
  482. //实例化图表
  483. if(option && typeof option === "object") {
  484. myChart01.setOption(option, true);
  485. };
  486. //end
  487. }
  488.  
  489. function chart2() {
  490. //图表二
  491. //日均完成量
  492. option = {
  493. textStyle: {
  494. color: '#B3B3B3'
  495. },
  496. grid: {
  497. x: 60,
  498. y: 20,
  499. x2: 30,
  500. y2: 70,
  501. top: 20,
  502. height: 130,
  503. //rotate:40width: 300,
  504. //left: 50,
  505. borderWidth: 1
  506. },
  507. tooltip: {
  508. trigger: 'axis',
  509. axisPointer: { // 坐标轴指示器,坐标轴触发有效
  510. type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  511. },
  512.  
  513. },
  514. xAxis: {
  515. type: 'category',
  516. axisLabel: {
  517. interval: 0,
  518. rotate: 40,
  519. showMaxLabel: true,
  520. textStyle: {
  521. color: '#B3B3B3',
  522. }
  523. },
  524. //露出的部分
  525. axisTick: {
  526. show: false,
  527. },
  528. //横线
  529. splitLine: {
  530. show: false,
  531. },
  532. axisLine: {
  533. show: true,
  534. lineStyle: {
  535. width: 1.5,
  536. color: "#414B71",
  537. },
  538.  
  539. },
  540. //data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
  541. data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
  542. },
  543. yAxis: {
  544. type: 'value',
  545. axisLabel: {
  546. interval: 0
  547. },
  548. //露出的部分
  549. axisTick: {
  550. show: false,
  551. },
  552. //横线
  553. splitLine: {
  554. show: false,
  555. },
  556. axisLine: {
  557. lineStyle: {
  558. color: "#414B71",
  559. width: 1.5,
  560. },
  561. },
  562. },
  563. series: [{
  564. data: data2,
  565. type: 'bar',
  566. barWidth: 10,
  567. //顶部数字展示pzr
  568. itemStyle: {
  569. //柱形图圆角,鼠标移上去效果
  570. emphasis: {
  571. barBorderRadius: 40
  572. },
  573.  
  574. normal: {
  575. //柱形图圆角,初始化效果
  576. barBorderRadius: 30,
  577. color: '#F0C476',
  578. }
  579. },
  580. }]
  581. };
  582.  
  583. if(option && typeof option === "object") {
  584. myChart02.setOption(option, true);
  585. };
  586. //end
  587. }
  588.  
  589. function chart3() {
  590. if(tyleChart3 == 1) {
  591. var formatter01 = '{b0}<br />{a}:{c}',
  592. formatter02 = '{value}';
  593. } else {
  594. var formatter01 = '{b0}<br />{a}:{c}%',
  595. formatter02 = '{value} %';
  596. }
  597.  
  598. //图表三
  599. option = {
  600. tooltip: {
  601. trigger: 'axis',
  602. textStyle: {
  603. color: '#999'
  604. },
  605. formatter: formatter01
  606. },
  607. grid: {
  608. x: 50,
  609. y: 20,
  610. x2: 30,
  611. y2: 70,
  612. top: 20,
  613. height: 200,
  614. borderWidth: 1
  615. },
  616. textStyle: {
  617. color: '#B3B3B3'
  618. },
  619. itemStyle: {
  620. color: '#666'
  621. },
  622. xAxis: {
  623. type: 'category',
  624. boundaryGap: false,
  625. data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
  626. axisLine: {
  627. lineStyle: {
  628. color: "#414B71",
  629. width: 1.5,
  630. },
  631. },
  632. axisLabel: {
  633. interval: 0
  634. },
  635. axisTick: {
  636. show: false,
  637. },
  638. },
  639. yAxis: [{
  640. type: 'value',
  641. axisLabel: {
  642. show: true,
  643. interval: '0',
  644. formatter: formatter02
  645. },
  646. axisLine: {
  647. lineStyle: {
  648. color: "#414B71",
  649. width: 1.5,
  650. },
  651. },
  652. axisTick: {
  653. show: false,
  654. },
  655. splitLine: {
  656. show: false,
  657. }
  658. }],
  659. series: [{
  660. name: '目标占比',
  661. type: 'line',
  662. smooth: true,
  663. stack: '总量',
  664. data: data3,
  665. itemStyle: {
  666. normal: {
  667. color: '#F0C476',
  668. lineStyle: {
  669. color: '#F0C476'
  670. },
  671. }
  672. },
  673. },
  674.  
  675. ]
  676. };
  677. if(option && typeof option === "object") {
  678. myChart03.setOption(option, true);
  679. };
  680. //end
  681. }
  682.  
  683. function chart4() {
  684. //图表四
  685. option = {
  686. tooltip: {
  687. trigger: 'axis',
  688. textStyle: {
  689. color: '#999'
  690. },
  691. formatter: '{b}<br />{a0}:{c0}%<br />{a1}:{c1}%'
  692. },
  693. grid: {
  694. x: 50,
  695. y: 20,
  696. x2: 30,
  697. y2: 70,
  698. top: 30,
  699. height: 190,
  700. borderWidth: 1
  701. },
  702. legend: {
  703. data: ['目标占比', '实际占比'],
  704. selectedMode: false,
  705. textStyle: {
  706. color: '#B3B3B3'
  707. },
  708. top: -5,
  709. },
  710. textStyle: {
  711. color: '#B3B3B3'
  712. },
  713. xAxis: {
  714. type: 'category',
  715. boundaryGap: false,
  716. data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
  717. axisLine: {
  718. lineStyle: {
  719. color: "#414B71",
  720. width: 1.5,
  721. },
  722. },
  723. axisLabel: {
  724. interval: 0,
  725. rotate: 40,
  726. },
  727. axisTick: {
  728. show: false,
  729. },
  730. },
  731. yAxis: [{
  732. type: 'value',
  733. axisLabel: {
  734. show: true,
  735. interval: '0',
  736. formatter: '{value} %'
  737. },
  738. axisLine: {
  739. lineStyle: {
  740. color: "#414B71",
  741. width: 1.5,
  742. },
  743. },
  744. axisTick: {
  745. show: false,
  746. },
  747. splitLine: {
  748. show: false,
  749. }
  750. }],
  751. series: [{
  752. name: '目标占比',
  753. type: 'line',
  754. smooth: true,
  755. stack: '总量',
  756. data: data4.data01,
  757. itemStyle: {
  758. normal: {
  759. color: '#6FA9D9',
  760. lineStyle: {
  761. color: '#6FA9D9'
  762. }
  763. }
  764. },
  765. },
  766. {
  767. name: '实际占比',
  768. type: 'line',
  769. smooth: true,
  770. stack: '总量2',
  771. data: data4.data02,
  772. itemStyle: {
  773. normal: {
  774. color: '#FAD567',
  775. lineStyle: {
  776. color: '#FAD567'
  777. }
  778. }
  779. },
  780. },
  781.  
  782. ]
  783. };
  784. if(option && typeof option === "object") {
  785. myChart04.setOption(option, true);
  786. };
  787. //end
  788. }
  789.  
  790. function chart5() {
  791. //图表五
  792. option = {
  793. textStyle: {
  794. color: '#B3B3B3'
  795. },
  796. grid: {
  797. x: 60,
  798. y: 20,
  799. x2: 30,
  800. y2: 70,
  801. top: 40,
  802. height: 235,
  803. //bottom: 20,
  804. borderWidth: 1
  805. },
  806. tooltip: {
  807. trigger: 'axis',
  808. textStyle: {
  809. color: '#999'
  810. },
  811. formatter: '{b}<br />{a0}:{c0}%<br />{a1}:{c1}%<br />{a2}:{c2}%<br />{a3}:{c3}%'
  812. },
  813. legend: {
  814. itemWidth: 10,
  815. itemHeight: 10,
  816. data: ['T>500', '100<T≤500', '20<T≤100', 'T≤20', ],
  817. selectedMode: false,
  818. textStyle: {
  819. color: '#B3B3B3'
  820. },
  821. },
  822. xAxis: [{
  823. type: 'category',
  824. data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
  825. //轴线颜色
  826. axisLine: {
  827. lineStyle: {
  828. color: "#414B71",
  829. width: 1.5,
  830. },
  831. },
  832. axisLabel: {
  833. interval: 0,
  834. rotate: 40,
  835. },
  836. //露出的部分
  837. axisTick: {
  838. show: false,
  839. },
  840. //横线
  841. splitLine: {
  842. show: false,
  843. }
  844. },
  845.  
  846. ],
  847. yAxis: [{
  848. type: 'value',
  849. //data: [25, 50, 75, 100],
  850. axisLabel: {
  851. show: true,
  852. interval: '0',
  853. formatter: '{value} %'
  854. },
  855. //轴线颜色
  856. axisLine: {
  857. lineStyle: {
  858. color: "#414B71",
  859. width: 1.5,
  860. },
  861. },
  862. //露出的部分
  863. axisTick: {
  864. show: false,
  865. },
  866. //横线
  867. splitLine: {
  868. show: false,
  869. }
  870. }],
  871. series: [{
  872. name: 'T>500',
  873. type: 'bar',
  874. stack: '广告',
  875. data: data5.data01,
  876. barWidth: 8,
  877. itemStyle: {
  878. normal: {
  879. color: "#426BC5"
  880. }
  881. },
  882. },
  883. {
  884. name: '100<T≤500',
  885. type: 'bar',
  886. stack: '广告',
  887. data: data5.data02,
  888. barWidth: 8,
  889. itemStyle: {
  890. normal: {
  891. color: "#1FA985"
  892. }
  893. },
  894. },
  895. {
  896. name: '20<T≤100',
  897. type: 'bar',
  898. stack: '广告',
  899. data: data5.data03,
  900. barWidth: 8,
  901. itemStyle: {
  902. normal: {
  903. color: "#DAC37F"
  904. }
  905. },
  906. },
  907. {
  908. name: 'T≤20',
  909. type: 'bar',
  910. stack: '广告',
  911. data: data5.data04,
  912. barWidth: 8,
  913. itemStyle: {
  914. normal: {
  915. color: "#66A0D1"
  916. }
  917. },
  918. }
  919. ]
  920. };
  921.  
  922. if(option && typeof option === "object") {
  923. myChart05.setOption(option, true);
  924. };
  925. //-------------end---------------
  926. }
  927.  
  928. }
  929.  
  930. //点击事件
  931.  
  932. //地区选择hover
  933. $(".areaAll li").hover(function() {
  934. var id = this.dataset.id;
  935. $(".areaAll li").removeClass('areaSelected');
  936. $(this).addClass('areaSelected');
  937. $(".areaThird ul").hide();
  938. if(id == 1) {
  939. $(".areaRegion").show();
  940. } else if(id == 2) {
  941. $(".areaFourthly ul").hide();
  942. $(".areaGrouping").show();
  943. }
  944. });
  945.  
  946. $(".areaRegion li").hover(function() {
  947. var id = this.dataset.id;
  948. $(".areaRegion li").removeClass('areaSelected');
  949. $(this).addClass('areaSelected');
  950. $(".areaFourthly ul").hide();
  951. if(id == 1) {
  952. $(".huanan").show();
  953. } else if(id == 2) {
  954. $(".huabei").show();
  955. } else if(id == 3) {
  956. $(".huadong").show();
  957. } else {
  958. $(".zhongxi").show();
  959. }
  960. });
  961.  
  962. $(".area").hover(function() {
  963.  
  964. }, function() {
  965. $(".areaAll,.areaThird ul,.areaFourthly ul").hide();
  966. })
  967.  
  968. $(".areaThird li").hover(function() {
  969. $(".areaThird li").removeClass('areaSelected');
  970. $(this).addClass('areaSelected');
  971. });
  972.  
  973. $(".areaFourthly li").hover(function() {
  974. $(".areaFourthly li").removeClass('areaSelected');
  975. $(this).addClass('areaSelected');
  976. });
  977. $(".didian").hover(function() {
  978. $(".areaAll").show();
  979. });
  980. //--------------end---------------
  981.  
  982. $(".areaThird li,.areaFourthly li").click(function() {
  983. $(".areaAll,.areaThird ul,.areaFourthly ul").hide();
  984. });
  985.  
  986. //导航点击
  987. $(".perforNav li").click(function() {
  988. $(".perforNav li").removeClass('navSelected');
  989. $(this).addClass('navSelected');
  990. });
  991.  
  992. //排名选择
  993. $(".selectRank span").click(function() {
  994. $(".selectRank span").removeClass("selectedRank");
  995. $(this).addClass("selectedRank");
  996. });
  997.  
  998. //endDate : new Date(),
  999. //日期选择
  1000. $("#datetimeStart").datetimepicker({
  1001. format: 'yyyy-mm-dd',
  1002. minView: 'month',
  1003. language: 'zh-CN',
  1004. autoclose: true,
  1005. todayHighlight: 1, //选中高亮
  1006. initialDate: new Date(), //初始化的时间
  1007. startDate: "2003-01-01", //只显示一年的日期365天
  1008. endDate: "2020-02-14",
  1009. }).on("click", function() {
  1010. //$("#datetimeStart").datetimepicker("setEndDate", $("#datetimeEnd").val());
  1011. });
  1012.  
  1013. $(".yearSwitch").click(function(){
  1014. var id = this.dataset.id;
  1015. if(id == 1){
  1016. //月
  1017. $(".mask").css("left","20px")
  1018. this.dataset.id = 0;
  1019. }else{
  1020. //年
  1021. $(".mask").css("left","0")
  1022. this.dataset.id = 1;
  1023. }
  1024.  
  1025. })
  1026.  
  1027. //--------------end---------------
  1028.  
  1029. //第一个参数为外圆的百分比,第二个参数为内圆的百分比
  1030. toCanvas('canvas', 80, 89);
  1031. //环形进度条
  1032. function toCanvas(id, progress, progress2) {
  1033. //canvas进度条
  1034. var canvas = document.getElementById(id),
  1035. ctx = canvas.getContext("2d"),
  1036. percent = progress,
  1037. percent2 = progress2,
  1038. //最终百分比
  1039. circleX = canvas.width / 3, //* 中心x坐标*/
  1040. circleY = canvas.height / 2, //中心y坐标
  1041. radius = 50, //圆环半径
  1042. lineWidth = 6, // 圆形线条的宽度
  1043. fontSize = 10; //字体大小
  1044.  
  1045. //画圆
  1046. function circle(cx, cy, r) {
  1047. ctx.beginPath();
  1048. ctx.lineWidth = lineWidth;
  1049. ctx.strokeStyle = '#eee';
  1050. ctx.arc(cx, cy, r, Math.PI, Math.PI * 2);
  1051. ctx.stroke();
  1052. state();
  1053. }
  1054.  
  1055. //进度条说明
  1056. function state() {
  1057. ctx.beginPath();
  1058. ctx.arc(150, 40, 3, 0, 360, false);
  1059. ctx.fillStyle = "#1582CF"; //填充颜色,默认是黑色
  1060. ctx.fill(); //画实心圆
  1061.  
  1062. ctx.beginPath();
  1063. ctx.arc(150, 60, 3, 0, 360, false);
  1064. ctx.fillStyle = "#0DBA4C"; //填充颜色,默认是黑色
  1065. ctx.fill(); //画实心圆
  1066.  
  1067. ctx.beginPath();
  1068. ctx.arc(150, 80, 3, 0, 360, false);
  1069. ctx.fillStyle = "#DB0432"; //填充颜色,默认是黑色
  1070. ctx.fill(); //画实心圆
  1071. ctx.closePath();
  1072.  
  1073. ctx.fillStyle = "#fff";
  1074. //ctx.fillWeight = "normal";
  1075. ctx.font = "14px April";
  1076.  
  1077. ctx.fillText("时间进度", 190, 40);
  1078.  
  1079. ctx.fillText(">时间进度", 190, 60);
  1080.  
  1081. ctx.fillText("<时间进度", 190, 80);
  1082.  
  1083. }
  1084.  
  1085. //画弧线
  1086. function sector(cx, cy, r, startAngle, endAngle, anti) {
  1087. ctx.beginPath();
  1088. ctx.lineWidth = lineWidth;
  1089. endAngle > 100 ? ctx.strokeStyle = "#DB0432" : ctx.strokeStyle = "#1582CF";
  1090. //圆弧两端的样式
  1091. ctx.lineCap = 'round';
  1092. ctx.arc(cx, cy, r, Math.PI, Math.PI * (1 + endAngle / 100));
  1093. ctx.stroke();
  1094. }
  1095.  
  1096. //画弧线02
  1097. function sector2(cx, cy, r, startAngle, endAngle, anti) {
  1098. ctx.beginPath();
  1099. ctx.lineWidth = lineWidth;
  1100. endAngle > 100 ? ctx.strokeStyle = "#DB0432" : ctx.strokeStyle = "#0DBA4C";
  1101. //圆弧两端的样式
  1102. ctx.lineCap = 'round';
  1103. ctx.arc(cx, cy, r * 3 / 4, Math.PI, Math.PI * (1 + endAngle / 100));
  1104. ctx.stroke();
  1105. }
  1106. //刷新
  1107. function loading() {
  1108. var percent3 = progress;
  1109. if(percent < percent2) percent = percent2;
  1110. if(process >= percent) clearInterval(circleLoading);
  1111. if(process2 >= percent) clearInterval(circleLoading);
  1112. //清除canvas内容
  1113. ctx.clearRect(0, 0, circleX * 2, circleY * 2);
  1114.  
  1115. //中间的字
  1116. ctx.font = "20px April";
  1117.  
  1118. ctx.textAlign = 'center';
  1119. ctx.textBaseline = 'middle';
  1120. ctx.fillStyle = '#0DBA4C';
  1121. ctx.fillText(parseFloat(process).toFixed(0) + '%', circleX, circleY * 4 / 5);
  1122. ctx.fillStyle = '#fff';
  1123. ctx.font = "10px April";
  1124. ctx.fillText("月度完成比", circleX, circleY + 5);
  1125.  
  1126. //圆形
  1127. circle(circleX, circleY, radius);
  1128.  
  1129. //圆弧
  1130. sector(circleX, circleY, radius, Math.PI * 2 / 3, process);
  1131. sector2(circleX, circleY, radius, Math.PI * 2 / 3, process2);
  1132. //两端圆点
  1133. //smallcircle1(50 + Math.cos(2 * Math.PI / 360 * 120) * 100, 150 + Math.sin(2 * Math.PI / 360 * 120) * 100, 5);
  1134. //smallcircle2(50 + Math.cos(2 * Math.PI / 360 * (120 + process * 3)) * 100, 150 + Math.sin(2 * Math.PI / 360 * (120 + process * 3)) * 100, 5);
  1135. //控制结束时动画的速度
  1136. if(process < percent3) {
  1137. if(process / percent > 0.90) {
  1138. process += 0.30;
  1139. } else if(process / percent > 0.80) {
  1140. process += 0.55;
  1141. } else if(process / percent > 0.70) {
  1142. process += 0.75;
  1143. } else {
  1144. process += 1.0;
  1145. }
  1146. }
  1147.  
  1148. if(process2 < percent2) {
  1149. if(process2 / percent > 0.90) {
  1150. process2 += 0.30;
  1151. } else if(process2 / percent > 0.80) {
  1152. process2 += 0.55;
  1153. } else if(process2 / percent > 0.70) {
  1154. process2 += 0.75;
  1155. } else {
  1156. process2 += 1.0;
  1157. }
  1158. }
  1159.  
  1160. }
  1161.  
  1162. var process = 0.0;
  1163. var process2 = 0.0;
  1164.  
  1165. var circleLoading = window.setInterval(function() {
  1166. loading();
  1167. }, 20);
  1168.  
  1169. }
  1170.  
  1171. //echarts不同屏幕字体大小调整
  1172. var getDpr = function getDpr() {
  1173. var dpr =document.body.clientWidth;
  1174. if(dpr > 1226) {
  1175. return 12;
  1176. } else if(dpr == 2) {
  1177. return 24;
  1178. } else {
  1179. return 36;
  1180. }
  1181. };
  1182.  
  1183. //获取当天日期
  1184. function getNowFormatDate() {
  1185. var date = new Date();
  1186. var seperator1 = "-";
  1187. var year = date.getFullYear();
  1188. var month = date.getMonth() + 1;
  1189. var strDate = date.getDate();
  1190. if(month >= 1 && month <= 9) {
  1191. month = "0" + month;
  1192. }
  1193. if(strDate >= 0 && strDate <= 9) {
  1194. strDate = "0" + strDate;
  1195. }
  1196. var currentdate = year + seperator1 + month + seperator1 + strDate;
  1197. return currentdate;
  1198. }
  1199.  
  1200. })</script>
  1201. </body>
  1202.  
  1203. </html>

eCharts_基于eCharts开发的一个多图表页面的更多相关文章

  1. 基于 React 开发了一个 Markdown 文档站点生成工具

    Create React Doc 是一个使用 React 的 markdown 文档站点生成工具.就像 create-react-app 一样,开发者可以使用 Create React Doc 来开发 ...

  2. 基于Spring开发的一个BIO-RPC框架(对新人很友好)

    PART1:先来整体看下项目的构成 其中bio-rpc-core就是所谓的rpc框架 bio-rpc-example-client即所谓的服务调用方(你的项目中想要调用服务的地方) bio-rpc-e ...

  3. vue中,基于echarts 地图实现一个人才回流的大数据展示效果

    0.引入echarts组件,和中国地图js import eCharts from 'echarts' import 'echarts/map/js/china.js'// 引入中国地图 1. 设置地 ...

  4. 使用echarts开发电子屏数据展示页面

    背景 之前的项目因为要顾及体量问题,选用了highchart,没用上echarts:这次因为是本地部署电子屏幕的展示页,不需要考虑体量大小,直接用上了echarts:用起来觉得非常不错,特别是地图上非 ...

  5. vue可视化图表 基于Echarts封装好的v-charts简介

    **vue可视化图表 基于Echarts封装好的v-charts** 近期公司又一个新的需求,要做一个订单和销售额统计的项目,需要用到可视化图表来更直观的展示数据.首先我想到的是Echarts,众所周 ...

  6. 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目

    自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...

  7. 基于SpringBoot开发一个Restful服务,实现增删改查功能

    前言 在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练. ...

  8. 基于线程开发一个FTP服务器

    一,项目题目:基于线程开发一个FTP服务器 二,项目要求: 基本要求: 1.用户加密认证   2.允许同时多用户登录   3.每个用户有自己的家目录 ,且只能访问自己的家目录   4.对用户进行磁盘配 ...

  9. 一个基于NodeJS开发的APP管理CMS系统

    花了大概3周独立开发了一个基于NodeJS的CMS系统,用于公司APP的内容管理( **公司APP?广告放在最后 ^_^ ** ,管理员请理解~~~ )晚上看了部电影还不想睡,闲着也是闲着就作下小小总 ...

随机推荐

  1. 【week6】约跑App视频链接

    约跑视频链接发布在优酷,链接如下: http://v.youku.com/v_show/id_XMTc3NTcyNTcyNA==.html 秒拍视频连接: http://www.miaopai.com ...

  2. vue-cli3配置postcss-cssnext

    1. // npm install autoprefixer --save-dev 此步不需要了,因为postcss-cssnext自带这个依赖 npm install postcss-cssnext ...

  3. java 字符串—数字常用处理

    // 判断一个字符串是否都为数字 public boolean isDigit(String strNum) { return strNum.matches("[0-9]{1,}" ...

  4. [剑指Offer] 50.数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...

  5. Winform程序部署方式总结一——ClickOnce发布

    针对Winform程序,介绍两种常用打包方式:ClickOnce和Windows Installer 应用程序如下: 一.ClickOnce发布 1.找到需要发布的项目文件,右击,从弹出的快捷菜单中找 ...

  6. asp.netMVC中实现分页方法

    方法一:使用传统的sql语句实现分页,    public class UserprintDao如下 /// <summary> /// 取得用户申请记录列表(按分页) /// </ ...

  7. robot framework连接Oracle错误:ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA

    在使用robot framework的关键字Connect to Database Using Custom params连接Oracle数据库: Connect to Database Using ...

  8. [bzoj4398] 福慧双修 最短路 二进制分组

    ---题面--- 题解: 考场上看的这道题,,,当时70分算法打挂了,今天才知道这个也是原题.... 首先,对于不跟1相邻的边,肯定不会经过两次,因为经过两次就回来了,除了增加路径长度之外没有任何意义 ...

  9. [Leetcode] valid sudoku 有效数独

    Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ...

  10. [Leetcode] Construct binary tree from preorder and inorder travesal 利用前序和中续遍历构造二叉树

    Given preorder and inorder traversal of a tree, construct the binary tree. Note:  You may assume tha ...