calendar-converter.html 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>calendar</title>
  5. <meta name="viewport" content="width=device-width, initial-scale=1" />
  6. <link rel="stylesheet" href="lib/reset.css">
  7. <script src="lib/esl.js"></script>
  8. <script src="lib/config.js"></script>
  9. <script src="lib/jquery.min.js"></script>
  10. </head>
  11. <body>
  12. <style>
  13. html, body, #main {
  14. width: 100%;
  15. height: 100%;
  16. }
  17. </style>
  18. <div id="main"></div>
  19. <script>
  20. require([
  21. 'echarts'
  22. // 'echarts/chart/heatmap',
  23. // 'echarts/chart/pie',
  24. // 'echarts/chart/scatter',
  25. // 'echarts/chart/effectScatter',
  26. // 'echarts/chart/graph',
  27. // 'echarts/component/title',
  28. // 'echarts/component/legend',
  29. // 'echarts/component/calendar',
  30. // 'echarts/component/tooltip'
  31. ], function (echarts) {
  32. var chart = echarts.init(document.getElementById('main'));
  33. var cellSize = [120, 120];
  34. function getVirtulData() {
  35. var date = +echarts.number.parseDate('2017-02-01');
  36. var end = +echarts.number.parseDate('2017-03-01');
  37. var dayTime = 3600 * 24 * 1000;
  38. var data = [];
  39. for (var time = date; time < end; time += dayTime) {
  40. data.push([
  41. echarts.format.formatTime('yyyy-MM-dd', time),
  42. Math.floor(Math.random() * 10000)
  43. ]);
  44. }
  45. return data;
  46. }
  47. function getPieSeries(scatterData, chart) {
  48. return echarts.util.map(scatterData, function (item, index) {
  49. var center = chart.convertToPixel('calendar', item);
  50. return {
  51. id: index + 'pie',
  52. type: 'pie',
  53. center: center,
  54. label: {
  55. normal: {
  56. position: 'inside'
  57. }
  58. },
  59. radius: 40,
  60. data: [
  61. {name: '工作', value: Math.random() * 1000},
  62. {name: '娱乐', value: Math.random() * 1000},
  63. {name: '睡觉', value: Math.random() * 1000}
  64. ]
  65. };
  66. });
  67. }
  68. var scatterData = getVirtulData();
  69. option = {
  70. tooltip : {},
  71. legend: {
  72. data: ['工作', '娱乐', '睡觉'],
  73. bottom: 20
  74. },
  75. calendar: {
  76. top: 'middle',
  77. left: 'center',
  78. orient: 'vertical',
  79. cellSize: cellSize,
  80. yearLabel: {
  81. show: false,
  82. textStyle: {
  83. fontSize: 30
  84. }
  85. },
  86. dayLabel: {
  87. margin: 20,
  88. firstDay: 1,
  89. nameMap: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
  90. },
  91. monthLabel: {
  92. show: false
  93. },
  94. range: ['2017-02']
  95. },
  96. series: [{
  97. id: 'label',
  98. type: 'scatter',
  99. coordinateSystem: 'calendar',
  100. symbolSize: 1,
  101. label: {
  102. normal: {
  103. show: true,
  104. formatter: function (params) {
  105. return echarts.format.formatTime('dd', params.value[0]);
  106. },
  107. offset: [-cellSize[0] / 2 + 10, -cellSize[1] / 2 + 10],
  108. textStyle: {
  109. color: '#000',
  110. fontSize: 14
  111. }
  112. }
  113. },
  114. data: scatterData
  115. }]
  116. };
  117. chart.setOption(option);
  118. chart.setOption({
  119. series: getPieSeries(scatterData, chart)
  120. });
  121. $(window).resize(function() {
  122. chart.resize();
  123. });
  124. });
  125. </script>
  126. </body>
  127. </html>