后台首页更 新,新增会员总数/作家总数/作品总数/交易总数统计,新增7日内会员新增/作家新增/作品新增/交易新增统计报表

This commit is contained in:
xiongxiaoyang
2020-12-01 05:42:12 +08:00
parent 28cebad48d
commit b279763383
70 changed files with 7369 additions and 254 deletions

View File

@ -40,7 +40,7 @@
<div class="layui-row layui-col-space15">
<div class="layui-col-md8">
<div class="layui-row layui-col-space15">
<div class="layui-col-md6">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-warning icon"></i>数据统计</div>
<div class="layui-card-body">
@ -51,10 +51,10 @@
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-blue">实时</span>
<h5>用户统计</h5>
<h5>会员统计</h5>
</div>
<div class="panel-content">
<h1 class="no-margins">1234</h1>
<h1 class="no-margins" id="userCount">1234</h1>
<small>当前分类总记录数</small>
</div>
</div>
@ -65,10 +65,10 @@
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-cyan">实时</span>
<h5>商品统计</h5>
<h5>作家统计</h5>
</div>
<div class="panel-content">
<h1 class="no-margins">1234</h1>
<h1 class="no-margins" id="authorCount">1234</h1>
<small>当前分类总记录数</small>
</div>
</div>
@ -79,10 +79,10 @@
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-orange">实时</span>
<h5>浏览统计</h5>
<h5>作品统计</h5>
</div>
<div class="panel-content">
<h1 class="no-margins">1234</h1>
<h1 class="no-margins" id="bookCount">1234</h1>
<small>当前分类总记录数</small>
</div>
</div>
@ -93,10 +93,10 @@
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-green">实时</span>
<h5>订单统计</h5>
<h5>交易统计</h5>
</div>
<div class="panel-content">
<h1 class="no-margins">1234</h1>
<h1 class="no-margins" id="orderCount">1234</h1>
<small>当前分类总记录数</small>
</div>
</div>
@ -107,66 +107,6 @@
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-credit-card icon icon-blue"></i>快捷入口</div>
<div class="layui-card-body">
<div class="welcome-module">
<div class="layui-row layui-col-space10 layuimini-qiuck">
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" data-iframe-tab="page/menu.html" data-title="菜单管理" data-icon="fa fa-window-maximize">
<i class="fa fa-window-maximize"></i>
<cite>菜单管理</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" data-iframe-tab="page/setting.html" data-title="系统设置" data-icon="fa fa-gears">
<i class="fa fa-gears"></i>
<cite>系统设置</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" data-iframe-tab="page/table.html" data-title="表格示例" data-icon="fa fa-file-text">
<i class="fa fa-file-text"></i>
<cite>表格示例</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" data-iframe-tab="page/icon.html" data-title="图标列表" data-icon="fa fa-dot-circle-o">
<i class="fa fa-dot-circle-o"></i>
<cite>图标列表</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" data-iframe-tab="page/form.html" data-title="表单示例" data-icon="fa fa-calendar">
<i class="fa fa-calendar"></i>
<cite>表单示例</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" data-iframe-tab="page/404.html" data-title="404页面" data-icon="fa fa-hourglass-end">
<i class="fa fa-hourglass-end"></i>
<cite>404页面</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" data-iframe-tab="page/button.html" data-title="按钮示例" data-icon="fa fa-snowflake-o">
<i class="fa fa-snowflake-o"></i>
<cite>按钮示例</cite>
</a>
</div>
<div class="layui-col-xs3 layuimini-qiuck-module">
<a href="javascript:;" data-iframe-tab="page/layer.html" data-title="弹出层" data-icon="fa fa-shield">
<i class="fa fa-shield"></i>
<cite>弹出层</cite>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-line-chart icon"></i>报表统计</div>
@ -180,98 +120,9 @@
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-bullhorn icon icon-tip"></i>系统公告</div>
<div class="layui-card-body layui-text">
<div class="layuimini-notice">
<div class="layuimini-notice-title">修改选项卡样式</div>
<div class="layuimini-notice-extra">2019-07-11 23:06</div>
<div class="layuimini-notice-content layui-hide">
界面足够简洁清爽。<br>
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
支持多tab可以打开多窗口。<br>
支持无限级菜单和对font-awesome图标库的完美支持。<br>
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
url地址hash定位可以清楚看到当前tab的地址信息。<br>
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
移动端的友好支持。<br>
</div>
</div>
<div class="layuimini-notice">
<div class="layuimini-notice-title">新增系统404模板</div>
<div class="layuimini-notice-extra">2019-07-11 12:57</div>
<div class="layuimini-notice-content layui-hide">
界面足够简洁清爽。<br>
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
支持多tab可以打开多窗口。<br>
支持无限级菜单和对font-awesome图标库的完美支持。<br>
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
url地址hash定位可以清楚看到当前tab的地址信息。<br>
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
移动端的友好支持。<br>
</div>
</div>
<div class="layuimini-notice">
<div class="layuimini-notice-title">新增treetable插件和菜单管理样式</div>
<div class="layuimini-notice-extra">2019-07-05 14:28</div>
<div class="layuimini-notice-content layui-hide">
界面足够简洁清爽。<br>
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
支持多tab可以打开多窗口。<br>
支持无限级菜单和对font-awesome图标库的完美支持。<br>
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
url地址hash定位可以清楚看到当前tab的地址信息。<br>
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
移动端的友好支持。<br>
</div>
</div>
<div class="layuimini-notice">
<div class="layuimini-notice-title">修改logo缩放问题</div>
<div class="layuimini-notice-extra">2019-07-04 11:02</div>
<div class="layuimini-notice-content layui-hide">
界面足够简洁清爽。<br>
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
支持多tab可以打开多窗口。<br>
支持无限级菜单和对font-awesome图标库的完美支持。<br>
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
url地址hash定位可以清楚看到当前tab的地址信息。<br>
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
移动端的友好支持。<br>
</div>
</div>
<div class="layuimini-notice">
<div class="layuimini-notice-title">修复左侧菜单缩放tab无法移动</div>
<div class="layuimini-notice-extra">2019-06-17 11:55</div>
<div class="layuimini-notice-content layui-hide">
界面足够简洁清爽。<br>
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
支持多tab可以打开多窗口。<br>
支持无限级菜单和对font-awesome图标库的完美支持。<br>
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
url地址hash定位可以清楚看到当前tab的地址信息。<br>
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
移动端的友好支持。<br>
</div>
</div>
<div class="layuimini-notice">
<div class="layuimini-notice-title">修复多模块菜单栏展开有问题</div>
<div class="layuimini-notice-extra">2019-06-13 14:53</div>
<div class="layuimini-notice-content layui-hide">
界面足够简洁清爽。<br>
一个接口几行代码而已直接初始化整个框架,无需复杂操作。<br>
支持多tab可以打开多窗口。<br>
支持无限级菜单和对font-awesome图标库的完美支持。<br>
失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。<br>
url地址hash定位可以清楚看到当前tab的地址信息。<br>
刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。<br>
移动端的友好支持。<br>
</div>
</div>
</div>
</div>
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-fire icon"></i>版本信息</div>
<div class="layui-card-header"><i class="fa fa-fire icon"></i>项目信息</div>
<div class="layui-card-body layui-text">
<table class="layui-table">
<colgroup>
@ -280,7 +131,7 @@
</colgroup>
<tbody>
<tr>
<td>框架名称</td>
<td>项目名称</td>
<td>
小说精品屋
</td>
@ -291,13 +142,7 @@
</tr>
<tr>
<td>主要特色</td>
<td>零门槛 / 响应式 / 清爽 / 极简</td>
</tr>
<tr>
<td>演示地址</td>
<td>
<a href="http://www.java2nb.com/" target="_blank">点击查看</a><br>
</td>
<td>小说 / 漫画 / 自适应 / 弹幕 / 采集</td>
</tr>
<tr>
<td>下载地址</td>
@ -319,8 +164,8 @@
<td>Github</td>
<td style="padding-bottom: 0;">
<div class="layui-btn-container">
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=fiction_house&type=star&count=true" frameborder="0" scrolling="0" width="100px" height="20px"></iframe>
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=fiction_house&type=fork&count=true" frameborder="0" scrolling="0" width="100px" height="20px"></iframe>
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=fiction_house&type=star&count=true" frameborder="0" scrolling="0" width="110px" height="20px"></iframe>
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=fiction_house&type=fork&count=true" frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
</div>
</td>
</tr>
@ -330,22 +175,134 @@
</div>
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-paper-plane-o icon"></i>作者心语</div>
<div class="layui-card-body layui-text layadmin-text">
<p>本系统使用springboot+mybatis+redis+thymeleaf+mysql等技术进行实现。</p>
<p>技术交流QQ群345291517加群请备注来源如gitee、github、官网等</p>
<p>喜欢此系统的可以给我的GitHub和Gitee加个Star支持一下</p>
<p class="layui-red">备注:此后台框架永久开源,但请勿进行出售或者上传到任何素材网站,否则将追究相应的责任。</p>
<div class="layui-card-header"><i class="fa fa-fire icon"></i>项目信息</div>
<div class="layui-card-body layui-text">
<table class="layui-table">
<colgroup>
<col width="100">
<col>
</colgroup>
<tbody>
<tr>
<td>项目名称</td>
<td>
小说精品屋-plus
</td>
</tr>
<tr>
<td>开发语言</td>
<td>Java</td>
</tr>
<tr>
<td>主要特色</td>
<td>原创 / 多端 / 充值 / 订阅 / 采集</td>
</tr>
<tr>
<td>下载地址</td>
<td>
<a href="https://gitee.com/xiongxyang/novel-plus" target="_blank">Gitee</a> /
<a href="https://github.com/201206030/novel-plus" target="_blank">Github</a>
</td>
</tr>
<tr>
<td>Gitee</td>
<td style="padding-bottom: 0;">
<div class="layui-btn-container">
<a href='https://gitee.com/xiongxyang/novel-plus/stargazers'><img src='https://gitee.com/xiongxyang/novel-plus/badge/star.svg?theme=dark' alt='star'></img></a>
<a href='https://gitee.com/xiongxyang/novel-plus/members'><img src='https://gitee.com/xiongxyang/novel-plus/badge/fork.svg?theme=dark' alt='fork'></img></a>
</div>
</td>
</tr>
<tr>
<td>Github</td>
<td style="padding-bottom: 0;">
<div class="layui-btn-container">
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-plus&type=star&count=true" frameborder="0" scrolling="0" width="110px" height="20px"></iframe>
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-plus&type=fork&count=true" frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-fire icon"></i>项目信息</div>
<div class="layui-card-body layui-text">
<table class="layui-table">
<colgroup>
<col width="100">
<col>
</colgroup>
<tbody>
<tr>
<td>项目名称</td>
<td>
小说精品屋-微服务版
</td>
</tr>
<tr>
<td>开发语言</td>
<td>Java</td>
</tr>
<tr>
<td>主要特色</td>
<td>SpringCloudAlibaba / Redis / RabbitMq / ElasticSearch / Sharding-Jdbc / Docker</td>
</tr>
<tr>
<td>下载地址</td>
<td>
<a href="https://gitee.com/xiongxyang/novel-cloud" target="_blank">Gitee</a> /
<a href="https://github.com/201206030/novel-cloud" target="_blank">Github</a>
</td>
</tr>
<tr>
<td>Gitee</td>
<td style="padding-bottom: 0;">
<div class="layui-btn-container">
<a href='https://gitee.com/xiongxyang/novel-cloud/stargazers'><img src='https://gitee.com/xiongxyang/novel-cloud/badge/star.svg?theme=dark' alt='star'></img></a>
<a href='https://gitee.com/xiongxyang/novel-cloud/members'><img src='https://gitee.com/xiongxyang/novel-cloud/badge/fork.svg?theme=dark' alt='fork'></img></a>
</div>
</td>
</tr>
<tr>
<td>Github</td>
<td style="padding-bottom: 0;">
<div class="layui-btn-container">
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-cloud&type=star&count=true" frameborder="0" scrolling="0" width="110px" height="20px"></iframe>
<iframe src="https://ghbtns.com/github-btn.html?user=201206030&repo=novel-cloud&type=fork&count=true" frameborder="0" scrolling="0" width="101px" height="20px"></iframe>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="/layuimini/lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
<script src="/layuimini/lib/layui-v2.5.4/layui.js" charset="utf-8"></script>
<script src="/layuimini/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
$.ajax({
type: "GET",
url: "/novel/stat/countSta",
data: {},
success: function (r) {
if (r.code == 0) {
$("#userCount").html(r.userCount);
$("#authorCount").html(r.authorCount);
$("#bookCount").html(r.bookCount);
$("#orderCount").html(r.orderCount);
} else {
layer.msg(r.msg);
}
},
});
layui.use(['layer', 'layuimini','echarts'], function () {
var $ = layui.jquery,
layer = layui.layer,
@ -386,67 +343,93 @@
/**
* 报表功能
*/
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
var optionRecords = {
tooltip: {
trigger: 'axis'
},
legend: {
data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['周一','周二','周三','周四','周五','周六','周日']
},
yAxis: {
type: 'value'
},
series: [
{
name:'邮件营销',
type:'line',
data:[120, 132, 101, 134, 90, 230, 210]
},
{
name:'联盟广告',
type:'line',
data:[220, 182, 191, 234, 290, 330, 310]
},
{
name:'视频广告',
type:'line',
data:[150, 232, 201, 154, 190, 330, 410]
},
{
name:'直接访问',
type:'line',
data:[320, 332, 301, 334, 390, 330, 320]
},
{
name:'搜索引擎',
type:'line',
data:[820, 932, 901, 934, 1290, 1330, 1320]
}
]
};
echartsRecords.setOption(optionRecords);
$.ajax({
type: "GET",
url: "/novel/stat/tableSta",
data: {},
success: function (r) {
if (r.code == 0) {
var legendData = ['会员新增','作家新增','作品新增','交易新增'];
var userSeries = [
{
name:'会员新增',
type:'line',
data:[]
},{
name:'作家新增',
type:'line',
data:[]
},{
name:'作品新增',
type:'line',
data:[]
},{
name:'交易新增',
type:'line',
data:[]
}];
var xAxisData = r.dateList;
var userTableSta = r.userTableSta;
for(var i = 0 ; i < xAxisData.length ; i++){
userSeries[0].data[i] = userTableSta[xAxisData[i]] ? userTableSta[xAxisData[i]] : 0;
}
var authorTableSta = r.authorTableSta;
for(var i = 0 ; i < xAxisData.length ; i++){
userSeries[1].data[i] = authorTableSta[xAxisData[i]] ? authorTableSta[xAxisData[i]] : 0;
}
var bookTableSta = r.bookTableSta;
for(var i = 0 ; i < xAxisData.length ; i++){
userSeries[2].data[i] = bookTableSta[xAxisData[i]] ? bookTableSta[xAxisData[i]] : 0;
}
var orderTableSta = r.orderTableSta;
for(var i = 0 ; i < xAxisData.length ; i++){
userSeries[3].data[i] = orderTableSta[xAxisData[i]] ? orderTableSta[xAxisData[i]] : 0;
}
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
var optionRecords = {
tooltip: {
trigger: 'axis'
},
legend: {
data:legendData
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: xAxisData
},
yAxis: {
type: 'value'
},
series: userSeries
};
echartsRecords.setOption(optionRecords);
// echarts 窗口缩放自适应
window.onresize = function(){
echartsRecords.resize();
}
} else {
layer.msg(r.msg);
}
},
});
// echarts 窗口缩放自适应
window.onresize = function(){
echartsRecords.resize();
}
});
</script>