给一个容器添加el-popover/el-tooltip内容提示框

效果: 

html:

   <div class="evaluate"><div class="list flex-column-center" v-for="(item, index) in evaluateList" :key="index"@mouseenter="mouseenterHandler(item)" @mouseleave="mouseleaveHandler(item)"><div class="el-popover el-popper el-popover--plain formula" x-placement="top"v-if="item.showTooltip" :style="cluStyle(item.formula)">{{ item.formula }}<div x-arrow="" class="popper__arrow" style="left: 116px;"></div></div><div class="title">{{ item.title }}</div><div class="num-box"><div class="num">{{ item.num }}</div><div class="unit">{{ item.unit }}</div><div class="label">{{ item.label }}</div></div><div class="compare">{{ item.compare }}</div></div></div>

 js:

 evaluateList: [{title: "取水关键指标",num: "1.3",unit: "m³水/吨焦",label: "吨焦取水量",compare: "节水企业 < 1.2",formula: "吨焦取水量(%)=取水量(m³)/企业产焦量(吨)",showTooltip: false,},{title: "用水漏损关键指标",num: "0",unit: "%",label: "用水综合漏损率",compare: "节水企业 < 3",formula: "用水综合漏失率(%)=漏失水量(m³)/取水量(m³)",showTooltip: false,},{title: "重复利用关键指标",num: "98.5",unit: "%",label: "间接冷却水循环率",compare: "节水企业 ≥ 98",formula: "间接冷却水循环率(%)=间接冷却水循环量(m³)/(间接冷却水循环量(m³)+间接冷却水系统补充水量(m³))",showTooltip: false,},{title: "重复利用关键指标",num: "79.2",unit: "%",label: "废水回收率",compare: "节水企业 ≥ 75",formula: "废水回用率(%)=回用水量(m³)/废水收集量(m³)",showTooltip: false,},{title: "重复利用关键指标",num: "98.0",unit: "%",label: "重复利用率",compare: "节水企业 ≥ 98",formula: "重复利用率(%)=复用水量(m³)/用水量(m³)",showTooltip: false,},],
 cluStyle(content) {if (content.length && content.length <50) {return `top:-60px`}if (content.length && content.length >50) {return `top:-80px`}},mouseenterHandler(item) {item.showTooltip = true},mouseleaveHandler(item) {item.showTooltip = false},

css:

 .evaluate {width: 100%;height: calc(100% - 20px);display: flex;justify-content: space-around;.list {width: 20%;height: 100%;position: relative;.title {font-size: 14px;color: #47e2ff;}.num-box {width: 108px;height: 116px;background: url(~@/assets/img/text-bg3.png);display: flex;flex-direction: column;align-items: center;.num {font-family: "ShuHeiTi";font-size: 20px;margin-top: 30px;}.unit {margin-bottom: 15px;}}.compare {background-color: #326aef;padding: 5px 20px;}.formula {position: absolute;top: -80px;}}}

 下面这里不要加作用域 scoped否则不生效哦!!

<style lang="scss">
.el-tooltip__popper {font-size: 14px;max-width: 20%
}
.el-popover--plain {padding: 10px;
}

效果:

html: 

  <avue-crud :option="optionWatervolume" v-show="activeTab == 'watervolume'" :table-loading="loading" :data="data":page.sync="page" :search.sync="searchForm" v-model="form" ref="crud" :permission="permissionList"@row-click="rowClick" @search-change="searchChange" @search-reset="searchReset"@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"@refresh-change="refreshChange" @on-load="onLoad" @cell-mouse-enter="cellMouseEnter"@cell-mouse-leave="cellMouseLeave"><template slot-scope="{ row }" slot="deviceName"><!-- 悬浮提示 --><el-tooltip placement="top" v-model="row.showTooltip" :open-delay="500" effect="light":disabled="!row.showTooltip" class="device"><!-- 注意 显示单元格浮框时 v-model 和 disabled 属性要一起使用才有效果 --><div slot="content">{{ row.text }}</div><div>{{ row.deviceName }}</div></el-tooltip></template><template slot-scope="{ row }" slot="fieldTag"><el-row class="row"><el-select v-model="row.fieldTag" placeholder="请选择" @change="handselect(row, row.fieldTag)" ref="select"size="mini"><el-option v-for="(item, index) in row.waterFieldConfigList" :key="index" :label="item.fieldTag":value="item.fieldName"></el-option></el-select></el-row></template><template slot-scope="{ row }" slot="measurementMethod"><el-row class="row"><span>{{ row.measurementMethod == "REALTIME_VALUE" ? "实时值" : row.measurementMethod == "CUMULATIVE_VALUE" ?"累计值" : "-"}}</span></el-row></template></avue-crud>

js:

  cluStyle(content) {if (content.length && content.length == 10) {return `bottom:-${content.length*6}px`}if (content.length && content.length < 10) {return `bottom:-${content.length * 10}px`}if (content.length&& content.length > 14&&content.length <30 ) {return `bottom:-${content.length*4}px`}if (content.length&&content.length >29 && content.length <40) {return `bottom:-${content.length*3}px`}if (content.length && content.length >39 && content.length <75) {return `bottom:-${content.length*2.2}px`}if (content.length && content.length >74&& content.length <90) {return `bottom:-${content.length*2}px`}if (content.length && content.length >89) {return `bottom:-${content.length*1.8}px`}},cellMouseEnter(row, column, cell, event) {if (column.label == "计量设备") {check(row.id).then(res => {let text = ""if (res.data.code == 200) {text = res.data.datathis.$set(row, "text", text)this.$set(row, "showTooltip", true)}})}},cellMouseLeave(row) {this.$set(row, "showTooltip", false)},

css:

<style lang="scss">
.el-tooltip__popper {font-size: 14px;max-width: 20%
}
</style>

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

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

相关文章

【Vue第5章】vuex_Vue2

目录 5.1 理解vuex 5.1.1 vuex是什么 5.1.2 什么时候使用vuex 5.1.3 案例 5.1.4 vuex工作原理图 5.2 vuex核心概念和API 5.2.1 state 5.2.2 actions 5.2.3 mutations 5.2.4 getters 5.2.5 modules 5.3 笔记与代码 5.3.1 笔记 5.3.2 23_src_求和案例_纯vue版 5.3…

什么是跨站脚本攻击(XSS)?如何防止它?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

【面试】数据库—优化—聚簇索引和非聚簇索引、回表查询

数据库—优化—聚簇索引和非聚簇索引、回表查询 1. 什么是聚簇索引什么是非聚簇索引 ? 聚集索引选取规则: 如果存在主键&#xff0c;主键索引就是聚集索引&#xff1b;如果不存在主键&#xff0c;将使用第一个唯一&#xff08;UNIQUE&#xff09;索引作为聚集索引&#xff1b…

【移动通讯】【MIMO】[P1]【科普篇】

前言&#xff1a; 前面几个月把CA 的技术总体复盘了一下,下面一段时间 主要结合各国一些MIMO 技术的文档,复盘一下MIMO. 这篇主要参考华为&#xff1a; info.support.huawei.com MIMO 技术使用多天线发送和接受信号。主要应用在WIFI 手机通讯等领域. 这种技术提高了系统容量&…

python 内存泄露

Python的内存泄漏问题主要是由于以下几个原因导致的&#xff1a; 循环引用&#xff1a;当两个或多个对象相互引用&#xff0c;并且没有其他引用指向这些对象时&#xff0c;即使这些对象不再被使用&#xff0c;Python也无法释放它们的内存空间&#xff0c;从而造成内存泄漏。大…

MySQL和Redis有什么区别?

目录 一、什么是MySQL 二、什么是Redis 三、MySQL和Redis的区别 一、什么是MySQL MySQL是一种开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它是最流行的数据库之一。MySQL以其高性能、可靠性和易用性而闻名&#xff0c;广泛应用于各种Web应用程序…

ACM-MM2023 DITN详解:一个部署友好的超分Transformer

目录 1. Introduction2. Method2.1. Overview2.2. UFONE2.3 真实场景下的部署优化 3. 结果 Paper: Unfolding Once is Enough: A Deployment-Friendly Transformer Unit for Super-Resolution Code: https://github.com/yongliuy/DITN 1. Introduction CNN做超分的缺点 由于卷…

Leetcode—709.转换成小写字母【简单】

2023每日刷题&#xff08;五十八&#xff09; Leetcode—709.转换成小写字母 实现代码 char* toLowerCase(char* s) {int len strlen(s);for(int i 0; i < len; i) {if(s[i] > A && s[i] < Z) {s[i] tolower(s[i]);}}return s; }运行结果 之后我会持续更…

第20节: Vue3 计算属性

在UniApp中使用Vue3框架时&#xff0c;你可以使用计算属性来处理一些依赖其他属性的计算逻辑。计算属性会根据依赖属性的变化自动重新计算&#xff0c;并且只会在相关依赖发生改变时触发重新渲染。 下面是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用计算属性&a…

java全栈体系结构-架构师之路(持续更新中)

Java 全栈体系结构 数据结构与算法实战&#xff08;已更&#xff09;微服务解决方案数据结构模型(openresty/tengine)实战高并发JVM虚拟机实战性能调优并发编程实战微服务框架源码解读集合框架源码解读分布式架构解决方案分布式消息中间件原理设计模式JavaWebJavaSE新零售电商项…

(04730)半导体器件之晶体三极管

晶体三极管的结构和分类 晶体三极管具有三个区、两个PN结&#xff0c;从三个区分别引出三个电极而构成&#xff0c;其结构和符号如图2.1.13所示。 晶体三极管内部的三个区&#xff0c;分别称为发射区、基区和集电区&#xff0c;其中基区十分薄&#xff0c;一般为1um至几十um,掺…

单日30PB量级!火山引擎ByteHouse云原生的数据导入这么做

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 近期&#xff0c;火山引擎ByteHouse技术专家受邀参加DataFunCon2023&#xff08;深圳站&#xff09;活动&#xff0c;并以“火山引擎ByteHouse基于云原生架构的实时…

【面试】在Python中如何实现单例模式

点评&#xff1a;单例模式是指让一个类只能创建出唯一的实例&#xff0c;这个题目在面试中出现的频率极高&#xff0c;因为它考察的不仅仅是单例模式&#xff0c;更是对Python语言到底掌握到何种程度&#xff0c;建议大家用装饰器和元类这两种方式来实现单例模式&#xff0c;因…

C++输入输出流

C输出流&#xff0c;输入输出是数据的传递过程&#xff0c;数据如流水一般从一处流向另一处&#xff0c;C形象的将此过程称为流。 输入操作&#xff1a;是控制序列中的字节内容从一个设备流入内存 输出操作&#xff1a;是控制序列中的字节内容从内存流向某个设备 目录 1 C输入…

学习笔记 -- TVS管选型参考

一、TVS管基本工作原理 当TVS管(瞬态电压抑制器)两极受到反向瞬态高能量冲击时&#xff0c;能以纳秒(ns)量级的速度&#xff0c;将两极间的高阻抗变为低阻抗&#xff0c;使两极间的电压箝位于一个预定的值&#xff0c;有效地保护电子线路中的元器件。 在浪涌电压作用下&#xf…

ETLCloud详解,如何实现最佳实践及问题排查

ETLCloud介绍 ETLCloud是新一代全域数据集成平台&#xff0c;领先于市场同类产品的数据集成平台(DataOps)&#xff0c;只需单击几下即可完成数据清洗转换、传输入仓等操作&#xff0c;具备高效、智能、一站式的全域数据集成优势&#xff0c;如&#xff1a; 毫秒级实时数据同步 …

【华为数据之道学习笔记】4-4传统信息架构向业务数字化扩展:对象、过程、 规则

传统信息架构的缺陷 随着数字化转型的深入&#xff0c;发现既有信息架构已经无法满足自身业务需要&#xff0c;主要体现在以下 几个方面。 1&#xff09;大量业务和作业所产生的数据并没有完整地被管理 很多情况下&#xff0c;并不是所有业务和作业所产生的数据都在系统中承载…

编程之旅:从电脑故障到创造虚拟世界

创作方向&#xff1a;回顾自己学习编程的过程&#xff0c;分享经历和成长感悟。 当初选择学习计算机&#xff0c;我满怀梦想地说出了成为一名神奇的码农的愿望。我想象着能够像编织魔法一样&#xff0c;通过编写程序创造出炫酷的虚拟世界。然而&#xff0c;我很快就意识到&…

UE虚幻引擎中程序无需运行也可调试

首先先新建一个蓝图类&#xff0c;在蓝图类中创建一个Custom event 事件&#xff0c;然后在右侧细节面板中搜索call in editor&#xff0c;编译保存之后&#xff0c;将该蓝图类拖拽到关卡场景中&#xff0c;在细节面板中即可看到该事件的按钮。

函数指针与指针函数

函数指针&#xff1a; 定义 函数指针是指向函数的指针&#xff0c;其本质是一个指针变量&#xff0c;该指针指向这个函数。即指针存储的地址是一个函数的地址&#xff0c;函数指针就是指向函数的指针。 用途 函数指针可以作为参数传递给其他函数&#xff0c;用于回调函数&am…