| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /**
- * !页面统计:访问次数、停留时长
- */
- import devCache from "./devCache"
- import devOptions from "./devOptions";
- import jsonCompress from "./jsonCompress";
- import { timeFormat } from "./timeFormat";
- /**
- * 页面注销时提交
- */
- function pageStatisticsReport(
- route, activeTime,
- ) {
- try {
- if (!route) return false;
- let options = devOptions.getOptions()
- if (!options.pageStatistics.status) return; //! 配置文件关闭页面统计
- let logs = devCache.get("pageCount");
- if (!logs) logs = [];
- let pageIndex = logs.findIndex(x => x.route == route)
- if (pageIndex == -1) {
- logs.push({
- route,
- activeTimeCount: activeTime,
- })
- } else {
- logs[pageIndex].activeTimeCount = activeTime + logs[pageIndex].activeTimeCount;
- }
- logs = jsonCompress.compressArray(logs, "end", options.pageStatistics.size)
- devCache.set("pageCount", logs)
- let now = new Date().getTime();
- let date = timeFormat(now, "yyyy-mm-dd");
- let dayOnline = devCache.get("dayOnline");
- if (!dayOnline) dayOnline = [];
- let i = dayOnline.findIndex(x => x.date == date);
- if (i == -1) {
- dayOnline.unshift({
- date,
- activeTimeCount: activeTime,
- page: [
- {
- r: route,
- t: activeTime,
- }
- ]
- })
- } else {
- dayOnline[i].activeTimeCount = dayOnline[i].activeTimeCount + activeTime;
- let pi = dayOnline[i].page.findIndex(x => x.r == route);
- if (pi == -1) {
- dayOnline[i].page.push({
- r: route,
- t: activeTime,
- })
- } else {
- dayOnline[i].page[pi].t = dayOnline[i].page[pi].t + activeTime;
- }
- }
- if (dayOnline.length > options.pageStatistics.dayOnlineRowMax) {
- dayOnline = dayOnline.splice(0, options.pageStatistics.dayOnlineRowMax)
- }
- dayOnline = jsonCompress.compressArray(dayOnline, "end", options.pageStatistics.size)
- devCache.set("dayOnline", dayOnline)
- } catch (error) {
- console.log("pageStatistics error", error);
- }
- }
- export default pageStatisticsReport;
|