123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <!--
- * @Author: daidai
- * @Date: 2022-02-28 16:29:08
- * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-04-25 15:45:57
- * @FilePath: \web-pc\src\pages\big-screen\components\echart\index.vue
- -->
- <template>
- <div :id="id" :class="className" :style="{ height: height, width: width }" />
- </template>
- <script>
- import tdTheme from './theme.json' // 引入默认主题
- export default {
- name: 'echart',
- props: {
- className: {
- type: String,
- default: 'chart'
- },
- id: {
- type: String,
- default: 'chart'
- },
- width: {
- type: String,
- default: '100%'
- },
- height: {
- type: String,
- default: '100%'
- },
- options: {
- type: Object,
- default: ()=>({})
- }
- },
- data () {
- return {
- chart: null
- }
- },
- watch: {
- options: {
- handler (options) {
- // 设置true清空echart缓存
- this.chart.setOption(options, true)
- },
- deep: true
- }
- },
- mounted () {
- // echarts.registerTheme('tdTheme', tdTheme); // 覆盖默认主题
- this.initChart();
- },
- beforeDestroy () {
- this.chart.dispose()
- this.chart = null
- },
- methods: {
- initChart () {
- // 初始化echart
- this.chart = echarts.init(this.$el, 'tdTheme')
- this.chart.setOption(this.options, true)
- }
- }
- }
- </script>
- <style>
- </style>
|