|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="<?php echo $cfg_soft_lang; ?>">
- <title>系统概况</title>
- <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
- <base target="_self">
- <link rel="stylesheet" href="../static/web/css/bootstrap.min.css">
- <link rel="stylesheet" href="../static/web/font-awesome/font-awesome.min.css">
- <link rel="stylesheet" href="../static/web/css/admin.css">
- <link rel="stylesheet" href="css/indexbody.css">
- <script src="../static/web/js/jquery.min.js"></script>
- <script src="../static/web/js/bootstrap.bundle.min.js"></script>
- <script src="../static/web/js/webajax.js"></script>
- <script src="../static/web/js/chart.min.js"></script>
- <script src="js/indexbody.js"></script>
- <script src="js/main.js"></script>
- <style>
- table.stattable td{padding:.6rem;border-bottom:1px solid #dee2e6;text-align:right;vertical-align:middle}
- .stattable{width:100%}
- .table{margin-bottom:0}
- .web-info{padding:10px;background:#f6f6f6;border-radius:.2rem;text-align:center}
- .web-info p{margin-bottom:10px}
- </style>
- </head>
- <body>
- <div class="container-fluid">
- <div class="row">
- <div id="tips" class="col-md-12"></div>
- <div class="col-md-12 mt-3 mb-3">
- <div class="card">
- <div class="card-header"><a title="查看流量统计图" href="#statChart"><i class="fa fa-line-chart"></i></a> 流量统计表</div>
- <div class="card-body">
- <table class="stattable">
- <tbody>
- <tr class="title">
- <td width="10%"></td>
- <td width="20%">浏览次数(PV)</td>
- <td width="20%">独立访客(UV)</td>
- <td width="20%">IP</td>
- <td width="18%" >访问次数</td>
- </tr>
- <tr class="bg-white">
- <td class="today">今日</td>
- <td class="today" id="today_pv">0</td>
- <td class="today" id="today_uv">0</td>
- <td class="today" id="today_ip">0</td>
- <td class="today" id="today_vv">0</td>
- </tr>
- <tr class="bg-white">
- <td>昨日</td>
- <td id="yestoday_pv">0</td>
- <td id="yestoday_uv">0</td>
- <td id="yestoday_ip">0</td>
- <td id="yestoday_vv">0</td>
- </tr>
- <tr class="bg-white grey9 hide" style="display:table-row">
- <td>历史累计</td>
- <td id="total_pv">0</td>
- <td id="total_uv">0</td>
- <td id="total_ip">0</td>
- <td id="total_vv">0</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="col-md-6 mt-3 mb-3 updatenews">
- <div class="card">
- <div class="card-header"><i class="fa fa-gear"></i> 系统信息</div>
- <div class="card-body">
- <div id="updateinfos">
- <?php echo "<iframe name='stafrm' src='{$offUrl}&uptime={$oktime}' frameborder='0' id='stafrm' style='width:98%;height:70px;padding:.6rem'></iframe>"; ?>
- </div>
- <table width="98%" class="table table-borderless">
- <tr>
- <td>
- <div class="web-info">
- <p>操作系统</p>
- <span><?php echo PHP_OS; ?></span>
- </div>
- </td>
- <td>
- <div class="web-info">
- <p>Web服务器</p>
- <span><?php echo $_SERVER['SERVER_SOFTWARE']; ?></span>
- </div>
- </td>
- <td>
- <div class="web-info">
- <p>服务器IP</p>
- <span><?php echo gethostbyname($_SERVER['SERVER_NAME']); ?></span>
- </div>
- </td>
- <td>
- <div class="web-info">
- <p>PHP版本</p>
- <span><?php echo @phpversion(); ?></span>
- </div>
- </td>
- <td>
- <div class="web-info">
- <p>数据库版本</p>
- <span><?php echo $dsql->GetVersion(); ?></span>
- </div>
- </td>
- </tr>
- </table>
- </div>
- </div>
- </div>
- <div class="col-md-6 mt-3 mb-3">
- <div class="card">
- <div class="card-header"><i class="fa fa-database"></i> 版本授权</div>
- <div class="card-body" id="_systeminfo">正在载入</div>
- </div>
- </div>
- <div class="col-md-6 mt-3 mb-3">
- <div class="card">
- <div class="card-header"><a name="statChart"><i class="fa fa-bar-chart"></i> 流量统计图</a></div>
- <div class="card-body">
- <canvas id="statChart"></canvas>
- </div>
- </div>
- </div>
- <div class="col-md-6 mt-3 mb-3">
- <div class="card">
- <div class="card-header"><i class="fa fa-file-word-o"></i> 最新文档</div>
- <div class="card-body" id="newarticles">正在载入</div>
- </div>
- </div>
- </div>
- </div>
- <div class="footer mt-2">
- <div id="loaddiv" style="display:none">
- <p align="center"><img src="../static/web/img/loadinglit.gif">请稍后,正在下载更新文件列表</p>
- </div>
- <div id="editTab"><span id="editTabBody">请稍候,正在载入</span></div>
- <div id="addTab">
- <form name="addform" action="index_body.php">
- <input type="hidden" name="dopost" value="addnew">
- <table width="100%" border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td height="30" colspan="3" background="../static/web/img/tbg.gif">
- <div style="float:left;margin-left:10px">增加快捷操作项</div>
- <div style="float:right;padding:2px 10px 0 0">
- <a href="javascript:CloseTab('addTab')"><img src="../static/web/img/close.gif"></a>
- </div>
- </td>
- </tr>
- <tr>
- <td colspan="2" style="height:10px;border-top:1px solid #8DA659"></td>
- </tr>
- <tr>
- <td width="22%" height="26" align="right">链接标题:</td>
- <td width="78%"><input name="title" type="text" class="pubinputs" style="margin-bottom:10px;width:260px"></td>
- </tr>
- <tr>
- <td width="22%" height="26" align="right">链接网址:</td>
- <td width="78%"><input name="link" type="text" class="pubinputs" style="width:260px"></td>
- </tr>
- <tr>
- <td height="36"></td>
- <td><input type="submit" name="Submit" value="保存项目" class="np coolbg"></td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- <script>
- $(function(){
- $.get("index_testenv.php", function (data){
- if (data !== ''){
- $("#tips").html(data);
- }
- });
- $.get("index_body.php?dopost=get_articles", function (data){
- if (data !== ''){
- $("#newarticles").html(data);
- }
- });
- });
- </script>
- <script>
- var dedebizInfo;
- function ViewDedeBIZ(){
- console.log(dedebizInfo);
- ShowMsg(`
- <table width="100%" class="table table-borderless">
- <tbody>
- <tr>
- <td style="width:50%">版本号:</td>
- <td>V${dedebizInfo.result.server_version}</td>
- </tr>
- <tr>
- <td style="width:50%">运行时间:</td>
- <td>${dedebizInfo.result.server_run_time}</td>
- </tr>
- <tr>
- <td style="width:50%">服务器系统:</td>
- <td>${dedebizInfo.result.server_goos}(${dedebizInfo.result.server_goarch})</td>
- </tr>
- <tr>
- <td style="width:50%">内存占用:</td>
- <td>${dedebizInfo.result.server_memory_usage}%</td>
- </tr>
- </tbody>
- </table>
- `);
- }
- function LoadServer(){
- $.get("index_body.php?dopost=system_info", function(data){
- let rsp = JSON.parse(data);
- if (rsp.code === 200){
- let infoStr = `<table width="100%" class="table table-borderless"><tbody>`;
- if (typeof rsp.result.domain !== "undefined"){
- infoStr += `
- <tr>
- <td style="width:50%">授权域名:</td>
- <td>${rsp.result.domain} <a href="<?php echo $cfg_biz_dedebizUrl;?>/auth/?domain=${rsp.result.domain}" class="btn btn-success btn-sm">查看</a></td>
- </tr>
- `;
- }
- if (typeof rsp.result.title !== "undefined"){
- infoStr += `
- <tr>
- <td style="width:50%">站点名称:</td>
- <td>${rsp.result.title}</td>
- </tr>
- `;
- }
- if (typeof rsp.result.stype !== "undefined"){
- infoStr += `
- <tr>
- <td style="width:50%">站点类型:</td>
- <td>${rsp.result.stype}</td>
- </tr>
- `;
- }
- if (typeof rsp.result.auth_version !== "undefined" && typeof rsp.result.auth_at !== "undefined"){
- infoStr += `
- <tr>
- <td style="width:50%">授权版本:</td>
- <td>V${rsp.result.auth_version}.x.x(时间:${rsp.result.auth_at})</td>
- </tr>
- `;
- }
- if (rsp.result.core === null || rsp.result.core.code != 200){
- //下面是DedeBIZ Core组件信息
- infoStr += `
- <tr>
- <td style="width:50%">版本组件:</td>
- <td><a href="<?php echo $cfg_biz_dedebizUrl;?>/start?code=-1008" target="_blank" class="btn btn-danger btn-sm">如何启动组件</a></td>
- </tr>
- `;
- } else {
- dedebizInfo = JSON.parse(rsp.result.core.data);
- infoStr += `
- <tr>
- <td style="width:50%">版本组件:</td>
- <td><a href="javascript:ViewDedeBIZ()" class="btn btn-success btn-sm">查看组件信息</a></td>
- </tr>
- `;
- }
- infoStr += "</tbody></table>";
- $("#_systeminfo").html(infoStr);
- } else {
- $("#_systeminfo").html(`
- <table width="100%" class="table table-borderless">
- <tbody>
- <tr>
- <td style="width:60%">尚未启动商业版服务,原因:${rsp.msg}</td>
- <td style="text-align:right">当前版本:社区版<a href="<?php echo $cfg_biz_dedebizUrl;?>/start?code=${rsp.code}" target="_blank" class="btn btn-success btn-sm" style="margin-left:10px">升级商业版</a></td>
- </tr>
- <tr>
- <td colspan="2">如果您已购买商业版授权,您可以在我们的授权中心查询到相信关授权信息,如果查询结果与实际授权不符,则说明您可能购买了非法商业授权,请及时与我们取得联系,谢谢。</td>
- </tr>
- </tbody>
- </table>
- `);
- }
- });
- }
- Date.prototype.Format = function (fmt) { //author: meizz
- var o = {
- "M+": this.getMonth() + 1, //月份
- "d+": this.getDate(), //日
- "h+": this.getHours(), //小时
- "m+": this.getMinutes(), //分
- "s+": this.getSeconds(), //秒
- "q+": Math.floor((this.getMonth() + 3) / 3), //季度
- "S": this.getMilliseconds() //毫秒
- };
- if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
- for (var k in o)
- if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
- return fmt;
- }
- function LoadStat() {
- $.get("index_body.php?dopost=get_statistics", function(data){
- let rsp = JSON.parse(data);
- if (rsp.code == 200) {
- var tpv = parseInt(rsp.result.pv);
- var tuv = parseInt(rsp.result.uv);
- var tip = parseInt(rsp.result.ip);
- var tvv = parseInt(rsp.result.vv);
- $("#today_pv").html(tpv);
- $("#today_uv").html(tuv);
- $("#today_ip").html(tip);
- $("#today_vv").html(tvv);
- $.get("index_body.php?dopost=get_statistics&sdate=-1", function(data){
- let rsp = JSON.parse(data);
- if (rsp.code == 200) {
- $("#total_pv").html(parseInt(rsp.result.pv)+tpv);
- $("#total_uv").html(parseInt(rsp.result.uv)+tuv);
- $("#total_ip").html(parseInt(rsp.result.ip)+tip);
- $("#total_vv").html(parseInt(rsp.result.vv)+tvv);
- }
- });
- }
- });
- var d = new Date();
- d.setDate(d.getDate() - 1);
- var s = d.Format("yyyy-MM-dd");
- s = s.replaceAll("-","");
- $.get("index_body.php?dopost=get_statistics&sdate="+s, function(data){
- let rsp = JSON.parse(data);
- if (rsp.code == 200) {
- $("#yestoday_pv").html(rsp.result.pv);
- $("#yestoday_uv").html(rsp.result.uv);
- $("#yestoday_ip").html(rsp.result.ip);
- $("#yestoday_vv").html(rsp.result.vv);
- }
- });
- }
- async function LoadStatChart() {
- const ctx = document.getElementById('statChart').getContext('2d');
- let labels = [];
- let pvs = [];
- let ips = [];
- let uvs = [];
- let vvs = [];
- for (let i = 15; i > 0; i--) {
- var d = new Date();
- d.setDate(d.getDate() - i);
- var s = d.Format("yyyy-MM-dd");
- labels.push(d.Format("MM-dd"));
- s = s.replaceAll("-","");
- let resp = await fetch("index_body.php?dopost=get_statistics&sdate="+s);
- let data = await resp.json();
- if (data.code == 200) {
- pvs.push(typeof data.result.pv=="undefined"? 0 : data.result.pv);
- ips.push(typeof data.result.ip=="undefined"? 0 : data.result.ip);
- uvs.push(typeof data.result.uv=="undefined"? 0 : data.result.uv);
- vvs.push(typeof data.result.vv=="undefined"? 0 : data.result.vv);
- }
- }
- const myChart = new Chart(ctx, {
- type: 'line',
- options: {
- responsive: true,
- plugins: {
- legend: {
- position: 'top',
- },
- title: {
- display: true,
- text: '<?php echo $cfg_webname; ?>流量统计图'
- }
- }
- },
- data: {
- labels: labels,
- datasets: [{
- label: 'IP',
- data: ips,
- borderColor: 'rgba(255, 99, 132, 1)',
- backgroundColor :'rgba(255, 99, 132, 0.2)',
- borderWidth: 1
- },
- {
- label: 'PV',
- data: pvs,
- borderColor: 'rgba(54, 162, 235, 1)',
- backgroundColor :'rgba(54, 162, 235, 0.2)',
- borderWidth: 1
- },{
- label: 'UV',
- data: uvs,
- borderColor: 'rgba(255, 206, 86, 1)',
- backgroundColor: 'rgba(255, 206, 86, 0.2)',
- borderWidth: 1
- },{
- label: '访问次数',
- data: vvs,
- borderColor: 'rgba(75, 192, 192, 1)',
- backgroundColor: 'rgba(75, 192, 192, 0.2)',
- borderWidth: 1
- }
- ]
- },
- });
- }
- $(document).ready(function(){
- LoadServer();
- LoadStat();
- LoadStatChart();
- setInterval(function(){
- LoadServer();
- }, 60000)
- });
- </script>
- </body>
- </html>
|