프로젝트를 할 때, 데이터를 좀 더 직관적으로 표시하기 위해 항상 차트 관련 컨트롤을 사용하는데, 차트 컨트롤을 하면 가장 먼저 떠오르는 것이 오픈소스 프로젝트인 ECharts인데, 그게 쉽지가 않네요. iview 및 element-ui와 같은 구성 요소로 사용됩니다. 매우 편리하고 편의를 위해 ECharts는 레이어에 캡슐화되었습니다.
Echarts, Remodal 및 Pikaday는 백엔드 관리 웹사이트를 개발할 때 일반적으로 사용되는 세 가지 타사 구성 요소입니다. 이 기사에서는 주로 원클릭 사용을 위해 echarts를 구성 요소로 캡슐화하는 vue.js에 대한 관련 콘텐츠를 소개하고 공유합니다. 아래에서는 별로 할 말이 없는 참고 연구, 자세한 소개를 살펴보겠습니다.
컨트롤 시연
컨트롤 사용법
요약
echarts 기반의 2차 패키징
Driven by data
컨트롤 소스 코드는 다음과 같습니다. src/Components/charts
Document
props
Property | Description | type |
---|---|---|
_id | 에 있습니다. 차트의 id가 반복되면, 오류가 보고됩니다. | String |
_titleText | 차트 제목 | String |
_xText | x축 설명 | String |
_yText | y -축 설명 | String |
_chartData | 차트 데이터 | Array |
_type | 차트 유형, 세 가지 유형(LineAndBar/LineOrBar/Pie) 제공 |
호출 예시
<chart :_id="'testCharts'" :_titleText="'访问量统计'" :_xText="'类别'" :_yText="'总访问量'" :_chartData="chartData" :_type="'Pie'"></chart> //测试数据样例 [["类别1",10],["类别2",20]]
구현
create 렌더링할 DOM
<template> <p :id="_id" class="chart"></p> </template>
그리기 기능
function drawPie(chartData,id,titleText,xText,yText) { var chart = echarts.init(document.getElementById(id)) var xAxisData = chartData.map(function (item) {return item[0]}) var pieData = [] chartData.forEach((v,i)=>{ pieData.push({ name:v[0], value:v[1] }) }) chart.setOption({ title : { text: titleText, subtext: '', x:'center' }, tooltip : { trigger: 'item', formatter: "{a} <br/>{b} : {c} ({d}%)" }, legend: { orient: 'vertical', left: 'left', data: xAxisData }, series : [ { name: xText, type: 'pie', radius : '55%', center: ['50%', '60%'], data:pieData, itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }) }
마운트가 완료되고 데이터 소스가 변경되면 다시 그리기
watch:{ _chartData(val){ switch (this._type){ case "LineAndBar": drawLineAndBar(val,this._id,this._titleText,this._xText,this._yText); break case "LineOrBar": drawLineOrBar(val,this._id,this._titleText,this._xText,this._yText); break case "Pie": drawPie(val,this._id,this._titleText,this._xText,this._yText); break default: drawLineAndBar(val,this._id,this._titleText,this._xText,this._yText); break } } }, mounted() { switch (this._type){ case "LineAndBar": drawLineAndBar(this._chartData,this._id,this._titleText,this._xText,this._yText); break case "LineOrBar": drawLineOrBar(this._chartData,this._id,this._titleText,this._xText,this._yText); break case "Pie": drawPie(this._chartData,this._id,this._titleText,this._xText,this._yText); break default: drawLineAndBar(this._chartData,this._id,this._titleText,this._xText,this._yText); break } }
관련 추천:
echarts 구현된 사이클 생성 그래프 효과 예시 공유
vue에 Echarts 차트 사용법 추가에 대한 자세한 설명
위 내용은 vue.js는 echart를 원클릭 사용을 위한 구성 요소로 캡슐화합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!