| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- <template>
- <view class="container">
- <view class="canvasView">
- <view class="canvas-bar">
- <view class="title">饼图示例</view>
- <button class="update-btn" type="primary" size="mini" @click="updatePie">修改饼状图数据</button>
- </view>
- <mpvueEcharts :onInit="pieInit" canvasId="pie" ref="pieChart" />
- </view>
- <view class="canvasView">
- <view class="title">折线图示例</view>
- <mpvueEcharts :onInit="lineInit" canvasId="line" ref="lineChart" />
- </view>
- </view>
- </template>
- <script>
- import * as echarts from '../components/echarts.esm.min.js';
- import mpvueEcharts from '../components/echarts.vue';
- const cityList = [{
- value: 55,
- name: '北京'
- }, {
- value: 38,
- name: '上海'
- }, {
- value: 20,
- name: '广州'
- }];
- let pieOption = {
- animation: false,
- backgroundColor: '#F8F8F8',
- color: ['#37A2DA', '#32C5E9', '#67E0E3', '#91F2DE', '#FFDB5C', '#FF9F7F'],
- series: [{
- label: {
- normal: {
- fontSize: 14
- }
- },
- type: 'pie',
- center: ['50%', '50%'],
- radius: [0, '60%'],
- data: [],
- itemStyle: {
- emphasis: {
- shadowBlur: 10,
- shadowOffsetX: 0,
- shadowColor: 'rgba(0, 2, 2, 0.3)'
- }
- }
- }]
- };
- let lineOption = {
- animation: false,
- color: ['#37A2DA', '#9FE6B8'],
- grid: {
- x: 35,
- x2: 10,
- y: 30,
- y2: 25
- },
- calculable: false,
- xAxis: [{
- type: 'category',
- data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
- }],
- yAxis: [{
- type: 'value',
- splitArea: {
- show: true
- }
- }],
- series: [{
- name: '蒸发量',
- type: 'line',
- data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
- }, {
- name: '降水量',
- type: 'line',
- data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
- }]
- };
- export default {
- data() {
- return {
- echarts: echarts,
- updateStatus: false
- }
- },
- onLoad() {
- pieOption.series[0].data = cityList.slice(0);
- },
- methods: {
- goBrowser() {
- // #ifdef APP-PLUS
- plus.runtime.openURL('https://github.com/F-loat/mpvue-echarts');
- // #endif
- // #ifdef MP-WEIXIN
- uni.showModal({
- content: '请复制链接在浏览器里打开',
- showCancel: false
- })
- // #endif
- },
- updatePie() {
- // 参考 mpvue-charts 的懒加载示例
- // https://github.com/F-loat/mpvue-echarts/blob/master/examples/lazyLoad.vue
- if (this.updateStatus) {
- return;
- }
- pieOption.series[0].data.push({
- value: 20,
- name: '武汉'
- });
- pieOption.series[0].data.push({
- value: 10,
- name: '杭州'
- });
- this.$refs.pieChart.init();
- this.updateStatus = true;
- },
- pieInit(canvas, width, height) {
- let pieChart = echarts.init(canvas, null, {
- width: width,
- height: height
- })
- canvas.setChart(pieChart)
- pieChart.setOption(pieOption)
- return pieChart
- },
- lineInit(canvas, width, height) {
- let lineChart = echarts.init(canvas, null, {
- width: width,
- height: height
- })
- canvas.setChart(lineChart)
- lineChart.setOption(lineOption)
- return lineChart
- }
- },
- components: {
- mpvueEcharts
- }
- }
- </script>
- <style>
- page,
- view {
- display: flex;
- font-size: 28upx;
- }
- page {
- min-height: 100%;
- }
- .page-section-title {
- padding: 0 30upx;
- }
- .title {
- margin-left: 30upx;
- line-height: 1.5;
- color: #8f8f94;
- }
- .container {
- padding-bottom: 30upx;
- box-sizing: border-box;
- }
- .container,
- .canvasView {
- flex: 1;
- flex-direction: column;
- }
- .navigate {
- color: #007AFF;
- }
- .canvas-bar {
- display: flex;
- flex-direction: row;
- justify-content: space-between;
- }
- .update-btn {
- margin-right: 30upx;
- }
- </style>
|