From 66d6ab86b5c3fe118012f834b12313b955464d0c Mon Sep 17 00:00:00 2001 From: rosercode Date: Wed, 23 Sep 2026 09:28:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E5=A4=87=E6=B3=A8=E8=AE=B0=E5=BD=95=E6=98=BE=E7=A4=BA=E5=BC=80?= =?UTF-8?q?=E5=85=B3=E5=B9=B6=E7=AE=80=E5=8C=96=E8=AE=BE=E7=BD=AE=E4=B8=8E?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=8F=9C=E5=8D=95=E6=96=87=E6=A1=88=20-=20?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E9=A1=B5=E3=80=8C=E5=A4=96=E8=A7=82=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E3=80=8D=E6=96=B0=E5=A2=9E=E3=80=8C=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=B7=B2=E9=9A=90=E8=97=8F=E5=A4=87=E6=B3=A8=E7=9A=84=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E3=80=8D=E5=BC=80=E5=85=B3=EF=BC=8C=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=85=B3=E9=97=AD=EF=BC=8C=E5=88=87=E6=8D=A2=E5=8D=B3=E6=97=B6?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=20-=20=E6=96=B0=E5=A2=9E=20GET/PUT=20/api/se?= =?UTF-8?q?tting/show-hidden-data=20=E6=8E=A5=E5=8F=A3=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E7=BA=A7=E5=81=8F=E5=A5=BD=E6=8C=81=E4=B9=85=E5=8C=96?= =?UTF-8?q?=E4=BA=8E=20t=5Fuser=5Fpreference=20-=20=E6=94=B6=E6=94=AF?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=88=97=E8=A1=A8=E4=B8=8E=20Excel=20?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=8C=89=E8=AF=A5=E5=81=8F=E5=A5=BD=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=EF=BC=8C=E5=85=B3=E9=97=AD=E6=97=B6=E6=8E=92=E9=99=A4?= =?UTF-8?q?=E5=B7=B2=E9=9A=90=E8=97=8F=E5=A4=87=E6=B3=A8=E7=9A=84=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=20-=20=E7=A7=BB=E9=99=A4=E3=80=8C=E5=A4=87=E6=B3=A8?= =?UTF-8?q?=E5=85=B3=E9=94=AE=E5=AD=97=E6=90=9C=E7=B4=A2=E6=97=B6=E6=80=BB?= =?UTF-8?q?=E6=98=AF=E8=B7=B3=E8=BF=87=E9=9A=90=E8=97=8F=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E3=80=8D=E9=80=BB=E8=BE=91=EF=BC=8C=E6=94=B9=E7=94=B1=E8=AF=A5?= =?UTF-8?q?=E5=81=8F=E5=A5=BD=E7=BB=9F=E4=B8=80=E6=8E=A7=E5=88=B6=EF=BC=8C?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=A4=87=E6=B3=A8=E6=90=9C=E7=B4=A2=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E6=94=BE=E5=BC=80=20-=20=E5=88=97=E8=A1=A8=E5=86=85?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E5=A4=87=E6=B3=A8=E5=90=8E=EF=BC=8C=E5=81=8F?= =?UTF-8?q?=E5=A5=BD=E5=85=B3=E9=97=AD=E6=97=B6=E8=AF=A5=E8=A1=8C=E5=8D=B3?= =?UTF-8?q?=E6=97=B6=E7=A7=BB=E9=99=A4=EF=BC=8C=E5=BD=93=E5=89=8D=E9=A1=B5?= =?UTF-8?q?=E6=B8=85=E7=A9=BA=E8=87=AA=E5=8A=A8=E5=9B=9E=E9=80=80=E4=B8=8A?= =?UTF-8?q?=E4=B8=80=E9=A1=B5=20-=20=E5=A4=96=E8=A7=82=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E6=8B=86=E5=88=86=E4=B8=BA=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E6=B5=85=E7=81=B0=E5=BA=95=E5=88=86=E7=BB=84=EF=BC=8C=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E9=85=8D=E7=BD=AE=E9=A1=B9=E5=8C=BA=E5=88=86=E6=9B=B4?= =?UTF-8?q?=E6=B8=85=E6=99=B0=20-=20=E9=A1=B6=E9=83=A8=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E4=B8=8E=E8=AE=BE=E7=BD=AE/=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E9=A1=B5=E6=A0=87=E9=A2=98=E7=94=B1=E3=80=8C=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E8=AE=BE=E7=BD=AE/=E7=B3=BB=E7=BB=9F=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E3=80=8D=E7=AE=80=E5=8C=96=E4=B8=BA=E3=80=8C=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE/=E6=97=A5=E5=BF=97=E3=80=8D=EF=BC=8C=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E4=B8=AD=E8=8B=B1=E6=97=A5=E4=B8=89=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/api/setting.ts | 10 +++ .../src/components/DisplayConfigPanel.vue | 83 ++++++++++++++++--- frontend/src/locales/messages.ts | 12 ++- frontend/src/views/TransactionList.vue | 27 +++++- .../controller/UserSettingController.java | 27 ++++++ .../finance/dto/ShowHiddenDataRequest.java | 15 ++++ .../service/UserPreferenceService.java | 16 ++++ .../service/impl/StatisticsServiceImpl.java | 3 +- .../service/impl/TransactionServiceImpl.java | 26 ++++-- .../impl/UserPreferenceServiceImpl.java | 26 ++++++ 10 files changed, 220 insertions(+), 25 deletions(-) create mode 100644 src/main/java/cn/rosercode/finance/dto/ShowHiddenDataRequest.java diff --git a/frontend/src/api/setting.ts b/frontend/src/api/setting.ts index 6f43cc7..2fb308a 100644 --- a/frontend/src/api/setting.ts +++ b/frontend/src/api/setting.ts @@ -20,3 +20,13 @@ export function getExcludedDisplayStyle() { export function updateExcludedDisplayStyle(style: string) { return request.put('/setting/excluded-display-style', { style }) } + +/** 查询当前用户是否在收支记录列表与导出中显示已隐藏备注的记录 */ +export function getShowHiddenData() { + return request.get('/setting/show-hidden-data') +} + +/** 更新当前用户是否在收支记录列表与导出中显示已隐藏备注的记录 */ +export function updateShowHiddenData(show: boolean) { + return request.put('/setting/show-hidden-data', { show }) +} diff --git a/frontend/src/components/DisplayConfigPanel.vue b/frontend/src/components/DisplayConfigPanel.vue index f970915..48d7f3f 100644 --- a/frontend/src/components/DisplayConfigPanel.vue +++ b/frontend/src/components/DisplayConfigPanel.vue @@ -1,12 +1,12 @@ - {{ t('display.hint') }} - -
-
{{ t('display.label') }}
+
+
{{ t('display.label') }}
+ {{ t('display.hint') }} {{ option.label }} -
@@ -95,6 +132,20 @@ onMounted(loadStyle)
+ + +
+
{{ t('display.hiddenDataLabel') }}
+ + + {{ t('display.hiddenDataHint') }} + +
@@ -108,9 +159,20 @@ onMounted(loadStyle)