- Java 包名由 cn.rosercode.finance 改为 cn.rosercode.ledgerly,主类 FinanceApplication 更名为 LedgerlyApplication - Gradle 项目名、spring.application.name 与日志文件名统一为 ledgerly - 前端界面文案、页面标题、登录注册标题、README 与 Knife4j 标题更新为汇账 / Ledgerly - 前端本地存储键前缀由 finance. 改为 ledgerly.,并新增旧键自动迁移避免老用户偏好丢失 - 运行目录系统属性与环境变量改为 ledgerly.home / LEDGERLY_HOME - 部署编排、启动脚本、容器名、SQLite 默认路径与构建产物名同步改为 ledgerly
66 lines
2.6 KiB
TypeScript
66 lines
2.6 KiB
TypeScript
// 本地存储键常量:界面/用户偏好统一以 ledgerly. 前缀命名,作为唯一来源供路由与各页面复用
|
|
import { migrateKey } from './storage'
|
|
|
|
/** 当前使用的本地存储键 */
|
|
export const STORAGE_KEYS = {
|
|
// 语言偏好
|
|
locale: 'ledgerly.locale',
|
|
// 邮箱账单页标签页
|
|
emailBillTab: 'ledgerly.emailBill.tab',
|
|
// 系统日志页标签页
|
|
logsTab: 'ledgerly.logs.tab',
|
|
// 账单导入的账单类型
|
|
billImportBillType: 'ledgerly.billImport.billType',
|
|
// 统计面板偏好
|
|
dashboardPrefs: 'ledgerly.dashboard.prefs',
|
|
// 统计面板 AI 查询历史
|
|
dashboardAiSearchHistory: 'ledgerly.dashboard.aiSearchHistory',
|
|
// 统计面板 AI 查询浮窗位置尺寸
|
|
dashboardAiQueryWindow: 'ledgerly.dashboard.aiQueryWindow',
|
|
// 收支记录 AI 建议范围
|
|
transactionAiScope: 'ledgerly.transaction.aiScope',
|
|
// 收支记录 AI 记账方式
|
|
transactionAiRecordTab: 'ledgerly.transaction.aiRecordTab',
|
|
// 收支记录备注关键词历史
|
|
transactionRemarkHistory: 'ledgerly.transaction.remarkHistory',
|
|
// 收支记录筛选偏好(收支记录页与统计面板共用)
|
|
transactionFilterPrefs: 'ledgerly.transaction.filterPrefs',
|
|
// 各表格每页大小偏好(聚合 JSON,按表格键区分,本机记忆)
|
|
paginationTablePageSizes: 'ledgerly.pagination.tablePageSizes',
|
|
// 账单关系类型
|
|
transactionRelationType: 'ledgerly.transaction.relationType',
|
|
// 收支记录 AI 查询历史
|
|
transactionAiQueryHistory: 'ledgerly.transaction.aiQueryHistory',
|
|
// 收支记录 AI 查询浮窗位置尺寸
|
|
transactionAiQueryWindow: 'ledgerly.transaction.aiQueryWindow',
|
|
// 内容区滚动位置(sessionStorage,按路由拼接后缀)
|
|
scrollPrefix: 'ledgerly.scroll.',
|
|
} as const
|
|
|
|
/** 历史遗留的存储键(未带前缀),首次读取时迁移到新键 */
|
|
export const LEGACY_STORAGE_KEYS = {
|
|
locale: 'locale',
|
|
emailBillTab: 'emailBill.tab',
|
|
logsTab: 'logs.tab',
|
|
} as const
|
|
|
|
/** 当前存储键前缀 */
|
|
const CURRENT_PREFIX = 'ledgerly.'
|
|
/** 上一代存储键前缀(品牌改名前的 finance.) */
|
|
const LEGACY_PREFIX = 'finance.'
|
|
|
|
/** 模块加载时迁移上一代 finance.* 偏好键到 ledgerly.*,保证老用户偏好不丢失 */
|
|
function migrateLegacyPrefixedKeys(): void {
|
|
Object.values(STORAGE_KEYS).forEach((key) => {
|
|
if (!key.startsWith(CURRENT_PREFIX)) return
|
|
migrateKey(LEGACY_PREFIX + key.slice(CURRENT_PREFIX.length), key)
|
|
})
|
|
}
|
|
|
|
migrateLegacyPrefixedKeys()
|
|
|
|
/** 生成指定路由的滚动位置存储键 */
|
|
export function scrollKey(path: string): string {
|
|
return `${STORAGE_KEYS.scrollPrefix}${path}`
|
|
}
|