welcome.html 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>欢迎页面-日志挖掘系统 1.0</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport"
  9. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  10. <link rel="stylesheet" href="../static/css/font.css">
  11. <link rel="stylesheet" href="../static/css/weadmin.css">
  12. <script src="../static/js/axios.min.js"></script>
  13. <script src="../static/js/vue.min.js"></script>
  14. <script src="../config/app.js"></script>
  15. </head>
  16. <body>
  17. <div class="weadmin-body" id="app">
  18. <div class="layui-fluid" style="overflow: hidden;">
  19. <div class="layui-row layui-col-space15">
  20. <div class="layui-col-md12">
  21. <div class="layui-card">
  22. <div class="layui-card-header">快捷统计</div>
  23. <div class="layui-card-body">
  24. <div class="layui-carousel weadmin-shortcut" lay-filter="shortcut" lay-indicator="inside"
  25. lay-arrow="none" style="width: 100%; height: 280px;">
  26. <div carousel-item="">
  27. <ul class="layui-row layui-col-space10 layui-this">
  28. <li class="layui-col-xs3">
  29. <a href="javascript:void(0);">
  30. <i class="layui-icon">{{ yesterdayUserCount }}</i>
  31. <cite>昨日活跃用户数</cite>
  32. </a>
  33. </li>
  34. <li class="layui-col-xs3">
  35. <a href="javascript:void(0);">
  36. <i class="layui-icon">{{ yesterdayRequest }}</i>
  37. <cite>昨日请求数</cite>
  38. </a>
  39. </li>
  40. <li class="layui-col-xs3">
  41. <a href="javascript:void(0);">
  42. <i class="layui-icon">{{ lastMonthUserCount }}</i>
  43. <cite>当月活跃用户数</cite>
  44. </a>
  45. </li>
  46. <li class="layui-col-xs3">
  47. <a href="javascript:void(0);">
  48. <i class="layui-icon">{{ lastMonthRequest }}</i>
  49. <cite>当月请求数</cite>
  50. </a>
  51. </li>
  52. </ul>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. <div class="layui-col-lg12 layui-collapse" style="border: none;">
  61. <div id="dayCount" style="width: 100%;height:400px;"></div>
  62. </div>
  63. </div>
  64. </body>
  65. <script type="text/javascript" src="../lib/layui/layui.js" charset="utf-8"></script>
  66. <script src="//cdn.bootcss.com/echarts/4.0.2/echarts.min.js"></script>
  67. <script type="text/javascript">
  68. layui.extend({
  69. admin: '{/}../static/js/admin',
  70. });
  71. layui.use(['jquery', 'element', 'util', 'admin', 'carousel'], function () {
  72. var element = layui.element,
  73. $ = layui.jquery,
  74. carousel = layui.carousel,
  75. util = layui.util,
  76. admin = layui.admin;
  77. //建造实例
  78. carousel.render({
  79. elem: '.weadmin-shortcut'
  80. , width: '100%' //设置容器宽度
  81. , arrow: 'none' //始终显示箭头
  82. , trigger: 'hover'
  83. , autoplay: false
  84. });
  85. $(function () {
  86. });
  87. });
  88. </script>
  89. <script>
  90. new Vue({
  91. el: "#app",
  92. data: {
  93. yesterdayRequest: 0,
  94. yesterdayUserCount: 0,
  95. lastMonthRequest: 0,
  96. lastMonthUserCount: 0,
  97. questCountParams: {
  98. dateBegin: "2019-08-01",
  99. dateEnd: "2019-11-01"
  100. },
  101. questCountData: {
  102. dom:{},
  103. option: {},
  104. x: [],
  105. y_user: [],
  106. y_request:[]
  107. }
  108. },
  109. methods: {
  110. /**
  111. * 获取昨天访问量和活跃用户
  112. */
  113. getYesterdayCount: function () {
  114. let _this = this;
  115. axios.post(app.baseUrl + "/api/log/queryYesterdayCount")
  116. .then(function (res) {
  117. if (res.flag) {
  118. _this.yesterdayRequest = data.requestCount;
  119. _this.yesterdayUserCount = data.userCount;
  120. }
  121. })
  122. },
  123. /**
  124. * 获取当月访问量和活跃用户数
  125. */
  126. getLastMonthCount: function () {
  127. let _this = this;
  128. axios.post(app.baseUrl + "/api/log/queryLastMonthCount")
  129. .then(function (res) {
  130. res = res.data;
  131. if (res.flag) {
  132. _this.lastMonthRequest = data.request_count;
  133. _this.lastMonthUserCount = data.user_count;
  134. }
  135. })
  136. },
  137. initAppKeyDayCount: function () {
  138. let _this = this;
  139. axios.post(app.baseUrl + "/api/log/queryDayCount", this.questCountParams)
  140. .then(function (res) {
  141. res = res.data;
  142. if (res.flag) {
  143. _this.questCountData.dom = echarts.init(document.getElementById('dayCount'));
  144. for (let i = 0; i < data.length; i++) {
  145. _this.questCountData.x.push(new Date(data[i].logDate).format('yyyy-MM-dd'));
  146. _this.questCountData.y_request.push(data[i].requestCount);
  147. _this.questCountData.y_user.push(data[i].userCount);
  148. }
  149. let option = {
  150. title: {
  151. text: '活跃用户/访问量'
  152. },
  153. tooltip: {
  154. trigger: 'axis'
  155. },
  156. legend: {
  157. data:['活跃用户','访问量']
  158. },
  159. grid: {
  160. left: '3%',
  161. right: '4%',
  162. bottom: '3%',
  163. containLabel: true
  164. },
  165. toolbox: {
  166. feature: {
  167. saveAsImage: {}
  168. }
  169. },
  170. xAxis: {
  171. type: 'category',
  172. boundaryGap: false,
  173. data: _this.questCountData.x
  174. },
  175. yAxis: {
  176. type: 'value'
  177. },
  178. series: [
  179. {
  180. name:'活跃用户',
  181. type:'line',
  182. stack: '数量',
  183. data:_this.questCountData.y_user
  184. },
  185. {
  186. name:'访问量',
  187. type:'line',
  188. stack: '总量',
  189. data:_this.questCountData.y_request
  190. }
  191. ]
  192. };
  193. _this.questCountData.option = option;
  194. _this.questCountData.dom.setOption(_this.questCountData.option);
  195. }
  196. })
  197. }
  198. },
  199. mounted: function () {
  200. this.getYesterdayCount();
  201. this.getLastMonthCount();
  202. this.initAppKeyDayCount();
  203. },
  204. updated: function () {
  205. }
  206. });
  207. </script>
  208. </html>