"""在大屏 JSON 副本上删除组件,用于后端校验,不删除共享数据源""" from app.actions.base import BaseActionHandler from app.schemas.actions import DeleteAction from app.schemas.screen import Screen class DeleteHandler(BaseActionHandler[DeleteAction]): def apply(self, screen: Screen, action: DeleteAction) -> Screen: result, target = self.copy_target(screen, action.target_id) result.nodes = [node for node in result.nodes if node.id != target.id] return result