diff --git a/PROGRESS.md b/PROGRESS.md index 997e3c0..17279a2 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -21,6 +21,12 @@ ## 已完成关键能力 +### 2026-06-13 / 模型选择瘦身:对话模型常驻 + 生图/生视频收进 ⚙ 弹层 + +- `#chat-meta` 右侧原三个带标签下拉(模型/生图/生视频)占满整行。改为**高频的对话模型下拉常驻**(一眼可见当前模型、直接切),**低频的生图/生视频收进一个「⚙ 媒体」弹层**(fixed 定位逃出 pane overflow,点开才渲染 select)。meta 行从"3 下拉"降到"1 下拉 + 1 齿轮"。 +- 行为不变:生图/生视频选中值仍只进 `state.imageModel/videoModel`、随下条消息 POST 的 `image_model/video_model` 发(send 逻辑读 state 不读 DOM,迁移安全);`onChangeImageModel/onChangeVideoModel` 复用。imageModels/videoModels 皆空时连 ⚙ 都不画。 +- 改动文件:`dev.html`(弹层元素 + CSS)、`chat.js`(renderMediaModelTrigger / openMediaModelPop + 点外/resize/scroll 关闭)。bump 0.12.3 → 0.12.4。 + ### 2026-06-13 / 左栏筛选区可折叠(默认展开) - 左栏顶部原 4 行固定头把任务列表压矮。把搜索/状态/目录/排序四个筛选控件归到两行 `.task-filter-row`,标题行加「筛选 ▾」toggle:**默认展开**,点击折叠只藏 UI(已选条件仍生效),偏好存 `localStorage`(`zcbot.task-filters-collapsed`),与 pane 折叠同套范式。折叠后左栏顶部从 4 行降到 2 行(标题 + 新建),列表可视区更高。 diff --git a/core/__init__.py b/core/__init__.py index 3e01093..2babc9a 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -1,3 +1,3 @@ # zcbot 版本号单一事实源:web/app.py 的 FastAPI version、/healthz 返回、前端展示都引这里。 # 改版本只动这一行。 -__version__ = "0.12.3" +__version__ = "0.12.4" diff --git a/web/static/dev.html b/web/static/dev.html index c3afbce..3638006 100644 --- a/web/static/dev.html +++ b/web/static/dev.html @@ -439,6 +439,21 @@ z-index: 60; padding: 4px 0; } #floating-menu.show { display: block; transform-origin: top right; animation: menu-in .14s cubic-bezier(.2,.7,.2,1); } + /* 生图/生视频 模型弹层:同 floating-menu 的 fixed 定位骨架,内容是带标签的 select 行 */ + #media-model-pop { + display: none; position: fixed; + min-width: 220px; background: #fff; + border: 1px solid var(--border); border-radius: var(--r-md); + box-shadow: 0 4px 14px rgba(0,0,0,0.12); + z-index: 60; padding: 8px; + } + #media-model-pop.show { display: block; transform-origin: top right; animation: menu-in .14s cubic-bezier(.2,.7,.2,1); } + #media-model-pop .mm-row { display: flex; align-items: center; gap: 8px; } + #media-model-pop .mm-row + .mm-row { margin-top: 6px; } + #media-model-pop .mm-label { font-size: 12px; color: var(--muted); white-space: nowrap; min-width: 48px; display: inline-flex; align-items: center; gap: 4px; } + #media-model-pop select { font-size: 12px; padding: 3px 6px; flex: 1; min-width: 0; } + /* meta 行的 ⚙ 触发按钮 */ + #media-model-btn { line-height: 1; padding: 2px 7px; } .dd-item { display: block; width: 100%; text-align: left; padding: 6px 14px; font-size: 13px; line-height: 1.4; @@ -1310,6 +1325,9 @@
+ +
+