From cc33d3028b902b96283f0510b5563817cf50b0d0 Mon Sep 17 00:00:00 2001 From: Cxx0822 <1556464090@qq.com> Date: Thu, 30 Oct 2025 15:00:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=A2=9E=E5=8A=A0=E6=9C=88=E7=BB=8F?= =?UTF-8?q?=E5=A4=A9=E6=95=B0=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/period.ts | 8 ++- src/layout/TabBar.vue | 5 ++ src/store/period.ts | 7 ++- src/types/period.ts | 5 ++ src/views/meta.ts | 4 ++ src/views/period/status.vue | 105 ++++++++++++++++++++++++++++++++++++ vite.config.ts | 2 +- 7 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 src/views/period/status.vue diff --git a/src/apis/period.ts b/src/apis/period.ts index 19be2ff..577e9ac 100644 --- a/src/apis/period.ts +++ b/src/apis/period.ts @@ -1,5 +1,5 @@ import { cloudService } from './index' -import { IPeriodDay, IPeriodSetting } from '@/types/period.ts' +import { IMenstrualPeriod, IPeriodDay, IPeriodSetting } from '@/types/period.ts' export const updatePeriodDayApi = (id: number, periodDay: IPeriodDay): Promise => @@ -16,6 +16,12 @@ export const queryPeriodDayApi = (month: string): Promise => params: { month } }) +export const getMenstrualDaysApi = (): Promise => + cloudService({ + url: '/home-api/period//menstruate/days', + method: 'get' + }) + export const getMenstruateFirstDateApi = (month: string): Promise => cloudService({ url: '/home-api/period/menstruate', diff --git a/src/layout/TabBar.vue b/src/layout/TabBar.vue index 86e1b11..26233a4 100644 --- a/src/layout/TabBar.vue +++ b/src/layout/TabBar.vue @@ -70,6 +70,11 @@ 记录 + + + 统计 + diff --git a/src/store/period.ts b/src/store/period.ts index 29c17ff..134f033 100644 --- a/src/store/period.ts +++ b/src/store/period.ts @@ -1,7 +1,8 @@ import { defineStore } from 'pinia' import { IHandleApi } from 'vue3-common/types' -import { IPeriodDay, IPeriodSetting } from '@/types/period.ts' +import { IMenstrualPeriod, IPeriodDay, IPeriodSetting } from '@/types/period.ts' import { + getMenstrualDaysApi, getMenstruateFirstDateApi, queryPeriodDayApi, queryPeriodSettingApi, @@ -13,6 +14,7 @@ import { getCurrentMonth } from 'vue3-common/utils/dateUtil' export const usePeriodStore = defineStore('period', { state: () => ({ periodDayList: [] as IPeriodDay[], + menstrualDaysList: [] as IMenstrualPeriod[], periodSetting: { id: 0, cycleLength: 0, @@ -52,6 +54,9 @@ export const usePeriodStore = defineStore('period', { async getMenstruateFirstDate(month: string) { this.menstruateFirstDate = await getMenstruateFirstDateApi(month) }, + async getMenstruateDays() { + this.menstrualDaysList = await getMenstrualDaysApi() + }, async refreshInfo() { await this.queryPeriodDayList() await this.queryPeriodSetting() diff --git a/src/types/period.ts b/src/types/period.ts index aaf91e4..4f5f4cf 100644 --- a/src/types/period.ts +++ b/src/types/period.ts @@ -35,3 +35,8 @@ export interface IPeriodSetting { duration: number; isCalculate: boolean; } + +export interface IMenstrualPeriod{ + startDate: string; + endDate: string; +} diff --git a/src/views/meta.ts b/src/views/meta.ts index 7b544cf..8efd943 100644 --- a/src/views/meta.ts +++ b/src/views/meta.ts @@ -143,6 +143,10 @@ export const mobileHomeMeta: IRouteMetaConfig = { title: '记录', icon: '' }, + '/period/status': { + title: '统计', + icon: '' + }, '/period/setting': { title: '设置', icon: '' diff --git a/src/views/period/status.vue b/src/views/period/status.vue new file mode 100644 index 0000000..36ad129 --- /dev/null +++ b/src/views/period/status.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/vite.config.ts b/vite.config.ts index 5726f7a..c581044 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -6,7 +6,7 @@ import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' import { viteMockServe } from 'vite-plugin-mock' // const API_HOST = '14.103.235.151' -const API_HOST = '100.66.1.3' +const API_HOST = '127.0.0.1' // https://vitejs.dev/config/ export default defineConfig({