You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

1.1 KiB

删除剧本时同步删除关联子项目

日期: 2026-02-08
类型: 功能增强

变更说明

在剧本目录中删除剧本时,现已同时将关联的子项目移至回收站。

背景

根据子项目架构(RFC 141),一个剧本对应一个子项目。删除剧本后,原先仅清空子项目的 screenplay_id 关联,子项目仍保留在侧边栏,造成数据不一致。

实现

后端 (screenplay_service.py)

  • 变更前:删除剧本后,将子项目的 screenplay_id 置为 None
  • 变更后:删除剧本后,调用 project_repo.move_to_trash() 将关联子项目移至回收站
  • 条件:仅当 screenplay.project_id 指向的项目为子项目(parent_project_id 非空)且 screenplay_id 匹配时执行

前端 (useScreenplays.ts)

  • 删除剧本成功后,增加 projectKeys.lists()folderKeys.trees() 的缓存失效,确保项目列表与文件夹树刷新,子项目从侧边栏消失

影响范围

  • server/app/services/screenplay_service.py - delete_screenplay
  • client/src/hooks/api/useScreenplays.ts - useDeleteScreenplayonSuccess