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

news2024/11/26 5:32:09

要求绘制下图系列表格:
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);
        }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity智慧园区夜景制作

近期使用Unity做了一个智慧园区场景的demo&#xff0c;初步了解了3D开发的一些步骤和知识&#xff0c;以下为制作的步骤&#xff0c;比较简略&#xff0c;备忘&#xff1a; 1. 制作前的设计分析&#xff1a; 1. 分析日光角度&#xff0c;阴影长度&#xff0c;效果 2. 分析冷暖…

Idea 快捷键整理

Idea快捷键和自动代码补全汇总 idea快捷键汇总 Ctrl 快捷键说明Ctrl F在当前文件进行文本查找 &#xff08;必备&#xff09;Ctrl R在当前文件进行文本替换 &#xff08;必备&#xff09;Ctrl Z撤销 &#xff08;必备&#xff09;Ctrl Y删除光标所在行 或 删除选中的行 &am…

双向最佳路径优先搜索算法

概念 双向最佳优先搜索&#xff08;Bidirectional Best-First Search&#xff09;是一种图搜索算法&#xff0c;用于在给定的图或树中找到两个节点之间的最短路径。该算法尝试从起始节点和目标节点同时扩展搜索&#xff0c;直到两个搜索方向相遇。 双向最佳优先搜索的步骤如下…

Rx.NET in Action 第三章学习笔记

3 C#函数式编程思想 本章内容包括 将 C# 与函数式技术相结合使用委托和 lambda 表达式使用 LINQ 查询集合 面向对象编程为程序开发提供了巨大的生产力。它将复杂的系统分解为类&#xff0c;使项目更易于管理&#xff0c;而对象则是一个个孤岛&#xff0c;你可以集中精力分别处理…

table 根据窗口缩放,自适应

element-plus中&#xff0c;直接应用在页面样式上&#xff0c; ::v-deep .el-table{width: 100%; } ::v-deep .el-table__header-wrapper table,::v-deep .el-table__body-wrapper table{width: 100% !important; } ::v-deep .el-table__body,::v-deep .el-table__footer,::v-d…

试卷转电子版怎样处理?分享个好用的扫描转换方法

试卷转电子版是一个常见的需求&#xff0c;可以通过扫描纸质试卷来实现。但是&#xff0c;扫描后的文件可能会有一些问题&#xff0c;例如模糊、颜色失真、文字识别错误等。在这篇文章中&#xff0c;我将分享一个好用的扫描转换方法&#xff0c;可以帮助您快速而准确地将试卷转…

Spring 中 @Qualifier 注解还能这么用?

文章目录 1. 基本用法1.1 指定 Bean 名称1.2 不指定 Bean 名称1.3 自定义注解1.4 XML 中的配置 2. 源码分析2.1 doResolveDependency2.2 findAutowireCandidates 3. 小结 今天想和小伙伴们聊一聊 Qualifier 注解的完整用法&#xff0c;同时也顺便分析一下它的实现原理。 说到 Q…

【运维知识高级篇】超详细的Jenkins教程1(安装部署+配置插件+创建自由风格项目+配合gitlab实现Jenkins自动触发)

Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成的工具&#xff0c;用于监控持续重复的工作&#xff0c; 旨在提供一个开放易用的平台&#xff0c;使软件的持续集成变成可能&#xff0c;是持续集成的核心&#xff0c;可以与其他软件进行协作&#xff0c;例…

为什么骑友对太过商业化的景点如此反感?

一骑友小李最近在社交媒体上分享了他的旅行经历。他去了一个著名的景点&#xff0c;原本期待满满&#xff0c;却发现这个曾经心中的旅行圣地已经变得过分商业化。小卖部、纪念品摊位、过度开发的风景……让他感到十分失望。他的故事引发了骑友们的热议&#xff0c;很多人表示深…

vue.draggable浅尝

介绍 Vue.Draggable是一款基于Sortable.js实现的vue拖拽插件。支持移动设备、拖拽和选择文本、智能滚动&#xff0c;可以在不同列表间拖拽、不依赖jQuery为基础、vue 2过渡动画兼容、支持撤销操作&#xff0c;总之是一款非常优秀的vue拖拽组件。本篇将介绍如何搭建环境及简单的…

网工最常犯的9大错误,越早知道越吃香

下午好&#xff0c;我的网工朋友 我们常说&#xff0c;人要学会避免错误&#xff0c;尤其是对在职场生活的打工人来说&#xff0c;更是如此。 学生时代&#xff0c;我们通过错题本收集错误&#xff0c;提高刷题正确率和分数&#xff0c;但到了职场&#xff0c;因为没有量化的…

2023年京东宠物食品行业数据分析(京东大数据)

宠物食品市场需求主要来自于养宠规模&#xff0c;近年来由于我国宠物数量及养宠人群的规模均在不断扩大&#xff0c;宠物相关产业和市场规模也在蓬勃发展&#xff0c;宠物食品市场也同样保持正向增长。 根据鲸参谋电商数据分析平台的相关数据显示&#xff0c;2023年1月-7月&am…

Live Market:个人如何做跨境电商?带你从0到1了解跨境电商

跨境电商是指通过互联网技术&#xff0c;将商品从一个国家或地区销售到另一个国家或地区的商业活动。为消费者提供更加丰富、优质、实惠的商品选择&#xff0c;促进国际贸易的发展和经济的繁荣。跨境电商还可以帮助企业降低成本&#xff0c;提高效率&#xff0c;提升品牌知名度…

创建一个 React+Typescript 项目

接下来 我们来一起探索一下用TypeScript 来编写react 这也是一个非常好的趋势&#xff0c;目前也非常多人使用 那么 我们就先从创建项目开始 首先 我们先找一个 或者 之前创建一个目录 用来放我们的项目 然后 在这个目录下直接输入 例如 这里 我想创建一个叫 tsReApp 的项目…

【Java】2021 RoboCom 机器人开发者大赛-高职组(复赛)题解

7-8 人工智能打招呼 号称具有人工智能的机器人&#xff0c;至少应该能分辨出新人和老朋友&#xff0c;所以打招呼的时候应该能有所区别。本题就请你为这个人工智能机器人实现这个功能&#xff1a;当它遇到陌生人的时候&#xff0c;会说&#xff1a;“Hello X, how are you?”其…

终端里执行qtcreator命令报错xcb

使用rpm 安装libxkbcommon-x11-0.8.4-3.ky10.x86_64.rpm包

新能源充电桩运营管理平台解决方案含开源代码

标准化产品 、 快速接入 、 自主可控 、 安全合规 、 互联互通 √快速接入通过数据交互协议实现业务交互&#xff0c;提供专业的协议开发文档及Demo代码&#xff0c;助力桩企快速实现适配及开发工作。 √标准化产品通过私有化部署帮助企业快速构建自主可控的充电桩运营管理平台…

后院失火、持续亏损!Mobileye半年报「不回避」竞争压力

"客户在2023年上半年非常谨慎&#xff0c;导致增长率低于正常水平&#xff0c;但我们已经看到下半年回暖趋势&#xff0c;预计下半年交付将比去年同期增长16%&#xff0c;远高于上半年。"这是Mobileye在近日公司半年报发布会上的预判。 公开数据显示&#xff0c;今年…

好用的免费音频转换器大揭秘

你是否曾经遇到过这样的情况&#xff1a;你有一首喜欢的歌曲或者音频文件&#xff0c;但是你的播放器或设备不支持该文件格式&#xff1f;这时候&#xff0c;你需要一款好用的音频格式转换器来帮助你。说到这&#xff0c;你可能会问&#xff0c;“我都不知道免费的音频格式转换…

Java 中的强引用、弱引用、软引用和虚引用

一、继承结构 1.1 四大引用的继承关系 在 Java 中一共有四种引用类型&#xff0c;分别是强引用、弱引用、软引用和虚引用&#xff0c;其中&#xff0c;我们常用的是强引用&#xff0c;而其他三种引用都需要引入特定的 java.lang.ref 才能使用&#xff0c;他们的继承结构如下…