format-e.vue 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <view class="content">
  3. <qiun-title-bar title="tooltip提示窗format" />
  4. <view class="charts-box">
  5. <!-- 注意:因app端通过组件均不能传递function类型参数,组件内所有formatter方法,均需使用format属性指定config-echarts.js里事先定义好的formatter的key值,组件会自动匹配与其对应的function -->
  6. <!-- tooltip的format需要在组件的props参数上传递,例如tooltipFormat="tooltipDemo1",并需要在config-echarts.js中的formatter节点中的tooltipDemo1中配置format方法。如果开启了echarts,则需要在config-echarts.js中的formatter节点中的tooltipDemo1中配置format方法。 -->
  7. <qiun-data-charts
  8. type="column"
  9. :echartsH5="true"
  10. :echartsApp="true"
  11. :chartData="chartsDataLine1"
  12. tooltipFormat="tooltipDemo1"
  13. />
  14. </view>
  15. <qiun-title-bar title="图例的format"/>
  16. <view class="charts-box">
  17. <!-- 需要把echarts文档内的formatter转成format,对应的'legendFormat'这个字符串为config-echarts.js中的formatter节点中的 legendFormat 方法-->
  18. <qiun-data-charts
  19. type="line"
  20. :echartsH5="true"
  21. :echartsApp="true"
  22. :eopts="{legend:{format:'legendFormat'}}"
  23. :chartData="chartsDataColumn2"
  24. />
  25. </view>
  26. <qiun-title-bar title="Y轴format方式1"/>
  27. <view class="charts-box">
  28. <!-- 需要把echarts文档内的formatter转成format,对应的'yAxisFormatDemo'这个字符串为config-echarts.js中的formatter节点中的 yAxisFormatDemo 方法-->
  29. <qiun-data-charts
  30. type="line"
  31. :echartsH5="true"
  32. :echartsApp="true"
  33. :eopts="{yAxis:{axisLabel:{format:'yAxisFormatDemo'}}}"
  34. :chartData="chartsDataLine1"
  35. />
  36. </view>
  37. <qiun-title-bar title="Y轴format方式2"/>
  38. <view class="charts-box">
  39. <!-- ECharts如果使用 formatter,则只能使用字符串模板方式,不能使用函数模板!函数模板请参考上面的例子-->
  40. <qiun-data-charts
  41. type="line"
  42. :echartsH5="true"
  43. :echartsApp="true"
  44. :eopts="{yAxis:{axisLabel:{formatter:'{value} 元'}}}"
  45. :chartData="chartsDataLine1"
  46. />
  47. </view>
  48. <qiun-title-bar title="series数据点format方法1"/>
  49. <view class="charts-box">
  50. <!-- seriesTemplate是config-echarts.js中对应图表类型定义好的series模板 ,如果每个series的formatter都不一样,则format需要定义在chartData.series中,不能使用seriesTemplate -->
  51. <!-- formatter需要把echarts文档内的formatter转成format,对应的'seriesFormatDemo'这个字符串为config-echarts.js中的formatter节点中的 seriesFormatDemo 方法-->
  52. <qiun-data-charts
  53. type="line"
  54. :echartsH5="true"
  55. :echartsApp="true"
  56. :eopts="{seriesTemplate:{label:{format:'seriesFormatDemo'}}}"
  57. :chartData="chartsDataLine1"
  58. />
  59. </view>
  60. <qiun-title-bar title="series数据点format方法2"/>
  61. <view class="charts-box">
  62. <!-- ECharts如果使用 formatter,则只能使用字符串模板方式,不能使用函数模板!函数模板请参考上面的例子-->
  63. <qiun-data-charts
  64. type="line"
  65. :echartsH5="true"
  66. :echartsApp="true"
  67. :eopts="{seriesTemplate:{label:{formatter:'{b}年{c}元'}}}"
  68. :chartData="chartsDataLine1"
  69. />
  70. </view>
  71. </view>
  72. </template>
  73. <script>
  74. //下面是演示数据,您的项目不需要引用,数据需要您从服务器自行获取
  75. import demodata from '@/mockdata/demodata.json';
  76. export default {
  77. data() {
  78. return {
  79. chartsDataLine1: {},
  80. chartsDataColumn2: {},
  81. };
  82. },
  83. onLoad() {
  84. //模拟从服务器获取数据
  85. this.getServerData()
  86. },
  87. methods: {
  88. getServerData() {
  89. setTimeout(() => {
  90. //因部分数据格式一样,这里不同图表引用同一数据源的话,需要深拷贝一下构造不同的对象
  91. //开发者需要自行处理服务器返回的数据,应与标准数据格式一致,注意series的data数值应为数字格式
  92. this.chartsDataLine1=JSON.parse(JSON.stringify(demodata.Line))
  93. this.chartsDataColumn2=JSON.parse(JSON.stringify(demodata.Column))
  94. }, 1500);
  95. },
  96. }
  97. };
  98. </script>
  99. <style>
  100. .content {
  101. display: flex;
  102. flex-direction: column;
  103. flex: 1;
  104. }
  105. .charts-box {
  106. width: 100%;
  107. height: 300px;
  108. }
  109. </style>