JSFiddle - React, Tailwind, and code Playground

by Vue Echarts

HTML

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/v-charts/lib/index.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/echarts-amap/dist/echarts-amap.min.js"></script>
<script src="//unpkg.com/echarts/dist/extension/bmap.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/v-charts/lib/style.min.css">
<div id="app">
  <ve-line :data="chartData" :events="chartEvents" :extend="chartExtend"></ve-line>
</div>

Babel + JSX

new Vue({
  el: '#app',
  data: function () {
    this.chartSettings = {}
		this.chartEvents = {
			legendselectchanged: (v) => {
				const { name, selected } = v
				const selectedObj = this.chartExtend.legend.selected
				if (this.currentSelected === name) {
					Object.keys(selected).forEach(key => {
						selectedObj[key] = true
					})
					this.currentSelected = ''
				} else {
					Object.keys(selected).forEach(key => {
						if (key !== name) selectedObj[key] = false
					})
					this.currentSelected = name
				}
			}
		}
		this.currentSelected = ''
    return {
      chartData: {
        columns: ['日期', '访问用户', '下单用户', '下单率'],
        rows: [
          { '日期': '1/1', '访问用户': 1393, '下单用户': 1093, '下单率': 0.32 },
          { '日期': '1/2', '访问用户': 3530, '下单用户': 3230, '下单率': 0.26 },
          { '日期': '1/3', '访问用户': 2923, '下单用户': 2623, '下单率': 0.76 },
          { '日期': '1/4', '访问用户': 1723, '下单用户': 1423, '下单率': 0.49 },
          { '日期': '1/5', '访问用户': 3792, '下单用户': 3492, '下单率': 0.323 },
          { '日期': '1/6', '访问用户': 4593, '下单用户': 4293, '下单率': 0.78 }
        ]
      },
			chartExtend: {
			  legend: {
				  selected: {
						'访问用户': true,
						'下单用户': true,
						'下单率': true
					}
				}
			}
    }
  }
})