当前位置: 首页 > news >正文

报表应用图表charts显示数据

在内网和手机,一直以文字和数据呈现。
上星期,浏览网页时,发现图表charts显示数据和报表,觉得不错的方式。
图表,如 https://echarts.apache.org/zh/index.html

Apache ECharts
一个基于 JavaScript 的开源可视化图表库
 2025-11-13_13-21-35

 

 花上好几天时间,分别使用javascript和vue实现,效果如下,
(echarts.min.4.3.0.js)
2025-11-13_10-49-45


(echarts.min.5.1.2.js)
2025-11-13_10-50-23

 

相同的数据,数据是来自网上,算是虚拟数据啦,没有经特别设置,只是使用echarts.min.js版本不同机而已。
 
<script src="https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js"></script>

或者

<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.1.2/echarts.min.js"></script>

亦可以下载并拉放至项目Scripts目录中,然后在网页上引用即可。
<script src="~/Scripts/echarts.min.4.3.0.js"></script>

或者,

<script src="~/Scripts/echarts.min.5.1.2.js"></script>

 

以上,只是行动中的第一步。

接下来,准备一些数据,
[{"category": "电子产品","sales": 12500,"count": 320,"profit": 4500},{"category": "服装","sales": 8900,"count": 540,"profit": 2200},{"category": "食品","sales": 7600,"count": 890,"profit": 1800},{"category": "家居","sales": 10200,"count": 430,"profit": 3100},{"category": "图书","sales": 5400,"count": 670,"profit": 1200},{"category": "运动","sales": 6800,"count": 380,"profit": 1900}
]
View Code


做测试,可以把数据存储为json文件,放在App_Data目录。

2025-11-13_11-15-00


当然你想通过数据库的话,如ms sql Server数据库,你得创建表,把数据存储起来,创建存储过程,让中间层访问得到数据。

CREATE TABLE [dbo].[SalesData]([Category] [nvarchar](40) NOT NULL PRIMARY KEY,[Sales] [int] NULL,[Count] [int] NULL,[Profit] [int] NULL
)
GO

 

INSERT INTO [dbo].[SalesData]([Category],[Sales],[Count],[Profit])VALUES(N'图书',5400,670,1200),(N'家居',10200,430,3100),(N'服装',8900,540,2200),(N'电子产品',12500,320 ,4500),(N'运动',6800,380,1900),(N'食品',7600,890,1800)
GO

 

 CREATE PROCEDURE [dbo].[usp_SalesData_Select_All]ASBEGINSELECT [Category],[Sales],[Count],[Profit]FROM  [dbo].[SalesData]END
GO

 

创建model,不管是从json文档读取数据,还是从数据读取数据,需要转换为对象。
2025-11-13_11-59-01

 

创建Entity,
2025-11-13_13-08-27

 


创建API,为下面javascript或是vue get到数据,实现异步操作。
2025-11-13_13-51-10

 

上面的准备,差不多了。
对了,还差一些Scripts,如axios.js和vue.js。在项目中,打开Manage NuGet Package...
2025-11-13_15-58-10

 
下面Insus.NET先来使用javascript实现图表,

Html,

<div style="height: 100%;"><div id="main" style="width: 600px;height:400px;"></div>
</div>


Javascript,首先引用,

<script src="~/Scripts/axios.min.js"></script>
<script src="~/Scripts/echarts.min.5.1.2.js"></script


2025-11-13_16-12-11

 

2025-11-13_16-15-18

 

下面的代码演示,是以vue来实现,
<script src="~/Scripts/vue.min.js"></script>
<script src="~/Scripts/axios.min.js"></script>
<script src="~/Scripts/echarts.min.5.1.2.js"></script>

 

在html中,需要添加一个vue的加载节点,
<div style="height: 100%;"><div id="app"><div id="main" style="width: 600px;height:400px;"></div></div>
</div>

 

vue代码示例,
2025-11-13_16-32-31

 

下面的generate_echarts() function与js的方法大同小异。
2025-11-13_16-40-13


完整程序算是完毕。

分享一下,一开始学习图表呈现,是先从vue开始的。
遇上瓶颈啦,在javascript代码死活访问不了Vue内axios异步数据。

2025-11-12_16-20-37

查阅N多相关技术与资料,
想取得vue.js的Data()内的变量属性property,有人说要使用vue的实例名,

var vue_echarts = new Vue({el: '#app',//...
})

vue_echarts.$data.//this.echarts_data_source 
这是得不到数据的。

也有网友说,这个是引用型赋值 ,不能直接使用=
要使用copy。

this.echarts_data_source = data.Data.slice();
this.echarts_data_source = JSON.parse(JSON.stringify(data.Data));

或者,

this.echarts_data_source = data.Data.map(x => x);

均行不通。

还尝试过,使用for来把所有对象一一重新push

for (var k = 0; k < data.Data.length; k++) {var o = data.Data[i];this.echarts_data_source.push(o)
}

 

还想过,

data: {echarts_data_source =[],xaxis_data =[],series_data = []
},

添加最终2个数据,xaxios_data和series_data。

for (var k = 0; k < data.Data.length; k++) {var o = data.Data[i];this.xaxis_data.push(o.Category);this.series_data.push(o.Sales)
}

 

办法尝试过许多,
无法突破,只好请教好朋友...
不要使用混合模式,可以以下2种解决方案,
完使用javascript,抛弃vue。
另外一个方案,
直接使用使用uve。图表创建,生成以及option数据设置完全在vue内生成。
哈哈哈... 茅塞顿开,思路一下子开窍。

 

http://www.rkmt.cn/news/48670.html

相关文章:

  • 商业透明展示柜价格多少钱一平方济南市场行情
  • Koa系列教程:1. 创建项目
  • 2025年户外LED广告设备采购指南:优质供应商推荐,高铁广告/电梯框架广告/社区门禁广告/社区道闸广告/机场广告/电梯视频广告企业找哪家
  • Linux系统访问控制
  • 2025年市面上比较好的河道护坡石笼网直销厂家有哪些,抗冲击抗腐蚀石笼网/镀锌低碳钢丝石笼网/六角石笼网源头厂家哪个好
  • c++初学者的随笔记录_3(断点调试)
  • 魂斗罗单机经典版下载安装教程(2025新版)——完整安装与配置指南
  • 2025年主轴电机外壳质量大比拼:专业评测报告,国内主轴电机外壳供应商优质企业盘点及核心优势详细解读
  • 2025展厅/展馆/博物馆/VR虚拟展厅设计厂家推荐成都方和科技,专业打造多媒体数字展示空间!
  • 成都火锅2025年度榜单出炉,太古里这8家店值得N刷!美食/火锅/特色美食/烧菜火锅/社区火锅品牌口碑推荐榜
  • 2025年四川小母线槽厂家综合实力排行榜TOP10 - 专业评测与选购指南
  • P8110 [Cnoi2021] 矩阵 题解
  • 2025年陶瓷管制造企业权威推荐榜单:陶瓷辊/陶瓷阀/陶瓷片源头厂家精选
  • [电调]AM32电调调参系列 —— 如何设置Minimum duty cycle, Percent
  • 2025年山西博物馆展示柜厂家综合实力排行榜TOP10
  • 嘉兴高亮广告机价格行情安装报价
  • 专业测评:2025年主轴电机外壳性能对比分析,江浙沪可靠的主轴电机外壳推荐优选实力品牌
  • 2025年冷库建造实力厂家权威推荐榜单:冷库工程/冷库/果蔬保鲜冷库源头厂家精选
  • 找到子表中超过500条记录的数据
  • 2025京津冀园林绿化选哪家?北京缘晟源:民宿景观绿化/园区景观绿化/厂区景区绿化/屋顶花园绿化全搞定
  • 2025年口碑好的美术馆展示柜批发厂家排行榜
  • 2025年潮敏器件仓生产厂家权威推荐榜单:电子料仓/智能箱体库/SMT智能仓源头厂家精选
  • 2025年市场上永磁工业风扇厂家推荐榜单:十大品牌综合评测
  • [电调]AM32电调调参系列 —— Throttle Rate of change, per ms在实际应用中的表现与分析
  • 详细介绍:Python基础_01
  • 为什么需要学习Numpy
  • 2025年阳台式太阳能热水系统制造企业权威推荐榜单:壁挂式太阳能/阳台壁挂式太阳能/阳台壁挂式太阳能热水器源头厂家精选
  • 2025年稀土合金直销厂家权威推荐榜单:钢水净化剂/碳钢精炼剂/铸钢精炼剂源头厂家精选
  • C++构造和折构函数详解,超详细! - 指南
  • 2025年海南景区标识标牌设计公司权威推荐榜单:海口标识标牌制作/标识标牌制作/安全标识标牌设计源头公司精选