feat(backup): 新增按需(选择性)文件恢复 (#91)

在内容浏览基础上支持仅恢复勾选的文件/目录到原位置。FileRunner.Restore 按选中集合过滤提取与删除;RestoreService.StartSelective(Start 委托,零破坏);恢复端点接受可选 selectedPaths;前端内容弹窗支持勾选恢复。
This commit is contained in:
Wu Qing
2026-05-27 19:50:50 +08:00
committed by GitHub
parent 68bb964350
commit 493e1faff5
8 changed files with 149 additions and 10 deletions

View File

@@ -151,7 +151,11 @@ func (h *BackupRecordHandler) Restore(c *gin.Context) {
if subject, exists := c.Get(contextUserSubjectKey); exists {
triggeredBy = strings.TrimSpace(fmt.Sprintf("%v", subject))
}
detail, err := h.restoreService.Start(c.Request.Context(), id, triggeredBy)
var body struct {
SelectedPaths []string `json:"selectedPaths"`
}
_ = c.ShouldBindJSON(&body) // body 可选:无 body 为整体恢复,含 selectedPaths 为按需恢复
detail, err := h.restoreService.StartSelective(c.Request.Context(), id, body.SelectedPaths, triggeredBy)
if err != nil {
response.Error(c, err)
return