1.首先安装echarts
安装命令:npm install echarts --save
2.页面引入 echarts
import * as echarts from 'echarts';
3.代码
<template> <div id="main" :style="{ width: '400px', height: '500px' }"></div> </template> <script setup> let Chart = echarts.init(document.getElementById('main')); // 绘制图表 let options = { title: { text: 'Funnel' }, toolbox: { feature: { restore: { show: true }, // 重置 myFull: { // 全屏 show: true, title: '全屏', icon: 'path://M432.45,595.444c0,2.177-4.661,6.82-11.305,6.82c-6.475,0-11.306-4.567-11.306-6.82s4.852-6.812,11.306-6.812C427.841,588.632,432.452,593.191,432.45,595.444L432.45,595.444z M421.155,589.876c-3.009,0-5.448,2.495-5.448,5.572s2.439,5.572,5.448,5.572c3.01,0,5.449-2.495,5.449-5.572C426.604,592.371,424.165,589.876,421.155,589.876L421.155,589.876z M421.146,591.891c-1.916,0-3.47,1.589-3.47,3.549c0,1.959,1.554,3.548,3.47,3.548s3.469-1.589,3.469-3.548C424.614,593.479,423.062,591.891,421.146,591.891L421.146,591.891zM421.146,591.891', onclick: (e) => { // let fullFlag = true; let element = document.getElementById('main'); // 一些浏览器的兼容性 if (element.requestFullScreen) { // HTML W3C 提议 element.requestFullScreen(); } else if (element.msRequestFullscreen) { // IE11 element.msRequestFullScreen(); } else if (element.webkitRequestFullScreen) { // Webkit (works in Safari5.1 and Chrome 15) element.webkitRequestFullScreen(); } else if (element.mozRequestFullScreen) { // Firefox (works in nightly) element.mozRequestFullScreen(); } // 退出全屏 if (element.requestFullScreen) { document.exitFullscreen(); } else if (element.msRequestFullScreen) { document.msExitFullscreen(); } else if (element.webkitRequestFullScreen) { document.webkitCancelFullScreen(); } else if (element.mozRequestFullScreen) { document.mozCancelFullScreen(); } }, }, }, }, tooltip: { trigger: 'item', formatter: '{a} <br/>{b} : {c}%', }, legend: { orient: 'vertical', left: 'left', top: '40', bottom: '50', data: ['Show', 'Click', 'Visit', 'Inquiry', 'Order'] }, series: [ { name: 'Expected', type: 'funnel', left: '22%', top: 80, bottom: 100, width: '80%', min: 0, max: 100, minSize: '0%', maxSize: '100%', sort: 'descending', gap: 2, labelLine: { show: false, }, label: { show: true, position: 'inside', }, data: [], }, { name: '订单', type: 'funnel', left: '20%', width: '80%', maxSize: '100%', label: { position: 'inside', formatter: '{c}单', color: '#fff', }, emphasis: { label: { position: 'inside', formatter: '{b}: {c}单', }, }, data: [ { value: 60, name: 'Visit' }, { value: 40, name: 'Inquiry' }, { value: 20, name: 'Order' }, { value: 80, name: 'Click' }, { value: 100, name: 'Show' } ], }, ], }; // 渲染图表 Chart.setOption(options); const onresize = function () { //自适应大小 Chart.resize(); }; window.addEventListener('resize', onresize); </script>