dev_oa/app/home/view/index/main.html

532 lines
14 KiB
HTML
Raw Normal View History

{extend name="../../base/view/common/base" /}
{block name="style"}
<style type="text/css">
.table-title {
font-size: 18px;
font-weight: 800;
2022-04-24 19:03:02 +08:00
padding: 12px 12px 0;
}
.panel-num table {
width: 100%;
}
.panel-num td {
text-align: center;
padding: 20px 0;
width: 20%;
border-left: 1px solid #eee
}
.panel-num .num-title {
padding-bottom: 10px;
color: #999;
}
.panel-num .num-num {
font-size: 28px;
font-weight: 300;
color: #009688;
}
.layui-timeline-title {
padding-bottom: 0;
}
.layui-timeline-item {
padding-bottom: 1px;
}
.layui-timeline-title span {
color: #999
}
.layui-timeline{
padding-bottom: 30px;
}
.panel-more {
width: 100%;
height: 48px;
line-height: 48px;
text-align: center;
position: absolute;
bottom: 0;
left: 0;
}
.panel-more a {
color: #0088FF
}
2022-04-24 19:03:02 +08:00
.info-td{width:90px; text-align:right; background-color:#f8f8f8; color:#999; padding:5px 3px;}
</style>
{/block}
<!-- 主体 -->
{block name="body"}
2022-04-24 19:03:02 +08:00
<div class="layui-row layui-col-space12">
<div class="layui-col-md8">
2022-04-24 19:03:02 +08:00
<div class="layui-row layui-col-space12">
<div class="layui-col-md12">
<div class="layui-card panel-num">
<table>
<tr>
<td>
<div class="num-title">员工</div>
<div class="num-num">{$adminCount}</div>
</td>
<td>
<div class="num-title">知识</div>
<div class="num-num">{$articleCount}</div>
</td>
<td>
<div class="num-title">审批</div>
<div class="num-num">{$approveCount}</div>
</td>
<td>
<div class="num-title">报销</div>
<div class="num-num">{$expenseCount}</div>
</td>
<td>
<div class="num-title">发票</div>
<div class="num-num">{$invoiceCount}</div>
</td>
</tr>
</table>
</div>
<div class="layui-card">
<div class="table-title">企业公告</div>
<div style="padding: 15px;">
<table id="Note" lay-filter="Note" class="layui-hide" style="margin-top:0"></table>
</div>
</div>
<div class="layui-card">
<div class="table-title">知识列表</div>
<div style="padding: 15px;">
<table id="Article" lay-filter="Article" class="layui-hide" style="margin-top:0"></table>
</div>
</div>
<div class="layui-card">
<div id="chartView" style="width: 100%;height:300px;"></div>
</div>
<div class="layui-card">
<div id="chartYear" style="width: 100%;height:240px;"></div>
</div>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="table-title">系统信息</div>
<div class="layui-card-body">
<table class="layui-table" lay-skin="" lay-size="sm">
{if condition="($install == true)"}
<tr>
2022-04-24 19:03:02 +08:00
<td colspan="4" style="color: #E94335; background-color:#f8f8f8">提醒发现app目录下的install文件夹没删除为了系统的安全,请手动去删除。</td>
</tr>
{/if}
<tr>
2022-04-24 19:03:02 +08:00
<td class="info-td">服务器系统</td>
<td>{:get_system_info('os')}</td>
2022-04-24 19:03:02 +08:00
<td class="info-td">PHP版本</td>
<td>{:get_system_info('php')}</td>
</tr>
<tr>
2022-04-24 19:03:02 +08:00
<td class="info-td">上传附件限制</td>
<td>{:get_system_info('upload_max_filesize')}</td>
2022-04-24 19:03:02 +08:00
<td class="info-td">执行时间限制</td>
<td>{:get_system_info('max_execution_time')}</td>
</tr>
<tr>
2022-04-24 19:03:02 +08:00
<td class="info-td">勾股OA</td>
<td colspan="3">{:CMS_VERSION}<a class="layui-badge layui-bg-blue" style="margin-left:8px"
href="https://blog.gougucms.com/home/book/detail/bid/3.html" target="_blank">勾股OA文档</a></td>
</tr>
<tr>
2022-04-24 19:03:02 +08:00
<td class="info-td">ThinkPHP版本</td>
2022-04-25 00:10:16 +08:00
<td colspan="3">{TP_VERSION}<a class="layui-badge layui-bg-blue" style="margin-left:8px" href="https://www.kancloud.cn/manual/thinkphp6_0" target="_blank">TP6文档</a></td>
</tr>
<tr>
2022-04-24 19:03:02 +08:00
<td class="info-td">Layui版本</td>
<td colspan="3">{:LAYUI_VERSION}<a class="layui-badge layui-bg-blue" style="margin-left:8px" href="https://www.layui.site/doc/" target="_blank">Layui文档</a></td>
</tr>
<tr>
2022-04-24 19:03:02 +08:00
<td class="info-td">BUG反馈</td>
2022-03-12 13:42:30 +08:00
<td colspan="3"><a href="mailto:hdm58@qq.com" target="_blank">hdm58@qq.com</a></td>
</tr>
<tr>
2022-04-24 19:03:02 +08:00
<td class="info-td">QQ交流群</td>
2022-03-12 13:42:30 +08:00
<td colspan="3">搜Q群24641076或点击 <a href="https://jq.qq.com/?_wv=1027&k=pxshRv6I" target="_blank" rel="nofollow"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="gougucms交流群" title="gougucms交流群" style="vertical-align:middle"></a></td>
</tr>
2022-02-21 09:50:50 +08:00
<tr>
2022-04-24 19:03:02 +08:00
<td class="info-td">同系列开源软件</td>
<td colspan="3"><a class="layui-badge layui-bg-blue" style="margin-right:8px" href="https://gitee.com/gougucms/gougucms" target="_blank">勾股CMS</a><a class="layui-badge layui-bg-blue" style="margin-right:8px" href="https://gitee.com/gougucms/blog.git" target="_blank">勾股BLOG</a><a class="layui-badge layui-bg-blue" href="https://gitee.com/gougucms/dev" target="_blank">勾股DEV</a></td>
</tr>
<tr>
<td class="info-td">🍗🍗<br/>给作者加鸡腿<br/>🍗🍗</td>
<td colspan="3">
<img src="https://www.gougucms.com/static/home/images/zfb.png" data-event="pay" style="width:50%; max-width:100%; cursor:pointer;" align=center /><img src="https://www.gougucms.com/static/home/images/wx.png" data-event="pay" style="width:50%; max-width:100%; cursor:pointer;" align=center />
</td>
2022-02-21 09:50:50 +08:00
</tr>
</table>
2022-04-24 19:03:02 +08:00
<script>
$('body').on('click','[data-event="pay"]',function(){
var src=$(this).attr('src');
layer.open({
type:1,
title:'感谢您给作者加鸡腿🍗🍗',
content:'<img src="'+src+'" style="width:100%" align=center />',
});
})
</script>
</div>
</div>
<div class="layui-card">
<div class="table-title">员工动态</div>
<div class="layui-card-body">
<ul class="layui-timeline" id="logs"></ul>
<div class="panel-more"><a href="javascript:;">查看更多动态</a></div>
</div>
</div>
</div>
</div>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
2022-02-18 10:14:51 +08:00
<script src="https://cdn.staticfile.org/echarts/5.3.0/echarts.min.js"></script>
<script>
function init(layui) {
var TAB = parent.layui.tab,
layer = layui.layer,
table = layui.table;
//公告
table.render({
elem: '#Note'
, url: "/api/index/get_note_list" //数据接口
, page: false //开启分页
, cols: [[ //表头
{ field: 'cate_title', title: '公告分类', align: 'center','width': 90 },
{ field: 'title', title: '公告标题'},
{ field: 'view', title: '操作','width': 60 , align: 'center', templet:function(d){
var html='<button class="layui-btn layui-btn-xs layui-btn-normal" lay-event="view">详情</button>';
return html;
}},
{ field: 'create_time', title: '发布时间', align: 'center','width': 136}
]]
});
//文章
table.render({
elem: '#Article'
, url: "/api/index/get_article_list" //数据接口
, page: false //开启分页
, cols: [[ //表头
{ field: 'cate_title', title: '知识分类', align: 'center','width': 90 },
{ field: 'title', title: '知识标题'},
{ field: 'read', title: '访问量', align: 'center','width': 80 },
{ field: 'view', title: '操作','width': 60 , align: 'center', templet:function(d){
var html='<button class="layui-btn layui-btn-xs layui-btn-normal" lay-event="view">详情</button>';
return html;
}},
{ field: 'create_time', title: '发布时间', align: 'center','width': 136}
]]
});
$('.panel-more').on('click', function () {
TAB.sonAdd('/api/index/log_list','员工动态');
return;
});
//监听行工具事件
table.on('tool(Note)', function (obj) {
var data = obj.data;
if (obj.event === 'view') {
TAB.sonAdd('/note/index/view?id='+data.id,'公告详情');
return;
}
});
table.on('tool(Article)', function (obj) {
var data = obj.data;
if (obj.event === 'view') {
TAB.sonAdd('/article/index/view?id='+data.id,'知识文章详情');
return;
}
});
get_logs();
get_view_data();
}
function get_logs() {
$.ajax({
url: "/api/index/log_list",
type: 'post',
data: {
page: 1,
limit: 20
},
success: function (e) {
if (e.code == 0) {
var html = '';
$.each(e.data, function (key, value) {
html += '<li class="layui-timeline-item">\
<i class="layui-icon layui-timeline-axis"></i>\
<div class="layui-timeline-content layui-text">\
<div class="layui-timeline-title"><span title="'+ value.id + '">' + value.times + '</span>' + value.content + '</div>\
</div>\
</li>';
});
$('#logs').html(html);
}
}
})
}
function setHour(num) {
var str = num + ':00';
if (num < 10) {
str = '0' + num + ':00';
}
return str;
}
var chartView = echarts.init(document.getElementById('chartView'));
function get_view_data() {
$.ajax({
url: "/api/index/get_view_data",
type: 'post',
data: {},
success: function (e) {
if (e.code == 0) {
var data_first = e.data.data_first;
var data_second = e.data.data_second;
archiveCalendar = e.data.data_three;
var myDate = new Date();
var nowHour = myDate.getHours(); //获取当前小时数(0-23)
var xData = [];
var yData1 = [];
var yData2 = [];
$.each(data_first, function (key, value) {
if (key <= nowHour) {
yData1.push(value);
}
});
$.each(data_second, function (key, value) {
xData.push(setHour(key));
yData2.push(value);
});
var ops = {
title: {
2022-04-24 19:03:02 +08:00
top: '12px',
text: '今日与昨日员工活跃度',
left: '12px',
textStyle: {
fontSize: '18',
color: '#333',
}
},
color: ["#1AAD19", "#1890FF"],
grid: {
2022-04-24 19:03:02 +08:00
left: '16px',
right: '30px',
2022-04-24 19:03:02 +08:00
bottom: '12px',
top: '60px',
containLabel: true
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
crossStyle: {
color: '#999'
}
}
},
toolbox: {
show: true,
},
legend: {
data: ["今日", "昨日"],
2022-04-24 19:03:02 +08:00
top: '16px',
},
xAxis: [{
type: "category",
boundaryGap: !1,
data: xData,
axisLine: {
lineStyle: {
color: '#999999',
width: 1,
}
},
}],
yAxis: [{
type: "value",
axisLine: {
show: true,
lineStyle: {
color: '#999999',
width: 1,
}
},
}],
series: [{
name: "今日",
type: "line",
smooth: !0,
itemStyle: {
normal: {
areaStyle: {
type: "default",
opacity: 0.2
}
}
},
data: yData1
}, {
name: "昨日",
type: "line",
smooth: !0,
itemStyle: {
normal: {
areaStyle: {
type: "default",
opacity: 0.2
}
}
},
data: yData2
}]
}
chartView.setOption(ops);
let myChart = echarts.init(document.getElementById('chartYear'));
let option = {
title: {
2022-04-24 19:03:02 +08:00
top: '12px',
text: '近一年员工活跃度',
2022-04-24 19:03:02 +08:00
left: '10px',
textStyle: {
fontSize: '18',
color: '#333',
}
},
tooltip: {
padding: 6,
formatter: function (obj) {
var value = obj.value;
return '<div style="font-size: 12px;">' + value[0] + '员工活跃度:' + value[1] + '</div>';
}
},
visualMap: {
min: 0,
max: 300,
show: false,
inRange: {
color: ['#fafafa', '#1AAD19']
}
},
calendar: {
top: 75,
left: 52,
right: 20,
range: getRange(),
cellSize: ['auto', 21],
splitLine: {
lineStyle: {
color: '#aaa',
type: 'dashed'
}
},
itemStyle: {
borderWidth: 0.5
},
yearLabel: { show: false },
monthLabel: {
nameMap: 'cn',
fontSize: 12
},
dayLabel: {
show: true,
formatter: '{start} 1st',
fontWeight: 'lighter',
nameMap: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
fontSize: 12
}
},
series: [{
type: 'heatmap',
coordinateSystem: 'calendar',
calendarIndex: 0,
data: getDay()
}]
};
myChart.setOption(option);
setTimeout(function () {
window.onresize = function () {
chartView.resize();
myChart.resize();
}
})
console.log(e.data);
}
}
})
var archiveCalendar = {};
function getRange() {
let today = new Date();
let tYear = today.getFullYear();
let tMonth = today.getMonth() + 1;
let tDate = today.getDate();
let dateFirst = tYear + "-" + tMonth + "-" + tDate;
let datelast = (tYear - 1) + "-" + tMonth + "-" + tDate;
let dataRange = [];
dataRange.push(dateFirst);
dataRange.push(datelast);
return dataRange;
}
function getDay() {
var today = new Date();
var dayArray = [];
for (var i = 0; i < 366; i++) {
var targetday_milliseconds = today.getTime() - 1000 * 60 * 60 * 24 * i;
var date = new Date(targetday_milliseconds);
dayArray.push(retunDay(date));
}
return dayArray;
}
function retunDay(day) {
var tYear = day.getFullYear();
var tMonth = day.getMonth();
var tDate = day.getDate();
tMonth = tMonth + 1;
if (tMonth.toString().length == 1) {
tMonth = "0" + tMonth;
}
if (tDate.toString().length == 1) {
tDate = "0" + tDate;
}
var dateStr = tYear + "-" + tMonth + "-" + tDate;
var dateArray = [];
dateArray.push(dateStr);
if (archiveCalendar[dateStr]) {
dateArray.push(archiveCalendar[dateStr]);
}
else {
dateArray.push(0);
}
return dateArray;
}
}
</script>
{include file="../../base/view/common/layui" base='base' extend="[]" callback="init" /}
{/block}
<!-- /脚本 -->