<style>
|
#febs-index .welcome-info {
|
border: 1px solid #f1f1f1;
|
margin-bottom: .5rem;
|
padding: .5rem;
|
}
|
|
#febs-index .welcome-info-wrapper {
|
padding: .2rem;
|
display: inline-block
|
}
|
|
#febs-index .welcome-info-wrapper .user-header {
|
display: inline-block;
|
vertical-align: middle
|
}
|
|
#febs-index .welcome-info-wrapper .user-header img {
|
width: 5rem;
|
margin: .5rem 1rem;
|
border-radius: 50%
|
}
|
|
#febs-index .welcome-info-wrapper .user-info {
|
display: inline-block;
|
vertical-align: middle
|
}
|
|
#febs-index .welcome-info-wrapper .user-info .random-message {
|
font-size: 1rem;
|
margin-bottom: .2rem;
|
max-width: 21rem
|
}
|
|
#febs-index .welcome-info-wrapper .user-info .user-dept, #febs-index .welcome-info-wrapper .user-info .user-login-info {
|
color: rgba(0, 0, 0, 0.45);
|
}
|
|
#febs-index .login-count-table {
|
width: 100%;
|
margin: 1rem;
|
}
|
|
#febs-index .login-count-table .count {
|
padding-top: .8rem;
|
font-size: 1rem;
|
font-weight: 600;
|
color: #1890ff
|
}
|
|
#febs-index .project-table {
|
padding: .5rem;
|
border: 1px solid #f1f1f1;
|
width: 100%
|
}
|
|
#febs-index .project-table-td {
|
padding: .5rem 0.7rem;
|
border: 1px solid #f1f1f1;
|
}
|
|
#febs-index .project-table-td a {
|
color: #42b983;
|
font-size: .9rem;
|
font-weight: 600;
|
}
|
|
#febs-index .project-desc {
|
color: rgba(0, 0, 0, 0.45);
|
}
|
</style>
|
<div class="layui-fluid layui-anim febs-anim-up" id="febs-index" lay-title="系统首页">
|
<div class="layui-row layui-col-space8 febs-container">
|
<div class="layui-col-md12 layui-col-sm12 layui-col-xs12">
|
<div class="layui-card">
|
<div class="layui-card-body layui-anim layui-anim-fadein">
|
<div class="layui-row welcome-info">
|
<div class="layui-col-md6 layui-col-sm12 layui-col-xs12">
|
<div class="layui-row welcome-info-wrapper">
|
<div class="user-header">
|
<img alt="头像" id="user-avatar" data-th-src="@{febs/images/avatar/empty.jpg}">
|
</div>
|
<div class="user-info">
|
<div class="layui-row">
|
<div class="random-message">
|
<span id="welcome-message"></span>
|
</div>
|
<div class="user-dept">
|
<span id="user-dept"></span> | <span id="user-role"></span>
|
</div>
|
<div class="user-login-info">
|
上次登录时间:<span id="last-login-time">2019-05-23 18:45:12</span>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="layui-col-md6 layui-col-sm12 layui-col-xs12">
|
<div class="layui-col-md-offset5">
|
<table class="login-count-table">
|
<tr>
|
<td>今日IP</td>
|
<td>今日访问</td>
|
<td>总访问量</td>
|
</tr>
|
<tr>
|
<td class="count" id="today-ip">
|
0
|
</td>
|
<td class="count" id="today-visit-count">
|
0
|
</td>
|
<td class="count" id="total-visit-count">
|
0
|
</td>
|
</tr>
|
</table>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="layui-col-md6 layui-col-sm6 layui-col-xs12">
|
<div class="layui-card">
|
<div class="layui-card-body">
|
<div id="chart" style="height: 350px"></div>
|
</div>
|
</div>
|
</div>
|
<div class="layui-col-md6 layui-col-sm6 layui-col-xs12">
|
<div class="layui-card">
|
<div class="layui-card-body">
|
<table class="project-table">
|
<tr>
|
<td style="padding: .8rem;">进行中的项目</td>
|
<td style="padding: .8rem;text-align: right">
|
<a target="_blank" href="https://github.com/wuyouzhuguli?tab=repositories">所有项目</a>
|
</td>
|
</tr>
|
<tr>
|
<td class="project-table-td">
|
<div class="layui-row">
|
<div class="layui-col-md12 layui-col-xs12">
|
<div class="layui-row">
|
<div class="layui-col-md12">
|
<a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Cloud">FEBS
|
Cloud</a>
|
</div>
|
<div class="project-desc">
|
Spring Cloud 微服务权限管理系统。
|
</div>
|
</div>
|
</div>
|
</div>
|
</td>
|
<td class="project-table-td">
|
<div class="layui-row">
|
<div class="layui-col-md12 layui-col-xs12">
|
<div class="layui-row">
|
<div class="layui-col-md12">
|
<a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Cloud-Web">FEBS
|
Cloud Web</a>
|
</div>
|
<div class="project-desc">
|
FEBS-Cloud前端,使用 vue-element-admin 构建。
|
</div>
|
</div>
|
</div>
|
</div>
|
</td>
|
</tr>
|
<tr>
|
<td class="project-table-td">
|
<div class="layui-row">
|
<div class="layui-col-md12 layui-col-xs12">
|
<div class="layui-row">
|
<div class="layui-col-md12">
|
<a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Shiro">FEBS
|
Shiro</a>
|
</div>
|
<div class="project-desc">
|
Spring Boot 2.0.4 & Shiro1.4.0 权限管理系统。
|
</div>
|
</div>
|
</div>
|
</div>
|
</td>
|
<td class="project-table-td">
|
<div class="layui-row">
|
<div class="layui-col-md12 layui-col-xs12">
|
<div class="layui-row">
|
<div class="layui-col-md12">
|
<a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Security">FEBS
|
Security</a>
|
</div>
|
<div class="project-desc">
|
Spring Boot 2.0.4 & Spring Security 5.0.7 权限管理系统。
|
</div>
|
</div>
|
</div>
|
</div>
|
</td>
|
</tr>
|
<tr>
|
<td class="project-table-td">
|
<div class="layui-row">
|
<div class="layui-col-md12 layui-col-xs12">
|
<div class="layui-row">
|
<div class="layui-col-md12">
|
<a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Actuator">FEBS
|
Cloud K8S</a>
|
</div>
|
<div class="project-desc">
|
FEBS Cloud K8S集群部署脚本。
|
</div>
|
</div>
|
</div>
|
</div>
|
</td>
|
<td class="project-table-td">
|
<div class="layui-row">
|
<div class="layui-col-md12 layui-col-xs12">
|
<div class="layui-row">
|
<div class="layui-col-md12">
|
<a target="_blank" href="https://github.com/wuyouzhuguli/SpringAll">SpringAll</a>
|
</div>
|
<div class="project-desc">
|
循序渐进学习Spring Boot、Spring Cloud与Spring Security。
|
</div>
|
</div>
|
</div>
|
</div>
|
</td>
|
</tr>
|
<tr>
|
<td class="project-table-td">
|
<div class="layui-row">
|
<div class="layui-col-md12 layui-col-xs12">
|
<div class="layui-row">
|
<div class="layui-col-md12">
|
<a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Vue">FEBS
|
Vue</a>
|
</div>
|
<div class="project-desc">
|
FEBS-Shiro前后端分离版本,前端架构采用Vue全家桶。
|
</div>
|
</div>
|
</div>
|
</div>
|
</td>
|
<td class="project-table-td">
|
<div class="layui-row">
|
<div class="layui-col-md12 layui-col-xs12">
|
<div class="layui-row">
|
<div class="layui-col-md12">
|
<a target="_blank" href="https://github.com/wuyouzhuguli/FEBS-Actuator">FEBS Actuator</a>
|
</div>
|
<div class="project-desc">
|
使用Spring Boot Admin 2.0.2构建,用于监控FEBS。
|
</div>
|
</div>
|
</div>
|
</div>
|
</td>
|
</tr>
|
</table>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<script data-th-inline="javascript" type="text/javascript">
|
layui.use(['apexcharts', 'febs', 'jquery', 'util'], function () {
|
var $ = layui.jquery,
|
util = layui.util,
|
$view = $('#febs-index'),
|
febs = layui.febs;
|
|
febs.get(ctx + 'index/' + currentUser.username, null, function (r) {
|
handleSuccess(r.data);
|
});
|
|
function handleSuccess(data) {
|
var hour = new Date().getHours();
|
var time = hour < 6 ? '早上好' : (hour <= 11 ? '上午好' : (hour <= 13 ? '中午好' : (hour <= 18 ? '下午好' : '晚上好')));
|
var welcomeArr = [
|
'喝杯咖啡休息下吧☕',
|
'要不要和朋友打局LOL',
|
'今天又写了几个Bug呢',
|
'今天在群里吹水了吗',
|
'今天吃了什么好吃的呢',
|
'今天您微笑了吗😊',
|
'今天帮助别人了吗',
|
'准备吃些什么呢',
|
'周末要不要去看电影?'
|
];
|
var index = Math.floor((Math.random() * welcomeArr.length));
|
var welcomeMessage = time + ',<a id="febs-index-user">' + currentUser.username + '</a>,' + welcomeArr[index];
|
$view.find('#today-ip').text(data.todayIp).end()
|
.find('#today-visit-count').text(data.todayVisitCount).end()
|
.find('#total-visit-count').text(data.totalVisitCount).end()
|
.find('#user-dept').text(currentUser.deptName ? currentUser.deptName : '暂无所属部门').end()
|
.find('#user-role').text(currentUser.roleName ? currentUser.roleName : '暂无角色').end()
|
.find('#last-login-time').text(currentUser.lastLoginTime ? currentUser.lastLoginTime : '第一次访问系统').end()
|
.find('#welcome-message').html(welcomeMessage).end()
|
.find('#user-avatar').attr('src', ctx + "febs/images/avatar/" + currentUser.avatar);
|
|
var currentTime = new Date().getTime();
|
var yourVisitCount = [];
|
var totalVisitCount = [];
|
var lastTenDays = [
|
util.toDateString(new Date(currentTime - 1000 * 9 * 86400), 'MM-dd'),
|
util.toDateString(new Date(currentTime - 1000 * 8 * 86400), 'MM-dd'),
|
util.toDateString(new Date(currentTime - 1000 * 7 * 86400), 'MM-dd'),
|
util.toDateString(new Date(currentTime - 1000 * 6 * 86400), 'MM-dd'),
|
util.toDateString(new Date(currentTime - 1000 * 5 * 86400), 'MM-dd'),
|
util.toDateString(new Date(currentTime - 1000 * 4 * 86400), 'MM-dd'),
|
util.toDateString(new Date(currentTime - 1000 * 3 * 86400), 'MM-dd'),
|
util.toDateString(new Date(currentTime - 1000 * 2 * 86400), 'MM-dd'),
|
util.toDateString(new Date(currentTime - 1000 * 86400), 'MM-dd'),
|
util.toDateString(new Date(currentTime), 'MM-dd')
|
];
|
|
|
layui.each(lastTenDays, function (k, i) {
|
var contain = false;
|
layui.each(data.lastSevenUserVisitCount, function (key, item) {
|
if (i === item.days) {
|
yourVisitCount.push(item.count);
|
contain = true;
|
}
|
});
|
if (!contain) yourVisitCount.push(0);
|
contain = false;
|
layui.each(data.lastSevenVisitCount, function (key, item) {
|
if (i === item.days) {
|
totalVisitCount.push(item.count);
|
contain = true;
|
}
|
});
|
if (!contain) totalVisitCount.push(0);
|
});
|
|
var options = {
|
chart: {
|
height: 350,
|
type: 'area',
|
toolbar: {
|
show: false
|
}
|
},
|
colors: ['#1890ff', '#0acf97'],
|
plotOptions: {
|
bar: {
|
horizontal: false,
|
columnWidth: '32rem'
|
}
|
},
|
dataLabels: {
|
enabled: false
|
},
|
stroke: {
|
width: [3, 3],
|
curve: 'smooth'
|
},
|
series: [{
|
name: '总数',
|
data: totalVisitCount
|
}, {
|
name: '您',
|
data: yourVisitCount
|
}],
|
xaxis: {
|
categories: lastTenDays,
|
axisTicks: {
|
show: true
|
},
|
axisBorder: {
|
show: true,
|
color: '#f1f1f1'
|
}
|
},
|
fill: {
|
type: 'gradient',
|
gradient: {
|
shadeIntensity: 1,
|
inverseColors: false,
|
opacityFrom: 0.5,
|
opacityTo: 0,
|
stops: [0, 90, 100]
|
}
|
},
|
title: {
|
text: '近10天系统访问记录',
|
align: 'left',
|
style: {
|
color: 'rgba(0, 0, 0, .65)'
|
}
|
},
|
tooltip: {
|
y: {
|
formatter: function (val) {
|
return "访问次数 " + val + " 次"
|
}
|
}
|
},
|
grid: {
|
row: {
|
colors: ['transparent', 'transparent'],
|
opacity: 0.2
|
},
|
borderColor: '#f1f1f1'
|
}
|
};
|
|
new ApexCharts(
|
document.querySelector("#chart"),
|
options
|
).render();
|
}
|
|
$view.on('click', '#febs-index-user',function () {
|
febs.navigate("/user/profile");
|
})
|
|
});
|
</script>
|