数值组件滚动趋势图联动需求拆解

news2024/11/17 17:41:05

技术栈:使用vue3的composition API + tsx 进行开发 

一、需求描述

直接看UI图吧。

 简单描述一下:

数值卡片:

上方部分是一个数值卡片列表,每个卡片维护不同的集中状态,选中态,hover态。

细节: 选中态的时候,数值卡片下方会有一个白箭头。

 

需要注意的是,其中第三个卡片中有两个指标,可以点击指标名称切换当前选中指标。

滚动: 当宽度不够的时候,出现左右滚动按钮。当宽度够的时候,无左右滚动按钮。

趋势图: 上方切换选中数值卡片,显示当前指标的近1月趋势图。

二、需求分析

简单来说,这个模块的开发可以分为两个模块。

模块1,数值组件的开发。

模块2,趋势图组件的开发。

2.1 数值组件

这里我将其拆分为三个部分,

1、首先进行黄色边框,模块一的开发。

考虑到如果是每个数值卡片单独进行数据请求,多数值卡片请求并发会降低请求速度,所以,数值卡片不维护请求状态,只渲染数据。

组件的独立性,可以包括以下几个方面:维护自身的数据和状态、作用域,维护自身的事件。

我们在保持组件独立性的时候,当然还需要考虑它与外界的交互,主要包括:

对外提供配置项,来控制展示以及具体功能。

对外提供查询接口,可从外界获取组件状态。

引用自: 一个组件的自我修养 | 被删的前端游乐场

对外提供两个配置项:

① 传入的数据格式,根据业务进行定制,其格式为:

export interface NumberData {
  /** 指标 key 值 */
  key: string
  /** 指标 value 值 */
  value: number
  /** 环比*/
  chainRatio: number | string
  /** 同比 */
  yearDayRatio: number | string
  /** 指标单位 */
  unit: string
  /** 指标格式化 */
  format: string
}

传入的 NumberData 是一个数组。 

② 另外一个prop是,当前数值卡片列表选中的指标。

这个prop是双向绑定的,因为数值卡片内部维护点击事件,当点击当前卡片时,选中指标会变化。

这里,卡片的具体渲染逻辑比较简单。无非是调整一些css的样式,hover态样式变化,点击后样式变化。

这里需要着重记录的是,选中状态箭头的开发。这里的箭头利用的是伪元素。

主要是参考了下面这篇文章的实现方式:

https://www.cnblogs.com/qianxiaox/p/13808935.html

2、模块2,整体数值卡片列表的开发

这个列表开发中主要维护两件事情,

① 请求数据,格式化数据

② 初始化当前选中数值卡片指标。

3、模块3 滚动的开发  

这里的滚动的是通过原生的scroll 实现的。(Element.scrollTo() - Web API 接口参考 | MDN)

在数据挂载之后,拿到当前 数值卡片列表的实例,

监听resize事件, 控制按钮的显隐。监听滚动事件,判断左右两侧的按钮是否不可点击。

在左右两侧滚动按钮上,配置点击事件,通过element 中的scrollleft来定制往左、往右滚动的宽度。

2.2 趋势图组件

趋势图组件就比较简单了,重要的是传递当前选中的指标。

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

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

相关文章

【测试学习】Junit5的简单使用

目录 🌟需要知道: 🌟Junit学习 🌈1、常用的注解 🌈2、测试用例的执行顺序 🌈3、参数化 🌈4、断言 🌈5、测试套件 🌟需要知道: 问题1:Selen…

ATA-4315高压功率放大器在铁路钢轨损伤检测中的应用

随着高速铁路的建设和不断发展,确保铁路线路的安全和稳定运行变得越来越重要。钢轨作为铁路的重要组成部分,其损坏可能导致严重的事故和交通堵塞。因此,对钢轨损伤进行及时、准确的检测至关重要。高压功率放大器作为一种精密的测试仪器&#…

SQL 优化(一):慎用 SQL 函数

假如有下面这样一张用户表 CREATE TABLE t_user (user_id int(11) NOT NULL AUTO_INCREMENT,username varchar(50) DEFAULT NULL,sex tinyint(1) DEFAULT NULL,mobile varchar(45) DEFAULT NULL,create_time datetime DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (user_id),KEY id…

Linux系统下查看网卡配置和网络流量监控指令:ifconfig、ethtool

文章目录 1 查看/设置网卡(ifconfig)2 查看网卡配置、属性(ip、ethtool)3 查看网络接口配置情况:4 查看网络接口属性信息5 测试网路通信(ping) 6 查看具体网卡配置文件 1 查看/设置网卡&#xf…

Unity | HDRP高清渲染管线学习笔记:Lightmapping(光照烘焙)与Lightmap(光照贴图)

目录 相关概念 1.渐进式光照贴图烘焙 1.1 渐进式光照贴图烘焙对模型的要求 1.2 渐进式光照贴图烘焙对硬件的要求 1.3 渐进式光照贴图烘焙支持的Unity渲染管线 1.4 进行渐进式光照贴图烘焙结果 1.5 渐进式光照贴图烘焙的CPU版本和GPU版本 1.6 Lighting窗口Lightmapping …

2023MWC上海|平行云邀您一起聊聊“未来数字世界中的社交,游戏与娱乐”

“世界移动通信大会(MWC上海),自2012年落户上海以来已经举办9届,是中国乃至亚太区域移动产业向世界展示最新发展成果与发展战略的关键平台。2023年MWC上海将于2023年6月28-30日在上海新国际博览中心举行,主题是“时不我…

Spring 更简单的读取和存储对象、使用注解存取对象

文章目录 1.前言2.存储 Bean对象2.1 前置任务:配置扫描路径(重中之重)2.2 添加注解存储 Bean 对象2.2.1 类注解2.2.2 方法注解 Bean 3.获取 Bean对象3.1 属性注入3.2 构造方法注入3.3 Setter 注⼊3.4 三种注释的优缺点3.5 另⼀种注⼊关键字&a…

python学习——时间序列

目录 1 生成时间1.1 pd.Timestamp1.2 pd.to_datetime 最常用1.2.1 单个转换为时间戳1.2.2 多个时间转换为时间戳1.2.3 日期在前 dayfirst1.2.4 处理特殊格式 format1.2.5 处理无效时间 errors1.2.6 和timestamp互转 1.3 固定跨度时间的生成 pd.date_range 2 时间格式转换 .dt.s…

AI工具在不同领域的应用范围分享,让我们一起了解

随着人工智能技术的不断发展,越来越多的领域开始应用AI工具来解决问题、提高效率和创造力。无论是在医疗、金融、教育还是其他行业,AI工具都展现出了巨大的潜力和价值。今天,我将分享一些常见的AI工具在不同领域的应用范围,让我们…

Consul:什么是Consul? ①

一、思想 微服务、分布式应用的特点就是拆分,拆分带来的问题就是服务器数量成倍增多,两个很重要的原因,需要抽离出来一个项目专门管理这些服务信息。 1、对信息的管理思想,统一化、中心化一直是一套比较常规成熟的标准。 2、并且它…

开源工具系列8:Spring Security

Spring Security 是一套认证授权框架, 支持认证模式如 HTTP BASIC 认证头 (基于 IETF RFC-based 标准), HTTP Digest 认证头 ( IETF RFC-based 标准), Form-based authentication (用于简单的用户界面), OpenID 认证等, Spring Security使得当前系统可以快速集成这些验证机制亦…

Matplotlib---等高线图

1. 等高线图 等高线图:也称水平图,是一种在二维平面上显示 3D 图像的方法。 x np.linspace(-5, 5, 100) y np.linspace(-5, 5, 100)# 将上述数据变成网格数据形式 X, Y np.meshgrid(x, y)# 定义Z与X, Y之间的关系 Z np.sqrt(X**2 Y**2)# 画等高线…

Win11 系统Java17的安装教程:最新版JDK 17.07下载、安装、卸载详解

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

如何利用AI高效率快速调色

在设计行业中,时间是非常宝贵的资源,而设计师们常常需要应对繁忙的工作日程和紧迫的截止日期。为了提高工作效率和节省时间,越来越多的设计师开始利用人工智能(AI)技术中的高效调色功能。本文将介绍如何利用AI高效率快…

震惊!国产AI模特已经可以做到这个程度了,未来可期

自从GhatGPT火了之后 AI就成为网络热词 并且渗透到各行各业中 你敢相信下面这些图模特图 竟然都是AI生成的! 简直不要太逼真 这次AI真的可以取代一部分模特了 假人模特 神采PromeAI生成 神采PromeAI生成 从生成效果来看 AI模特已非常接近真人 对于电商企业或…

springboot开发PC端桌面应用

一、需求描述: 1、要求桌面能在window、Linux和macos系统上运行 2、用户自定义数据筛选策略,策略可通过excel导入导出 3、选择多个excel文件通过策略过滤生成新的excel 二、技术选型及集成环境配置: 1、PC端跨平台直接选用javafx来作为桌…

go实现的简单压测工具

1、参数概览 依赖github.com/ddliu/go-httpclient进行http接口请求 依赖github.com/antlabs/pcurl解析curl 输入参数: -c,concurrency,并发数,启动协程数-n, totalNumber,单个协程发送的请求个数-u&…

Zookeeper源码解析(上)

序: Zookeeper最早起源于雅虎研究院的一个研究小组, 在当时, 研究人员发现,在雅虎内部有很大大型的系统都是需要一个依赖一个类似的系统来进行分布式协调,但是在系统往往都存在分布式单点问题,所以雅虎的开…

佩戴舒适度极好的蓝牙耳机推荐,五款佩戴舒适的蓝牙耳机推荐

​说到真无线蓝牙耳机,很多人会问音质表现好不好,佩戴上耳舒适性怎么样?等等问题。面对这些常会问的问题,我总结出来,也整理出来几款质量好、佩戴舒适的蓝牙耳机给大家,来看看有哪些。 一、南卡OE PRO开放…

安装SSL证书会拖慢网站访问速度吗?

💂 个人网站:【海拥】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 目录 前言什么是SSL证书SSL证…