From 8a3f456e547b57c3405dac52c8bb40b20df79a94 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Sat, 19 Oct 2024 17:09:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=86=E6=9E=90=E9=A1=B5=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=95=B0=E6=8D=AE=E6=80=BB=E8=A7=88=E5=92=8C=E7=83=AD?= =?UTF-8?q?=E9=97=A8=E6=A8=A1=E5=9D=97=E5=88=97=E8=A1=A8=EF=BC=8C=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E5=88=86=E6=9E=90=E9=A1=B5=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/common/{home.ts => dashboard.ts} | 20 ++- src/apis/common/index.ts | 2 +- src/apis/common/type.ts | 24 ++- src/hooks/modules/useChart.ts | 4 +- .../analysis/components/AccessTimeslot.vue | 20 ++- .../analysis/components/AccessTrend.vue | 48 +++--- .../{BrowserItem.vue => Browser.vue} | 22 +-- .../analysis/components/DataOverview.vue | 30 ++++ .../dashboard/analysis/components/Module.vue | 101 +++++++++++ .../analysis/components/ModuleItem.vue | 82 --------- .../components/{OsItem.vue => Os.vue} | 22 +-- .../analysis/components/flow/Demo1.vue | 148 ++++++++++++++++ .../analysis/components/flow/Demo2.vue | 159 ++++++++++++++++++ .../dashboard/analysis/components/flow/Ip.vue | 153 +++++++++++++++++ .../dashboard/analysis/components/flow/Pv.vue | 153 +++++++++++++++++ src/views/dashboard/analysis/index.vue | 34 ++-- .../workplace/components/AccessTrendCard.vue | 16 +- 17 files changed, 863 insertions(+), 175 deletions(-) rename src/apis/common/{home.ts => dashboard.ts} (72%) rename src/views/dashboard/analysis/components/{BrowserItem.vue => Browser.vue} (73%) create mode 100644 src/views/dashboard/analysis/components/DataOverview.vue create mode 100644 src/views/dashboard/analysis/components/Module.vue delete mode 100644 src/views/dashboard/analysis/components/ModuleItem.vue rename src/views/dashboard/analysis/components/{OsItem.vue => Os.vue} (73%) create mode 100644 src/views/dashboard/analysis/components/flow/Demo1.vue create mode 100644 src/views/dashboard/analysis/components/flow/Demo2.vue create mode 100644 src/views/dashboard/analysis/components/flow/Ip.vue create mode 100644 src/views/dashboard/analysis/components/flow/Pv.vue diff --git a/src/apis/common/home.ts b/src/apis/common/dashboard.ts similarity index 72% rename from src/apis/common/home.ts rename to src/apis/common/dashboard.ts index f445f58..cf2954c 100644 --- a/src/apis/common/home.ts +++ b/src/apis/common/dashboard.ts @@ -5,16 +5,26 @@ export type * from './type' const BASE_URL = '/dashboard' -/** @desc 查询访问趋势 */ -export function listDashboardAccessTrend(days: number) { - return http.get(`${BASE_URL}/access/trend/${days}`) -} - /** @desc 查询公告列表 */ export function listDashboardNotice() { return http.get(`${BASE_URL}/notice`) } +/** @desc 查询 PV 总览 */ +export function getDashboardOverviewPv() { + return http.get(`${BASE_URL}/analysis/overview/pv`) +} + +/** @desc 查询 IP 总览 */ +export function getDashboardOverviewIp() { + return http.get(`${BASE_URL}/analysis/overview/ip`) +} + +/** @desc 查询访问趋势 */ +export function getDashboardAccessTrend(days: number) { + return http.get(`${BASE_URL}/access/trend/${days}`) +} + /** @desc 查询访问时段分析 */ export function getAnalysisTimeslot() { return http.get(`${BASE_URL}/analysis/timeslot`) diff --git a/src/apis/common/index.ts b/src/apis/common/index.ts index dca11d3..8dbb1bd 100644 --- a/src/apis/common/index.ts +++ b/src/apis/common/index.ts @@ -1,3 +1,3 @@ export * from './common' export * from './captcha' -export * from './home' +export * from './dashboard' diff --git a/src/apis/common/type.ts b/src/apis/common/type.ts index 638737f..90f23cc 100644 --- a/src/apis/common/type.ts +++ b/src/apis/common/type.ts @@ -5,6 +5,13 @@ export interface ImageCaptchaResp { expireTime: number } +/** 仪表盘公告类型 */ +export interface DashboardNoticeResp { + id: number + title: string + type: number +} + /** 仪表盘访问趋势类型 */ export interface DashboardAccessTrendResp { date: string @@ -12,19 +19,20 @@ export interface DashboardAccessTrendResp { ipCount: number } -/** 仪表盘图表类型 */ +/** 仪表盘通用总览类型 */ +export interface DashboardOverviewCommonResp { + total: number + today: number + growth: number + dataList: DashboardChartCommonResp[] +} + +/** 仪表盘通用图表类型 */ export interface DashboardChartCommonResp { name: string value: number } -/** 仪表盘公告类型 */ -export interface DashboardNoticeResp { - id: number - title: string - type: number -} - /* 行为验证码类型 */ export interface BehaviorCaptchaResp { originalImageBase64: string diff --git a/src/hooks/modules/useChart.ts b/src/hooks/modules/useChart.ts index a1fc8a5..17b9354 100644 --- a/src/hooks/modules/useChart.ts +++ b/src/hooks/modules/useChart.ts @@ -18,9 +18,9 @@ export function useChart(sourceOption: optionsFn) { // echarts support https://echarts.apache.org/zh/theme-builder.html // 这里不使用 // TODO 图表主题 - const option = computed(() => { + const chartOption = computed(() => { return sourceOption(isDark.value) }) - return { option } + return { chartOption } } diff --git a/src/views/dashboard/analysis/components/AccessTimeslot.vue b/src/views/dashboard/analysis/components/AccessTimeslot.vue index 5c01ea5..44b50f2 100644 --- a/src/views/dashboard/analysis/components/AccessTimeslot.vue +++ b/src/views/dashboard/analysis/components/AccessTimeslot.vue @@ -1,13 +1,13 @@ + + diff --git a/src/views/dashboard/analysis/components/Module.vue b/src/views/dashboard/analysis/components/Module.vue new file mode 100644 index 0000000..6f09f32 --- /dev/null +++ b/src/views/dashboard/analysis/components/Module.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/dashboard/analysis/components/ModuleItem.vue b/src/views/dashboard/analysis/components/ModuleItem.vue deleted file mode 100644 index 8889ce0..0000000 --- a/src/views/dashboard/analysis/components/ModuleItem.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - - - diff --git a/src/views/dashboard/analysis/components/OsItem.vue b/src/views/dashboard/analysis/components/Os.vue similarity index 73% rename from src/views/dashboard/analysis/components/OsItem.vue rename to src/views/dashboard/analysis/components/Os.vue index 77ae2be..4e0fcfb 100644 --- a/src/views/dashboard/analysis/components/OsItem.vue +++ b/src/views/dashboard/analysis/components/Os.vue @@ -1,23 +1,23 @@ + + diff --git a/src/views/dashboard/analysis/components/flow/Demo2.vue b/src/views/dashboard/analysis/components/flow/Demo2.vue new file mode 100644 index 0000000..f1d4c57 --- /dev/null +++ b/src/views/dashboard/analysis/components/flow/Demo2.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/src/views/dashboard/analysis/components/flow/Ip.vue b/src/views/dashboard/analysis/components/flow/Ip.vue new file mode 100644 index 0000000..39548f3 --- /dev/null +++ b/src/views/dashboard/analysis/components/flow/Ip.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/src/views/dashboard/analysis/components/flow/Pv.vue b/src/views/dashboard/analysis/components/flow/Pv.vue new file mode 100644 index 0000000..db88d61 --- /dev/null +++ b/src/views/dashboard/analysis/components/flow/Pv.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/src/views/dashboard/analysis/index.vue b/src/views/dashboard/analysis/index.vue index c378e27..fcdc804 100644 --- a/src/views/dashboard/analysis/index.vue +++ b/src/views/dashboard/analysis/index.vue @@ -1,34 +1,40 @@