时间:2020-08-21来源:www.pcxitongcheng.com作者:电脑系统城
现如今市场上的人事系统五花八门,可做了大数据分析的人事系统少之又少,最近本人花了一个星期好好研究了大数据展示方面的内容,图表主要用的是echarts来实现的,官网地址:https://echarts.apache.org/zh/index.html

下面两张图片展示出我实现的员工和工资的大数据分析界面:
员工大数据分析中心

工资大数据分析中心

首先引入js文件,去官网可以下载到这几个文件,引入到项目中就好了。
<script type="text/javascript" src="~/showdata/js/jquery.js"></script> <script type="text/javascript" src="~/showdata/js/echarts.min.js"></script> <script type="text/javascript" src="~/showdata/js/china.js"></script> <script type="text/javascript" src="~/showdata/js/area_echarts_hr.js">
图层引入
<div class="map4" id="map_1"></div>
地图实现的js
View Code

最后既可实现如上效果,点中相应的图例还进行预览。

以这个图表为例,这个是柱状图。
同样先引入div图层
<div class="allnav" id="echart5_1"></div>
js调用实现
View Code
后端代码调用,获取数据
/// <summary>
/// 学历
/// </summary>
/// <param name="cache"></param>
/// <returns></returns>
public ActionResult GetSalaryBigDataBYXL(bool cache = false)
{
string fileName = "xl.json";
if (cache == true)
{
string jsonData = GetData(fileName);
if (string.IsNullOrEmpty(jsonData) == false)
{
return Json(new { status = true, data = jsonData }, JsonRequestBehavior.AllowGet);
}
}
DataTable dt = GetHrBigData().Tables[3];
List<nameValue> data = new List<nameValue> { };
for (int i = 0; i < dt.Rows.Count; i++)
{
data.Add(new nameValue(dt.GetFieldValue<string>("name", i).ToStr(),
decimal.Round(dt.GetFieldValue<decimal>("count", i).ToDecimal(), 1)));
}
string json = data.ToJson();
SaveData(fileName, json);
return Json(new { status = true, data = json }, JsonRequestBehavior.AllowGet);
}
以上完成既可实现漂亮的图表了,其他饼图,折线图等等即同理实现,更新的实现效果多看看官网的帮助文档,你也可以实现漂亮的图表了,一起来交流学习吧!
<div class="xpanel xpanel-r-t">
<div class="title"><span>员工提醒信息播报</span></div>
<div class="scrollDiv" id="fachelist_div" style="height:70%;">
<ul id="fachelist_ul"></ul>
</div>
</div>
(function ($) {
$.fn.extend({
Scroll: function (opt, callback) {
//参数初始化
if (!opt) var opt = {};
var _this = this.eq(0).find("ul:first");
var lineH = _this.find("li:first").height(),
//line = opt.line ? parseInt(opt.line, 10) : parseInt(this.height() / lineH, 10),
line = 1,
speed = opt.speed ? parseInt(opt.speed, 10) : 2000,
timer = opt.timer ? parseInt(opt.timer, 10) : 3000;
if (line == 0) line = 1;
var upHeight = 0 - line * lineH;
scrollUp = function () {
_this.animate({
marginTop: upHeight
}, speed, function () {
for (i = 1; i <= line; i++) {
_this.find("li:first").appendTo(_this);
}
_this.css({
marginTop: 0
});
});
}
_this.hover(function () {
clearInterval(timerID);
}, function () {
timerID = setInterval("scrollUp()", timer);
}).mouseout();
}
});
})(jQuery);
$(document).ready(function () {
$("#fachelist_div").Scroll({
line: 4,
speed: 500,
timer: 4000
});
});
js文件获取数据代码
//消息提醒数据
function echarts_GetMsgData() {
var ul = document.getElementById("fachelist_ul");
$.ajax({
url: "/paymentWelfare/GetSalaryBigDataBYMsg",
type: "GET",
data: { cache: false },
dataType: 'json',
cache: false,
success: function (result) {
if (result.status) {
if (result.data.length > 0) {
var data = JSON.parse(result.data);
for (let i = 0 ; i < data.length; i++) {
let item = data[i];
let li = document.createElement("li");
li.innerHTML = '<li>' + '<span style="color:#FFFFFF">'
+ (i + 1) + ' . '
+ item.name + ' ' + '</span> '
+ '</li>';
ul.appendChild(li);
}
}
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
return;
},
dataType: "json"
}).fail(function (jqXHR, textStatus) {
console.log("Ajax Error: ", textStatus);
});
}
后台获取数据
/// <summary>
/// 获取消息
/// </summary>
/// <param name="cache"></param>
/// <returns></returns>
public ActionResult GetSalaryBigDataBYMsg(bool cache = false)
{
string fileName = "msg.json";
if (cache == true)
{
string jsonData = GetData(fileName);
if (string.IsNullOrEmpty(jsonData) == false)
{
return Json(new { status = true, data = jsonData }, JsonRequestBehavior.AllowGet);
}
}
DataTable dt = GetHrBigData().Tables[5];
List<nameValue> data = new List<nameValue> { };
for (int i = 0; i < dt.Rows.Count; i++)
{
data.Add(new nameValue(dt.GetFieldValue<string>("name", i).ToStr(),
decimal.Round(dt.GetFieldValue<decimal>("count", i).ToDecimal(), 1)));
}
string json = data.ToJson();
SaveData(fileName, json);
return Json(new { status = true, data = json }, JsonRequestBehavior.AllowGet);
}
以上完成既可以实现消息的滚屏显示

以上从代码实现的角度介绍了我是怎么实现的这样一个效果的过程,工资大数据实现同人事一样,都是相同的控件去实现。
做好大数据分析任重道远,本人也是今年在这方面投入了大力气去学习,之前用WPF实现了一个,可以看我上一篇写的博文,就有介绍过,实现以上两个界面的大数据是用BS来实现的,图表全部用的是echarts,实现出来的图表费用漂亮,其实在做好这样的一个效果出来首先还得去网上找一个好的模板,再去做调整,完成从一个全新开发可能难度较大,样式布局啥的都不会这么专业,我其实是省去了前面部分的工作了,只花了三四天时间既完成了以上效果,速度还是挺快的,公司领导层对这效果也是非常满意的,以后会加强在这方面的研发,让公司的业务,财务数据都能很好在图表方面进行呈现出来,这样客户也会非常喜欢的。
以上个人愚见,一起加强学习进步!
2024-04-11
台式机电脑如何连接外接显示器2024-04-11
小新系列打印机手机配置网络的方法教程2024-04-11
Thinkpad 笔记本F1-F12快捷键分别是什么功能ThinkPad蓝牙鼠标如何配对解答步骤41U5008鼠标驱动官网地址: https://support.lenovo.com/en_US/downloads/detail.page?&LegacyDocID=MIGR-67201 第一种方式是比较传统的:使...
2024-04-11
故障现象: USB设备U盘、移动硬盘等插入后提示无法识别的设备,确认设备本身正常,设备可加电,或插入设备后加电但无任何反应,无法使用。新型号机器多表现为黄色USB接口存在此问题,...
2024-04-11