feat: 接入新动作 update_canvas

This commit is contained in:
2026-09-27 18:03:48 +08:00
parent 216051cd8d
commit eda1db1f88
12 changed files with 128 additions and 36 deletions
+3 -1
View File
@@ -10,10 +10,11 @@ from .delete import DeleteAction
from .move import MoveAction
from .resize import ResizeAction
from .update import UpdateAction
from .update_canvas import UpdateCanvasAction
# 按 type 选择对应模型,不维护重复的操作名称映射
Action = Annotated[
AddAction | DeleteAction | MoveAction | ResizeAction | UpdateAction,
AddAction | DeleteAction | MoveAction | ResizeAction | UpdateAction | UpdateCanvasAction,
Field(discriminator="type"),
]
action_adapter = TypeAdapter(Action)
@@ -32,5 +33,6 @@ __all__ = [
"MoveAction",
"ResizeAction",
"UpdateAction",
"UpdateCanvasAction",
"action_adapter",
]
+17
View File
@@ -0,0 +1,17 @@
"""仅更新画布属性,不修改组件或数据源"""
from typing import Literal
from pydantic import Field, JsonValue
from app.schemas.base import NonBlankString
from .base import ActionModel
class UpdateCanvasAction(ActionModel):
type: Literal["update_canvas"] = "update_canvas"
properties: dict[NonBlankString, JsonValue] = Field(
min_length=1,
description="要替换的 canvas 顶层字段,如 width、height、backgroundColor;未提供的字段保持不变",
)