56 lines
933 B
Vue
56 lines
933 B
Vue
<template>
|
||
<div :id="sid" :style="{height: height,width:width}">
|
||
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import * as echarts from 'echarts';
|
||
export default {
|
||
props: {
|
||
sid: {
|
||
type: String,
|
||
default: 'echartsId'
|
||
},
|
||
height: {
|
||
type: String,
|
||
default: '300px'
|
||
},
|
||
width: {
|
||
type: String,
|
||
default: '300px'
|
||
},
|
||
option: {
|
||
type: Object,
|
||
default () {
|
||
return {}
|
||
}
|
||
}
|
||
},
|
||
data() {
|
||
return {
|
||
chartDom: null,
|
||
myChart: null
|
||
}
|
||
},
|
||
mounted() {
|
||
this.chartDom = document.getElementById(this.sid);
|
||
this.myChart = echarts.init(this.chartDom);
|
||
this.myChart.setOption(this.option);
|
||
},
|
||
watch: {
|
||
option: {
|
||
handler: function() {
|
||
this.myChart.clear()
|
||
this.myChart.setOption(this.option);
|
||
},
|
||
// 开启深度监听:只要obj中的任何一个属性发生改变,都会触发相应的代码
|
||
deep: true
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style>
|
||
</style>
|