码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • uniapp数据可视化页面,引入uCharts开发(这里介绍一下图例的自定义开发,当数据上百条的情况处理)


    uCharts官网地址:点击进入

    一般比较方便的方式是直接使用插件市场的快捷方式按具体项目进行导入,就可以在项目里面直接使用了,使用方式也肯简单,和普通的vue项目使用插件差不多,参考官网的“演示”目录代码,参数不懂的可以查看“文档”目录。

    但是通过看文档和实际使用,uCharts确实也还有很多不完善的地方。

    比如说图下面的显示图例,只能平铺,遇到几十上百的数据时,真的太糟糕了
    页面实例
    下面图例部分时自定义重写内容,主要问题就是要写与折线图的交互事件,交互里面主要问题是要对应各个对象所表示的颜色对应,因为每次显示/隐藏的时候,opts里面的color的排序都不一样。
    下面代码示例及解释:

    progress().then((res) => {
    					const data = res.data
    					this.operateBarData = data
    					//定义一组默认色值,并插入图表数组对象
    					let colorArr = ["#1890FF","#91CB74","#FAC858","#EE6666","#73C0DE","#3CA272","#FC8452","#9A60B4","#ea7ccc"]
    					this.operateBarData?.progressList.map((item,index)=>{
    						if (index<5) {//默认只展示五条数据,因为上百条的情况展示不友好
    							item.highLight = true
    						} else {
    							item.highLight = false
    						}
    						item.color = colorArr[index%9]
    					})
    				})
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    自定义部分的样式就省略了。。。
    自定义图例交互事件:

    seeCharts(item){ // 自定义控制图例样式手写交互逻辑
    		if (item.highLight&&this.resData.series.length<2) {//只剩一条数据显示折现的时候不能再取消进入隐藏模式
    			uni.$u.toast('目前只展示了一条数据了哦!')
    			return
    		}
    		item.highLight = !item.highLight// 控制显示/隐藏的样式
    		//下面是根据显/隐改变数组对象的内容
    		if (item.highLight) {
    			this.resData.series.push({
    			  name:item.projectName,
    			  deptName:item.deptName,
    			  color:item.color,
    			  data:item.progressList
    			})
    		}
    		if (!item.highLight) {
    			this.resData.series.map((it,index)=>{
    				if (item.projectName === it.name&&item.deptName === it.deptName) {
    					this.resData.series.splice(index,1)
    				}
    			})
    		}
    		//根据重组的数据,更新opts.color的色值排序和值
    		let colorArr = []
    		  this.resData.series.map((item,index)=>{
    			colorArr.push(item.color)
    		  })
    		this.opts.color = colorArr
    		this.chartData = JSON.parse(JSON.stringify(this.resData));//更新图标
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  • 相关阅读:
    golang中快速用melody搭建轻量的websocket服务
    浏览器插件有什么作用,怎么安装浏览器扩展插件
    Oracle Form Bulider 打开后提示 FRM-18018:Failed to load the following objects
    SpringBoot 使用过滤器修改请求参数
    C语言入门(二)运算符和表达式
    Ag44团簇以及衍生团簇(银纳米团簇直径1-2nm)
    【大数据】美团 DB 数据同步到数据仓库的架构与实践
    网络通信设备之网络路由技术详解
    Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (三)
    【ACM数论】和式变换技术,也许是最好的讲解之一
  • 原文地址:https://blog.csdn.net/flyingLF/article/details/127744291
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号