feat: 设置页新增分区目录导航并支持 URL 锚点,统计面板图表点击跳转可关闭
设置页由单一长列表改为「目录 + 分区」结构:桌面左侧吸附目录、小屏/平板顶部横向条目条,点击可平滑定位并同步 URL 锚点(支持 /settings#<slug> 深链与浏览器前进后退);同时为统计面板图表补充用户级「点击跳转明细」开关(默认开启),面板与设置页两处入口实时联动。 变更内容: - 设置页目录导航:Settings.vue 分区 slug 化,点击 push / 滚动 replace 同步 URL,显式跳转期间暂停滚动联动并用 ResizeObserver 持续对齐、用户主动滚动后解除;修复悬停样式覆盖高亮、并让选中项自动滚入视野;Layout.vue 在 route.hash 非空时跳过滚动位置恢复;router 对同路径纯 hash 变更提前放行;messages.ts 新增目录三语文案。 - 统计面板图表点击开关:后端新增用户级偏好 `chartClickNavigation`(DTO/Controller/Service,未配置默认开启);前端共享 composable `useChartClickNavigation`;Dashboard.vue 增加关闭守卫、提示显隐与光标联动及面板快捷开关;DisplayConfigPanel.vue 新增开关;messages.ts 新增三语文案。 - 说明:复用通用键值表 t_user_preference,不改动建表脚本与实体/Mapper;未配置默认开启,老用户无感知。
This commit is contained in:
@@ -213,6 +213,7 @@ export default {
|
||||
// 系统设置
|
||||
settings: {
|
||||
title: { zh: '设置', en: 'Settings', ja: '設定' },
|
||||
navTitle: { zh: '设置目录', en: 'Contents', ja: '目次' },
|
||||
accountSection: { zh: '账号安全', en: 'Account Security', ja: 'アカウントセキュリティ' },
|
||||
databaseSection: { zh: '数据库配置', en: 'Database', ja: 'データベース' },
|
||||
aiSection: { zh: 'AI 模型配置', en: 'AI Model', ja: 'AI モデル' },
|
||||
@@ -352,6 +353,26 @@ export default {
|
||||
en: 'Failed to update hidden remark record display',
|
||||
ja: '非表示備考の記録表示の更新に失敗しました',
|
||||
},
|
||||
chartClickLabel: {
|
||||
zh: '图表点击跳转明细',
|
||||
en: 'Chart click to view records',
|
||||
ja: 'グラフのクリックで明細表示',
|
||||
},
|
||||
chartClickHint: {
|
||||
zh: '开启后,点击统计面板的趋势柱子或饼图扇区可跳转查看对应收支明细;关闭后仅展示图表',
|
||||
en: 'When on, clicking a trend bar or pie slice in the dashboard jumps to the matching transaction records; when off, charts are display-only',
|
||||
ja: 'オンにすると、ダッシュボードの棒グラフや円グラフをクリックして該当する収支明細を表示できます。オフの場合はグラフの表示のみ',
|
||||
},
|
||||
chartClickSaved: {
|
||||
zh: '已更新图表点击跳转设置',
|
||||
en: 'Chart click navigation updated',
|
||||
ja: 'グラフのクリック設定を更新しました',
|
||||
},
|
||||
chartClickFailed: {
|
||||
zh: '更新图表点击跳转设置失败',
|
||||
en: 'Failed to update chart click navigation',
|
||||
ja: 'グラフのクリック設定の更新に失敗しました',
|
||||
},
|
||||
pageSizeLabel: { zh: '表格每页条数选项', en: 'Table page size options', ja: 'テーブルの1ページ件数オプション' },
|
||||
pageSizeHint: {
|
||||
zh: '所有表格分页共用的每页条数候选列表,修改后自动保存;未配置时使用默认 10 / 20 / 50 / 100',
|
||||
@@ -708,6 +729,11 @@ export default {
|
||||
en: 'Click a bar to view matching records',
|
||||
ja: '棒をクリックすると該当明細を表示',
|
||||
},
|
||||
chartClickToggle: {
|
||||
zh: '点击图表查看明细',
|
||||
en: 'Click chart to view records',
|
||||
ja: 'グラフをクリックして明細表示',
|
||||
},
|
||||
expenseCategoryPie: { zh: '支出分类占比', en: 'Expense by Category', ja: '支出カテゴリの割合' },
|
||||
incomeCategoryPie: { zh: '收入分类占比', en: 'Income by Category', ja: '収入カテゴリの割合' },
|
||||
expenseChannelPie: { zh: '支出交易渠道占比', en: 'Expense by Channel', ja: '支出の取引チャネル割合' },
|
||||
|
||||
Reference in New Issue
Block a user