// plugins/echarts.client.ts import { defineNuxtPlugin } from '#app' import * as echarts from 'echarts' export default defineNuxtPlugin(() => { // 全局挂载 ECharts 实例(可选) const initChart = (el: HTMLElement, options: echarts.EChartsOption) => { if (!el) return null const chart = echarts.init(el) chart.setOption(options) // 监听窗口 resize 自适应 window.addEventListener('resize', () => chart.resize()) // 组件卸载时销毁图表(避免内存泄漏) onUnmounted(() => { chart.dispose() window.removeEventListener('resize', () => chart.resize()) }) return chart } return { provide: { echarts: { initChart, }, }, } })