90 lines
2.7 KiB
Markdown
90 lines
2.7 KiB
Markdown
# Running
|
||
|
||
用于显示一个运行中的状态提示控件,通常在异步操作(如数据加载、文件上传等)期间展示给用户。该控件为**容器控件**,继承自 `bricks.BaseModal`,具备模态弹窗的基本行为,并内置了一个动态刷新的时间显示和动图图标。
|
||
|
||
---
|
||
|
||
## 主要方法
|
||
|
||
- **`dismiss()`**
|
||
重写自父类 `BaseModal`,用于关闭当前运行提示窗口。在关闭前会调用内部 `BaseRunning` 实例的 `stop_timepass()` 方法,停止定时器以释放资源。
|
||
|
||
---
|
||
|
||
## 主要事件
|
||
|
||
无自定义事件。但作为模态框,其打开与关闭受 `auto_open: true` 控制,在实例化时自动触发显示。
|
||
|
||
---
|
||
|
||
## 源码例子
|
||
|
||
```json
|
||
{
|
||
"id": "running_indicator",
|
||
"widgettype": "Running",
|
||
"options": {
|
||
"icon": "imgs/loading_custom.gif", // 自定义加载图标路径,可选
|
||
"target": "main_container" // 指定渲染到哪个容器中(可由 bind 的 target 传递)
|
||
}
|
||
}
|
||
```
|
||
|
||
> ✅ 注释说明:
|
||
> - `"id"`:控件唯一标识,便于后续通过 ID 引用或销毁。
|
||
> - `"widgettype": "Running"`:表示使用已注册的 `Running` 控件。
|
||
> - `"options.icon"`:可选参数,指定动效图标 URL;若不传则使用默认资源 `imgs/running.gif`。
|
||
> - `"options.target"`:虽然在此未直接生效,但在实际绑定中可通过 `binds` 的 `target` 字段指定插入位置。
|
||
> - `auto_open: true` 在源码中硬编码设置,意味着一旦创建即自动弹出显示。
|
||
|
||
---
|
||
|
||
### 使用场景示例(结合 binds)
|
||
|
||
```json
|
||
{
|
||
"id": "btn_load_data",
|
||
"widgettype": "Button",
|
||
"options": {
|
||
"text": "开始加载",
|
||
"i18n": false
|
||
},
|
||
"binds": [
|
||
{
|
||
"actiontype": "bricks",
|
||
"wid": "btn_load_data",
|
||
"event": "click",
|
||
"target": "Popup",
|
||
"mode": "replace",
|
||
"options": {
|
||
"widgettype": "Running",
|
||
"id": "run_task",
|
||
"options": {
|
||
"icon": "imgs/loading.gif"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"actiontype": "urlwidget",
|
||
"wid": "btn_load_data",
|
||
"event": "click",
|
||
"target": "content_area",
|
||
"options": {
|
||
"url": "/api/load_content.ui",
|
||
"method": "GET"
|
||
},
|
||
"conform": {
|
||
"title": "确认操作",
|
||
"message": "即将加载新内容,是否继续?"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
> 🔍 示例说明:
|
||
> - 点击按钮后:
|
||
> 1. 首先在 `Popup` 中显示 `Running` 加载动画;
|
||
> 2. 同时向服务器请求 `/api/load_content.ui`,加载完成后替换 `content_area` 内容;
|
||
> 3. 请求发起前弹出确认对话框(由 `conform` 触发);
|
||
> 4. 当内容加载完毕后,开发者应在响应逻辑中手动关闭 `Running` 提示(例如通过 `bricks.get_widget('run_task').dismiss()`)。 |