feat(pkglist): 去重 + 状态持久 + UI 弹窗风格统一
后端: - seedIfNeeded/addPkg/updateFromAllSources 插入前检测 storage 是否已缓存同名包,已缓存直接置 done - 新增 markDoneByName + dedupPkgList 函数 - pkglist 表新增 cached 列区分「已在缓存」vs「清单拉取完成」 - 新增 POST /api/pkglist/dedup 接口 前端: - api/index.js 新增 dedupPkgList() - store 暴露 dedupPkgList action,doRefresh 初始化时检测 sync-latest 运行状态并恢复轮询 - PkgListDrawer.vue 增加「去重」按钮,状态列区分「已在缓存」/「已完成」 - SearchView.vue 一键拉取弹窗改为与整体一致的自定义风格(确认+结果弹窗) - 按钮已按 syncProgress.running 显示旋转动画
This commit is contained in:
@@ -70,6 +70,13 @@ if (!logCols.includes('action')) {
|
||||
db.exec("ALTER TABLE logs ADD COLUMN action TEXT DEFAULT 'clean'")
|
||||
}
|
||||
|
||||
// 旧库迁移 v2:pkglist 增加 cached 列——标记「写入清单时 storage 已缓存该包」(done 的来源之一,
|
||||
// 与「通过清单拉取完成」区分,前端据此展示「已在缓存 / 已完成」两种 done)
|
||||
const pkglistCols = db.prepare('PRAGMA table_info(pkglist)').all().map(c => c.name)
|
||||
if (!pkglistCols.includes('cached')) {
|
||||
db.exec("ALTER TABLE pkglist ADD COLUMN cached INTEGER DEFAULT 0")
|
||||
}
|
||||
|
||||
// 旧库迁移 v1:历史日志/忽略记录的时间戳是 UTC,统一转成北京时间;settings 标志位防重复执行
|
||||
function migrateTimezone() {
|
||||
if (getSetting('timezone_migrated_v1')) return
|
||||
|
||||
Reference in New Issue
Block a user