vue-两个折线图联动显示,点击上面的下面的联动显示

功能简介:

1、今天是2019.6.8,默认显示前一周数据 2019.6.1-2019.6.7

2、上面折线图和下面折线图均显示最后一天2019.6.7,且高亮

3、上面折线图按日期展示,下面折线图按24小时展示

4、点击上面折线图,日期变蓝色,下面折线图日期联动且日期变蓝色

效果图如下:

关键难点:

0、上面折线图方法this.getEchartByDay(this.echartData.yesterday);下面折线图方法 this.getEchartByHour(this.echartData.yesterday)

1、点击上面折线图时,要想实现日期变色,需要重新渲染图表

2、在点击事件中把日期传递给下面的折线图,下面折线图从后端重新获取数据,进行渲染

3、点击事件,必须解除绑定,否则会多次调用后端

            // 点击事件
            this.myDayChart.off('click');//解除绑定事件,否者会多次加载
            this.myDayChart.on('click', (params)=> {
                // 分析:点击时,
                // 1、日期图表需要绘制面板,主要是高亮显示点击日期,seriesArea不发生变化,监听方法不会触发,可以直接调用getEchartByDay方法进行渲染
                // 2、24h图表需要重新加载,seriesArea2可能发生变化,发生变化,则 触发监听方法
                
                //把日期和类型(记录点击的是哪个echart表,默认从父组件传参,值一开始就设定好)传递给父组件,
                this.$emit('getDayForHours',params.name,this.echartData.typecode) 
                this.getEchartByDay(params.name);
            }); 

4、监听事件

        // 注意:seriesArea、seriesArea2是从ajax中获取的数据,需要监听数据变化时,调用方法,防止数据还没传过来
        seriesArea(newVal) {
            // 监听图表1数据变化
            this.$nextTick(() => {
                this.getEchartByDay(this.echartData.yesterday);
            })
        },
        seriesArea2(newVal) {
            // 监听图表2数据变化
            this.$nextTick(() => {
                this.getEchartByHour(this.echartData.yesterday);
            })
        },

 

实现表格和折线图联动,可以使用Vue.js和Echarts库结合实现。 首先在Vue使用Echarts,可以通过引入Echarts库和在Vue组件创建Echarts实例来实现。然后,在表格某一行数据时,可以通过绑定事件来触发更新折线图的数据,并重新渲染折线图。 具体实现步骤如下: 1. 引入Echarts库和相关组件: ```javascript import echarts from 'echarts' import 'echarts/lib/chart/line' import 'echarts/lib/component/tooltip' import 'echarts/lib/component/grid' ``` 2. 在Vue组件创建Echarts实例: ```javascript <template> <div ref="chart" style="width: 100%; height: 400px;"></div> </template> <script> export default { data() { return { chartData: [] } }, mounted() { this.initChart() }, methods: { initChart() { const chart = echarts.init(this.$refs.chart) chart.setOption({ // Echarts配置项 }) } } } </script> ``` 3. 监听表格行选事件,并更新折线图数据: ```javascript <template> <div> <el-table :data="tableData" @row-click="handleRowClick"></el-table> <div ref="chart" style="width: 100%; height: 400px;"></div> </div> </template> <script> export default { data() { return { chartData: [], tableData: [] } }, mounted() { this.initChart() }, methods: { initChart() { const chart = echarts.init(this.$refs.chart) chart.setOption({ // Echarts配置项 }) }, handleRowClick(row) { // 根据选行数据更新折线图数据 this.chartData = [...row.data] this.updateChart() }, updateChart() { const chart = echarts.init(this.$refs.chart) chart.setOption({ series: [{ type: 'line', data: this.chartData }] }) } } } </script> ``` 通过以上步骤,就可以实现Vue表格和折线图联动了。当选表格的某一行数据时,折线图数据会更新并重新渲染。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛佛ง

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值