uniapp 引入 echarts
1.首先引入echarts.js
可在百度网盘上获取该文件
链接:https://pan.baidu.com/s/1Bv-1OKh3h5by8II3P9vLZA
提取码:8624
2.将echarts.js文件直接放入static文件里
3.在components里新建echarts.vue
在echarts.js里写如下代码:
<template>
<view>
<view @click="echarts.onClick" :prop="option" :change:prop="echarts.updateEcharts" id="echarts" class="echarts">
</view>
</view>
</template>
<script>
export default {
data() {
return {}
},
props: ['option'],
onLoad() {
},
methods: {
onViewClick(options) {
console.log(options)
}
}
}
</script>
<script module="echarts" lang="renderjs">
let myChart
export default {
mounted() {
if (typeof window.echarts === 'function') {
this.initEcharts()
} else {
// 动态引入较大类库避免影响页面展示
const script = document.createElement('script')
// view 层的页面运行在 www 根目录,其相对路径相对于 www 计算
script.src = 'static/echarts.js'
script.onload = this.initEcharts.bind(this)
document.head.appendChild(script)
}
},
methods: {
initEcharts() {
myChart = echarts.init(document.getElementById('echarts'))
// 观测更新的数据在 view 层可以直接访问到
myChart.setOption(this.option)
},
updateEcharts(newValue, oldValue, ownerInstance, instance) {
// 监听 service 层数据变更
myChart.setOption(newValue)
},
onClick(event, ownerInstance) {
// 调用 service 层的方法
ownerInstance.callMethod('onViewClick', {
test: 'test'
})
}## 标题
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.echarts {
margin-top: 100px;
width: 100%;
height: 300px;
}
</style>
4.然后在需要echarts的地方引入就可以了。
可以直接修改他的 option值
<template>
<view>
<echarts style="background-color: #ccc;" :option='option'></echarts>
</view>
</template>
<script>
import echarts from '@/components/echarts.vue'
export default {
name: 'overview',
data() {
return {
option: {
type: 'line',
xAxis: {
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
},
yAxis: {
type: 'value'
},
series: [{
data: [160, 170, 184, 198, 200, 234, 260, 260, 270, 271, 278, 298],
type: 'line'
}, {
data: [60, 70, 84, 98, 100, 114, 160, 169, 170, 171, 178,230],
type: 'line'
}],
color:['#ff0000', '#0DCE00']
}
}
},
components: {
echarts
},
mounted() {
},
methods: {
}
}
</script>
<style scoped lang="scss">
.circle{
width: 750rpx;
height: 373rpx;
background-color: lavender;
}
.data{
width: 721rpx;
height: 617rpx;
}
</style>
注意:这是建议的封装,如果一个页面需要加载两个echarts时,option数据需要放置在 《script module=“echarts” lang=“renderjs”》标签中。