From a7c1c4e14a3935bc4c6a2c62fa6a0cd149eccb1e Mon Sep 17 00:00:00 2001 From: "Ray.Hao" <1490493387@qq.com> Date: Sun, 8 Dec 2024 18:57:52 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20:recycle:=20=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=8F=B0=E7=B2=BE=E7=AE=80=E9=87=8D=E6=9E=84=EF=BC=88=E8=AE=BF?= =?UTF-8?q?=E9=97=AE=E7=BB=9F=E8=AE=A1=E8=B0=83=E6=95=B4=E5=92=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=A1=B9=E7=9B=AE=E7=9B=B8=E5=85=B3=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mock/log.mock.ts | 34 +- src/api/system/log.ts | 23 +- src/assets/icons/bilibili.svg | 1 + src/assets/icons/browser.svg | 1 + src/assets/icons/cnblogs.svg | 1 + src/assets/icons/csdn.svg | 6 + src/assets/icons/gitcode.svg | 1 + src/assets/icons/ip.svg | 1 - src/assets/icons/juejin.svg | 1 + src/assets/icons/pv.svg | 1 - src/assets/icons/uv.svg | 1 - src/assets/icons/visitor.svg | 1 + .../NavBar/components/Notification.vue | 112 ++++--- .../NavBar/components/UserProfile.vue | 6 - src/utils/index.ts | 17 + .../{VisitTrend.vue => visit-trend.vue} | 0 src/views/dashboard/index.vue | 298 +++++++++++------- src/views/demo/api/knife4j.vue | 22 -- src/views/demo/api/swagger.vue | 27 -- src/views/demo/other.vue | 16 - 20 files changed, 287 insertions(+), 283 deletions(-) create mode 100644 src/assets/icons/bilibili.svg create mode 100644 src/assets/icons/browser.svg create mode 100644 src/assets/icons/cnblogs.svg create mode 100644 src/assets/icons/csdn.svg create mode 100644 src/assets/icons/gitcode.svg delete mode 100644 src/assets/icons/ip.svg create mode 100644 src/assets/icons/juejin.svg delete mode 100644 src/assets/icons/pv.svg delete mode 100644 src/assets/icons/uv.svg create mode 100644 src/assets/icons/visitor.svg rename src/views/dashboard/components/{VisitTrend.vue => visit-trend.vue} (100%) delete mode 100644 src/views/demo/api/knife4j.vue delete mode 100644 src/views/demo/api/swagger.vue delete mode 100644 src/views/demo/other.vue diff --git a/mock/log.mock.ts b/mock/log.mock.ts index 08e63f2e..b75963e7 100644 --- a/mock/log.mock.ts +++ b/mock/log.mock.ts @@ -193,32 +193,14 @@ export default defineMock([ method: ["GET"], body: { code: "00000", - data: [ - { - type: "pv", - title: "浏览量", - todayCount: 1003, - totalCount: 36193, - growthRate: -0.35, - granularityLabel: "日", - }, - { - type: "uv", - title: "访客数", - todayCount: 100, - totalCount: 2000, - growthRate: 0, - granularityLabel: "日", - }, - { - type: "ip", - title: "IP数", - todayCount: 152, - totalCount: 3234, - growthRate: -0.2, - granularityLabel: "日", - }, - ], + data: { + todayPvCount: 1629, + totalPvCount: 286086, + pvGrowthRate: -0.65, + todayIpCount: 169, + totalIpCount: 19985, + ipGrowthRate: -0.57, + }, msg: "一切ok", }, }, diff --git a/src/api/system/log.ts b/src/api/system/log.ts index 5107264f..32dbc881 100644 --- a/src/api/system/log.ts +++ b/src/api/system/log.ts @@ -37,7 +37,7 @@ const LogAPI = { * @returns */ getVisitStats() { - return request({ + return request({ url: `${LOG_BASE_URL}/visit-stats`, method: "get", }); @@ -106,15 +106,16 @@ export interface VisitTrendQuery { /** 访问统计 */ export interface VisitStatsVO { - /** 标题 */ - title: string; - /** 类型 */ - type: "pv" | "uv" | "ip"; - - /** 今日访问量 */ - todayCount: number; - /** 总访问量 */ - totalCount: number; + /** 今日访客数(UV) */ + todayUvCount: number; + /** 总访客数 */ + totalUvCount: number; + /** 访客数同比增长率(相对于昨天同一时间段的增长率) */ + uvGrowthRate: number; + /** 今日浏览量(PV) */ + todayPvCount: number; + /** 总浏览量 */ + totalPvCount: number; /** 同比增长率(相对于昨天同一时间段的增长率) */ - growthRate: number; + pvGrowthRate: number; } diff --git a/src/assets/icons/bilibili.svg b/src/assets/icons/bilibili.svg new file mode 100644 index 00000000..b86747cc --- /dev/null +++ b/src/assets/icons/bilibili.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/browser.svg b/src/assets/icons/browser.svg new file mode 100644 index 00000000..15c3927c --- /dev/null +++ b/src/assets/icons/browser.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/cnblogs.svg b/src/assets/icons/cnblogs.svg new file mode 100644 index 00000000..4920a4c1 --- /dev/null +++ b/src/assets/icons/cnblogs.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/csdn.svg b/src/assets/icons/csdn.svg new file mode 100644 index 00000000..e16bad0d --- /dev/null +++ b/src/assets/icons/csdn.svg @@ -0,0 +1,6 @@ + + ic/csdn + + + + diff --git a/src/assets/icons/gitcode.svg b/src/assets/icons/gitcode.svg new file mode 100644 index 00000000..7a02760a --- /dev/null +++ b/src/assets/icons/gitcode.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/ip.svg b/src/assets/icons/ip.svg deleted file mode 100644 index 087f3bbb..00000000 --- a/src/assets/icons/ip.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/icons/juejin.svg b/src/assets/icons/juejin.svg new file mode 100644 index 00000000..937ace37 --- /dev/null +++ b/src/assets/icons/juejin.svg @@ -0,0 +1 @@ + diff --git a/src/assets/icons/pv.svg b/src/assets/icons/pv.svg deleted file mode 100644 index cd7da060..00000000 --- a/src/assets/icons/pv.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/icons/uv.svg b/src/assets/icons/uv.svg deleted file mode 100644 index c5be7ebd..00000000 --- a/src/assets/icons/uv.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/icons/visitor.svg b/src/assets/icons/visitor.svg new file mode 100644 index 00000000..1fd8dbe6 --- /dev/null +++ b/src/assets/icons/visitor.svg @@ -0,0 +1 @@ + diff --git a/src/layout/components/NavBar/components/Notification.vue b/src/layout/components/NavBar/components/Notification.vue index 0fa69a48..bc6069b0 100644 --- a/src/layout/components/NavBar/components/Notification.vue +++ b/src/layout/components/NavBar/components/Notification.vue @@ -1,49 +1,37 @@ @@ -95,7 +88,12 @@
- + 查看更多 @@ -114,15 +112,19 @@ @@ -133,7 +135,12 @@
- + 查看更多 @@ -198,7 +205,7 @@ onMounted(() => { }); // 阅读通知公告 -function readNotice(id: string) { +function handleReadNotice(id: string) { noticeDetailRef.value.openNotice(id); const index = notices.value.findIndex((notice) => notice.id === id); if (index >= 0) { @@ -207,7 +214,7 @@ function readNotice(id: string) { } // 查看更多 -function viewMore() { +function handleViewMore() { router.push({ path: "/myNotice" }); } @@ -220,8 +227,11 @@ function markAllAsRead() { diff --git a/src/layout/components/NavBar/components/UserProfile.vue b/src/layout/components/NavBar/components/UserProfile.vue index 28dbb40e..32c3e706 100644 --- a/src/layout/components/NavBar/components/UserProfile.vue +++ b/src/layout/components/NavBar/components/UserProfile.vue @@ -9,12 +9,6 @@ {{ $t("navbar.profile") }} - - {{ $t("navbar.gitee") }} - - - {{ $t("navbar.document") }} - {{ $t("navbar.logout") }} diff --git a/src/utils/index.ts b/src/utils/index.ts index 44bb588b..67fce789 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -39,3 +39,20 @@ export function isExternal(path: string) { const isExternal = /^(https?:|http?:|mailto:|tel:)/.test(path); return isExternal; } + +/** + * 格式化增长率,保留两位小数 ,并且去掉末尾的0 取绝对值 + * + * @param growthRate + * @returns + */ +export function formatGrowthRate(growthRate: number) { + if (growthRate === 0) { + return "-"; + } + + const formattedRate = Math.abs(growthRate * 100) + .toFixed(2) + .replace(/\.?0+$/, ""); + return formattedRate + "%"; +} diff --git a/src/views/dashboard/components/VisitTrend.vue b/src/views/dashboard/components/visit-trend.vue similarity index 100% rename from src/views/dashboard/components/VisitTrend.vue rename to src/views/dashboard/components/visit-trend.vue diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index 88a5191d..3dae76b5 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -1,47 +1,91 @@