// 本地存储键常量:界面/用户偏好统一以 finance. 前缀命名,作为唯一来源供路由与各页面复用 /** 当前使用的本地存储键 */ export const STORAGE_KEYS = { // 语言偏好 locale: 'finance.locale', // 邮箱账单页标签页 emailBillTab: 'finance.emailBill.tab', // 系统日志页标签页 logsTab: 'finance.logs.tab', // 账单导入的账单类型 billImportBillType: 'finance.billImport.billType', // 统计面板偏好 dashboardPrefs: 'finance.dashboard.prefs', // 统计面板 AI 查询历史 dashboardAiSearchHistory: 'finance.dashboard.aiSearchHistory', // 统计面板 AI 查询浮窗位置尺寸 dashboardAiQueryWindow: 'finance.dashboard.aiQueryWindow', // 收支记录 AI 建议范围 transactionAiScope: 'finance.transaction.aiScope', // 收支记录 AI 记账方式 transactionAiRecordTab: 'finance.transaction.aiRecordTab', // 收支记录备注关键词历史 transactionRemarkHistory: 'finance.transaction.remarkHistory', // 收支记录筛选偏好(收支记录页与统计面板共用) transactionFilterPrefs: 'finance.transaction.filterPrefs', // 各表格每页大小偏好(聚合 JSON,按表格键区分,本机记忆) paginationTablePageSizes: 'finance.pagination.tablePageSizes', // 账单关系类型 transactionRelationType: 'finance.transaction.relationType', // 收支记录 AI 查询历史 transactionAiQueryHistory: 'finance.transaction.aiQueryHistory', // 收支记录 AI 查询浮窗位置尺寸 transactionAiQueryWindow: 'finance.transaction.aiQueryWindow', // 内容区滚动位置(sessionStorage,按路由拼接后缀) scrollPrefix: 'finance.scroll.', } as const /** 历史遗留的存储键(未带 finance. 前缀),首次读取时迁移到新键 */ export const LEGACY_STORAGE_KEYS = { locale: 'locale', emailBillTab: 'emailBill.tab', logsTab: 'logs.tab', } as const /** 生成指定路由的滚动位置存储键 */ export function scrollKey(path: string): string { return `${STORAGE_KEYS.scrollPrefix}${path}` }