Blame view
src/components/chart/vchart.js
1003 Bytes
93a68cfa1
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
const G2 = window.G2; import colors from 'vuetify/es5/util/colors'; const chartColors = []; Object.entries(colors).forEach((item) => { chartColors.push(item[1].base); }); export default { name: 'v-chart', render (h) { const data = { staticClass: 'v-chart', ref: 'canvas', on: this.$listeners }; return h('div', data); }, props: { option: Object, height: Number, }, data: () => ({ chartInstance: null, }), methods: { init () { this.chartInstance = new G2.Chart({ container: this.$refs.canvas, forceFit: true, height: window.innerWidth }); }, resize () { this.chartInstance.resize(); }, clean () { window.removeEventListener('resize', this.chartInstance.resize); this.chartInstance.dispose(); } }, mounted () { this.init(); window.addEventListener('resize', () => { this.resize(); }); }, beforeDestroy () { this.clean(); } }; |