From 2420ce766057a647c5298f7017f5ab4d437e20cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E5=BC=BA?= <357099073@qq.com> Date: Mon, 26 Jan 2026 17:51:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=86=85=E5=AE=B9=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 32 ++++ package.json | 1 + src/api/analytics.js | 18 ++ src/components/CommonAside.vue | 2 +- src/router/dynamicRoutes.js | 34 ++-- src/views/analytics/content/index.vue | 245 ++++++++++++++++++++++++++ src/views/analytics/users/index.vue | 196 +++++++++++++++++++++ src/views/apps/cms/articles/index.vue | 2 +- 8 files changed, 508 insertions(+), 22 deletions(-) create mode 100644 src/api/analytics.js create mode 100644 src/views/analytics/content/index.vue create mode 100644 src/views/analytics/users/index.vue diff --git a/package-lock.json b/package-lock.json index 195cf74..4611661 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "chart": "^0.1.2", "chart.js": "^4.5.1", "docx-preview": "^0.3.7", + "echarts": "^6.0.0", "element-plus": "^2.11.7", "less": "^4.4.2", "marked": "^16.4.1", @@ -2269,6 +2270,22 @@ "node": ">= 0.4" } }, + "node_modules/echarts": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-6.0.0.tgz", + "integrity": "sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "2.3.0", + "zrender": "6.0.0" + } + }, + "node_modules/echarts/node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "license": "0BSD" + }, "node_modules/element-plus": { "version": "2.11.7", "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.11.7.tgz", @@ -5642,6 +5659,21 @@ "engines": { "node": ">=0.8" } + }, + "node_modules/zrender": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-6.0.0.tgz", + "integrity": "sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg==", + "license": "BSD-3-Clause", + "dependencies": { + "tslib": "2.3.0" + } + }, + "node_modules/zrender/node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "license": "0BSD" } } } diff --git a/package.json b/package.json index 1093c02..a825a6c 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "chart": "^0.1.2", "chart.js": "^4.5.1", "docx-preview": "^0.3.7", + "echarts": "^6.0.0", "element-plus": "^2.11.7", "less": "^4.4.2", "marked": "^16.4.1", diff --git a/src/api/analytics.js b/src/api/analytics.js new file mode 100644 index 0000000..7a7f133 --- /dev/null +++ b/src/api/analytics.js @@ -0,0 +1,18 @@ +// 数据统计相关API +import request from "@/utils/request"; + +// 获取内容统计 +export function getContentStats() { + return request({ + url: "/admin/contentstats", + method: "get", + }); +} + +// 获取用户统计 +export function getUserStats() { + return request({ + url: "/admin/usersstats", + method: "get", + }); +} \ No newline at end of file diff --git a/src/components/CommonAside.vue b/src/components/CommonAside.vue index 39ff58c..4ee6ef0 100644 --- a/src/components/CommonAside.vue +++ b/src/components/CommonAside.vue @@ -27,7 +27,7 @@ :default-active="route.path" > -