yumoqing 6491182249 feat: add view_assets page — browse media by group with bricks widgets
- init.py: add rl_list_assets_client() — validates org ownership, syncs
  from vendor, returns asset list with status/url/type
- view_assets.ui: dropdown to select vendor_group_id, submit triggers
  asset list display
- submit_list_assets.dspy: returns responsive card grid with Image/
  VideoPlayer/AudioPlayer widgets, per-asset refresh status + download
- index.ui: add '查看素材' card for customers
- load_path.py: register view_assets.ui under logined RBAC
2026-05-30 10:31:08 +08:00

330 lines
16 KiB
XML
Raw 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.

{% set roles = get_user_roles(get_user()) %}
{% set role_str = roles|join(',') %}
{% set is_customer = 'customer.' in role_str %}
{% set is_admin = 'owner.superuser' in roles or 'reseller.operator' in roles %}
{
"widgettype": "VBox",
"options": {
"width": "100%",
"height": "100%",
"padding": "0"
},
"subwidgets": [
{
"widgettype": "HBox",
"options": {
"width": "100%",
"alignItems": "center",
"marginBottom": "20px"
},
"subwidgets": [
{
"widgettype": "Title2",
"options": {
"text": "真人人像素材管理"
}
}
]
},
{
"widgettype": "VScrollPanel",
"options": {
"css": "filler"
},
"subwidgets": [
{
"widgettype": "VBox",
"options": {
"spacing": 20
},
"subwidgets": [
{
"widgettype": "ResponsableBox",
"options": {
"gap": "16px",
"minWidth": "280px"
},
"subwidgets": [
{% if is_customer or is_admin %}
{
"widgettype": "VBox",
"options": {
"css": "card",
"cheight": 12,
"cwidth": 23,
"padding": "20px",
"cursor": "pointer",
"borderRadius": "8px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.rl_content",
"options": {
"url": "{{entire_url('create_validate.ui')}}"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Title5",
"options": {
"text": "🔐 真人认证"
}
},
{
"widgettype": "Text",
"options": {
"text": "创建真人认证会话获取H5认证链接",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cheight": 12,
"cwidth": 23,
"padding": "20px",
"cursor": "pointer",
"borderRadius": "8px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.rl_content",
"options": {
"url": "{{entire_url('upload_asset.ui')}}"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Title5",
"options": {
"text": "📤 上传素材"
}
},
{
"widgettype": "Text",
"options": {
"text": "上传素材到供应商支持URL/base64",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cheight": 12,
"cwidth": 23,
"padding": "20px",
"cursor": "pointer",
"borderRadius": "8px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.rl_content",
"options": {
"url": "{{entire_url('view_assets.ui')}}"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Title5",
"options": {
"text": "🖼️ 查看素材"
}
},
{
"widgettype": "Text",
"options": {
"text": "按认证组合查看已上传的素材及状态",
"cfontsize": 1.2
}
}
]
}
{% endif %}
{% if is_admin %}
,{
"widgettype": "VBox",
"options": {
"css": "card",
"cheight": 12,
"cwidth": 23,
"padding": "20px",
"cursor": "pointer",
"borderRadius": "8px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.rl_content",
"options": {
"url": "{{entire_url('group_manage.ui')}}"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Title5",
"options": {
"text": "📁 素材组合管理"
}
},
{
"widgettype": "Text",
"options": {
"text": "创建真人认证、管理素材组合Asset Group",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cheight": 12,
"cwidth": 23,
"padding": "20px",
"cursor": "pointer",
"borderRadius": "8px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.rl_content",
"options": {
"url": "{{entire_url('asset_manage.ui')}}"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Title5",
"options": {
"text": "🖼️ 素材资产管理"
}
},
{
"widgettype": "Text",
"options": {
"text": "上传/查看/同步真人人像素材Asset",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cheight": 12,
"cwidth": 23,
"padding": "20px",
"cursor": "pointer",
"borderRadius": "8px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.rl_content",
"options": {
"url": "{{entire_url('vendor_config_manage.ui')}}"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Title5",
"options": {
"text": "⚙️ 供应商配置"
}
},
{
"widgettype": "Text",
"options": {
"text": "管理供应商upappid和API映射",
"cfontsize": 1.2
}
}
]
},
{
"widgettype": "VBox",
"options": {
"css": "card",
"cheight": 12,
"cwidth": 23,
"padding": "20px",
"cursor": "pointer",
"borderRadius": "8px"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "app.rl_content",
"options": {
"url": "{{entire_url('org_group_manage.ui')}}"
},
"mode": "replace"
}
],
"subwidgets": [
{
"widgettype": "Title5",
"options": {
"text": "🔗 机构映射管理"
}
},
{
"widgettype": "Text",
"options": {
"text": "查看/管理机构和供应商组合的映射关系",
"cfontsize": 1.2
}
}
]
}
{% endif %}
]
}
]
},
{
"widgettype": "VBox",
"id": "rl_content"
}
]
}
]
}