2026-09-18 18:18:56 +08:00

589 lines
17 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"widgettype": "VBox",
"options": {
"width": "100%",
"height": "100%",
"padding": "20px",
"backgroundColor": "#F5F7FA"
},
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "PBL 基础域薄扩展 (M8) — world / scene / entity 契约导航",
"fontSize": "22px",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "薄扩展边界:仅新增关联表 pbl_domain_ref不修改 world / scene / entity 三张基表结构 (Q-OPEN-3)。下列 13 个契约入口的 url 一律使用 entire_url 包裹的 /pbl_domain_ext/api/xxx.dspy 绝对路径module-development-spec 2.1 / 2.3c),避免 RBAC 403 与路由错误。",
"fontSize": "13px",
"color": "#666666",
"marginTop": "6px"
}
},
{
"widgettype": "Text",
"options": {
"label": "一、关联表 pbl_domain_ref 契约6",
"fontSize": "16px",
"marginTop": "18px",
"fontWeight": "bold"
}
},
{
"widgettype": "ResponsableBox",
"options": {
"gap": "16px",
"minWidth": "250px"
},
"subwidgets": [
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_domain_ref_list.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "1. 关联记录列表 pbl_domain_ref_list",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "按 tenant_id / ref_type / class_id / team_id 分页查询关联记录",
"fontSize": "12px",
"color": "#888888"
}
}
]
},
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_domain_ref_get.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "2. 关联记录详情 pbl_domain_ref_get",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "按 id 取单条关联记录(含 ext_json 解析结果)",
"fontSize": "12px",
"color": "#888888"
}
}
]
},
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_domain_ref_bind.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "3. 绑定 pbl_domain_ref_bind",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "幂等建立 ref_type+ref_id 与蓝图/班级/团队的关联",
"fontSize": "12px",
"color": "#888888"
}
}
]
},
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_domain_ref_update.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "4. 更新 pbl_domain_ref_update",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "更新 ext_json / blueprint_id / class_id / team_id租户与归属校验",
"fontSize": "12px",
"color": "#888888"
}
}
]
},
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_domain_ref_unbind.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "5. 解绑 pbl_domain_ref_unbind",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "删除关联记录(不级联删除基表 world/scene/entity",
"fontSize": "12px",
"color": "#888888"
}
}
]
},
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_domain_ref_check_access.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "6. 访问判定 pbl_domain_ref_check_access",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "判定当前租户/班级/团队是否可访问指定 ref_type+ref_id",
"fontSize": "12px",
"color": "#888888"
}
}
]
}
]
},
{
"widgettype": "Text",
"options": {
"label": "二、基础域只读查询契约 world / scene / entity4",
"fontSize": "16px",
"marginTop": "18px",
"fontWeight": "bold"
}
},
{
"widgettype": "ResponsableBox",
"options": {
"gap": "16px",
"minWidth": "250px"
},
"subwidgets": [
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_world_list_by_tenant.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "7. 世界列表 pbl_world_list_by_tenant",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "读基表 world + 关联表过滤,返回本租户可见世界",
"fontSize": "12px",
"color": "#888888"
}
}
]
},
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_world_get_context.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "8. 世界上下文 pbl_world_get_context",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "聚合 world 与其下 scene/entity 关联,供运行时取上下文",
"fontSize": "12px",
"color": "#888888"
}
}
]
},
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_scene_list_by_world.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "9. 场景列表 pbl_scene_list_by_world",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "按 world_id 读基表 scene + 关联表过滤",
"fontSize": "12px",
"color": "#888888"
}
}
]
},
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_entity_list_by_scene.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "10. 实体列表 pbl_entity_list_by_scene",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "按 scene_id 读基表 entity + 关联表过滤",
"fontSize": "12px",
"color": "#888888"
}
}
]
}
]
},
{
"widgettype": "Text",
"options": {
"label": "三、班级 / 团队维度契约3",
"fontSize": "16px",
"marginTop": "18px",
"fontWeight": "bold"
}
},
{
"widgettype": "ResponsableBox",
"options": {
"gap": "16px",
"minWidth": "250px"
},
"subwidgets": [
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_team_bind_world.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "11. 团队绑定世界 pbl_team_bind_world",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "写 pbl_domain_ref(ref_type=world, team_id=...),幂等",
"fontSize": "12px",
"color": "#888888"
}
}
]
},
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_team_list_by_class.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "12. 班级下团队 pbl_team_list_by_class",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "按 class_id 聚合关联表,返回团队与其绑定的世界",
"fontSize": "12px",
"color": "#888888"
}
}
]
},
{
"widgettype": "VBox",
"options": {
"backgroundColor": "#FFFFFF",
"padding": "20px",
"cursor": "pointer",
"borderRadius": "6px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.pbl_domain_ext_content",
"options": {
"url": "{{entire_url('/pbl_domain_ext/api/pbl_team_world_list.dspy')}}?_webbricks_=1"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Text",
"options": {
"label": "13. 团队世界清单 pbl_team_world_list",
"fontWeight": "bold"
}
},
{
"widgettype": "Text",
"options": {
"label": "按 team_id 返回该团队可访问的世界列表",
"fontSize": "12px",
"color": "#888888"
}
}
]
}
]
},
{
"widgettype": "VBox",
"id": "pbl_domain_ext_content",
"options": {
"width": "100%",
"flex": "1",
"marginTop": "20px",
"backgroundColor": "#FFFFFF",
"padding": "12px",
"borderRadius": "6px"
}
}
]
}