feat: 长期计划(目标→每日任务物化+进度条) / 详情页Markdown范围导出 / 记账与详情页改内容优先弹窗新增
This commit is contained in:
@@ -48,6 +48,18 @@ export interface WeeklyNote {
|
||||
created_at: string
|
||||
}
|
||||
|
||||
export interface Goal {
|
||||
id?: number
|
||||
title: string // 长期计划,如:学完产品文档 / 本月健身 20 次
|
||||
kind: string
|
||||
start_date: string // YYYY-MM-DD
|
||||
end_date: string
|
||||
note: string | null
|
||||
uuid: string
|
||||
created_at: string
|
||||
updated_at: string
|
||||
}
|
||||
|
||||
export interface PlanItem {
|
||||
id?: number
|
||||
date: string // YYYY-MM-DD
|
||||
@@ -59,6 +71,7 @@ export interface PlanItem {
|
||||
status: string // todo | done | skip
|
||||
actual_minutes: number // 计时时钟累计的实际投入分钟
|
||||
timer_started_at: string | null
|
||||
goal_id: number | null // 来源长期计划(本地 id)
|
||||
uuid: string
|
||||
created_at: string
|
||||
updated_at: string
|
||||
@@ -124,6 +137,7 @@ export class WorklogDB extends Dexie {
|
||||
sync_mirror!: Table<SyncMirror, number>
|
||||
tombstone!: Table<SyncTombstone, number>
|
||||
plan!: Table<PlanItem, number>
|
||||
goal!: Table<Goal, number>
|
||||
|
||||
constructor(dbName = 'intern_worklog') {
|
||||
super(dbName)
|
||||
@@ -163,6 +177,10 @@ export class WorklogDB extends Dexie {
|
||||
if (item.category && map[item.category]) item.category = map[item.category]
|
||||
})
|
||||
})
|
||||
this.version(6).stores({
|
||||
plan: '++id, date, status, goal_id',
|
||||
goal: '++id, start_date'
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,7 +196,7 @@ export function unbindDatabase(): void {
|
||||
db = undefined
|
||||
}
|
||||
|
||||
export const SCHEMA_VERSION = 5
|
||||
export const SCHEMA_VERSION = 6
|
||||
|
||||
export const EXPENSE_CATEGORIES: string[] = ['餐饮', '交通', '住房', '通讯', '学习', '娱乐', '其他']
|
||||
export const INCOME_CATEGORIES: string[] = ['工资', '报销', '其他']
|
||||
|
||||
Reference in New Issue
Block a user