feat:新增物料
This commit is contained in:
@@ -28,7 +28,7 @@ def resolve_field_groups(
|
||||
|
||||
|
||||
def field_default(component: ComponentDefinition, field: MaterialField) -> JsonValue:
|
||||
"""物料默认配置中有该路径时取默认配置的值,否则取字段声明的 default"""
|
||||
"""物料默认配置中有该路径时取默认配置的值,否则取字段声明的 default;跟随主题的颜色为 None"""
|
||||
value = lookup(component.template(), field.segments)
|
||||
return field.default if value is MISSING else value
|
||||
|
||||
@@ -54,6 +54,8 @@ def panel_setters(groups: list[FieldGroup]) -> list[dict]:
|
||||
}
|
||||
if field.span is not None:
|
||||
setter["span"] = field.span
|
||||
if field.themed:
|
||||
setter["themed"] = True
|
||||
setters.append(setter)
|
||||
return setters
|
||||
|
||||
@@ -126,11 +128,14 @@ def describe_field(
|
||||
"""给模型看的字段说明:省略空值和属性面板专用的信息"""
|
||||
data = field.model_dump(
|
||||
mode="json",
|
||||
exclude={"default", "panel", "span", "editable"},
|
||||
exclude={"default", "panel", "span", "editable", "themed"},
|
||||
exclude_none=True,
|
||||
exclude_defaults=True,
|
||||
)
|
||||
data["default"] = field_default(component, field)
|
||||
if field.themed:
|
||||
# 默认为 null:没单独设置时画面上按画布主题取色
|
||||
data["follows_theme"] = True
|
||||
if not field.editable:
|
||||
data["editable"] = False
|
||||
data["group"] = group.key
|
||||
|
||||
Reference in New Issue
Block a user