【elementUi】绘制自定义表格、绘制曲线表格

要求绘制下图系列表格:
elementUi

实现步骤:
1.绘制树,实现树勾选字段—>表格绘制字段
逻辑: 树:@check-change=“treeChart.handleCheckChange” 绑定点击选择事件,改变data.column3数据项;表格:columns="data.column3"绑定相对应的data.column3实现表格列自定义;
2.绘制表格,表格中使用插槽去定义绘制曲线图< template >
逻辑:表格定义插槽,插槽中绘制一个div,div中的id 与绘制表格的自定义字段勾连起来,根据Id给对应的div绘制曲线图

1.绘制树的部分结构代码

  <el-tree :data="treeChart.treedata"
   	show-checkbox node-key="prop"
   	@check-change="treeChart.handleCheckChange" 
   	:default-checked-keys="treeChart.TagNode"
  />

对应的setup内代码
Tree
表的代码块

<el-table 
 :columns="data.column3" 
 :data="treeChart.ListChartTable || []" 
 :border="true"
 :resizable="true"
 highlight-currrent-row 
 :show-overflow-tooltip="true">
	<el-table-column 
		v-for=" (  item, index  ) in   data.column3  " 
		:key="index" 
		:prop="item.prop"
	    :width="item.width" 
	    :fixed="item.fixed" 
	    :sortable="item.sortable" 
	    :label="item.label"
	    :align="item.align" 
	    :formatter="item.formatter" 
	    :show-overflow-tooltip="true">
     	<template v-slot="scope">
            <div :ref="'chartContainer-' + '-' + item.prop + scope.$index"
                 :id="'chart-' + item.prop + '-' + scope.$index" 
                  style="width: 120px; height: 50px;"
            ></div>
     	</template>
    </el-table-column>
</el-table>

勾选树和表格相连的逻辑处理

 //复选框是否勾选
            handleCheckChange: async (treedata, checked, indeterminate) => {
                data.column3 = []; //存储自定义字段的数组
                if (checked) {
                    if (!treedata.children) {
                        treeChart.TagNode.push(treedata);
                    }
                } else {
                    treeChart.TagNode.forEach(function (item, index, arr) {
                        if (item == treedata) {
                            arr.splice(index, 1);
                        }
                    });
                }
                treeChart.TagNode.forEach((k, v) => {
                    data.column3.push({
                        label: k.label,
                        prop: k.prop,
                        visible: true,
                        align: "center",
                        width: "120",
                    })
                });

                if (data.column3.length > 0) {
                    renderCharts();     //加载曲线
                }
            },

加载曲线代码

    //加载曲线 (采用ice的取值BDB数据,参考意义不大)
       const renderCharts = async () => {
            data.column3.forEach(item => {
                var i = 0;
                data.piecenoList.forEach(async pieceno => {
                    const chartId = `chart-${item.prop}-` + i;
                    i += 1;
                    try {
                    	//调用接口获取数据
                        var productPrx = await Chart.locate(pieceno);  
                        const mea = await productPrx.getPosMeasurementSeries(item.prop);
                        drawChart(chartId, mea);
                    } catch (e) {
                        console.log("查询曲线失败", e);
                        drawChart(chartId);
                    }
                })
            });
        }
       //绘制曲线
        const drawChart = async (chartId, mea) => {
            //mea自定义存储数据 存在y_data和x_data 两个数组数据
            if (mea) {
                var y_data = [];
                var x_data = [];
                for (let i = 0; i < mea.y_data.length; i++) {
                    y_data.push(isFloat(mea.y_data[i]));
                }
                for (let j = 0; j < mea.x_data.length; j++) {
                    x_data.push(isFloat(mea.x_data[j]));
                }
            } else {
            //给一个默认曲线
                x = [0, 1, 2, 3, 4];
                y = [1, 1, 1, 1, 1];
            }
            //绘制曲线
            var chart;
            var chartElement = document.getElementById(chartId);
            if (chartElement && chartElement.getAttribute('_echarts_instance_')) {
                // 存在 ECharts 曲线,执行 removeAttribute 操作
                chartElement.removeAttribute('_echarts_instance_');
                chart = echarts.init(document.getElementById(chartId));
            } else {
                chart = echarts.init(document.getElementById(chartId));
            }
            const option = {
                xAxis: {
                    type: 'category',
                    data: x_data,
                },
                yAxis: {
                    type: 'value',
                    max: function (value) { return value.max + 1 },
                    min: function (value) { return value.min - 1 },
                },
                series: [{
                    type: 'line',
                    data: y_data,
                }]
            };
            chart.setOption(option);
        }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/75234.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

问AI一个严肃的问题

chatgpt的问世再一次掀起了AI的浪潮&#xff0c;其实我一直在想&#xff0c;AI和人类的关系未来会怎样发展&#xff0c;我们未来会怎样和AI相处&#xff0c;AI真的会完全取代人类吗&#xff0c;带着这个问题&#xff0c;我问了下chatgpt&#xff0c;看一看它是怎么看待这个问题…

图解WebSocket

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱写博客的嗯哼&#xff0c;爱好Java的小菜鸟 &#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&#x1f44d;一下博主哦 &#x1f4dd;个人博客&#xff1a;敬请期待 文章目录 前言一、…

【量化课程】02_4.数理统计的基本概念

2.4_数理统计的基本概念 数理统计思维导图 更多详细内容见notebook 1.基本概念 总体&#xff1a;研究对象的全体&#xff0c;它是一个随机变量&#xff0c;用 X X X表示。 个体&#xff1a;组成总体的每个基本元素。 简单随机样本&#xff1a;来自总体 X X X的 n n n个相互…

asp.net core webapi如何执行周期性任务

使用Api执行周期性任务 第一种&#xff0c;无图形化界面1.新建类&#xff0c;继承IJob&#xff0c;在实现的方法种书写需要周期性执行的事件。2.编写方法类&#xff0c;定义事件执行方式3.在启动方法中&#xff0c;进行设置&#xff0c;.net 6中在program.cs的Main方法中&#…

c51单片机串行通信示例代码(单片机--单片机通信)(附带proteus线路图)

//这个发送端代码 #include "reg51.h" #include "myheader.h" #define uchar unsigned char long int sleep_i0; long int main_i0; void main() {uchar sendx[6]{2,0,2,3,8,1};sleep(2000);TMOD0x20;TH10XF4;//根据波特率计算公式这里需要设置为这么多才能…

对自定义表格数据设计自定义查询/汇总

目录 1 前言 2 生成数据 3 设计一个汇总 4 试一下效果 5 导出为excel文件的源代码 6 后记 1 前言 对自定义表格中录入或者导入的数据&#xff0c;必须能定义查询和汇总&#xff0c;否则程序基本没什么用。就是说&#xff0c;程序应该具备对任意表格进行方便的查询汇总公式…

DatawhaleAI夏令营第三期机器学习用户新增预测挑战赛baseline新手教程

本教程会带领大家项目制学习&#xff0c;由浅入深&#xff0c;逐渐进阶。从竞赛通用流程与跑通最简的Baseline&#xff0c;到深入各个竞赛环节&#xff0c;精读Baseline与进阶实践技巧的学习。 千里之行&#xff0c;始于足下&#xff0c;从这里&#xff0c;开启你的 AI 学习之旅…

预训练GNN:GPT-GNN Generative Pre-Training of Graph Neural Networks

一.文章概述 本文提出了一种自监督属性图生成任务来预训练GNN&#xff0c;使得其能捕图的结构和语义属性。作者将图的生成分为两个部分&#xff1a;属性生成和边生成&#xff0c;即给定观测到的边&#xff0c;生成节点属性&#xff1b;给定观测到的边和生成的节点属性&#xf…

01:STM32点灯大师和蜂鸣器

目录 一:点亮1个LED 1:连接图 2:函数介绍 3:点灯代码 二:LED闪烁 1:函数介绍 2:闪烁代码 三:LED流水灯 1:连接图 2:函数介绍 3:流水灯代码 四:按键控制LED 1:电路图 2:连接图 3:函数介绍 4:按键控制LED代码 五:蜂鸣器 1:连接图 2:蜂鸣器代码 六:光敏电阻控制…

pywinauto结合selenium实现文件上传

简介 PC端-Windows上的元素识别可用viewWizard工具 PC端-Windows上的元素操作可用pywinauto库 浏览器上网页的元素识别可用selenium 安装 pip installer pywinauto 使用须知 pywinauto官方文档 确定app的可访问技术 1、win32 API(backend“win32”) 一般是MFC、VB6、VCL…

07_Hudi案例实战、Flink CDC 实时数据采集、Presto、FineBI 报表可视化等

7.第七章 Hudi案例实战 7.1 案例架构 7.2 业务数据 7.2.1 客户信息表 7.2.2 客户意向表 7.2.3 客户线索表 7.2.4 线索申诉表 7.2.5 客户访问咨询记录表 7.3 Flink CDC 实时数据采集 7.3.1 开启MySQL binlog 7.3.2 环境准备 7.3.3 实时采集数据 7.3.3.1 客户信息表 7.3.3.2 客户…

【Unity】ShaderGraph应用(模型膨胀流动)

【Unity】ShaderGraph应用&#xff08;模型膨胀流动&#xff09; 实现效果 ShaderGraph是 unity的图形化 Shader 编程工具。本文介绍使用ShaderGraph实现模型的膨胀流动效果。该效果可以由于模拟流体在管线中的流动等相关功能。 一、实现的方法 1.使用节点介绍 关键节点 UV…

【C#】静默安装、SQL SERVER静默安装等

可以通过cmd命令行来执行&#xff0c;也可以通过代码来执行&#xff0c;一般都需要管理员权限运行 代码 /// <summary>/// 静默安装/// </summary>/// <param name"fileName">安装文件路径</param>/// <param name"arguments"…

实录分享 | 使用Prometheus和Grafana监控Alluxio运行状况

欢迎来到【微直播间】&#xff0c;2min纵览大咖观点 本次分享主要包括三个方面&#xff1a; Prometheus&Grafana简介环境搭建手动调优 一、 Prometheus&Grafana简介关于Prometheus&#xff1a; Prometheus 是一个开源的完整监控解决方案&#xff0c;其对传统监控系…

【腾讯云 Cloud Studio 实战训练营】使用 Cloud Studio 快速构建 Vue + Vite 完成律师 H5 页面

【腾讯云 Cloud Studio 实战训练营】使用 Cloud Studio 快速构建 Vue Vite 完成律师 H5 页面 前言一、基本介绍1.应用场景2.产品优势 二、准备工作1.注册 Cloud Studio2.进入 Vue 预置开发环境 三、使用 Cloud Studio 快速构建 Vue Vite 完成律师 H5 页面1.安装相关依赖包2.主…

华为OD机试 - 最大N个数与最小N个数的和 - 数据结构Set与TreeSet(Java 2023 B卷 100分)

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 一、题目描述 给定一个数组&#xff0c;编写一个函数来计算它的最大N个数与最小N个数的和&#xff0c;需…

84. 柱状图中最大的矩形(单调栈)

题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 解题思路&#xff1a; 方法一&#xff1a;暴力解法 矩形的面积由宽和高决定&#xff0c;可以枚举所有的高度&#xff0c;也就是固定高度&#xff0c;然后从当前高度所在的位置向…

AD7151

AD7151采用ADI公司的电容-数字转换器&#xff08;CDC&#xff09;技术,这种技术汇集了与实际传感器接口过程中起着重要作用的众多特性于一身,如高输入灵敏度,较高的输入寄生接地电容和泄漏电流容限。 集成自适应式阈值算法可对因环境因素&#xff08;如湿度和温度&#xff09;…

Azure资源命名和标记决策指南

参考 azure创建虚拟机在虚拟机中选择编辑标签&#xff0c;并添加标记&#xff0c;点击应用 3.到主页中转到所有资源 4. 添加筛选器并应用 5.查看结果&#xff0c;筛选根据给服务器定义的标签筛选出结果。 参考链接: https://learn.microsoft.com/zh-cn/azure/cloud-adoption…

BBS项目day02、注册、登录(登录之随机验证码)、修改密码、退出登录、密码加密加盐

一、注册 1.注册之前端页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册页面</title><!--动态引入文件-->{% load static %}<script src"{% static js/jquery.min.js %…