performanceechart.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. //- 转换单位函数
  2. const tradecount = function(val){
  3. if(Number(val) >= 10000 && Number(val) < 100000000 ) {
  4. const count = String(Number(val) / 10000);
  5. const length = count.split('.');
  6. return count.substring(0,length[0].length + 3) + '万';
  7. };
  8. if(Number(val) >= 100000000 ) {
  9. const count = String(Number(val) / 100000000);
  10. const length = count.split('.');
  11. return count.substring(0,length[0].length + 3) + '亿';
  12. }else{
  13. const count = String(val);
  14. const length = count.split('.');
  15. return count.substring(0,length[0].length + 3);
  16. }
  17. };
  18. // 业绩图表函数
  19. const performanceechart = function(element,data,date,Company){
  20. const myChart = echarts.init(element);
  21. const option = {
  22. tooltip: {
  23. trigger: 'axis',
  24. axisPointer: {
  25. type: 'cross',
  26. crossStyle: {
  27. color: '#999'
  28. }
  29. }
  30. },
  31. legend: {
  32. data: ['线形图(单位 '+Company+')','柱状图(单位 '+Company+')'],
  33. left: '0',
  34. itemWidth:6,
  35. itemHeight:6,
  36. align:'left',
  37. bottom:'0'
  38. },
  39. grid:{
  40. top:30,
  41. left:20,
  42. height:80,
  43. width:'90%'
  44. },
  45. xAxis: [
  46. {
  47. type: 'category',
  48. data: date,
  49. axisTick: {
  50. show: false, //是否显示网状线 默认为true
  51. },
  52. axisLabel:{
  53. textStyle:{
  54. fontSize:'10',
  55. color:'#999'
  56. }
  57. }
  58. }
  59. ],
  60. yAxis: [
  61. {
  62. type: 'value',
  63. show: false,
  64. },
  65. ],
  66. series: [
  67. {
  68. type: 'bar',
  69. color:'#fec1b4',
  70. name:'柱状图(单位 '+Company+')',
  71. data,
  72. barWidth : 25,//柱图宽度
  73. },
  74. {
  75. type: 'line',
  76. symbolSize:10,
  77. itemStyle : {
  78. normal: {
  79. label : {
  80. color:'#FF5A32',
  81. formatter: function(c){
  82. return tradecount(c.value);
  83. },
  84. show: true,
  85. fontSize:'10',
  86. },
  87. lineStyle:{
  88. width:3//设置线条粗细
  89. }
  90. }
  91. },
  92. color:'#FF5A32',
  93. name:'线形图(单位 '+Company+')',
  94. data,
  95. smooth: true
  96. }
  97. ]
  98. };
  99. myChart.setOption(option);
  100. };
  101. // 饼图函数
  102. const pieechart = function(element,data){
  103. // 基于准备好的dom,初始化echarts实例
  104. const myChart = echarts.init(element);
  105. const option = {
  106. tooltip: {
  107. trigger: 'item',
  108. //- formatter: 'aa'
  109. },
  110. legend: {
  111. orient: 'vertical',
  112. right: '5%',
  113. itemWidth:6,
  114. itemHeight:6,
  115. align:'left',
  116. top:"middle"
  117. },
  118. series: [
  119. {
  120. type: 'pie',
  121. radius: ['40%', '60%'],
  122. center : [ '40%', '50%' ],
  123. labelLine: {
  124. normal: {
  125. length: 15,
  126. length2: 5,
  127. lineStyle: {
  128. color: '#eee'
  129. }
  130. }
  131. },
  132. itemStyle: {
  133. normal: {
  134. label: {
  135. show: true,
  136. position: "outside",
  137. // color: "#ddd",
  138. formatter:"{d}%"
  139. }
  140. }
  141. },
  142. data
  143. }
  144. ]
  145. };
  146. // 使用刚指定的配置项和数据显示图表。
  147. myChart.setOption(option);
  148. }
  149. const barechart = function(element,date,data){
  150. const myChart = echarts.init(element);
  151. const option = {
  152. tooltip: {
  153. trigger: 'axis',
  154. extraCssText:'width:38px;height:20px;text-align:center;',
  155. formatter:'<div style="color:#333;font-size:10px">{c}</div>'
  156. },
  157. grid: {
  158. left: '3%',
  159. right: '4%',
  160. bottom: '3%',
  161. top:'15%',
  162. containLabel: true
  163. },
  164. xAxis: [
  165. {
  166. type: 'category',
  167. data:date,
  168. axisTick: {
  169. alignWithLabel: true
  170. }
  171. }
  172. ],
  173. yAxis: [
  174. {
  175. type: 'value'
  176. }
  177. ],
  178. series: [
  179. {
  180. name: 'Direct',
  181. type: 'bar',
  182. barWidth: '30%',
  183. data,
  184. itemStyle: {
  185. normal: {
  186. color: '#FF5A32',
  187. barBorderRadius:[100, 100, 0, 0]
  188. }
  189. }
  190. },
  191. ]
  192. };
  193. myChart.setOption(option);
  194. }